diff --git a/pandoc/csl/chicago-fullnote-bibliography-sl.csl b/pandoc/csl/chicago-fullnote-bibliography-sl.csl
new file mode 100644
index 0000000..7a59977
--- /dev/null
+++ b/pandoc/csl/chicago-fullnote-bibliography-sl.csl
@@ -0,0 +1,1499 @@
+
+
diff --git a/pandoc/csl/chicago-fullnote-sl.csl b/pandoc/csl/chicago-fullnote-sl.csl
new file mode 100644
index 0000000..2434e75
--- /dev/null
+++ b/pandoc/csl/chicago-fullnote-sl.csl
@@ -0,0 +1,1451 @@
+
+
+
diff --git a/pandoc/filters/delink.lua b/pandoc/filters/delink.lua
new file mode 100644
index 0000000..84b0913
--- /dev/null
+++ b/pandoc/filters/delink.lua
@@ -0,0 +1,9 @@
+SCRIPT_NAME = "delink.lua"
+os.setlocale("C")
+return {
+ {
+ Link = function(elem)
+ return elem.content
+ end
+ }
+}
diff --git a/pandoc/filters/pandoc-quotes.lua b/pandoc/filters/pandoc-quotes.lua
new file mode 100644
index 0000000..c2a31a7
--- /dev/null
+++ b/pandoc/filters/pandoc-quotes.lua
@@ -0,0 +1,440 @@
+--- Replaces plain quotation marks with typographic ones.
+--
+-- # SYNOPSIS
+--
+-- pandoc --lua-filter pandoc-quotes.lua
+--
+--
+-- # DESCRIPTION
+--
+-- pandoc-quotes.lua is a filter for pandoc that replaces non-typographic
+-- quotation marks with typographic ones for languages other than American
+-- English.
+--
+-- You can define which typographic quotation marks to replace plain ones with
+-- by setting either a document's quot-marks, quot-lang, or lang
+-- metadata field. If none of these is set, pandoc-quotes.lua does nothing.
+--
+-- You can add your own mapping of a language to quotation marks or override
+-- the default ones by setting quot-marks-by-lang.
+--
+-- ## quot-marks
+--
+-- A list of four strings, where the first item lists the primary left
+-- quotation mark, the second the primary right quotation mark, the third
+-- the secondary left quotation mark, and the fourth the secondary right
+-- quotation mark.
+--
+-- For example:
+--
+-- ```yaml
+-- ---
+-- quot-marks:
+-- - ''
+-- - ''
+-- - '
+-- - '
+-- ...
+-- ```
+--
+-- You always have to set all four.
+--
+-- If each quotation mark consists of one character only,
+-- you can write the whole list as a simple string.
+--
+-- For example:
+--
+-- ```yaml
+-- ---
+-- quot-marks: ""''
+-- ...
+-- ```
+--
+-- If quot-marks is set, the other fields are ignored.
+--
+--
+-- # quotation-lang
+--
+-- An RFC 5646-like code for the language the quotation marks of
+-- which shall be used (e.g., "pt-BR", "es").
+--
+-- For example:
+--
+-- ```yaml
+-- ---
+-- quot-lang: de-AT
+-- ...
+-- ```
+--
+-- Note: Only the language and the country tags of RFC 5646 are supported.
+-- For example, "it-CH" (i.e., Italian as spoken in Switzerland) is fine,
+-- but "it-756" (also Italian as spoken in Switzerland) will return the
+-- quotation marks for "it" (i.e., Italian as spoken in general).
+--
+-- If quot-marks is set, quot-lang is ignored.
+--
+--
+-- # lang
+--
+-- The format of lang is the same as for quot-lang. If quot-marks
+-- or quot-lang is set, lang is ignored.
+--
+-- For example:
+--
+-- ```yaml
+-- ---
+-- lang: de-AT
+-- ...
+-- ```
+--
+--
+-- # ADDING LANGUAGES
+--
+-- You can add quotation marks for unsupported languages, or override the
+-- defaults, by setting the metadata field quot-marks-by-lang to a maping
+-- of RFC 5646-like language codes (e.g., "pt-BR", "es") to lists of quotation
+-- marks, which are given in the same format as for the quot-marks
+-- metadata field.
+--
+-- For example:
+--
+-- ```yaml
+-- ---
+-- quot-marks-by-lang:
+-- abc-XYZ: ""''
+-- lang: abc-XYZ
+-- ...
+-- ```
+--
+--
+-- # CAVEATS
+--
+-- pandoc represents documents as abstract syntax trees internally, and
+-- quotations are nodes in that tree. However, pandoc-quotes.lua replaces
+-- those nodes with their content, adding proper quotation marks. That is,
+-- pandoc-quotes.lua pushes quotations from the syntax of a document's
+-- representation into its semantics. That being so, you should not
+-- use pandoc-quotes.lua with output formats that represent quotes
+-- syntactically (e.g., HTML, LaTeX, ConTexT). Moroever, filters running after
+-- pandoc-quotes won't recognise quotes. So, it should be the last or
+-- one of the last filters you apply.
+--
+-- Support for quotation marks of different languages is certainly incomplete
+-- and likely erroneous. See if
+-- you'd like to help with this.
+--
+-- pandoc-quotes.lua is Unicode-agnostic.
+--
+--
+-- # SEE ALSO
+--
+-- pandoc(1)
+--
+--
+-- # AUTHOR
+--
+-- Copyright 2019 Odin Kroeger
+--
+--
+-- # LICENSE
+--
+-- Permission is hereby granted, free of charge, to any person obtaining a copy
+-- of this software and associated documentation files (the "Software"), to
+-- deal in the Software without restriction, including without limitation the
+-- rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+-- sell copies of the Software, and to permit persons to whom the Software is
+-- furnished to do so, subject to the following conditions:
+--
+-- The above copyright notice and this permission notice shall be included in
+-- all copies or substantial portions of the Software.
+--
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+-- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+-- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+-- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+-- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+-- FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+-- IN THE SOFTWARE.
+--
+--
+-- @script pandoc-quotes.lua
+-- @release 0.1.10
+-- @author Odin Kroeger
+-- @copyright 2018, 2020 Odin Kroeger
+-- @license MIT
+
+
+-- # INITIALISATION
+
+local M = {}
+
+local pairs = pairs
+local require = require
+
+local io = io
+local table = table
+local package = package
+
+local pandoc = pandoc
+if not pandoc.utils then pandoc.utils = require 'pandoc.utils' end
+
+local _ENV = M
+
+local text = require 'text'
+
+
+-- # CONSTANTS
+
+--- The name of this script.
+SCRIPT_NAME = 'pandoc-quotes.lua'
+
+--- The path seperator of the operating system.
+PATH_SEP = package.config:sub(1, 1)
+
+--- The character sequence to end a line.
+if PATH_SEP == '\\' then EOL = '\r\n'
+ else EOL = '\n' end
+
+
+--- A list of mappings from RFC 5646-ish language codes to quotation marks.
+--
+-- I have adopted the list below from:
+--
+--
+-- I tried to come up with reasonable defaults for secondary quotes for
+-- language that, according to the Wikipedia, don't have any.
+--
+-- Adding languages:
+--
+-- Add an ordered pair, where the first item is an RFC 5646 language
+-- code (though only the language and country tags are supported) and the
+-- second item is a list of quotation marks, in the following order:
+-- primary left, primary right, secondary left, secondary right.
+--
+-- You have to list four quotation marks, even if the langauge you add does
+-- not use secondary quotation marks. Just come up with something that makes
+-- sense. This is because a user may, rightly, find that just because their
+-- language does not 'officially' have secondary quotation marks, they
+-- are going to use them anyway. And they should get a reasonable result,
+-- not a runtime error.
+--
+-- The order in which languages are listed is meaningless. If you define
+-- variants for a language that is spoken in different countries, also
+-- define a 'default' for the language alone, without the country tag.
+QUOT_MARKS_BY_LANG = {
+ ar = {'”', '“', '’', '‘' },
+ bs = {'”', '”', '’', '’' },
+ bo = {'「', '」', '『', '』' },
+ bs = {'”', '”', '’', '’' },
+ cn = {'「', '」', '『', '』' },
+ cs = {'„', '“', '‚', '‘' },
+ cy = {'‘', '’', '“', '”' },
+ da = {'»', '«', '›', '‹' },
+ de = {'„', '“', '‚', '‘' },
+ ['de-CH'] = {'«', '»', '‹', '›' },
+ el = {'«', '»', '“', '”' },
+ en = {'“', '”', '‘', '’' },
+ ['en-US'] = {'“', '”', '‘', '’' },
+ ['en-GB'] = {'‘', '’', '“', '”' },
+ ['en-UK'] = {'‘', '’', '“', '”' },
+ ['en-CA'] = {'“', '”', '‘', '’' },
+ eo = {'“', '”', '‘', '’' },
+ es = {'«', '»', '“', '”' },
+ et = {'„', '“', '‚', '‘' },
+ fi = {'”', '”', '’', '’' },
+ fil = {'“', '”', '‘', '’' },
+ fa = {'«', '»', '‹', '›' },
+ fr = {'«', '»', '‹', '›' },
+ ga = {'“', '”', '‘', '’' },
+ gd = {'‘', '’', '“', '”' },
+ gl = {'«', '»', '‹', '›' },
+ he = {'“', '”', '‘', '’' },
+ hi = {'“', '”', '‘', '’' },
+ hu = {'„', '”', '»', '«' },
+ hr = {'„', '“', '‚', '‘' },
+ ia = {'“', '”', '‘', '’' },
+ id = {'“', '”', '‘', '’' },
+ is = {'„', '“', '‚', '‘' },
+ it = {'«', '»', '“', '”' },
+ ['it-CH'] = {'«', '»', '‹', '›' },
+ ja = {'「', '」', '『', '』' },
+ jbo = {'lu', 'li\'u', 'lu', 'li\'u'},
+ ka = {'„', '“', '‚', '‘' },
+ khb = {'《', '》', '〈', '〉' },
+ kk = {'«', '»', '‹', '›' },
+ km = {'«', '»', '‹', '›' },
+ ko = {'《', '》', '〈', '〉' },
+ ['ko-KR'] = {'“', '”', '‘', '’' },
+ lt = {'„', '“', '‚', '‘' },
+ lv = {'„', '“', '‚', '‘' },
+ lo = {'«', '»', '‹', '›' },
+ nl = {'„', '”', '‚', '’' },
+ mk = {'„', '“', '’', '‘' },
+ mn = {'«', '»', '‹', '›' },
+ mt = {'“', '”', '‘', '’' },
+ no = {'«', '»', '«', '»' },
+ pl = {'„', '”', '»', '«' },
+ ps = {'«', '»', '‹', '›' },
+ pt = {'«', '»', '“', '”' },
+ ['pt-BR'] = {'“', '”', '‘', '’' },
+ rm = {'«', '»', '‹', '›' },
+ ro = {'„', '”', '«', '»' },
+ ru = {'«', '»', '“', '”' },
+ sk = {'„', '“', '‚', '‘' },
+ sl = {'»', '«', '„', '“' },
+ sq = {'„', '“', '‚', '‘' },
+ sr = {'„', '“', '’', '’' },
+ sv = {'”', '”', '’', '’' },
+ tdd = {'「', '」', '『', '』' },
+ ti = {'«', '»', '‹', '›' },
+ th = {'“', '”', '‘', '’' },
+ thi = {'「', '」', '『', '』' },
+ tr = {'«', '»', '‹', '›' },
+ ug = {'«', '»', '‹', '›' },
+ uk = {'«', '»', '„', '“' },
+ uz = {'«', '»', '„', '“' },
+ vi = {'“', '”', '‘', '’' },
+ wen = {'„', '“', '‚', '‘' },
+}
+
+
+-- # FUNCTIONS
+
+--- Prints warnings to STDERR.
+--
+-- Prefixes messages with `SCRIPT_NAME` and ": ".
+-- Also appends an end of line sequence.
+--
+-- @tparam string str A string format to be written to STDERR.
+-- @tparam string ... Arguments to that format.
+function warn (str, ...)
+ io.stderr:write(SCRIPT_NAME, ': ', string.format(str, ...), EOL)
+end
+
+
+--- Applies a function to every element of a list.
+--
+-- @tparam func f The function.
+-- @tparam tab list The list.
+-- @treturn tab The return values of `f`.
+function map (f, list)
+ local ret = {}
+ for k, v in pairs(list) do ret[k] = f(v) end
+ return ret
+end
+
+do
+ local stringify = pandoc.utils.stringify
+
+ --- Reads quotation marks from a `quot-marks` metadata field.
+ --
+ -- @tparam pandoc.MetaValue The content of a metadata field.
+ -- Must be either of type pandoc.MetaInlines or pandoc.MetaList.
+ -- @treturn[1] {pandoc.Str,pandoc.Str,pandoc.Str,pandoc.Str}
+ -- A table of quotation marks
+ -- @treturn[2] `nil` if an error occurred.
+ -- @treturn[2] string An error message.
+ function get_quotation_marks (meta)
+ if meta.t == 'MetaInlines' then
+ local marks = stringify(meta)
+ if text.len(marks) ~= 4 then
+ return nil, 'not four quotation marks'
+ end
+ local ret = {}
+ for i = 1, 4 do ret[i] = text.sub(marks, i, i) end
+ return ret
+ elseif meta.t == 'MetaList' then
+ local marks = map(stringify, meta)
+ if #marks ~= 4 then
+ return nil, 'not four quotation marks'
+ end
+ return marks
+ end
+ return nil, 'neither a string nor a list'
+ end
+end
+
+
+do
+ local stringify = pandoc.utils.stringify
+
+ -- Holds the quotation marks for the language of the document.
+ -- Common to `configure` and `insert_quot_marks`.
+ local QUOT_MARKS = nil
+
+ --- Determines the quotation marks for the document.
+ --
+ -- Stores them in `QUOT_MARKS`, which it shares with `insert_quot_marks`.
+ -- Prints errors to STDERR.
+ --
+ -- @tparam pandoc.Meta The document's metadata.
+ function configure (meta)
+ local quot_marks, lang
+ if meta['quot-marks-by-lang'] then
+ for k, v in pairs(meta['quot-marks-by-lang']) do
+ local quot_marks, err = get_quotation_marks(v)
+ if not quot_marks then
+ warn('metadata field "quot-marks-by-lang": lang "%s": %s.',
+ k, err)
+ return
+ end
+ QUOT_MARKS_BY_LANG[k] = quot_marks
+ end
+ end
+ if meta['quot-marks'] then
+ local err
+ quot_marks, err = get_quotation_marks(meta['quot-marks'])
+ if not quot_marks then
+ warn('metadata field "quot-marks": %s.', err)
+ return
+ end
+ elseif meta['quot-lang'] then
+ lang = stringify(meta['quot-lang'])
+ elseif meta['lang'] then
+ lang = stringify(meta['lang'])
+ end
+ if lang then
+ for i = 1, 3 do
+ if i == 2 then lang = lang:match '^(%a+)'
+ elseif i == 3 then
+ local expr = '^' .. lang .. '-'
+ for k, v in pairs(QUOT_MARKS_BY_LANG) do
+ if k:match(expr) then quot_marks = v break end
+ end
+ end
+ if i < 3 then quot_marks = QUOT_MARKS_BY_LANG[lang] end
+ if quot_marks then break end
+ end
+ end
+ if quot_marks then QUOT_MARKS = map(pandoc.Str, quot_marks)
+ elseif lang then warn('%s: unknown language.', lang) end
+ end
+
+
+ do
+ local insert = table.insert
+ --- Replaces quoted elements with quoted text.
+ --
+ -- Uses the quotation marks stored in `QUOT_MARKS`,
+ -- which it shares with `configure`.
+ --
+ -- @tparam pandoc.Quoted quoted A quoted element.
+ -- @treturn {pandoc.Str,pandoc.Inline,...,pandoc.Str}
+ -- A list with the opening quote (as `pandoc.Str`),
+ -- the content of `quoted`, and the closing quote (as `pandoc.Str`).
+ function insert_quot_marks (quoted)
+ if not QUOT_MARKS then return end
+ local quote_type = quoted.quotetype
+ local inlines = quoted.content
+ local left, right
+ if quote_type == 'DoubleQuote' then left, right = 1, 2
+ elseif quote_type == 'SingleQuote' then left, right = 3, 4
+ else error('unknown quote type') end
+ insert(inlines, 1, QUOT_MARKS[left])
+ insert(inlines, QUOT_MARKS[right])
+ return inlines
+ end
+ end
+end
+
+return {{Meta = configure}, {Quoted = insert_quot_marks}}
diff --git a/pandoc/reference-sl.docx b/pandoc/reference-sl.docx
new file mode 100644
index 0000000..cd67081
Binary files /dev/null and b/pandoc/reference-sl.docx differ
diff --git a/pandoc/templates/ikiwiki.markdown b/pandoc/templates/ikiwiki.markdown
new file mode 100644
index 0000000..c7a0dfa
--- /dev/null
+++ b/pandoc/templates/ikiwiki.markdown
@@ -0,0 +1,3 @@
+[[!meta title="$title$"]]
+
+$body$