Skip to content

Commit cdb70bf

Browse files
authored
Added ability to use regexps in aliases (#80)
Resolves #79 Signed-off-by: Hofi <[email protected]>
2 parents 1f467dd + d787b10 commit cdb70bf

File tree

3 files changed

+57
-37
lines changed

3 files changed

+57
-37
lines changed

_data/link_aliases.yml

Lines changed: 30 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,99 +1,93 @@
1-
#
2-
# You can use only the id currently to create an alias
3-
#
4-
# TODO: Add title support as well
5-
# - but, what about then with the duplicated titles again?!?
6-
# - using the id has a much better link generation performance
7-
#
1+
82
adm-temp-macro-ose:
9-
aliases: [ "Macros", "macros" ]
3+
aliases: [ "/[Mm]acros/" ]
104

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

9589
grpc-keep:
96-
aliases: [ "gRPC keepalive pings", "gRPC keepalive ping", "gRPC ping" ]
90+
aliases: [ "/gRPC keepalive ping[s]?/", "gRPC ping" ]
9791

9892
adm-about-glossary#bsd-syslog-protocol:
9993
aliases: [ "BSD-syslog protocol", "legacy syslog (BSD-syslog) protocol" ]

_plugins/generate_tooltips.rb

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,16 @@ def make_tooltip(page, page_links, id, url, match)
8585
return replacement_text
8686
end
8787

88+
def is_regex_title?(title)
89+
return title.start_with?('/') && title.length > 2 && title.end_with?('/')
90+
end
91+
92+
def regex_body(title)
93+
if is_regex_title?(title)
94+
return title[1..title.length-2]
95+
return title
96+
end
97+
8898
def process_markdown_part(page, markdown_part, page_links, full_pattern, id, url, add_separator)
8999

90100
markdown_part = markdown_part.gsub(full_pattern) do |match|
@@ -127,7 +137,7 @@ def process_markdown_parts(page, markdown)
127137
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
128138
url = prefixed_url(link_data["url"], base_url)
129139

130-
pattern = Regexp.escape(title)
140+
pattern = (is_regex_title?(title) ? regex_body(title) : Regexp.escape(title))
131141
# TODO: Even though this one helps finding the pattern e.g. if it spans to multiple line or separated inside with different whitespaces, but
132142
# also can cause unwanted sideffects and has generation time penalities, revise later!
133143
pattern = pattern.gsub('\ ', '[\s]+')

doc/_doc-guide/02_Tools/01_Self_made_tools/01_Tests/README.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,3 +174,19 @@ The following is a simple configuration file for {{ site.product.name }} that c
174174
in a text file. {{ site.product.name }}.
175175

176176
Aliast testing e.g ${LEVEL} or ${PRIORITY} should work like ${SDATA}
177+
178+
Alias testing e.g ${LEVEL} or ${PRIORITY} should work like ${SDATA}
179+
180+
Fully Qualified Domain Name
181+
182+
fully qualified domain name
183+
184+
Fully qualified domain Name
185+
186+
fully Qualified domain Name
187+
188+
Fully qualified domain name
189+
190+
FQDN
191+
192+
F.Q.D.N.

0 commit comments

Comments
 (0)