diff options
| Commit | fa067f8ad565207969bb0471d13dd0b51fe989c4 (patch) | |
|---|---|---|
| Author | 2025-08-18 18:56:44 +0300 | |
| Committer | 2025-08-18 18:56:44 +0300 | |
| Files | 9e05a23e35afc467ed04a4067e5e04fdbe586ddd | |
| syndamia.com-fa067f8ad565207969bb0471d13dd0b51fe989c4.tar syndamia.com-fa067f8ad565207969bb0471d13dd0b51fe989c4.tar.gz syndamia.com-fa067f8ad565207969bb0471d13dd0b51fe989c4.zip | ||
| Parent | 5dc59113660b6d30935aebe1387e39faf5beeac3 (diff) | |
feat(ext): Rewrite most AWK extensions as a dunbar file
8 files changed, 103 insertions, 62 deletions
| -rw-r--r-- | ext/attention.awk | 9 | ||||
| -rw-r--r-- | ext/contents.awk | 7 | ||||
| -rw-r--r-- | ext/heading-anchors.awk | 11 | ||||
| -rw-r--r-- | ext/icons.awk | 19 | ||||
| -rw-r--r-- | ext/pagenav.awk | 9 | ||||
| -rw-r--r-- | ext/teaching.awk | 3 | ||||
| -rwxr-xr-x | generate.sh | 6 | ||||
| -rw-r--r-- | global.du | 101 |
diff --git a/ext/attention.awk b/ext/attention.awk deleted file mode 100644 index 85b7854..0000000 --- a/ext/attention.awk +++ /dev/null @@ -1,9 +0,0 @@ -BEGIN { - define_attention("question", "dialog-question.png") - define_attention("warn", "dialog-warning.png") - define_attention("important", "dialog-important.png") -} - -function define_attention(name, image) { - define(name, "<p class=\"special-par " name "-par\"><img src=\"/img/" image "\" class=\"special-par-icon borderless unzoomable\" alt=\"" name "\">") -} diff --git a/ext/contents.awk b/ext/contents.awk deleted file mode 100644 index e5e82df..0000000 --- a/ext/contents.awk +++ /dev/null @@ -1,7 +0,0 @@ -BEGIN { - contents_anchor = anchor - sub(/\[\?header\?\]/, "contents", contents_anchor) - ++all_titles["contents"] - - define("CONTENTS", "<div id=\"contents-container\"><h2 id=\"contents\">Contents</h2>" contents_anchor, "</div>") -} diff --git a/ext/heading-anchors.awk b/ext/heading-anchors.awk deleted file mode 100644 index 42b85a0..0000000 --- a/ext/heading-anchors.awk +++ /dev/null @@ -1,11 +0,0 @@ -BEGIN { - gap = "<div class=\"gap\"></div>" ORS - small_gap = "<div class=\"gap-small\"></div>" ORS - anchor = ORS "<a class=\"h-anchor\" href=\"#[?header?]\" aria-hidden=\"true\">#</a>" - - define("HEADER2", gap "<h2 id=\"[?header?]\">", "</h2>" anchor) - define("HEADER3", small_gap "<h3 id=\"[?header?]\">", "</h3>" anchor) - define("HEADER4", small_gap "<h4 id=\"[?header?]\">", "</h4>" anchor) - define("HEADER5", small_gap "<h5 id=\"[?header?]\">", "</h5>" anchor) - define("HEADER6", small_gap "<h6 id=\"[?header?]\">", "</h6>" anchor) -} diff --git a/ext/icons.awk b/ext/icons.awk deleted file mode 100644 index 027cc75..0000000 --- a/ext/icons.awk +++ /dev/null @@ -1,19 +0,0 @@ -BEGIN { - flagdef("gb", "ENG") - flagdef("bg", "BGN") - - ftdef("ft-photo", "") - ftdef("ft-text", "") - ftdef("ft-zip", "") - ftdef("ft-movie", "") - ftdef("ft-markdown", "") - ftdef("ft-browser", "") -} - -function flagdef(flag, alt) { - substitutions[flag] = "<img src=\"/img/" flag ".svg\" class=\"flag unzoomable svg\" alt=\"" alt "\" height=18>" -} - -function ftdef(ft, char) { - substitutions[ft] = "<span class=\"file-type-icon\">" char "</span>" -} diff --git a/ext/pagenav.awk b/ext/pagenav.awk index b7a69d8..59b67b4 100644 --- a/ext/pagenav.awk +++ b/ext/pagenav.awk @@ -1,12 +1,3 @@ -BEGIN { - substitutions["pagination_start"] = "`[[$next_link] >]`" - substitutions["pagination_second"] = "`[< [$prev_link]]` || `[[$next_link] >]`" - substitutions["pagination_middle"] = "`[[url [$start_url] <<]]` || `[< [$prev_link]]` || `[[$next_link] >]`" - substitutions["pagination_end"] = "`[[url [$start_url] <<]]` || `[< [$prev_link]]`" - - substitutions["due_for_rework"] = "[url /rework.html =[*[Due for rework]*]=]" -} - FNR == 1 { STD_FILENAME = FILENAME sub(/^\.\/website\//, "", STD_FILENAME) diff --git a/ext/teaching.awk b/ext/teaching.awk deleted file mode 100644 index 07aa590..0000000 --- a/ext/teaching.awk +++ /dev/null @@ -1,3 +0,0 @@ -BEGIN { - define("solution-link", "<div class=\"exercise-solution\"><", " ></div>") -} diff --git a/generate.sh b/generate.sh index 49096fa..453acd8 100755 --- a/generate.sh +++ b/generate.sh @@ -35,11 +35,9 @@ EOF /usr/bin/env dash ./dunbar/dunbar_awk/dunbar.sh html \ -i \ - -e ./ext/attention.awk \ - -e ./ext/heading-anchors.awk -e ./ext/pagenav.awk \ - -e ./ext/icons.awk -e ./ext/presentation.awk \ - -e ./ext/contents.awk -e ./ext/teaching.awk \ + -e ./ext/pagenav.awk -e ./ext/presentation.awk \ -wo \ + ./global.du \ $(find "$GEN_DIR" -type f -name "*.du") # }}} # 2. Meta handling {{{ diff --git a/global.du b/global.du new file mode 100644 index 0000000..1e31ec6 --- /dev/null +++ b/global.du @@ -0,0 +1,101 @@ +'stop_output + +# Attention blocks + +'define new_attention 'define_block [$name] <p class="special-par [$name]-par"><img src="/img/[$image]" class="special-par-icon borderless unzoomable" alt="[$name]"> </p> + + 'define name question + 'define image dialog-question.png + [$new_attention] + + 'define name warn + 'define image dialog-warning.png + [$new_attention] + + 'define name important + 'define image dialog-important.png + [$new_attention] + +# Headers + +For each header (except H1) we'll add a "gap" element and an anchor link to the end. +The gap is only for visual purposes. + +'define new_header 'define_block header[$num] <div class="[$gap]"></div> <h[$num] id="[?header?]"> </h[$num]>\ <a\ class="h-anchor"\ href="#[?header?]"\ aria-hidden="true">#</a> + + 'define num 2 + 'define gap gap + [$new_header] + + 'define num 3 + 'define gap gap-small + [$new_header] + + 'define num 4 + 'define gap gap-small + [$new_header] + + 'define num 5 + 'define gap gap-small + [$new_header] + + 'define num 6 + 'define gap gap-small + [$new_header] + +# Country flags + +'define new_flag 'define [$flag] <img src="/img/[$flag].svg" class="flag unzoomable svg" alt="[$alt]" height=18> + + 'define flag gb + 'define alt ENG + [$new_flag] + + 'define flag bg + 'define alt BGN + [$new_flag] + +# File types + +'define new_ft 'define ft-[$name] <span class="file-type-icon">[$char]</span> + + 'define name photo + 'define char  + [$new_ft] + + 'define name text + 'define char  + [$new_ft] + + 'define name zip + 'define char  + [$new_ft] + + 'define name movie + 'define char  + [$new_ft] + + 'define name markdown + 'define char  + [$new_ft] + + 'define name browser + 'define char  + [$new_ft] + +# Pagination + +'define pagination_start `[[$next_link] >]` +'define pagination_second `[< [$prev_link]]` || `[[$next_link] >]` +'define pagination_middle `[[url [$start_url] <<]]` || `[< [$prev_link]]` || `[[$next_link] >]` +'define pagination_end `[[url [$start_url] <<]]` || `[< [$prev_link]]` + +# Teaching + +'define_block solution-link <div class="exercise-solution">< ></div> + +# Other + +'define due_for_rework [url /rework.html =[*[Due for rework]*]=] + +'define_block contents <div id="contents-container"><h2 id="contents">Contents</h2> <a class="h-anchor" href="#contents" aria-hidden="true">#</a> </div> |