From bd74d09a9d9c10066125ad42bb0f2aaac96508f8 Mon Sep 17 00:00:00 2001 From: urosm Date: Mon, 5 Feb 2024 17:51:57 +0100 Subject: [PATCH] add `pandoc` data dir --- .../csl/chicago-fullnote-bibliography-sl.csl | 1499 +++++++++++++++++ pandoc/csl/chicago-fullnote-sl.csl | 1451 ++++++++++++++++ pandoc/filters/delink.lua | 9 + pandoc/filters/pandoc-quotes.lua | 440 +++++ pandoc/reference-sl.docx | Bin 0 -> 18536 bytes pandoc/templates/ikiwiki.markdown | 3 + 6 files changed, 3402 insertions(+) create mode 100644 pandoc/csl/chicago-fullnote-bibliography-sl.csl create mode 100644 pandoc/csl/chicago-fullnote-sl.csl create mode 100644 pandoc/filters/delink.lua create mode 100644 pandoc/filters/pandoc-quotes.lua create mode 100644 pandoc/reference-sl.docx create mode 100644 pandoc/templates/ikiwiki.markdown 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 0000000000000000000000000000000000000000..cd670812f60e35fcce0c26b7ec5bac361037b508 GIT binary patch literal 18536 zcmeIabx<7J);B!3ySuvw3GVLh?(Xiv-7Q#f2o~I3g9mpfxDy=0J16%(_neb^zPIZ8 z`+d4WDblyPDa% z8mM|Xnz`sPdfM3%7l4CO=K(;0^Z)nwe|QHPQsrd&1(Cxpg5F3@)iSFHMTK9elZ51DYQz53oc`;NwxWi0n? z8j(9gQm9>Qu1kzV-F1F)AZk(kxSPeTMme?lL83<(I~%d!jjSY+ygf;;Yet0}`SXVn z+e{8JOgiMu5zIo{`dy$Tm>ywSQ;+I!Y!*Ga4MN zg%LG{3z_&3kulMO_MKMr?t3Ym6)DZsoC$e-VXl+f;(dlcYu-ne`2}l99UrK2KC!Ma zg0@K1 zF!?Z%OwYdNx~SSe52E&Q1UN28v>FVy9q_XCgl>R(?Z4&2-YuyF6{zh{sDU5grg%6w zn=+X?n7G*i)!rZat|NWbIg1(ioa34GFl_M{=q+WgWsS^fYCV}d0{cpgM+wc6$` zy<-}V3Xa2rH3ah7?cSY=`M7-*VPXrlgSh|Vz=3+Izca9A^Tnb>4 zl=sm~c-%KT;O)-w5_IQ+S-ORU9(A8UIlw$DyOaKYJ<6)e+nliYVSjejq8rC!j-WuOES43$|MSdSpcY z&h@k{b#>Vq-c*&n(1?i)MQy@rZt6&2B=(t$%dJ#OfU5bN?d(8RN4}-2M=A>S%29+m zO!q~m86fi1B?HyR8Op0I;WVJoH;aqK!7RPuBTBAX4CWp@iHH^`6=?jPTKDVt+VsHK zZLl(v$o)G%e;N$xg)DVh52SC2!!cOe<^7DwOgBRXWgt<;y@}-XF*9{MTV3`$Mw%I? z0$?@6PAumME15b~pBowK->HUiZyz-FJ7GQ^#5ENw$yq7Ux(c^s*GGUyW9Z7Q!A;=k z>eN4?L&{GWo{~+Zi*2(^@C6#2*&m@<*;n*YRYd)Wq^)T(M|!~?{|Ex-iR|v|1Y0d= zO%hIG`dv6Zu1rUB6uE zg9Z3qoY9|edEd?JUCHlUpOe3#dGI*}!TlVUl`%C}&~5H$6vbstn1k??w~WFHuPvMZ`6JyfuFa&zVgFH8aG`yFQF*Hr3@RZ2mUydYK3 zb@gLuXvOkU}u$D>5;C5%m6^cWxK%t47zoRg2{3l`81a!71D9=1fcHT1cY{*OjX_M)S!E zj?64!5rNiv({&jYdCE_7dbDbYen};G)`_Rp$(r`bP@H-d+vwjpqmyxJe>_k_IaU&ljV3*wy|kkZ;|Gg&tu30GueN%W8K|be zTFnx<{Z@!cDqzAP!Yf@=8drT*4vL2at&UqZT2Ej9T_;KlKQVPMuW8BT5JX{~MgTi~ z_IhF*$($$JPkVoXuQ*#V?*4dRvwFxZ<{-leb<242#;;M|sG7y6l-7Y!CzS<3{UELQ z$F!T*)3LQa`Y`&0@o8a-L`sTa3B;G>eJfkwH5JvxA@=Yx33D1(rdpTE635+53 z%+l9D?tT%ZDr#=az6pDrveF|0OyU(s>+A-tqm|SF1N*ZlHk7f8YywFP>yb=wVxnlh z+{P|6cj~};%q)WsmnL2v&&IrMpHu~2nZnxd{Ljkd+EJ&s3L*&6uKcV0lQnul-;Z^C zlO|RV#L-8OVUCp~SIIO^%LXYu^n}cPR_MD?(3Br$NuWCu$V~sh>)>1OrL`LvKWacq zoC)2TvVm}-ud{x*X9iXOq9$RNmLFt%VITP9Bi5GjqNG!C(nR1TaY!%Lel)+0Cm|@Z zowNK?_#J_~iqVXtD(STGh}j}oIL`NMO1<`dt{%IX1FotU&7i^MS~ZnY#;+VFj2!rF zj&Vt~yNwCf8$}2aBDi07EAe?qJ<+cO$#uW5vtLEASxye*5a9NiB^&nn1pK1{d2tH(}*pjVj{ zQ{WsJ7B#BI`(<8LAA)5a%QrquwKepp!QNqlG1gB*6{g&qv>$x~YpaH`V`pM00z(;f zDqZfHeA`;gA}Kx;C*YD;@YLAy^9W>h1)}dUE|;9y?&yBouOvA>=V}%MlU`Ew2s|&E z5r=Uu{Om;))mZi+zTUQP;#=@U9B;DNN7j03y`RpDy#XC=YK;)QhsK3~BT;aN?Bqm- z>YUHa>CcMjmio^Q<{n=#0?=3qYeeNl z0`*}?VoXT4#H)H*&UlzTX~0>cV3cg>t!~d}cttY_RX0$}lp@SglS^hY{duF)gHlD$ zLe}&+k$vNRSe6FdWWy9RJ3$k5LWQuvSeC>w@8uHGj47aEJ!wRpFm7$GDx!f4tPO6+ zF%L(>3^{-cJjslA0lDhGEj%#Q)BOja_oD?50H6YA{9;gZ2M1Ss2UjzfKTN#Jv=RH& zKTJG`Cq&Q-jz-VK&?O;j9x;2dBz^$dbQ-b~h?IlFW`5;h?3$qZF&IN)cDz71E7`_6 zk=FU?=b4XNE_(=idy0h7t^d%3(szH8>F40t}Vl91BBB~C34-%-wBF4}pq2k1%4IAs`Pbpb8m`OHkd zd%=hPK~2t3$eGnB>Z7D3AvuQF__X|0Sp(7Bow~Pc6VsbDT&9N(W?Gh!H(M)5YSr;h zd;O#I0FQVpO-C5UL~nf130tz8o1vc-bB21ts|DgxeMhE8g8s1Tvxb#UPJBLyd!j)u z!PwNO0F}3W_-sSON&Rs`- zfu)Le@==wZ$_D?$t?~oWpf14GIOzvvl))p0j*hXUv@5}3nxq37d$kjl`!-qYt2XJ2 zsxcLw_8t3*iV7;yox3wwg>2av`Jw^ZO%f_hYSQ5JY#N-{hO;90(Y9a+&mhbaCg|W# zjQAg#KUVAAZDWO^qis@MBF3dag;k``S%gUr>p-|KqasmbBoYaHf+j~i+2QycVx#mQ zEOAzO7y=g1&pk(O@LSLOxuGqL)*B1(>c%DpBZ}!(=VW#V2^gR9QpI#eI%v5t*Gzpi zQqI!juh;30hxJ?hFZ+q!)Lzvvay*QS^<92go-v7dupbl8=XlN%w@|v_w2V1Py{Sc{ zGVQ0Vy4{0!)y5acY4jATR@(tP@|!aIwg<``L8Y{b>Nf(yUMPmO1yLOhc+;OMTb zBsZU15UPSgKxblUH%_(D?l~PT@Q-o=vI5cG3Y3$4xW9NpX7;B45tH$>-#j5FXf&SW zAt@@4oFYGf*w-)^?iliz*E>BY*PyK4y^=0w;-j~Q_7%OB*7f?eWu;=)-t_8#?N-F^ zqU1Q6jOzm3L>7rBmcd>@F1<%He2Qlq)j&a^F&RZ;gr7$wZi$nTO0x&b3Caw4G5iT! z8VW_jQU)9;HfolfI5lmkwBpvIz8h64v8v6|1>p_Bf_*UAvr~iUHtGN-rv&-n=r_Nq z%c(Hk0vmJ$pi#al;Xt2=~dgJ>Ejcba>dBli5jWPr4Iu?rH*JBFs0out$yp+wCL zmy$t|X;$R5|4}dRAQx}r=W>M3M%2t;>k)gnvA5Eo%}(jw=*uA4OZ{GLE}?*HK*=%3 zyzT_imKK3>7PIb|9>9~LI%}@m&zkZJPzyxMU;?-< z;NK#pX6mVh@H9*tm$uMP7^fK$b1mk~!g*>6u}97pVYf?BLr<-i7cCY1Wa!U^M{p`j z^5UX(112)k(Pa)(Vg?j+7}5PFdP%8~px&*0mhbr~Qm`cBCUZaE!e=vlhwU*RpvGlp zi--!HDP38EG8#&f^@+7xn@Wf${%j2m9#UXmsYSD&XDF_ZXKZP@V&9_pGBll+NpGs% z2fFa23{QI&fzjE8O=UWO#%CH8%@JW?CpQ0EA78~7E8eN$1|Kihf`%^kcELQt@g94j zTVAg6ZP0P|)oseEsAKX~!SM?dk;qm~grFx@)dkTx(OW-s_K)w$mOt*jZ?XPKA2jxn z^zZ^>Wi~*4fc#f|VCKy7OBA!t07K5k94GLH4-*5Ep=~C6;FO6VI z&sX>s7Y*P_v!kfebo?X0ofC36n9DZCoY`W9YlW@_KY~+97Aw6 zF0p35NxITRv=Tv473~M@MnOZh$hm5Xr{Nv$TS@tkdkbXjV@39S%2qtn*N_J+Mwd<_ z5QDI7#-Y@h4p}WATi6wjDB}6tfZ1bHZ2Y=rT+9#Z@_7?m#zE24NRo5#?_e*o@OnE6 z{mB*=OME{6yh^o6C|hY@)z3pG|JY1(oTmY zTEsDZP6TUW8yz|`ZZ|IP)L0R>!iF`(xQVYVRI+{?7F{hzmW%z$UY_B|Z($A-N}wyN zJH}2m*+_@^34SXDK=4VGm;Rmj{Z~Q%#Pv)xb=iuTWN|Td?MMOS-ojCkk5OO2TLoWC6#rc@jy}rnK^WtfyM=H2uC$Z&WpV!Z z%_(Lk`j<`;Vxa?5S7Ug#A^MC+Q6z4WN%R!;^=Kmo2Bsm_}r%wvsOJ1URRgt2>L5ZWhw(yZ|;DXN<@^A1&(c9ltjjz`Kcm) z>=bFG>U7>TCFT&Y^{+ZNBJd>I2^cB$uAVHMrpl3AOMDsY^21?9FHc6iF`r6yM|NlX z&vcO(!?G*7SmVi8xS~=@l))t6XpN!aV1x9HF!Omat(x(Z-G_75ZpByTsaTxiyWa?t z$DdncFExxVe|hJ>$DVU^qq|gqZb3K!0D$p7lICh@W@pCq>-Ji^D%E6s@v=Nf=^eLJAeb7x%7XlB5UTJgKE?`#Yb5 z1zvItdC+lBVeO3!$%~o&VIsW&JX%r~A;C{y5!S9ri)Uh`#hz+nzI){+f!~Gc4runO zhNKE^k!|7COLuDPRSjfN5=uM5+d9C9&ry|q(elnh+t-79L#4P4ni}XbmyOV&{JSqY&1A)iz#rkK*=>DLz{Job@s(65LGULNHW)`c-lmj)mE zzcjC&?R&#G2)Zw2^nX#)z|*-!-3UCb;rbHbQ!%T>u#NB)QRCpU6YiuU_T5Gxsd#cQ zS3{fy;Ya*;d#6!oU67ZJQlPR*slx7BPofN?jo6#p1yBGq-Ac=#IZg_ZQ?Tk_90KTa zh%JO5I3D+rbQc+I%%rZo&(>a_O0a2-VZDCt9ULeS<|ntuE1dsycfQydSvMe1)o?_` z{G9vxFyD>DFY(6vw7vZ5u;!^X@b)-{74Y)25w9$&r*xD5<>acrbkpzgUg4hLlHmiC znCGV<(Snmb=(8(qco%45uq$WuSLj*NL3LE=Y(u$SK@T-mVFMzQFoG5i8lTIwK+G*r zeZqAbnhv7K#L*o+Q2p2)RL5|ah5bIOSv7`=!%!vEw$NxLl;-fOd>MBO%C2=K*j8CR zdL9&-&#hy`dz|DjN|F~>V8ZyO%`^;;ZsEWOFu&>{hnSsg4&%|R5KUHzsD>rH6HYsN zh-bQQy$f6;mrLy?Ww;r+Dug*>T1e`eCr&(iTn_GT21epyO_Z+md3>mWbBikSQ37*Z z8%W}en2Sh^%&~sx!ZzYFBHplBk>Zb@(2g)JCer3dA*w#7zu3yrzB~@zZgL5oj3W18Z^1|Gf*0Xjapv)XRLA@t^B8cAPf8eP5}Xh$>|`V< zI46n)DKegr8D>-togk$_bv6?tV94Jz&n|lyzn~L^apAGTP3*dmT8go1sxOU(E~2T| z_fQni$5`LYI49@Kj7#jxl|hEw)^|5)Hy4nYFq3__Yd2$t8N-8DGH+xj?*nn7$2zUR z@yKm`A06r3hHA092NV1`*=>136-{Q8)fL>~!MyW`gs7Ck0osEYdx+*Txh=pDlagUd zW1(l(#%XBB%|m^@Jo%O@ScX)YWS%1}vG|=14vI|4(_$9FS$I85&$MjXtg%_u9cCjl z(crhF?Su#G-ci@gv#Uf>V*%K>Z-KD`gpi$h9POaA`QNj2XVE}f?c5F38P_T~%)9kR ztRd^!`m~x(z9>;*YPaAVaA#-px_de{WVPu}+ zTDfjfLWV<(Z2(Jml8xw%Yoc4_&TJY9Bf{3qji}m&*kCSlCa4iIKxj z|8DCeY~7DBSUR@XKBbzU-n8^Uoi(r=$4*tfq3d})PS{A(L6GnhDmDxDliZh5zb>e0 ziASz@Vw9<)>XLe91N^{A_i5?b%F2-U0dS+=Cpp_S@huKdUr^b1PqCtX+$<~#lfFcI z?K!%cb&1l2dPIDjc(ojW@({e^=x`Aqul|Z|?p{L|(+frzQ%{oIM4>4mtIaKQ_Z4}1 z%M*10C*Hh!bT9ld7bDMZ3PwYoYWxz{qFqH^S0IP8lsPHi>|kIY^$@H{nf%j;JuCPURXQvFQ?W4BhME8A`A&-6V94 zx9m{P;VFPAM#5;jfYkF51 zOi&mfs*0riqb>8n7Qtxzz7I22y+_Tmu1`$lN^h*69_GKg5q8KNq6l!7R-NVbkcLKs zA`IPk#z8XcZP|7u!_MMZNaNcQfNb8IAYoEZ9cU{ANq(7C zrj^GdZCTiwhy-PLH+LPzcM^kJ%r4$G#tyFqV-#ufc?Qox@*SyTxot`tl)pthg%6Rh zAZQgh?ZQRH8qd^)HSZDiUDhNED*G|$cQIE#V;wxwkt@uENrqrioFl#hOqPR$E1&9I zaA||{2gud>kxSIn)*$Nrtsw$wCRa*OyWTSmp*kDJuSlFKDN}GMLEmU3Ms&Ul)GCs{ zM$#sV#ksQ|6gB1at*xAm73N=9zKQVY^^X)KM2x;->q6)9FeHbw#L$A|%xTkeX~fXI z5F=_B=J_b{SkkH)?^e3lMr+-fI}OaHaA$_)6BOMpt|6M~jX4&Hd||P?@C>_MP7li7 zRF?%gvIRFvZAgxjj(h{PI}}R%oQ@9rPdiPd;yERGb{tDWP&k|MY zTQn)&XYnba9e>Znae2~Y`^Cme%9)eLdPm1 zS=mx~^G?@$$M8z+vaaS3Q~Q!kt149srNkb_ZM05zJcls&(F2f5|J;Q_$?7JYw=Dc< zoRg@dde1PvGIevDxo2E0gTI+yQ1jlb7B)=3nv9uMs+TtSzDA2)-6%8^5{|(flX~6< zbKOZnJ8$K@Ho z##%an4@6pEv>gpV4KQ(YadoiMw6kThay7I2WqK1AkOQdmh=G&-??+{V5Nsbave*|? z=fIM-!-573p=Mfe-BzjD&j{qK6gb5j8)b(ux`;P#CL3&76rN7u8TdwY8e%kJ#=*f? zA>X9QTaPlk7F?q-lfGKXx^0d|dR3=Ny9XI63$Yq*#G(gp^A1%MIJsiFn>v6b%(v0g z&9`sxw28ASAU%F~g(~h1Hp6BU@a2E5NEuMv^oIou$OqdVK1aUw5Lql9JqvFYgcknAGm9U-&)2 zPDL^$b;*jy(bLCH3M3M#&)rzKf>Sd@q|>XMyZb^EnLkfuF;5m1k9*^Un zi?XSi{L&Q{mE3IZ*W#~ZF~txz*w10)<#xQgTrni$KGL1|sVM%@^>t25g{-8au3&>* zi^@4ljN;3J9#)wut)iV?@6qOLayQSg=AR{W3mN3!7M*9CrFORlc>O`E=$<4Rulwna ziT-i>GF0RDbb+Ch5@4moe?sZ@Zg$3I&Ol}QNAP4IZQVYL8GZPI>Wl#SzUmP+-_mNn zYIV*kld{SO0F@nhjAWWc?)OXpMrpT5VtRyY|asRrBS{3h%r(YTO_wKrkOb~GlhGl2`1chlylnzE@V&6aPUZ+PnJc3nT4Hsci`C7xkO z9jJ^PqC{B0JJS!`U=a6IKTXlPM8WS zT+W;9!E;iIM4{X5<85X2ZuE+0MpVTJr6*VJd`Z zCknh^22eNfdCoalR7#*(8m9Zkv2c}7vGx&r4SAS+=aGD4N{xOxB)+Ky)o~5ib`8(F zi7oHHB%^8S3Gp#G-!>WgW3&V%Cz&0+rolxnqLT()I~s=bOu%LsEK!$O{Y(;>by!$o zv54_On4;}a*WQtREBkn}b3%AW$vYL8CJpNF&Wd{#Yw1iJ?NJH!#ZneNlx~-5-H5a1 zwfO#svE})cl(o;geC)zh;;>&utWs`PM$W;eSWE0oGh1gdi~=E)XWWyi7sZl zszvr<(fcMON4O=D(u>!$WqxUn9H(0qj$9$2zO@-D2O|OB zYVoUXI5X4_4hO5&K09U_xQIRPM{z9rW-d;UF#7PSUcuWJ&D1yTy1K8 zzWrxeEV-hIXa|Nc?;QXDB%rkZN^7~edfEOfr?sc2pxf>4zp3D7g{96`v<(;cfZ~}Ff!$uB>BJ- zPi#{3ez#OXU-j5^BD9scF%c+Q;T6wJL6YR7YnywyIFN!WnqJ+>1e;3h!p z?UCp~GB+>V!{|qDY-j@Hd(-b1JERBk%gwU9QB)5u60@ZDgqx3E$YS^7f(z29wU7e3 z#a?X2>;qHL6};Cxbnjn8EaVcfl&{>-#S2*+Sl*)5_#dvmTYBrJj<-To)h#J3s^Lg& zzG!|;lN6H)^WnO#e;-X(&521s_a?o*el8%?uOkqVM-ZTf%rU-9jYdtZ^t0-AC`xAe z(mdEtX_Bilt&)FwiwXt{qM`+#zzI%kJ3fB1F2dYa-)a<-Jd$73NK#pfab1+;(L`j1 zhzlm`I$)!Bju;lSO=kIEd6}jL|6uz}MX<@Yz^L)_l;6)#x`7S8c--n_nJPKYUi&Yf zBOQIPu=6~lsh8^n^3D+Lk1_4{q3sEuZTAtfZ=3pD=GS4T+ydhDwx=`9EA&n$KVams zBB=*X>PqhFCG9i%z#OE(TCG1l~2VwUL7L=(2zqR$Bs?HShr$DxmUu zK{>79JRab8G^219PLPJxJMcZagE)b$QLF$L3=6WQf8R{g)NI*g{ z>nvxQOuMca!CnKDiC@%0R-cZoufO{|-S9!QK1r7+P6&T8^9qGpa_&eA-?UYCndZsq z9{uG2;e`Aorh|Dx`&IoXKl^IdVE+|sC7rK?*V@}VdJrH|6F=>DhV*f>O-VY5q`+KD zpmW|e)xc(8j#~E9=ILZCQ_p>{BEcA#J)FY-0w&^T6qZODR{p zNe5^RwJo74szBR9xi#frrE4-n+4U8SC|;^Op+ELej$WQ2`Za_ zi>&loR|MMUBdS+WY=~=ORjP9zirelMvT9Z^iJt~F8fbG2kypW~hset{gv#@1+F>v= zGz8D9gRBb^R8m4vXv+1q88*%cy*I`q%IWnEf?e>pTEuLCg zsICLy3g=dniJoG}4s#MTFAcRGVdv`#c|t?0`CM#fB0JM&D0Vm}s&n{@`mFFDOMPRQ z>$O%^44Nmegj1*cb@d?5->uN`J1z?LaeJ>qb9N$!32MLifiB`dH7cBZk-`91F{dWU zK0=XQb%Qb5NiCG-tmF+!<}*4HritH_;H(!(Kz;TLago8jg{J0jWcD<^RkRGdRqQVd zGuaLM{jbsgUu%9u8rM>vEx;YDDT-SSk&0@8&{7_dn@rjXw3V76%wUj$2CJt?t%!2b zZ6Z%Dk*G0Kh&PleBm@~O#e`I-B!r!)A+*MxZ?XLxeY_2(79UuQo6cbMdB{vgyxeIy zDbZTDsi+kAmzz@TSXx^dAwSm%@T!2{V^nwRD9C_7DFt>$o#TQ(=kPlUE%d?v0mAu% zjyI5wGS;sZfW+p+fU{?m|E~mqAnpHI+_VTt$IqPh^y5j{eJDjjG#s_i8nHgPzq%(; zZZmmwA-Xf#FoW;qjokJZ1Hhw1W@7db68R7P6`@avKPDb(Z{IOFAoxoMj$n=7rx#Xz zdOR85wC5Dn>;j|D1oXxm-7YY6q>kC$3_On&V7FafT&w9nWPhjE!Fnelfps(TLsAxO z^m!!4+r0l2T_3QIwCVBU<`|&yO?h`JPgr}#n9Q5pklWz43x8b#W~7s8Z~9ptji~HH zbL)KO%;OB+ve%3Gl@gnBrvrli;g!zWXC&}0iyZ2%l@yHm!P(*|>Zj2Wb>5Fjr3JLz zCEGWAK8!ZFqZQsPOh-8Z9)8{)6f5ZZ&r)CS;QB+}{p=Br*}I&(tRtt(MB(=UW!+(S zW(k;3%n19=hQW8`wc?8aNNd2>Nb|NAd3-sZVB)7rL5Mo$>;~QYV6GCE95N zDTisrcMrZsI}dnom;-7qAvQbUW{JXU=$N};ky%!eXw66l0#0f#-Na5%Nv@R?QfqBK zujE2(KWE5uETvGJC-eoRkYmrKXiK}G%eWJYuJ0AwBvFACi3+HqyJHEi#9S8I&Z0X{ zPa_|wUnoYn7L&*(!Sw~WkVCu4xv;dILwF1XxaQ3tx`pLyj84JF1x5Cm{LxQ!2FaRb z^W~tu8dIQ*ak)b@vcO{P-G8`ay_k*}vS$0@#M6)Vv)FY+1Rm8VEZ4`#3@wGn(;$74 zxY98%F5XTy5UzdVirk&@r;%&+p3bQBG_7A5L3tS%(tl0Dgpm93gp)mN4KieBGAiMc zUDR$W^$v3r@>4+m%eUJ8b;sxzMFkV83~%wJ=5P(q30Z9 zZLM5u#&ABtG1gqnwNsB}<(IlbmS+hqE*Iaem3?B*Iw!Qh%YNIk%;WB+y=a~tePrbv z!R-3fct^bC*%}YaL2$aNlXeFY6{~Qsk)BmQa#h7y&iSHh?@hmuzF(R0=|{bno^xdX zY5hy{iDEUW(YNZrw=@|lBsVcE3{pTRA?JQml^BWdhR|S z`BHv+S#MbUG*iD-X%lZZD99BmC9p)7q60Nw9d7>}Bd1h}|6GqrDL1=;cjR^Ddn4AR zM!iXNnv-b$i`JE5MctIllV{dc-2VLiet`vw?aE_X7R9KFW8aX%BFY<|`%n5-koCe0 zNP+hE`5ofjaEr7Qm0+JMRQF8A5#6UGLy6(0P@di^U`#= zOn#;DTXotsTFfoA2<3q&@a{5^qoid&^=IkHan|a}+99=H0(g+SHGifb(jqaC@UXRl2)`<8s6`0f}cS8Fyy@n05V|b>hoRHij?9x+M7XxD%N9v6OtA7Fz*S)CDyu|1fBPJ)?>{i*1Z64?~N zS~iT$8=;35k;v(^Pn^3}>u$Nf7T7fk^|aJ+bhM(jJ2g z#;5iwjU=mlPbpX6tC&0PH_wv&fK{4lRJ2NzBB|WaknQU3@6LmTg)OR}DGi#Xbl04O zCP9DdB;$gqONHi?O*Ybl*@fB4nW-K=fRXFv;qf3!?xu>PsOWasN6g9MjRGuU?Bw>` zSHVm=Ks|a3wD?^3Y)@B#_+87FiKgYw&SmiGf z{Os8Yd0+<%V2cO!Lh*Z7an=%>nvI7LF(WjLXCS@XVgz~hPK>=nyiSwSfZ6w?fPgwQ zvraC~EMH;bV1BH6D_Yb`T$x>uR?h&Rj7m{qrAKA09|_T92}|hB?@u^vjGkdxuBD_k zuTr>jqPd4ClapK#4JvYgup>M1P5S%D;{+I)djt?$xC-{s%C}~yi1Q6@ z*EbMxJ%iB?f!ql6DEAv>*K*?|k%h<640DY|n~Z+A={AJ~q}EnS(A?Z~jxwr?snL~( zlg7wcJ8j2Rx099Dm*x!THKkGb--Zw|9&J~De`>EL>dQB{kVb|GfHq@jVw#Gt(;PF{ zEc~M^@*jd^1`?9Az!5)SQvW|u9&=zLsH%~%t=X@hn3UDHl|Kq5>23)~H<`GQH6u7G z8(b5;XQQp30Ygp^YDA>*B$szNoFC){tEJWL7=%u7rVc&|?DFywrotnx1u=6|U6GT5 zERLfKUpQaynz=L+gK(C^(Z=p`aXAskS4@2(%&cTv5emG*eK+W=%%x#r1YNlk)i*Gw zTUgJgt`siQ4u{bwaDPj{T3#Y=8;X98PN~F3#W%De%wk4^{bszR?{wztYuPGVFs&Gg zJK3<0scmAbq|?s{Sg14|R#82Kqm=(5D9voslVTq<_yflaJ#0Af6U`%RMl2Y)Mj+Sj zuv3iK6f}$TSCm1{$(KHq!N8kZ;J#DqD#aF%Tj=$3q;YF2m4%7&Gk#u%@KCN2k1{jx zSkY`tmF#OK+=_k`CX zG)i=E**dnM&1J5y_SjZHkr%1{T$kAWaH*eT zbi^gZq-!~067_(5@TdGtG{u$F>@h-K)>HHr>0&h?CdKMFQIOyec`caA4DZ;+sJ0PcD@~+pgz3J1!=%TZy{S*pfLVmhjj8V8 zgyFa(H$&4mvpmvGHMD(1l{Sas&+p(`EHRywsqewqrE3D1c^rYPF37))2r_I>WapIhf^S|1g5mlaeD+mFCpiqNUoUd&Oo{AwMg*W0upu9>+*_Fb&E zGVAH&qYSc#4tFYD$q#XVKV5Lv!ft`pNP&Fw$sTbI4_UGqaqpaSyj2DO=_Qq%d#CH< z*yT@>PsF&%mgwS6*zwNJsRK^JUv=uAr(Zxc&)+|!V;h8#!;VnLhZB0po&wr&;|%a# zfjs%&&%wga>`^`M%|cjZJ~dn-=9hqPYw zkv3i15Dd0hrZ1&UjQj}L| zu)#caQ*=h8pwA$N2ii>Z)3qd|UFn|J#j74!54evAakBg;bNHPJ1#5IIw^ekOZ94{ZP3=-WE%IKQ~|U#FO<+9)9JLT)#Zy2@v?@A^o3Ut-+!Ohk6;&r+Wx+ zn$`~_d9XI!zk8j3f|EJ_4gSps{hdPJZ(h`&6d<_&P2q1o)$jPf+sc2Ufg;EY z0Q{Hb{5$;b#>-#f2m*hB|J#)L9sPG@@>g`b&|mN1KdBZ)83>@b|KU2K0uq6BcfBHi G{Q5uGKp+$V literal 0 HcmV?d00001 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$