diff options
| author | Jonas Smedegaard <dr@jones.dk> | 2025-03-15 07:36:30 +0100 |
|---|---|---|
| committer | Jonas Smedegaard <dr@jones.dk> | 2025-03-15 07:36:30 +0100 |
| commit | 7e681492040da157c293b8262d6b5fd67e921d98 (patch) | |
| tree | 1d85b5dbcb1dc81fa822a3a18938e061f5af122f /_extensions/pandoc-ext | |
| parent | b588215bdbd0bfacbb946e413396e069d26bebe2 (diff) | |
embed filter extensions in format extension
Diffstat (limited to '_extensions/pandoc-ext')
| -rw-r--r-- | _extensions/pandoc-ext/abstract-section/_extension.yaml | 6 | ||||
| -rw-r--r-- | _extensions/pandoc-ext/abstract-section/abstract-section.lua | 85 |
2 files changed, 0 insertions, 91 deletions
diff --git a/_extensions/pandoc-ext/abstract-section/_extension.yaml b/_extensions/pandoc-ext/abstract-section/_extension.yaml deleted file mode 100644 index f6a946b..0000000 --- a/_extensions/pandoc-ext/abstract-section/_extension.yaml +++ /dev/null @@ -1,6 +0,0 @@ -name: abstract-section -author: Albert Krewinkel -version: 1.2.0 -contributes: - filters: - - abstract-section.lua diff --git a/_extensions/pandoc-ext/abstract-section/abstract-section.lua b/_extensions/pandoc-ext/abstract-section/abstract-section.lua deleted file mode 100644 index 4badeb4..0000000 --- a/_extensions/pandoc-ext/abstract-section/abstract-section.lua +++ /dev/null @@ -1,85 +0,0 @@ ---[[ -abstract-section – move an "abstract" section into document metadata - -Copyright: © 2017–2023 Albert Krewinkel -License: MIT – see LICENSE file for details -]] -local stringify = (require 'pandoc.utils').stringify -local section_identifiers = { - abstract = true, -} -local collected = {} ---- The level of the highest heading that was seen so far. Abstracts ---- must be at or above this level to prevent nested sections from being ---- treated as metadata. Only top-level sections should become metadata. -local toplevel = 6 - ---- Extract abstract from a list of blocks. -local function abstract_from_blocklist (blocks) - local body_blocks = {} - local looking_at_section = false - - for _, block in ipairs(blocks) do - if block.t == 'Header' and block.level <= toplevel then - toplevel = block.level - if section_identifiers[block.identifier] then - looking_at_section = block.identifier - collected[looking_at_section] = {} - else - looking_at_section = false - body_blocks[#body_blocks + 1] = block - end - elseif looking_at_section then - if block.t == 'HorizontalRule' then - looking_at_section = false - else - local collect = collected[looking_at_section] - collect[#collect + 1] = block - end - else - body_blocks[#body_blocks + 1] = block - end - end - - return body_blocks -end - -Pandoc = function (doc) - local meta = doc.meta - - -- configure - section_identifiers_list = - (doc.meta['abstract-section'] or {})['section-identifiers'] - if section_identifiers_list and #section_identifiers_list > 0 then - section_identifiers = {} - for i, ident in ipairs(section_identifiers_list) do - section_identifiers[stringify(ident)] = true - end - end - -- unset config in meta - doc.meta['abstract-section'] = nil - - local blocks = {} - if PANDOC_VERSION >= {2,17} then - -- Walk all block lists by default - blocks = doc.blocks:walk{Blocks = abstract_from_blocklist} - elseif PANDOC_VERSION >= {2,9,2} then - -- Do the same with pandoc versions that don't have walk methods but the - -- `walk_block` function. - blocks = pandoc.utils.walk_block( - pandoc.Div(doc.blocks), - {Blocks = abstract_from_blocklist} - ).content - else - -- otherwise, just check the top-level block-list - blocks = abstract_from_blocklist(doc.blocks) - end - for metakey in pairs(section_identifiers) do - metakey = stringify(metakey) - local abstract = collected[metakey] - if not meta[metakey] and abstract and #abstract > 0 then - meta[metakey] = pandoc.MetaBlocks(abstract) - end - end - return pandoc.Pandoc(blocks, meta) -end |
