Skip to content

Commit

Permalink
Added ability to use regexps in aliases (#80)
Browse files Browse the repository at this point in the history
Resolves #79

Signed-off-by: Hofi <[email protected]>
  • Loading branch information
HofiOne authored Jun 4, 2024
2 parents 1f467dd + d787b10 commit cdb70bf
Show file tree
Hide file tree
Showing 3 changed files with 57 additions and 37 deletions.
66 changes: 30 additions & 36 deletions _data/link_aliases.yml
Original file line number Diff line number Diff line change
@@ -1,99 +1,93 @@
#
# You can use only the id currently to create an alias
#
# TODO: Add title support as well
# - but, what about then with the duplicated titles again?!?
# - using the id has a much better link generation performance
#

adm-temp-macro-ose:
aliases: [ "Macros", "macros" ]
aliases: [ "/[Mm]acros/" ]

adm-temp-macro-ose#date-c_date-r_date-s_date:
aliases: [ "${DATE}", "${C_DATE}", "${R_DATE}", "${S_DATE}" ]
aliases: [ "/\\${DATE}|\\${[CRS]_DATE}/" ]

adm-temp-macro-ose#day-c_day-r_day-s_day:
aliases: [ "${DAY}", "${C_DAY}", "${R_DAY}", "${S_DAY}" ]
aliases: [ "/\\${DAY}|\\${[CRS]_DAY}/" ]

adm-temp-macro-ose#fulldate-c_fulldate-r_fulldate-s_fulldate:
aliases: [ "${FULLDATE}", "${C_FULLDATE}", "${R_FULLDATE}", "${S_FULLDATE}" ]
aliases: [ "/\\${FULLDATE}|\\${[CRS]_FULLDATE}/" ]

adm-temp-macro-ose#hour-c_hour-r_hour-s_hour:
aliases: [ "${HOUR}", "${C_HOUR}", "${R_HOUR}", "${S_HOUR}" ]
aliases: [ "/\\${HOUR}|\\${[CRS]_HOUR}/" ]

adm-temp-macro-ose#hour12-c_hour12-r_hour12-s_hour12:
aliases: [ "${HOUR12}", "${C_HOUR12}", "${R_HOUR12}", "${S_HOUR12}" ]
aliases: [ "/\\${HOUR12}|\\${[CRS]_HOUR12}/" ]

adm-temp-macro-ose#isodate-c_isodate-r_isodate-s_isodate:
aliases: [ "${ISODATE}", "${C_ISODATE}", "${R_ISODATE}", "${S_ISODATE}" ]
aliases: [ "/\\${ISODATE}|\\${[CRS]_ISODATE}/" ]

adm-temp-macro-ose#isoweek-c_isoweek-r_isoweek-s_isoweek:
aliases: [ "${ISOWEEK}", "${C_ISOWEEK}", "${R_ISOWEEK}", "${S_ISOWEEK}" ]
aliases: [ "/\\${ISOWEEK}|\\${[CRS]_ISOWEEK}/" ]

adm-temp-macro-ose#min-c_min-r_min-s_min:
aliases: [ "${MIN}", "${C_MIN}", "${R_MIN}", "${S_MIN}" ]
aliases: [ "/\\${MIN}|\\${[CRS]_MIN}/" ]

adm-temp-macro-ose#month_abbrev-c_month_abbrev-r_month_abbrev-s_month_abbrev:
aliases: [ "${MONTH_ABBREV}", "${C_MONTH_ABBREV}", "${R_MONTH_ABBREV}", "${S_MONTH_ABBREV}" ]
aliases: [ "/\\${MONTH_ABBREV}|\\${[CRS]_MONTH_ABBREV}/" ]

adm-temp-macro-ose#month-c_month-r_month-s_month:
aliases: [ "${MONTH}", "${C_MONTH}", "${R_MONTH}", "${S_MONTH}" ]
aliases: [ "/\\${MONTH}|\\${[CRS]_MONTH}/" ]

adm-temp-macro-ose#month_name-c_month_name-r_month_name-s_month_name:
aliases: [ "${MONTH_NAME}", "${C_MONTH_NAME}", "${R_MONTH_NAME}", "${S_MONTH_NAME}" ]
aliases: [ "/\\${MONTH_NAME}|\\${[CRS]_MONTH_NAME}/" ]

adm-temp-macro-ose#month_week-c_month_week-r_month_week-s_month_week:
aliases: [ "${MONTH_WEEK}", "${C_MONTH_WEEK}", "${R_MONTH_WEEK}", "${S_MONTH_WEEK}" ]
aliases: [ "/\\${MONTH_WEEK}|\\${[CRS]_MONTH_WEEK}/" ]

adm-temp-macro-ose#msec-c_msec-r_msec-s_msec:
aliases: [ "${MSEC}", "${C_MSEC}", "${R_MSEC}", "${S_MSEC}" ]
aliases: [ "/\\${MSEC}|\\${[CRS]_MSEC}/" ]

adm-temp-macro-ose#priority-or-level:
aliases: [ "${PRIORITY}", "${LEVEL}" ]
aliases: [ "/\\${PRIORITY}|\\${LEVEL}/" ]

adm-temp-macro-ose#sdata-sdatasdidsdname:
aliases: [ "${SDATA}" ]

adm-temp-macro-ose#sec-c_sec-r_sec-s_sec:
aliases: [ "${SEC}", "${C_SEC}", "${R_SEC}", "${S_SEC}" ]
aliases: [ "/${SEC}|\\${[CRS]_SEC}/" ]

adm-temp-macro-ose#stamp-r_stamp-s_stamp:
aliases: [ "${STAMP}", "${R_STAMP}", "${S_STAMP}" ]
aliases: [ "/\\${STAMP}|\\${[RS]_STAMP}/" ]

adm-temp-macro-ose#tz-c_tz-r_tz-s_tz:
aliases: [ "${TZ}", "${C_TZ}", "${R_TZ}", "${S_TZ}" ]
aliases: [ "/\\${TZ}|\\${[CRS]_TZ}/" ]

adm-temp-macro-ose#tzoffset-c_tzoffset-r_tzoffset-s_tzoffset:
aliases: [ "${TZOFFSET}", "${C_TZOFFSET}", "${R_TZOFFSET}", "${S_TZOFFSET}" ]
aliases: [ "/\\${TZOFFSET}|\\${[CRS]_TZOFFSET}/" ]

adm-temp-macro-ose#unixtime-c_unixtime-r_unixtime-s_unixtime:
aliases: [ "${UNIXTIME}", "${C_UNIXTIME}", "${R_UNIXTIME}", "${S_UNIXTIME}" ]
aliases: [ "/$\\{UNIXTIME}|\\${[CRS]_UNIXTIME}/" ]

adm-temp-macro-ose#usec-c_usec-r_usec-s_usec:
aliases: [ "${USEC}", "${C_USEC}", "${R_USEC}", "${S_USEC}" ]
aliases: [ "/\\${USEC}|\\${[CRS]_USEC}/" ]

adm-temp-macro-ose#week-c_week-r_week-s_week:
aliases: [ "${WEEK}", "${C_WEEK}", "${R_WEEK}", "${S_WEEK}" ]
aliases: [ "/\\${WEEK}|\\${[CRS]_WEEK}/" ]

adm-temp-macro-ose#week_day_abbrev-c_week_day_abbrev-r_week_day_abbrev-s_week_day_abbrev:
aliases: [ "${WEEK_DAY_ABBREV}", "${C_WEEK_DAY_ABBREV}", "${R_WEEK_DAY_ABBREV}", "${S_WEEK_DAY_ABBREV}" ]
aliases: [ "/\\${WEEK_DAY_ABBREV}|\\${[CRS]_WEEK_DAY_ABBREV}/" ]

adm-temp-macro-ose#week_day-c_week_day-r_week_day-s_week_day:
aliases: [ "${WEEK_DAY}", "${C_WEEK_DAY}", "${R_WEEK_DAY}", "${S_WEEK_DAY}" ]
aliases: [ "/\\${WEEK_DAY}|\\${[CRS]_WEEK_DAY}/" ]

adm-temp-macro-ose#weekday-c_weekday-r_weekday-s_weekday:
aliases: [ "${WEEKDAY}", "${C_WEEKDAY}", "${R_WEEKDAY}", "${S_WEEKDAY}" ]
aliases: [ "/\\${WEEKDAY}|\\${[CRS]_WEEKDAY}/" ]

adm-temp-macro-ose#week_day_name-c_week_day_name-r_week_day_name-s_week_day_name:
aliases: [ "${WEEK_DAY_NAME}", "${C_WEEK_DAY_NAME}", "${R_WEEK_DAY_NAME}", "${S_WEEK_DAY_NAME}" ]
aliases: [ "/\\${WEEK_DAY_NAME}|\\${[CRS]_WEEK_DAY_NAME}/" ]

adm-temp-macro-ose#year-c_year-r_year-s_year:
aliases: [ "${YEAR}", "${C_YEAR}", "${R_YEAR}", "${S_YEAR}" ]
aliases: [ "/\\${YEAR}|\\${[CRS]_YEAR}/" ]

adm-about-glossary#fully-qualified-domain-name-fqdn:
aliases: [ "[Ff]ully [Qq]ualified [Dd]omain [Nn]ame", "FQDN" ]
aliases: [ "/[Ff]ully [Qq]ualified [Dd]omain [Nn]ame/", "FQDN" ]

grpc-keep:
aliases: [ "gRPC keepalive pings", "gRPC keepalive ping", "gRPC ping" ]
aliases: [ "/gRPC keepalive ping[s]?/", "gRPC ping" ]

adm-about-glossary#bsd-syslog-protocol:
aliases: [ "BSD-syslog protocol", "legacy syslog (BSD-syslog) protocol" ]
Expand Down
12 changes: 11 additions & 1 deletion _plugins/generate_tooltips.rb
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,16 @@ def make_tooltip(page, page_links, id, url, match)
return replacement_text
end

def is_regex_title?(title)
return title.start_with?('/') && title.length > 2 && title.end_with?('/')
end

def regex_body(title)
if is_regex_title?(title)
return title[1..title.length-2]
return title
end

def process_markdown_part(page, markdown_part, page_links, full_pattern, id, url, add_separator)

markdown_part = markdown_part.gsub(full_pattern) do |match|
Expand Down Expand Up @@ -127,7 +137,7 @@ def process_markdown_parts(page, markdown)
title = page_titles_data["title"] # link_data["title"] is an array of titles that all must be represented by ID already in the filtered_page_ids_sorted_by_title_len array
url = prefixed_url(link_data["url"], base_url)

pattern = Regexp.escape(title)
pattern = (is_regex_title?(title) ? regex_body(title) : Regexp.escape(title))
# TODO: Even though this one helps finding the pattern e.g. if it spans to multiple line or separated inside with different whitespaces, but
# also can cause unwanted sideffects and has generation time penalities, revise later!
pattern = pattern.gsub('\ ', '[\s]+')
Expand Down
16 changes: 16 additions & 0 deletions doc/_doc-guide/02_Tools/01_Self_made_tools/01_Tests/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -174,3 +174,19 @@ The following is a simple configuration file for {{ site.product.name }} that c
in a text file. {{ site.product.name }}.

Aliast testing e.g ${LEVEL} or ${PRIORITY} should work like ${SDATA}

Alias testing e.g ${LEVEL} or ${PRIORITY} should work like ${SDATA}

Fully Qualified Domain Name

fully qualified domain name

Fully qualified domain Name

fully Qualified domain Name

Fully qualified domain name

FQDN

F.Q.D.N.

0 comments on commit cdb70bf

Please sign in to comment.