{"id":16010151,"url":"https://github.com/nichtich/pandoc-elements","last_synced_at":"2025-08-02T03:33:47.967Z","repository":{"id":22318650,"uuid":"25653961","full_name":"nichtich/Pandoc-Elements","owner":"nichtich","description":"Perl module to create and process Pandoc documents","archived":false,"fork":false,"pushed_at":"2021-12-06T11:02:32.000Z","size":443,"stargazers_count":10,"open_issues_count":26,"forks_count":6,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-02-28T01:36:58.697Z","etag":null,"topics":["pandoc","perl"],"latest_commit_sha":null,"homepage":"https://metacpan.org/release/Pandoc-Elements","language":"Perl","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nichtich.png","metadata":{"files":{"readme":"README.md","changelog":"Changes","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-10-23T19:23:09.000Z","updated_at":"2022-07-18T16:16:14.000Z","dependencies_parsed_at":"2022-08-29T05:00:45.123Z","dependency_job_id":null,"html_url":"https://github.com/nichtich/Pandoc-Elements","commit_stats":null,"previous_names":[],"tags_count":38,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nichtich%2FPandoc-Elements","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nichtich%2FPandoc-Elements/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nichtich%2FPandoc-Elements/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nichtich%2FPandoc-Elements/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nichtich","download_url":"https://codeload.github.com/nichtich/Pandoc-Elements/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243871270,"owners_count":20361321,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["pandoc","perl"],"created_at":"2024-10-08T13:04:45.760Z","updated_at":"2025-03-17T16:30:29.261Z","avatar_url":"https://github.com/nichtich.png","language":"Perl","funding_links":[],"categories":[],"sub_categories":[],"readme":"# NAME\n\nPandoc::Elements - create and process Pandoc documents\n\n# STATUS\n\n[![Unix Build Status](https://travis-ci.org/nichtich/Pandoc-Elements.svg)](https://travis-ci.org/nichtich/Pandoc-Elements)\n[![Windows Build status](https://ci.appveyor.com/api/projects/status/pb7vdd14xml9ho43?svg=true)](https://ci.appveyor.com/project/nichtich/pandoc-elements)\n[![Coverage Status](https://coveralls.io/repos/nichtich/Pandoc-Elements/badge.svg)](https://coveralls.io/r/nichtich/Pandoc-Elements)\n[![Kwalitee Score](http://cpants.cpanauthors.org/dist/Pandoc-Elements.png)](http://cpants.cpanauthors.org/dist/Pandoc-Elements)\n[![Code Climate Issue Count](https://codeclimate.com/github/nichtich/Pandoc-Elements/badges/issue_count.svg)](https://codeclimate.com/github/nichtich/Pandoc-Elements)\n\n# SYNOPSIS\n\nThe output of this script `hello.pl`\n\n    use Pandoc::Elements;\n    use JSON;\n\n    print Document(\n        {\n            title =\u003e MetaInlines [ Str \"Greeting\" ]\n        },\n        [\n            Header( 1, attributes { id =\u003e 'top' }, [ Str 'Hello' ] ),\n            Para [ Str 'Hello, world!' ],\n        ],\n        api_version =\u003e '1.17.0.4'\n    )-\u003eto_json;\n\ncan be converted for instance to HTML via\n\n    ./hello.pl | pandoc -f json -t html5 --standalone\n\nan equivalent Pandoc Markdown document would be\n\n    % Greeting\n    # Gruß {.de}\n    Hello, world!\n\n# DESCRIPTION\n\nPandoc::Elements provides utility functions to parse, serialize, and modify\nabstract syntax trees (AST) of [Pandoc](http://pandoc.org/) documents. Pandoc\ncan convert this data structure to many other document formats, such as HTML,\nLaTeX, ODT, and ePUB.\n\nSee also module [Pandoc::Filter](https://metacpan.org/pod/Pandoc::Filter), command line script [pod2pandoc](https://metacpan.org/pod/pod2pandoc), and the\ninternal modules [Pandoc::Walker](https://metacpan.org/pod/Pandoc::Walker) and [Pod::Simple::Pandoc](https://metacpan.org/pod/Pod::Simple::Pandoc).\n\n# PANDOC VERSIONS\n\nThe Pandoc document model is defined in file\n[Text.Pandoc.Definition](https://hackage.haskell.org/package/pandoc-types/docs/Text-Pandoc-Definition.html)\nas part of Haskell package\n[pandoc-types](https://hackage.haskell.org/package/pandoc-types).\n\nPandoc::Elements is compatible with pandoc-types 1.12.3 (released with pandoc\n1.12.1) up to _at least_ pandoc-types-1.17.0.4 (first releases with pandoc\n1.18). JSON output of all pandoc releases since 1.12.1 can be parsed with\nfunction `pandoc_json`, the [\"Document\"](#document) constructor or method `parse` of\nmodule [Pandoc](https://metacpan.org/pod/Pandoc). The AST is always upgraded to pandoc-types 1.17 and\ndowngraded to another api version on serialization with `to_json`.\n\nTo determine the api version required by a version of pandoc executable since\nversion 1.18 execute pandoc with the `--version` option and check which\nversion of the `pandoc-types` library pandoc was compiled with.\n\nBeginning with version 1.18 pandoc will not decode a JSON AST representation\nunless the major and minor version numbers (Document method `api_version`)\nmatch those built into that version of pandoc. The following changes in pandoc\ndocument model have been implemented:\n\n- pandoc-types 1.17, released for pandoc 1.18, introduced the\n[LineBlock](#lineblock) element and modified representation\nof the root [Document](#document) element.\n- pandoc-types 1.16, released with pandoc 1.16, introduced attributes to [Link](#link) and [Image](#image) elements\n- pandoc-types 1.12.3, released with pandoc 1.12.1, modified the representation\nof elements to objects with field `t` and `c`. This is also the internal\nrepresentation of documents used in this module.\n\n# FUNCTIONS\n\nThe following functions and keywords are exported by default:\n\n- Constructors for all Pandoc document element ([block elements](#block-elements)\nsuch as `Para` and [inline elements](#inline-elements) such as `Emph`,\n[metadata elements](#metadata-elements) and the [Document](#document-element)).\n- [Type keywords](#type-keywords) such as `Decimal` and `LowerAlpha` to be used\nas types in other document elements.\n- The following helper functions `pandoc_json`, `pandoc_version`,\n`attributes`, `metadata`, `citation`, and `element`.\n\n## pandoc\\_json $json\n\nParse a JSON string, as emitted by pandoc in JSON format. This is the reverse\nto method `to_json` but it can read both old (before Pandoc 1.16) and new\nformat.\n\n## attributes { key =\u003e $value, ... }\n\nMaps a hash reference or instance of [Hash::MultiValue](https://metacpan.org/pod/Hash::MultiValue) into the internal\nstructure of Pandoc attributes. The special keys `id` (string), and `class`\n(string or array reference with space-separated class names) are recognized.\nSee [attribute methods](#attribute-methods) for details.\n\n## citation { ... }\n\nA citation as part of document element [Cite](#cite) must be a hash reference\nwith fields `citationId` (string), `citationPrefix` (list of [inline\nelements](#inline-elements)) `citationSuffix` (list of [inline\nelements](#inline-elements)), `citationMode` (one of `NormalCitation`,\n`AuthorInText`, `SuppressAuthor`), `citationNoteNum` (integer), and\n`citationHash` (integer). The helper method `citation` can be used to\nconstruct such a hash by filling in default values and optionally using \nshorter field names (`id`, `prefix`, `suffix`, `mode`, `note`, and `hash`):\n\n    citation {\n        id =\u003e 'foo',\n        prefix =\u003e [ Str \"see\" ],\n        suffix =\u003e [ Str \"p.\", Space, Str \"42\" ]\n    }\n\n    # in Pandoc Markdown\n\n    [see @foo p. 42]\n\nThe values returned by this function, as well as any citations contained in\ndocument objects returned by `pandoc_json`, are blessed hashrefs with\ngetter/setter accessors corresponding to both the full and short field\nnames, so that e.g. `$citation-\u003ecitationId(...)` and\n`$citation-\u003eid(...)` get or set the same value.\n\n## pandoc\\_version( \\[ $document \\] )\n\nReturn a [Pandoc::Version](https://metacpan.org/pod/Pandoc::Version) object with expected version number of pandoc\nexecutable to be used for serializing documents with [to\\_json](#to_json).\n\nIf a [Document element](#document-element) is given as argument, the minimal\npandoc release version compatible with its api version is returned.\n\nWithout argument, package variable `$PANDOC_VERSION` is checked for a\npreferred pandoc release. By default this variable is set from an environment\nvariable of same name. If no preferred pandoc release has been specified, the\nfunction returns version 1.18 because this is the first pandoc release\ncompatible with most recent api version supported by this module.\n\nSee also method `version` of module [Pandoc](https://metacpan.org/pod/Pandoc) to get the current version of\npandoc executable on your system.\n\n## element( $name =\u003e $content )\n\nCreate a Pandoc document element of arbitrary name. This function is only\nexported on request.\n\n# ELEMENTS AND METHODS\n\nDocument elements are encoded as Perl data structures equivalent to the JSON\nstructure, emitted with pandoc output format `json`. This JSON structure is\nsubject to minor changes between [versions of pandoc](#pandoc_version).  All\nelements are blessed objects that provide [common element methods](#common-methods) (all elements), [attribute methods](#attribute-methods) (elements with\nattributes), and additional element-specific methods.\n\n## COMMON METHODS\n\n### to\\_json\n\nReturn the element as JSON encoded string. The following are equivalent:\n\n    $element-\u003eto_json;\n    JSON-\u003enew-\u003eutf8-\u003ecanonical-\u003econvert_blessed-\u003eencode($element);\n\nThe serialization format can be adjusted to different [pandoc versions](#pandoc-versions) with module and environment variable `PANDOC_VERSION` or with\nDocument element properties `api_version` and `pandoc_version`.\n\nWhen writing filters you can normally just rely on the api version value\nobtained from pandoc, since pandoc expects to receive the same JSON format as\nit emits.\n\n### name\n\nReturn the name of the element, e.g. \"Para\" for a [paragraph element](#para).\n\n### content\n\nReturn the element content. For most elements ([Para](#para), [Emph](#emph),\n[Str](#str)...) the content is an array reference with child elements. Other\nelements consist of multiple parts; for instance the [Link](#link) element has\nattributes (`attr`, `id`, `class`, `classes`, `keyvals`) a link text\n(`content`) and a link target (`target`) with `url` and `title`.\n\n### is\\_block\n\nTrue if the element is a [Block element](#block-elements)\n\n### is\\_inline\n\nTrue if the element is an inline [Inline element](#inline-elements)\n\n### is\\_meta\n\nTrue if the element is a [Metadata element](#metadata-elements)\n\n### is\\_document\n\nTrue if the element is a [Document element](#document-element)\n\n### as\\_block\n\nReturn the element unmodified if it is a block element or wrapped in a\n[Plain](#plain) or [Div](#div) otherwise.\n\n### match( $selector )\n\nCheck whether the element matches a given [Pandoc::Selector](https://metacpan.org/pod/Pandoc::Selector) (given as\ninstance or string).\n\n### walk(...)\n\nWalk the element tree with [Pandoc::Walker](https://metacpan.org/pod/Pandoc::Walker)\n\n### query(...)\n\nQuery the element to extract results with [Pandoc::Walker](https://metacpan.org/pod/Pandoc::Walker)\n\n### transform(...)\n\nTransform the element tree with [Pandoc::Walker](https://metacpan.org/pod/Pandoc::Walker)\n\n### string\n\nReturns a concatenated string of element content, leaving out all formatting.\n\n## ATTRIBUTE METHODS\n\nSome elements have attributes which can be an identifier, ordered class names\nand ordered key-value pairs. Elements with attributes provide the following\nmethods:\n\n### attr\n\nGet or set the attributes in Pandoc internal structure:\n\n    [ $id, [ @classes ], [ [ key =\u003e $value ], ... ] ]\n\nSee helper function [attributes](#attributes-key-value) to create this\nstructure.\n\n### keyvals\n\nGet all attributes (id, class, and key-value pairs) as new [Hash::MultiValue](https://metacpan.org/pod/Hash::MultiValue)\ninstance, or replace _all_ key-value pairs plus id and/or class if these are\nincluded as field names. All class fields are split by whitespaces.\n\n    $e-\u003ekeyvals                           # return new Hash::MultiValue\n    $e-\u003ekeyvals( $HashMultiValue )        # update by instance of Hash::MultiValue\n    $e-\u003ekeyvals( key =\u003e $value, ... )     # update by list of key-value pairs\n    $e-\u003ekeyvals( \\%hash )                 # update by hash reference\n    $e-\u003ekeyvals( { } )                    # remove all key-value pairs\n    $e-\u003ekeyvals( id =\u003e '', class =\u003e '' )  # remove all key-value pairs, id, class\n\n### id\n\nGet or set the identifier. See also [Pandoc::Filter::HeaderIdentifiers](https://metacpan.org/pod/Pandoc::Filter::HeaderIdentifiers) for\nutility functions to handle [Header](#header) identifiers.\n\n### class\n\nGet or set the list of classes, separated by whitespace.\n\n### add\\_attribute( $name =\u003e $value )\n\nAppend an attribute. The special attribute names `id` and `class` set or\nappend identifier or class, respectively.\n\n## DOCUMENT ELEMENT\n\n### Document\n\nRoot element, consisting of metadata hash (`meta`), document element array\n(`content`=`blocks`) and optional `api_version`. The constructor accepts\neither two arguments and an optional named parameter `api_version`:\n\n    Document { %meta }, [ @blocks ], api_version =\u003e $version_string\n\nor a hash with three fields for metadata, document content, and an optional\npandoc API version:\n\n    {\n        meta               =\u003e { %metadata },\n        blocks             =\u003e [ @content ],\n        pandoc-api-version =\u003e [ $major, $minor, $revision ]\n    }\n\nThe latter form is used as pandoc JSON format since pandoc release 1.18. If no\napi version is given, it will be set 1.17 which was also introduced with pandoc\nrelease 1.18.\n\nA third (\"old\") form is accepted for compatibility with pandoc JSON format\nbefore release 1.18 and since release 1.12.1: an array with two elements for\nmetadata and document content respectively.\n\n    [ { unMeta =\u003e { %meta } }, [ @blocks ] ]\n\nThe api version is set to 1.16 in this case, but older versions down to 1.12.3\nused the same format.\n\nDocument elements provide the following special methods in addition to\n[common element methods](#common-methods):\n\n- **api\\_version( \\[ $api\\_version \\] )**\n\n    Return the pandoc-types version (aka \"pandoc-api-version\") of this document as\n    [Pandoc::Version](https://metacpan.org/pod/Pandoc::Version) object or sets it to a new value. This\n    version determines how method [to\\_json](#to_json) serializes the document.\n\n    See [\"PANDOC VERSIONS\"](#pandoc-versions) for details.\n\n- **pandoc\\_version( \\[ $pandoc\\_version \\] )**\n\n    Return the minimum required version of pandoc executable compatible\n    with the api\\_version of this document. The following are equivalent:\n\n        $doc-\u003epandoc_version;\n        pandoc_version( $doc );\n\n    If used as setter, sets the api version of this document to be compatible with\n    the given pandoc version.\n\n- **content** or **blocks**\n\n    Get or set the array of [block elements](#block-elements) of the\n    document.\n\n- **meta( \\[ $metadata \\] )**\n\n    Get and/or set combined [document metadata](https://metacpan.org/pod/Pandoc::Metadata). Use method\n    `value` to get selected metadata fields and values.\n\n- **value( \\[ $pointer \\] \\[ %options \\] )**\n\n    Get selected document metadata field value(s). See [Pandoc::Metadata](https://metacpan.org/pod/Pandoc::Metadata) for\n    documentation. Can also be called as `metavalue`, so the following are\n    equivalent:\n\n        $doc-\u003evalue( ... );\n        $doc-\u003emeta-\u003evalue( ... );\n        $doc-\u003emetavalue( ... );\n\n- **to\\_pandoc( \\[ \\[ $pandoc, \\] @arguments \\])**\n\n    Process the document with [Pandoc](https://metacpan.org/pod/Pandoc) executable and return its output:\n\n        $doc-\u003eto_pandoc( -o =\u003e 'doc.html' );\n        my $markdown = $doc-\u003eto_pandoc( -t =\u003e 'markdown' );\n\n    The first argument can optionally be an instance of [Pandoc](https://metacpan.org/pod/Pandoc) to use a specific\n    executable.\n\n- **to\\_...( \\[ @arguments \\] )**\n\n    Process the document into `markdown` (pandoc's extended Markdown), `latex`\n    (LaTeX), `html` (HTML), `rst` (reStructuredText), or `plain` (plain text).\n    The following are equivalent:\n\n        $doc-\u003eto_markdown( @args );\n        $doc-\u003eto_pandoc( @args, '-t' =\u003e 'markdown' );\n\n- **outline( \\[ $depth \\] )**\n\n    Returns an outline of the document structure based on [Header](#header)\n    elements. The outline is a hierarchical hash reference with the following\n    fields:\n\n    - header\n\n        [Header](#header) element (not included at the document root)\n\n    - blocks\n\n        List of [block elements](#block-elements) before the next [Header](#header)\n        element (of given depth or less if a maximum depth was given)\n\n    - sections\n\n        List of subsections, each having the same outline structure.\n\n## BLOCK ELEMENTS\n\n### BlockQuote\n\nBlock quote, consisting of a list of [blocks](#block-elements) (`content`)\n\n    BlockQuote [ @blocks ]\n\n### BulletList\n\nUnnumbered list of items (`content`=`items`), each a list of\n[blocks](#block-elements)\n\n    BulletList [ [ @blocks ] ]\n\n### CodeBlock\n\nCode block (literal string `content`) with attributes (`attr`, `id`,\n`class`, `classes`, `keyvals`)\n\n    CodeBlock $attributes, $content\n\n### DefinitionList\n\nDefinition list, consisting of a list of pairs (`content`=`items`),\neach a term (`term`, a list of [inlines](#inline-elements)) and one\nor more definitions (`definitions`, a list of [blocks](#block-elements)).\n\n    DefinitionList [ @definitions ]\n\n    # each item in @definitions being a pair of the form\n\n        [ [ @inlines ], [ @blocks ] ]\n\n### Div\n\nGeneric container of [blocks](#block-elements) (`content`) with attributes\n(`attr`, `id`, `class`, `classes`, `keyvals`).\n\n    Div $attributes, [ @blocks ]\n\n### Header\n\nHeader with `level` (integer), attributes (`attr`, `id`, `class`,\n`classes`, `keyvals`), and text (`content`, a list of [inlines](#inline-elements)).\n\n    Header $level, $attributes, [ @inlines ]\n\n### HorizontalRule\n\nHorizontal rule\n\n    HorizontalRule\n\n### LineBlock\n\nList of lines (`content`), each a list of [inlines](#inline-elements).\n\n    LineBlock [ @lines ]\n\nThis element was added in pandoc 1.18. Before it was represented [Para](#para)\nelements with embedded [LineBreak](#linebreak) elements. This old serialization\nform can be enabled by setting `$PANDOC_VERSION` package variable to a lower\nversion number.\n\n### Null\n\nNothing\n\n    Null\n\n### OrderedList\n\nNumbered list of items (`content`=`items`), each a list of [blocks](#block-elements)), preceded by list attributes (start number, numbering style, and\ndelimiter).\n\n    OrderedList [ $start, $style, $delim ], [ [ @blocks ] ]\n\nSupported styles are `DefaultStyle`, `Example`, `Decimal`, `LowerRoman`,\n`UpperRoman`, `LowerAlpha`, and `UpperAlpha`.\n\nSupported delimiters are `DefaultDelim`, `Period`, `OneParen`, and\n`TwoParens`.\n\n### Para\n\nParagraph, consisting of a list of [Inline elements](#inline-elements)\n(`content`).\n\n    Para [ $elements ]\n\n### Plain\n\nPlain text, not a paragraph, consisting of a list of [Inline elements](#inline-elements) (`content`).\n\n    Plain [ @inlines ]\n\n### RawBlock\n\nRaw block with `format` and `content` string.\n\n    RawBlock $format, $content\n\n### Table\n\nTable, with `caption`, column `alignments`, relative column `widths` (0 =\ndefault), column `headers` (each a list of [blocks](#block-elements)), and\n`rows` (each a list of lists of [blocks](#block-elements)).\n\n    Table [ @inlines ], [ @alignments ], [ @width ], [ @headers ], [ @rows ]\n\nPossible alignments are `AlignLeft`, `AlignRight`, `AlignCenter`, and\n`AlignDefault`.\n\nAn example:\n\n    Table [Str \"Example\"], [AlignLeft,AlignRight], [0.0,0.0],\n     [[Plain [Str \"name\"]]\n     ,[Plain [Str \"number\"]]],\n     [[[Plain [Str \"Alice\"]]\n      ,[Plain [Str \"42\"]]]\n     ,[[Plain [Str \"Bob\"]]\n      ,[Plain [Str \"23\"]]]];\n\n## INLINE ELEMENTS\n\n### Cite\n\nCitation, a list of `citations` and a list of [inlines](#inline-elements)\n(`content`). See helper function [citation](#citation) to construct\ncitations.\n\n    Cite [ @citations ], [ @inlines ]\n\n### Code\n\nInline code, a literal string (`content`) with attributes (`attr`, `id`,\n`class`, `classes`, `keyvals`)\n\n    Code attributes { %attr }, $content\n\n### Emph\n\nEmphasized text, a list of [inlines](#inline-elements) (`content`).\n\n    Emph [ @inlines ]\n\n### Image\n\nImage with alt text (`content`, a list of [inlines](#inline-elements)) and\n`target` (list of `url` and `title`) with attributes (`attr`, `id`,\n`class`, `classes`, `keyvals`).\n\n    Image attributes { %attr }, [ @inlines ], [ $url, $title ]\n\nSerializing the attributes is disabled in api version less then 1.16.\n\n### LineBreak\n\nHard line break\n\n    LineBreak\n\n### Link\n\nHyperlink with link text (`content`, a list of [inlines](#inline-elements))\nand `target` (list of `url` and `title`) with attributes (`attr`, `id`,\n`class`, `classes`, `keyvals`).\n\n    Link attributes { %attr }, [ @inlines ], [ $url, $title ]\n\nSerializing the attributes is disabled in api version less then 1.16.\n\n### Math\n\nTeX math, given as literal string (`content`) with `type` (one of\n`DisplayMath` and `InlineMath`).\n\n    Math $type, $content\n\n### Note\n\nFootnote or Endnote, a list of [blocks](#block-elements) (`content`).\n\n    Note [ @blocks ]\n\n### Quoted\n\nQuoted text with quote `type` (one of `SingleQuote` and `DoubleQuote`) and a\nlist of [inlines](#inline-elements) (`content`).\n\n    Quoted $type, [ @inlines ]\n\n### RawInline\n\nRaw inline with `format` (a string) and `content` (a string).\n\n    RawInline $format, $content\n\n### SmallCaps\n\nSmall caps text, a list of [inlines](#inline-elements) (`content`).\n\n    SmallCaps [ @inlines ]\n\n### SoftBreak\n\nSoft line break\n\n    SoftBreak\n\nThis element was added in pandoc 1.16 as a matter of editing convenience to\npreserve line breaks (as opposed to paragraph breaks) from input source to\noutput. If you are going to feed a document containing `SoftBreak` elements to\nPandoc \u003c 1.16 you will have to set the package variable or environment\nvariable `PANDOC_VERSION` to 1.15 or below.\n\n### Space\n\nInter-word space\n\n    Space\n\n### Span\n\nGeneric container of [inlines](#inline-elements) (`content`) with attributes\n(`attr`, `id`, `class`, `classes`, `keyvals`).\n\n    Span attributes { %attr }, [ @inlines ]\n\n### Str\n\nPlain text, a string (`content`).\n\n    Str $content\n\n### Strikeout\n\nStrikeout text, a list of [inlines](#inline-elements) (`content`).\n\n    Strikeout [ @inlines ]\n\n### Strong\n\nStrongly emphasized text, a list of [inlines](#inline-elements) (`content`).\n\n    Strong [ @inlines ]\n\n### Subscript\n\nSubscripted text, a list of [inlines](#inline-elements) (`content`).\n\n    Supscript [ @inlines ]\n\n### Superscript\n\nSuperscripted text, a list of [inlines](#inline-elements) (`content`).\n\n    Superscript [ @inlines ]\n\n## METADATA ELEMENTS\n\nSee [Pandoc::Metadata](https://metacpan.org/pod/Pandoc::Metadata) for documentation of metadata elements `MetaBool`,\n`MetaString`, `MetaMap`, `MetaInlines`, `MetaList`, and `MetaBlocks`.\n\nHelper function `metadata` can be used to convert scalars, hash references,\narray references, and Pandoc Inline/Block elements into metadata elements.\n\n## TYPE KEYWORDS\n\nThe following document elements are only as used as type keywords in other\ndocument elements:\n\n- `SingleQuote`, `DoubleQuote`\n- `DisplayMath`, `InlineMath`\n- `AuthorInText`, `SuppressAuthor`, `NormalCitation`\n- `AlignLeft`, `AlignRight`, `AlignCenter`, `AlignDefault`\n- `DefaultStyle`, `Example`, `Decimal`, `LowerRoman`, `UpperRoman`,\n`LowerAlpha`, `UpperAlpha`\n- `DefaultDelim`, `Period`, `OneParen`, `TwoParens`\n\n# SEE ALSO\n\nPerl module [Pandoc](https://metacpan.org/pod/Pandoc) implements a wrapper around the pandoc executable.\n\nSimilar libraries in other programming languages are listed at [https://github.com/jgm/pandoc/wiki/Pandoc-wrappers-and-interfaces](https://github.com/jgm/pandoc/wiki/Pandoc-wrappers-and-interfaces).\n\n# AUTHOR\n\nJakob Voß \u003cjakob.voss@gbv.de\u003e\n\n# CONTRIBUTORS\n\nBenct Philip Jonsson \u003cbpjonsson@gmail.com\u003e\n\n[TakeAsk](https://github.com/TakeAsh)\n\n# COPYRIGHT AND LICENSE\n\nCopyright 2014- Jakob Voß\n\nGNU General Public License, Version 2\n\nThis module is heavily based on Pandoc by John MacFarlane.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnichtich%2Fpandoc-elements","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnichtich%2Fpandoc-elements","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnichtich%2Fpandoc-elements/lists"}