diff options
| -rw-r--r-- | Makefile | 8 | ||||
| -rw-r--r-- | filters/code.lua | 13 | ||||
| -rw-r--r-- | filters/headers.lua | 9 | ||||
| -rw-r--r-- | filters/icons.lua | 11 | ||||
| -rw-r--r-- | filters/macros.lua | 57 | ||||
| -rw-r--r-- | templates/layouts/page.html | 4 |
6 files changed, 62 insertions, 40 deletions
| @@ -55,7 +55,7 @@ subpages = $(patsubst content/%.md,.cache/meta/%.json, \ | |||
| 55 | $(eval NAMESPACE = $(call namespace,$@,.cache/meta)) | 55 | $(eval NAMESPACE = $(call namespace,$@,.cache/meta)) |
| 56 | $(if $(PAGES_FILES),jq -s --arg namespace "$(NAMESPACE)" -f scripts/subpages.jq $(PAGES_FILES) > "$@.pages",echo "{}" > "$@.pages") | 56 | $(if $(PAGES_FILES),jq -s --arg namespace "$(NAMESPACE)" -f scripts/subpages.jq $(PAGES_FILES) > "$@.pages",echo "{}" > "$@.pages") |
| 57 | pandoc \ | 57 | pandoc \ |
| 58 | -f markdown-citations \ | 58 | -f markdown-citations-implicit_figures \ |
| 59 | -t html5 \ | 59 | -t html5 \ |
| 60 | --wrap preserve \ | 60 | --wrap preserve \ |
| 61 | --no-highlight \ | 61 | --no-highlight \ |
| @@ -66,7 +66,7 @@ subpages = $(patsubst content/%.md,.cache/meta/%.json, \ | |||
| 66 | $(PANDOC_FILTERS) \ | 66 | $(PANDOC_FILTERS) \ |
| 67 | -o "$@.meta" "$<" | 67 | -o "$@.meta" "$<" |
| 68 | pandoc \ | 68 | pandoc \ |
| 69 | -f markdown-citations \ | 69 | -f markdown-citations-implicit_figures \ |
| 70 | -t html5 \ | 70 | -t html5 \ |
| 71 | --wrap preserve \ | 71 | --wrap preserve \ |
| 72 | --lua-filter scripts/metadata_filter.lua \ | 72 | --lua-filter scripts/metadata_filter.lua \ |
| @@ -86,7 +86,7 @@ out/%.html: content/%.md .cache/meta/%.json $(CONTENT_TEMPLATES_SRC) metadata/*. | |||
| 86 | 86 | ||
| 87 | mkdir -p $(@D) | 87 | mkdir -p $(@D) |
| 88 | pandoc \ | 88 | pandoc \ |
| 89 | -f markdown-citations \ | 89 | -f markdown-citations-implicit_figures \ |
| 90 | -t html5 \ | 90 | -t html5 \ |
| 91 | --wrap preserve \ | 91 | --wrap preserve \ |
| 92 | --no-highlight \ | 92 | --no-highlight \ |
| @@ -104,7 +104,7 @@ out/%.xml: content/%.md .cache/meta/%.json $(FEED_TEMPLATES_SRC) metadata/*.yaml | |||
| 104 | 104 | ||
| 105 | mkdir -p $(@D) | 105 | mkdir -p $(@D) |
| 106 | pandoc \ | 106 | pandoc \ |
| 107 | -f markdown-citations \ | 107 | -f markdown-citations-implicit_figures \ |
| 108 | -t html5 \ | 108 | -t html5 \ |
| 109 | --wrap preserve \ | 109 | --wrap preserve \ |
| 110 | --no-highlight \ | 110 | --no-highlight \ |
diff --git a/filters/code.lua b/filters/code.lua deleted file mode 100644 index aca3ce8..0000000 --- a/filters/code.lua +++ /dev/null | |||
| @@ -1,13 +0,0 @@ | |||
| 1 | function CodeBlock(el) | ||
| 2 | if el.classes[1] == "plain" then | ||
| 3 | el = pandoc.Div({ el }, { class = 's-code' }) | ||
| 4 | elseif el.classes[1] then | ||
| 5 | local formatted = pandoc.pipe('pygmentize', { | ||
| 6 | '-l', el.classes[1], '-f', 'html', '-O', 'cssclass=s-code s-code--highlight', | ||
| 7 | }, el.text) | ||
| 8 | |||
| 9 | if formatted then el = pandoc.RawBlock('html', formatted) end | ||
| 10 | end | ||
| 11 | |||
| 12 | return el | ||
| 13 | end | ||
diff --git a/filters/headers.lua b/filters/headers.lua deleted file mode 100644 index ea9cde6..0000000 --- a/filters/headers.lua +++ /dev/null | |||
| @@ -1,9 +0,0 @@ | |||
| 1 | function Header(el) | ||
| 2 | if el.level <= 3 then | ||
| 3 | local newchildren = pandoc.List() | ||
| 4 | newchildren:insert(pandoc.Span(el.content, { class = 's-headings__primary' })) | ||
| 5 | el.content = newchildren | ||
| 6 | end | ||
| 7 | |||
| 8 | return el | ||
| 9 | end | ||
diff --git a/filters/icons.lua b/filters/icons.lua deleted file mode 100644 index 3f8cb64..0000000 --- a/filters/icons.lua +++ /dev/null | |||
| @@ -1,11 +0,0 @@ | |||
| 1 | function Str(el) | ||
| 2 | local icon = el.text:match('^:(.*):$') | ||
| 3 | |||
| 4 | if icon then | ||
| 5 | return pandoc.RawInline('html', | ||
| 6 | '<svg class="o-icon o-icon--inline" width="1em" height="1em" aria-hidden="true"><use href="/icons.svg#' .. | ||
| 7 | icon .. '"></use></svg>') | ||
| 8 | end | ||
| 9 | |||
| 10 | return el | ||
| 11 | end | ||
diff --git a/filters/macros.lua b/filters/macros.lua index ca0b487..df08676 100644 --- a/filters/macros.lua +++ b/filters/macros.lua | |||
| @@ -1,9 +1,20 @@ | |||
| 1 | function wide(el) | ||
| 2 | local els = pandoc.List() | ||
| 3 | |||
| 4 | els:insert(pandoc.RawBlock("html", "</div>")) | ||
| 5 | els:insert(el) | ||
| 6 | els:insert(pandoc.RawBlock("html", "<div class=\"l-container l-container--narrow u-ml-0\">")) | ||
| 7 | |||
| 8 | return els | ||
| 9 | end | ||
| 10 | |||
| 1 | function alert(el) | 11 | function alert(el) |
| 2 | el.classes = pandoc.List() | 12 | el.classes = pandoc.List() |
| 3 | el.classes:insert("o-alert") | 13 | el.classes:insert("o-alert") |
| 4 | el.classes:insert("o-alert--primary") | 14 | el.classes:insert("o-alert--primary") |
| 5 | el.classes:insert("s-alerts__alert") | 15 | el.classes:insert("s-alerts__alert") |
| 6 | return el | 16 | |
| 17 | return wide(el) | ||
| 7 | end | 18 | end |
| 8 | 19 | ||
| 9 | function figure(el) | 20 | function figure(el) |
| @@ -11,12 +22,14 @@ function figure(el) | |||
| 11 | 22 | ||
| 12 | pandoc.walk_block(el, { Image = function(iel) images:insert(iel) end }) | 23 | pandoc.walk_block(el, { Image = function(iel) images:insert(iel) end }) |
| 13 | 24 | ||
| 14 | return pandoc.RawBlock("html", | 25 | el = pandoc.RawBlock("html", |
| 15 | "<figure class=\"c-figure\">\ | 26 | "<figure class=\"c-figure\">\ |
| 16 | <a class=\"c-figure__link\" href=\"" .. images[1].src .. "\">\ | 27 | <a class=\"c-figure__link\" href=\"" .. images[1].src .. "\">\ |
| 17 | <img class=\"c-figure__image\" src=\"" .. images[1].src .. "\" title=\"" .. images[1].title .. "\" />\ | 28 | <img class=\"c-figure__image\" src=\"" .. images[1].src .. "\" title=\"" .. images[1].title .. "\" />\ |
| 18 | </a>\ | 29 | </a>\ |
| 19 | </figure>") | 30 | </figure>") |
| 31 | |||
| 32 | return wide(el) | ||
| 20 | end | 33 | end |
| 21 | 34 | ||
| 22 | function Div(el) | 35 | function Div(el) |
| @@ -28,3 +41,43 @@ function Div(el) | |||
| 28 | 41 | ||
| 29 | return el | 42 | return el |
| 30 | end | 43 | end |
| 44 | |||
| 45 | function CodeBlock(el) | ||
| 46 | if el.classes[1] == "plain" then | ||
| 47 | el = pandoc.Div({ el }, { class = 's-code' }) | ||
| 48 | elseif el.classes[1] then | ||
| 49 | local formatted = pandoc.pipe('pygmentize', { | ||
| 50 | '-l', el.classes[1], '-f', 'html', '-O', 'cssclass=s-code s-code--highlight', | ||
| 51 | }, el.text) | ||
| 52 | |||
| 53 | if formatted then el = pandoc.RawBlock('html', formatted) end | ||
| 54 | end | ||
| 55 | |||
| 56 | return wide(el) | ||
| 57 | end | ||
| 58 | |||
| 59 | function Header(el) | ||
| 60 | if el.level <= 3 then | ||
| 61 | local newchildren = pandoc.List() | ||
| 62 | newchildren:insert(pandoc.Span(el.content, { class = 's-headings__primary' })) | ||
| 63 | el.content = newchildren | ||
| 64 | end | ||
| 65 | |||
| 66 | return el | ||
| 67 | end | ||
| 68 | |||
| 69 | function Table(el) | ||
| 70 | return wide(el) | ||
| 71 | end | ||
| 72 | |||
| 73 | function Str(el) | ||
| 74 | local icon = el.text:match('^:(.*):$') | ||
| 75 | |||
| 76 | if icon then | ||
| 77 | return pandoc.RawInline('html', | ||
| 78 | '<svg class="o-icon o-icon--inline" width="1em" height="1em" aria-hidden="true"><use href="/icons.svg#' .. | ||
| 79 | icon .. '"></use></svg>') | ||
| 80 | end | ||
| 81 | |||
| 82 | return el | ||
| 83 | end | ||
diff --git a/templates/layouts/page.html b/templates/layouts/page.html index a91d6ad..f65a1cf 100644 --- a/templates/layouts/page.html +++ b/templates/layouts/page.html | |||
| @@ -16,8 +16,10 @@ | |||
| 16 | <span class="s-headings__primary">$title$</span> | 16 | <span class="s-headings__primary">$title$</span> |
| 17 | </h1> | 17 | </h1> |
| 18 | 18 | ||
| 19 | <div class="l-container l-container--narrow u-ml-0 s-body s-colored-links s-headings s-blockquotes s-code s-lists s-tables s-alerts e-content" itemprop="articleBody"> | 19 | <div class="s-body s-colored-links s-headings s-blockquotes s-code s-lists s-tables s-alerts e-content" itemprop="articleBody"> |
| 20 | <div class="l-container l-container--narrow u-ml-0"> | ||
| 20 | $body$ | 21 | $body$ |
| 22 | </div> | ||
| 21 | </div> | 23 | </div> |
| 22 | 24 | ||
| 23 | $if(references)$ | 25 | $if(references)$ |
