aboutsummaryrefslogtreecommitdiff
path: root/etc
diff options
context:
space:
mode:
Diffstat (limited to 'etc')
-rw-r--r--etc/gemtext.lua297
-rw-r--r--etc/md.yml20
-rw-r--r--etc/pdf.yml15
-rw-r--r--etc/process-md.lua12
-rw-r--r--etc/process-pdf.lua0
-rw-r--r--etc/template.gmi1
-rw-r--r--etc/template.html153
7 files changed, 0 insertions, 498 deletions
diff --git a/etc/gemtext.lua b/etc/gemtext.lua
deleted file mode 100644
index 5fdff59..0000000
--- a/etc/gemtext.lua
+++ /dev/null
@@ -1,297 +0,0 @@
--- Invoke with: pandoc -t gemtext.lua
-
--- Tables to store links and footnotes, so they can be included correctly.
-local links = {}
-local notes = {}
-
--- Blocksep is used to separate block elements.
-function Blocksep()
- return "\n"
-end
-
--- This function is called once for the whole document. Parameters:
--- body is a string, metadata is a table, variables is a table.
--- This gives you a fragment. You could use the metadata table to
--- fill variables in a custom lua template. Or, pass `--template=...`
--- to pandoc, and pandoc will do the template processing as usual.
-function Doc(body, metadata, variables)
- local buffer = {}
- local function add(s)
- table.insert(buffer, s)
- end
- add(body)
- if #notes > 0 then
- add('')
- for _,note in pairs(notes) do
- add(note)
- end
- end
- return table.concat(buffer, '\n')
-end
-
--- The functions that follow render corresponding pandoc elements.
--- s is always a string, attr is always a table of attributes, and
--- items is always an array of strings (the items in a list).
--- Comments indicate the types of other variables.
-
-function Str(s)
- return s
-end
-
-function Space()
- return " "
-end
-
-function SoftBreak()
- return " "
-end
-
-function LineBreak()
- return "\n"
-end
-
-function Emph(s)
- return "_" .. s .. "_"
-end
-
-function Strong(s)
- return "**" .. s .. "**"
-end
-
-function Subscript(s)
- return "_" .. s
-end
-
-function Superscript(s)
- return "^" .. s
-end
-
-function SmallCaps(s)
- return s
-end
-
-function Strikeout(s)
- return '~~' .. s .. '~~'
-end
-
-function Link(s, tgt, tit, attr)
- if tgt:match("%.html$") and not tgt:match("^https?://") then
- tgt = tgt:gsub("%.html$", ".gmi")
- end
- table.insert(links, "=> " .. tgt .. " " .. s)
- return s
-end
-
-function Image(s, src, tit, attr)
- table.insert(links, "=> " .. src .. " [IMG] " .. s)
- return s
-end
-
-function Code(s, attr)
- return "`" .. s .. "`"
-end
-
-function InlineMath(s)
- return "\\(" .. s .. "\\)"
-end
-
-function DisplayMath(s)
- return "\\[" .. s .. "\\]"
-end
-
-function SingleQuoted(s)
- return "‘" .. s .. "’"
-end
-
-function DoubleQuoted(s)
- return "“" .. s .. "”"
-end
-
-function Note(s)
- local num = #notes + 1
- local num_fn = string.gsub(num, '0', '⁰')
- :gsub('1', '¹')
- :gsub('2', '²')
- :gsub('3', '³')
- :gsub('4', '⁴')
- :gsub('5', '⁵')
- :gsub('6', '⁶')
- :gsub('7', '⁷')
- :gsub('8', '⁸')
- :gsub('9', '⁹')
- -- add a list item with the note to the note table.
- table.insert(notes, num_fn .. ' ' .. s)
- -- return the footnote reference, linked to the note.
- return num_fn
-end
-
-function Span(s, attr)
- return s
-end
-
-function RawInline(format, str)
- if format == "gemtext" then
- return str
- else
- return ''
- end
-end
-
-function Cite(s, cs)
- local ids = {}
- for _,cit in ipairs(cs) do
- table.insert(ids, cit.citationId)
- end
- return s .. ids:concat(",")
-end
-
-function Plain(s)
- return s
-end
-
-function Para(s)
- local finished = s .. "\n"
- if #links > 0 then
- local link_text = links[1]:match('=> [^ ]+ (.+)')
- if link_text == s and #links == 1 then
- finished = links[1] .. "\n"
- else
- finished = finished .. table.concat(links, "\n") .. "\n"
- end
- end
- links = {}
- return finished
-end
-
--- lev is an integer, the header level.
-function Header(lev, s, attr)
- return string.rep("#", lev) .. " " .. s .. "\n"
-end
-
-function BlockQuote(s)
- return "> " .. s:gsub("\n", "\n> "):gsub("\n> $", "\n")
-end
-
-function HorizontalRule()
- return "-----\n"
-end
-
-function LineBlock(ls)
- return table.concat(ls, '\n') .. "\n"
-end
-
-function CodeBlock(s, attr)
- return "```\n" .. s .. "\n```\n"
-end
-
-function BulletList(items)
- local buffer = {}
- for _, item in pairs(items) do
- local finished = false
- if #links > 0 then
- local link_text = links[1]:match('=> [^ ]+ (.+)')
- if link_text == item then
- table.insert(buffer, links[1])
- table.remove(links, 1)
- finished = true
- end
- end
- if not finished then
- table.insert(buffer, "* " .. item)
- for _,link in pairs(links) do
- table.insert(buffer, link)
- end
- links = {}
- end
- end
- return table.concat(buffer, "\n") .. "\n"
-end
-
-function OrderedList(items)
- local buffer = {}
- for i, item in pairs(items) do
- table.insert(buffer, i .. ". " .. item)
- end
- return table.concat(buffer, "\n") .. "\n"
-end
-
-function DefinitionList(items)
- local buffer = {}
- for _,item in pairs(items) do
- local k, v = next(item)
- table.insert(buffer, k .. ":\n" .. table.concat(v, "\n"))
- end
- return table.concat(buffer, "\n") .. "\n"
-end
-
-function CaptionedImage(src, tit, caption, attr)
- return '=> ' .. src .. ' [IMG] ' .. caption .. '\n'
-end
-
--- Caption is a string, aligns is an array of strings,
--- widths is an array of floats, headers is an array of
--- strings, rows is an array of arrays of strings.
-function Table(caption, aligns, widths, headers, rows)
- local buffer = {}
- local function add(s)
- table.insert(buffer, s)
- end
- add("<table>")
- if caption ~= "" then
- add("<caption>" .. caption .. "</caption>")
- end
- if widths and widths[1] ~= 0 then
- for _, w in pairs(widths) do
- add('<col width="' .. string.format("%.0f%%", w * 100) .. '" />')
- end
- end
- local header_row = {}
- local empty_header = true
- for i, h in pairs(headers) do
- table.insert(header_row,'<th>' .. h .. '</th>')
- empty_header = empty_header and h == ""
- end
- if empty_header then
- head = ""
- else
- add('<tr class="header">')
- for _,h in pairs(header_row) do
- add(h)
- end
- add('</tr>')
- end
- local class = "even"
- for _, row in pairs(rows) do
- class = (class == "even" and "odd") or "even"
- add('<tr class="' .. class .. '">')
- for i,c in pairs(row) do
- add('<td>' .. c .. '</td>')
- end
- add('</tr>')
- end
- add('</table>')
- return table.concat(buffer,'\n') .. "\n"
-end
-
-function RawBlock(format, str)
- if format == "gemtext" then
- return str
- else
- return ''
- end
-end
-
-function Div(s, attr)
- return s
-end
-
--- The following code will produce runtime warnings when you haven't defined
--- all of the functions you need for the custom writer, so it's useful
--- to include when you're working on a writer.
-local meta = {}
-meta.__index =
- function(_, key)
- io.stderr:write(string.format("WARNING: Undefined function '%s'\n",key))
- return function() return "" end
- end
-setmetatable(_G, meta)
diff --git a/etc/md.yml b/etc/md.yml
deleted file mode 100644
index 52cdcfa..0000000
--- a/etc/md.yml
+++ /dev/null
@@ -1,20 +0,0 @@
-template: etc/template.html
-standalone: true
-
-filters:
- - etc/process-md.lua
-
-metadata:
- lang: "en"
-
-verbosity: INFO
-
-table-of-contents: false
-number-sections: true
-shift-heading-level-by: 1
-title-prefix: "Crowbar Specification"
-eol: lf
-
-# syntax-definition:
-
-fail-if-warnings: true
diff --git a/etc/pdf.yml b/etc/pdf.yml
deleted file mode 100644
index 85750bf..0000000
--- a/etc/pdf.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-template: etc/template.html
-
-filters:
- - etc/process-pdf.lua
-
-metadata:
- title-before-toc: true
- title: "Crowbar Specification"
-
-verbosity: WARNING
-
-pdf-engine: weasyprint
-
-table-of-contents: true
-number-sections: false
diff --git a/etc/process-md.lua b/etc/process-md.lua
deleted file mode 100644
index f0e11dc..0000000
--- a/etc/process-md.lua
+++ /dev/null
@@ -1,12 +0,0 @@
-function Pandoc(doc)
- local title_header = pandoc.Header(1, '')
- local title = doc.meta.title
- title_header.content = title
- doc.blocks:insert(1, title_header)
- return doc
-end
-
-function Link(node)
- node.target = node.target:gsub(".md", ".html")
- return node
-end
diff --git a/etc/process-pdf.lua b/etc/process-pdf.lua
deleted file mode 100644
index e69de29..0000000
--- a/etc/process-pdf.lua
+++ /dev/null
diff --git a/etc/template.gmi b/etc/template.gmi
deleted file mode 100644
index 36d66c2..0000000
--- a/etc/template.gmi
+++ /dev/null
@@ -1 +0,0 @@
-$body$
diff --git a/etc/template.html b/etc/template.html
deleted file mode 100644
index 61cefb4..0000000
--- a/etc/template.html
+++ /dev/null
@@ -1,153 +0,0 @@
-<!DOCTYPE html>
-<html xmlns="http://www.w3.org/1999/xhtml" lang="$lang$" xml:lang="$lang$"$if(dir)$ dir="$dir$"$endif$>
-<head>
- <meta charset="utf-8" />
- <meta name="generator" content="pandoc" />
- <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
- <title>$if(title-prefix)$$title-prefix$ – $endif$$pagetitle$</title>
- <style>
- /* "derived" (stolen) from evenbettermotherfucking.website */
- html {
- margin: 1rem auto;
- background: #f2f2f2;
- color: #444444;
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
- font-size: 16px;
- line-height: 1.8;
- text-shadow: 0 1px 0 #ffffff;
- max-width: 60em;
- }
- @media print {
- html {
- background: white;
- }
- }
- body {
- margin: 0 1rem;
- }
- code {
- background: white;
- }
- pre {
- line-height: 1.25;
- }
- .highlight code {
- background: unset;
- }
- div.highlighter-rouge {
- background: white;
- padding: 1rem;
- line-height: 1;
- overflow-x: auto;
- }
- div.highlighter-rouge pre {
- padding: 0;
- margin: 0;
- }
- a {
- border-bottom: 1px solid #444444;
- color: #444444;
- text-decoration: none;
- }
- a:hover {
- border-bottom-style: dashed;
- }
- blockquote {
- margin-left: 1em;
- border-left: 2px solid #444444;
- padding-left: 1em;
- }
-
- #TOC .header-section-number {
- display: none;
- }
-
- /* https://github.com/richleland/pygments-css/blob/master/friendly.css */
- .highlight .hll { background-color: #ffffcc }
- .highlight .c { color: #60a0b0; font-style: italic } /* Comment */
- .highlight .err { border: 1px solid #FF0000 } /* Error */
- .highlight .k { color: #007020; font-weight: bold } /* Keyword */
- .highlight .o { color: #666666 } /* Operator */
- .highlight .ch { color: #60a0b0; font-style: italic } /* Comment.Hashbang */
- .highlight .cm { color: #60a0b0; font-style: italic } /* Comment.Multiline */
- .highlight .cp { color: #007020 } /* Comment.Preproc */
- .highlight .cpf { color: #60a0b0; font-style: italic } /* Comment.PreprocFile */
- .highlight .c1 { color: #60a0b0; font-style: italic } /* Comment.Single */
- .highlight .cs { color: #60a0b0; background-color: #fff0f0 } /* Comment.Special */
- .highlight .gd { color: #A00000 } /* Generic.Deleted */
- .highlight .ge { font-style: italic } /* Generic.Emph */
- .highlight .gr { color: #FF0000 } /* Generic.Error */
- .highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
- .highlight .gi { color: #00A000 } /* Generic.Inserted */
- .highlight .go { color: #888888 } /* Generic.Output */
- .highlight .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */
- .highlight .gs { font-weight: bold } /* Generic.Strong */
- .highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
- .highlight .gt { color: #0044DD } /* Generic.Traceback */
- .highlight .kc { color: #007020; font-weight: bold } /* Keyword.Constant */
- .highlight .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */
- .highlight .kn { color: #007020; font-weight: bold } /* Keyword.Namespace */
- .highlight .kp { color: #007020 } /* Keyword.Pseudo */
- .highlight .kr { color: #007020; font-weight: bold } /* Keyword.Reserved */
- .highlight .kt { color: #902000 } /* Keyword.Type */
- .highlight .m { color: #40a070 } /* Literal.Number */
- .highlight .s { color: #4070a0 } /* Literal.String */
- .highlight .na { color: #4070a0 } /* Name.Attribute */
- .highlight .nb { color: #007020 } /* Name.Builtin */
- .highlight .nc { color: #0e84b5; font-weight: bold } /* Name.Class */
- .highlight .no { color: #60add5 } /* Name.Constant */
- .highlight .nd { color: #555555; font-weight: bold } /* Name.Decorator */
- .highlight .ni { color: #d55537; font-weight: bold } /* Name.Entity */
- .highlight .ne { color: #007020 } /* Name.Exception */
- .highlight .nf { color: #06287e } /* Name.Function */
- .highlight .nl { color: #002070; font-weight: bold } /* Name.Label */
- .highlight .nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */
- .highlight .nt { color: #062873; font-weight: bold } /* Name.Tag */
- .highlight .nv { color: #bb60d5 } /* Name.Variable */
- .highlight .ow { color: #007020; font-weight: bold } /* Operator.Word */
- .highlight .w { color: #bbbbbb } /* Text.Whitespace */
- .highlight .mb { color: #40a070 } /* Literal.Number.Bin */
- .highlight .mf { color: #40a070 } /* Literal.Number.Float */
- .highlight .mh { color: #40a070 } /* Literal.Number.Hex */
- .highlight .mi { color: #40a070 } /* Literal.Number.Integer */
- .highlight .mo { color: #40a070 } /* Literal.Number.Oct */
- .highlight .sa { color: #4070a0 } /* Literal.String.Affix */
- .highlight .sb { color: #4070a0 } /* Literal.String.Backtick */
- .highlight .sc { color: #4070a0 } /* Literal.String.Char */
- .highlight .dl { color: #4070a0 } /* Literal.String.Delimiter */
- .highlight .sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */
- .highlight .s2 { color: #4070a0 } /* Literal.String.Double */
- .highlight .se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */
- .highlight .sh { color: #4070a0 } /* Literal.String.Heredoc */
- .highlight .si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */
- .highlight .sx { color: #c65d09 } /* Literal.String.Other */
- .highlight .sr { color: #235388 } /* Literal.String.Regex */
- .highlight .s1 { color: #4070a0 } /* Literal.String.Single */
- .highlight .ss { color: #517918 } /* Literal.String.Symbol */
- .highlight .bp { color: #007020 } /* Name.Builtin.Pseudo */
- .highlight .fm { color: #06287e } /* Name.Function.Magic */
- .highlight .vc { color: #bb60d5 } /* Name.Variable.Class */
- .highlight .vg { color: #bb60d5 } /* Name.Variable.Global */
- .highlight .vi { color: #bb60d5 } /* Name.Variable.Instance */
- .highlight .vm { color: #bb60d5 } /* Name.Variable.Magic */
- .highlight .il { color: #40a070 } /* Literal.Number.Integer.Long */
- </style>
-</head>
-<body>
-$if(title-before-toc)$
-<h1>$title$</h1>
-$if(subtitle)$
-<h2>$subtitle$</h2>
-$endif$
-$if(version)$
-<p>from git: <code>$version$</code></p>
-$endif$
-$endif$
-$if(toc)$
-<nav id="$idprefix$TOC" role="doc-toc">
-$table-of-contents$
-</nav>
-$endif$
-$body$
-</body>
-</html>