From 268bec1808958f96d860e2bbb8718ece29f0ed1e Mon Sep 17 00:00:00 2001 From: John MacFarlane <jgm@berkeley.edu> Date: Fri, 7 Jan 2022 23:32:53 -0800 Subject: [PATCH] Further improvements to doc/lua-filters.md. --- doc/lua-filters.md | 330 +++++++++++++++++++++------------------------ 1 file changed, 156 insertions(+), 174 deletions(-) diff --git a/doc/lua-filters.md b/doc/lua-filters.md index 6ea84d5bf..15efc8c59 100644 --- a/doc/lua-filters.md +++ b/doc/lua-filters.md @@ -971,7 +971,7 @@ Values of this type can be created with the Fields: -`content`: +`content` : block content ([Blocks][]) `tag`, `t` @@ -2214,20 +2214,20 @@ constructor. Fields: -`caption`: +`caption` : [Inlines][] -`aligns`: +`aligns` : column alignments ([List] of [Alignments](#type-alignment)) -`widths`: +`widths` : column widths; a ([List] of numbers) -`headers`: +`headers` : table header row ([List] of simple cells, i.e., [List] of [Blocks][]) -`rows`: +`rows` : table rows ([List] of rows, where a row is a list of simple cells, i.e., [List] of [Blocks][]) @@ -2377,10 +2377,10 @@ A complete pandoc document Parameters: -`blocks`: +`blocks` : document content -`meta`: +`meta` : document meta data Returns: [Pandoc] object @@ -2393,7 +2393,7 @@ Create a new Meta object. Parameters: -`table`: +`table` : table containing document meta information Returns: [Meta] object @@ -2408,7 +2408,7 @@ discarding all non-list keys. Parameters: -`blocks`: +`blocks` : blocks Returns: [Blocks][] @@ -2421,7 +2421,7 @@ discarding all non-list keys. Parameters: -`inlines`: +`inlines` : inlines Returns: [Inlines][] @@ -2434,7 +2434,7 @@ discarding all non-list keys. Parameters: -`meta_values`: +`meta_values` : list of meta values Returns: [List] @@ -2447,7 +2447,7 @@ keys and discards all other keys. Parameters: -`key_value_map`: +`key_value_map` : a string-indexed map of meta values Returns: table @@ -2460,7 +2460,7 @@ for completeness. Parameters: -`str`: +`str` : string value Returns: string @@ -2473,7 +2473,7 @@ completeness. Parameters: -`bool`: +`bool` : boolean value Returns: boolean @@ -2486,7 +2486,7 @@ Creates a block quote element Parameters: -`content`: +`content` : block content Returns: [BlockQuote] object @@ -2497,7 +2497,7 @@ Creates a bullet list. Parameters: -`items`: +`items` : list items Returns: [BulletList] object @@ -2508,10 +2508,10 @@ Creates a code block element Parameters: -`text`: +`text` : code string -`attr`: +`attr` : element attributes Returns: [CodeBlock] object @@ -2523,7 +2523,7 @@ explanation. Parameters: -`content`: +`content` : list of items Returns: [DefinitionList] object @@ -2534,10 +2534,10 @@ Creates a div element Parameters: -`content`: +`content` : block content -`attr`: +`attr` : element attributes Returns: [Div] object @@ -2548,13 +2548,13 @@ Creates a header element. Parameters: -`level`: +`level` : header level -`content`: +`content` : inline content -`attr`: +`attr` : element attributes Returns: [Header] object @@ -2571,7 +2571,7 @@ Creates a line block element. Parameters: -`content`: +`content` : inline content Returns: [LineBlock] object @@ -2588,10 +2588,10 @@ Creates an ordered list. Parameters: -`items`: +`items` : list items -`listAttributes`: +`listAttributes` : list parameters Returns: [OrderedList](#type-orderedlist) object @@ -2602,7 +2602,7 @@ Creates a para element. Parameters: -`content`: +`content` : inline content Returns: [Para](#type-para) object @@ -2613,7 +2613,7 @@ Creates a plain element. Parameters: -`content`: +`content` : inline content Returns: [Plain](#type-plain) object @@ -2624,10 +2624,10 @@ Creates a raw content block of the specified format. Parameters: -`format`: +`format` : format of content -`text`: +`text` : string content Returns: [RawBlock](#type-rawblock) object @@ -2638,22 +2638,22 @@ Creates a table element. Parameters: -`caption`: +`caption` : table [caption](#type-caption) -`colspecs`: +`colspecs` : column alignments and widths (list of [ColSpec](#type-colspec)s) -`head`: +`head` : [table head](#type-tablehead) -`bodies`: +`bodies` : [table bodies](#type-tablebody) -`foot`: +`foot` : [table foot](#type-tablefoot) -`attr`: +`attr` : element attributes Returns: [Table](#type-table) object @@ -2666,7 +2666,7 @@ Creates a [Blocks][] list. Parameters: -`block_like_elements`: +`block_like_elements` : List where each element can be treated as a [Block] value, or a single such value. @@ -2680,10 +2680,10 @@ Creates a Cite inline element Parameters: -`content`: +`content` : List of inlines -`citations`: +`citations` : List of citations Returns: [Cite](#type-cite) object @@ -2694,10 +2694,10 @@ Creates a Code inline element Parameters: -`text`: +`text` : code string -`attr`: +`attr` : additional attributes Returns: [Code](#type-code) object @@ -2708,7 +2708,7 @@ Creates an inline element representing emphasized text. Parameters: -`content`: +`content` : inline content Returns: [Emph](#type-emph) object @@ -2719,16 +2719,16 @@ Creates a Image inline element Parameters: -`caption`: +`caption` : text used to describe the image -`src`: +`src` : path to the image file -`title`: +`title` : brief image description -`attr`: +`attr` : additional attributes Returns: [Image](#type-image) object @@ -2745,16 +2745,16 @@ Creates a link inline element, usually a hyperlink. Parameters: -`content`: +`content` : text for this link -`target`: +`target` : the link target -`title`: +`title` : brief link description -`attr`: +`attr` : additional attributes Returns: [Link](#type-link) object @@ -2765,10 +2765,10 @@ Creates a Math element, either inline or displayed. Parameters: -`mathtype`: +`mathtype` : rendering specifier -`text`: +`text` : Math content Returns: [Math](#type-math) object @@ -2779,7 +2779,7 @@ Creates a math element of type "DisplayMath" (DEPRECATED). Parameters: -`text`: +`text` : Math content Returns: [Math](#type-math) object @@ -2790,7 +2790,7 @@ Creates a math element of type "InlineMath" (DEPRECATED). Parameters: -`text`: +`text` : Math content Returns: [Math](#type-math) object @@ -2801,7 +2801,7 @@ Creates a Note inline element Parameters: -`content`: +`content` : footnote block content Returns: [Note](#type-note) object @@ -2813,10 +2813,10 @@ quoted content. Parameters: -`quotetype`: +`quotetype` : type of quotes to be used -`content`: +`content` : inline content Returns: [Quoted](#type-quoted) object @@ -2827,7 +2827,7 @@ Creates a single-quoted inline element (DEPRECATED). Parameters: -`content`: +`content` : inline content Returns: [Quoted](#type-quoted) @@ -2838,7 +2838,7 @@ Creates a single-quoted inline element (DEPRECATED). Parameters: -`content`: +`content` : inline content Returns: [Quoted](#type-quoted) @@ -2849,10 +2849,10 @@ Creates a raw inline element Parameters: -`format`: +`format` : format of the contents -`text`: +`text` : string content Returns: [RawInline](#type-rawinline) object @@ -2863,7 +2863,7 @@ Creates text rendered in small caps Parameters: -`content`: +`content` : inline content Returns: [SmallCaps](#type-smallcaps) object @@ -2886,10 +2886,10 @@ Creates a Span inline element Parameters: -`content`: +`content` : inline content -`attr`: +`attr` : additional attributes Returns: [Span](#type-span) object @@ -2900,7 +2900,7 @@ Creates a Str inline element Parameters: -`text`: +`text` : content Returns: [Str](#type-str) object @@ -2911,7 +2911,7 @@ Creates text which is struck out. Parameters: -`content`: +`content` : inline content Returns: [Strikeout](#type-strikeout) object @@ -2923,7 +2923,7 @@ a bold font. Parameters: -`content`: +`content` : inline content Returns: [Strong](#type-strong) object @@ -2934,7 +2934,7 @@ Creates a Subscript inline element Parameters: -`content`: +`content` : inline content Returns: [Subscript](#type-subscript) object @@ -2945,7 +2945,7 @@ Creates a Superscript inline element Parameters: -`content`: +`content` : inline content Returns: [Superscript](#type-superscript) object @@ -2956,7 +2956,7 @@ Creates an Underline inline element Parameters: -`content`: +`content` : inline content Returns: [Underline](#type-underline) object @@ -2975,7 +2975,7 @@ Converts its argument into an [Inlines][] list: Parameters: -`inline_like_elements`: +`inline_like_elements` : List where each element can be treated as an [Inline] values, or just a single such value. @@ -2990,38 +2990,38 @@ Create a new set of attributes (Attr). Parameters: -`identifier`: +`identifier` : element identifier -`classes`: +`classes` : element classes -`attributes`: +`attributes` : table containing string keys and values Returns: [Attr](#type-attr) object -### `Cell (blocks[, align[, rowspan[, colspan[, attr]]]])` {#pandoc.attr} +### `Cell (blocks[, align[, rowspan[, colspan[, attr]]]])` {#pandoc.cell} Create a new table cell. Parameters: -`blocks`: +`blocks` : cell contents ([Blocks][]) -`align`: +`align` : text alignment; defaults to `AlignDefault` (Alignment) -`rowspan`: +`rowspan` : number of rows occupied by the cell; defaults to `1` (integer) -`colspan`: +`colspan` : number of columns spanned by the cell; defaults to `1` (integer) -`attr`: +`attr` : cell attributes ([Attr](#type-attr)) Returns: @@ -3034,22 +3034,22 @@ Creates a single citation. Parameters: -`id`: +`id` : citation identifier (like a bibtex key) -`mode`: +`mode` : citation mode -`prefix`: +`prefix` : citation prefix -`suffix`: +`suffix` : citation suffix -`note_num`: +`note_num` : note number -`hash`: +`hash` : hash number Returns: [Citation](#type-citation) object @@ -3060,13 +3060,13 @@ Creates a set of list attributes. Parameters: -`start`: +`start` : number of the first list item -`style`: +`style` : style used for list numbering -`delimiter`: +`delimiter` : delimiter of list numbers Returns: [ListAttributes](#type-listattributes) object @@ -3077,10 +3077,10 @@ Creates a table row. Parameters: -`cells`: +`cells` : list of table cells in this row -`attr`: +`attr` : row attributes ### `TableFoot ([rows[, attr]])` {#pandoc.tablefoot} @@ -3089,10 +3089,10 @@ Creates a table foot. Parameters: -`rows`: +`rows` : list of table rows -`attr`: +`attr` : table foot attributes ### `TableHead ([rows[, attr]])` {#pandoc.tablehead} @@ -3101,10 +3101,10 @@ Creates a table head. Parameters: -`rows`: +`rows` : list of table rows -`attr`: +`attr` : table head attributes ## Legacy types @@ -3116,19 +3116,19 @@ table type. Parameters: -`caption`: +`caption` : [Inlines][] -`aligns`: +`aligns` : column alignments ([List] of [Alignments](#type-alignment)) -`widths`: +`widths` : column widths; a ([List] of numbers) -`headers`: +`headers` : table header row ([List] of [Blocks][]) -`rows`: +`rows` : table rows ([List] of rows, where a row is a list of [Blocks][]) @@ -3276,7 +3276,7 @@ Creates a new [ReaderOptions] value. Parameters -`opts`: +`opts` : Either a table with a subset of the properties of a [ReaderOptions] object, or another ReaderOptions object. Uses the defaults specified in the manual for all @@ -3300,7 +3300,7 @@ Creates a new [WriterOptions][] value. Parameters -`opts`: +`opts` : Either a table with a subset of the properties of a [WriterOptions] object, or another WriterOptions object. Uses the defaults specified in the manual for all @@ -3320,9 +3320,7 @@ Usage: ## Helper functions -### pipe {#pandoc.pipe} - -`pipe (command, args, input)` +### `pipe (command, args, input)` {#pandoc.pipe} Runs command with arguments, passing it some input, and returns the output. @@ -3353,43 +3351,37 @@ Usage: local output = pandoc.pipe("sed", {"-e","s/a/b/"}, "abc") -### walk\_block {#pandoc.walk_block} - -`walk_block (element, filter)` +### `walk_block (element, filter)` {#pandoc.walk_block} Apply a filter inside a block element, walking its contents. Parameters: -`element`: +`element` : the block element -`filter`: +`filter` : a Lua filter (table of functions) to be applied within the block element Returns: the transformed block element -### walk\_inline {#pandoc.walk_inline} - -`walk_inline (element, filter)` +### `walk_inline (element, filter)` {#pandoc.walk_inline} Apply a filter inside an inline element, walking its contents. Parameters: -`element`: +`element` : the inline element -`filter`: +`filter` : a Lua filter (table of functions) to be applied within the inline element Returns: the transformed inline element -### read {#pandoc.read} - -`read (markup[, format[, reader_options]])` +### `read (markup[, format[, reader_options]])` {#pandoc.read} Parse the given string into a Pandoc document. @@ -3403,13 +3395,13 @@ retrieved from the other parsed input files. Parameters: -`markup`: +`markup` : the markup to be parsed (string) -`format`: +`format` : format specification, defaults to `"markdown"` (string) -`reader_options`: +`reader_options` : options passed to the reader; may be a ReaderOptions object or a table with a subset of the keys and values of a ReaderOptions object; defaults to the default values @@ -3428,21 +3420,19 @@ Usage: [ReaderOptions]: #type-readeroptions -### write {#pandoc.write} - -`write (doc[, format[, writer_options]])` +### `write (doc[, format[, writer_options]])` {#pandoc.write} Converts a document to the given target format. Parameters: -`doc`: +`doc` : document to convert ([Pandoc](#type-pandoc)) -`format`: +`format` : format specification, defaults to `'html'` (string) -`writer_options`: +`writer_options` : options passed to the writer; may be a WriterOptions object or a table with a subset of the keys and values of a WriterOptions object; defaults to the default values @@ -3474,18 +3464,16 @@ pandoc 2.6, this module had to be loaded explicitly. Example: Use the above for backwards compatibility. -### blocks\_to\_inlines {#pandoc.utils.blocks_to_inlines} - -`blocks_to_inlines (blocks[, sep])` +### `blocks_to_inlines (blocks[, sep])` {#pandoc.utils.blocks_to_inlines} Squash a list of blocks into a list of inlines. Parameters: -`blocks`: +`blocks` : List of [Block](#type-block) elements to be flattened. -`sep`: +`sep` : List of [Inline](#type-inline) elements inserted as separator between two consecutive blocks; defaults to `{ pandoc.Space(), pandoc.Str'ΒΆ', pandoc.Space()}`. @@ -3507,9 +3495,7 @@ Usage: -- pandoc.Emph{ pandoc.Str 'Paragraph2' } -- } -### equals {#pandoc.utils.equals} - -`equals (element1, element2)` +### `equals (element1, element2)` {#pandoc.utils.equals} Test equality of AST elements. Elements in Lua are considered equal if and only if the objects obtained by unmarshaling are @@ -3520,16 +3506,14 @@ operator instead. Parameters: -`element1`, `element2`: +`element1`, `element2` : Objects to be compared (any type) Returns: - Whether the two objects represent the same element (boolean) -### from\_simple\_table {#pandoc.utils.from_simple_table} - -`from_simple_table (table)` +### `from_simple_table (table)` {#pandoc.utils.from_simple_table} Creates a [Table] block element from a [SimpleTable]. This is useful for dealing with legacy code which was written for pandoc @@ -3547,9 +3531,7 @@ Usage: -- create normal table block again table = pandoc.utils.from_simple_table(simple) -### make\_sections {#pandoc.utils.make_sections} - -`make_sections (number_sections, base_level, blocks)` +### `make_sections (number_sections, base_level, blocks)` {#pandoc.utils.make_sections} Converts list of [Block](#type-block) elements into sections. `Div`s will be created beginning at each `Header` @@ -3601,7 +3583,7 @@ when generating bibliographies. Parameters: -`doc`: +`doc` : document ([Pandoc](#type-pandoc)) Returns: @@ -3625,13 +3607,13 @@ Filter the given doc by passing it through the a JSON filter. Parameters: -`doc`: +`doc` : the Pandoc document to filter -`filter`: +`filter` : filter to run -`args`: +`args` : list of arguments passed to the filter. Defaults to `{FORMAT}`. @@ -3781,7 +3763,7 @@ Removes a single entry from the media bag. Parameters: -`filepath`: +`filepath` : filename of the item to be deleted. The media bag will be left unchanged if no entry with the given filename exists. @@ -3800,13 +3782,13 @@ mediabag entry with the same `filepath`. Parameters: -`filepath`: +`filepath` : filename and path relative to the output folder. -`mime_type`: +`mime_type` : the file's MIME type; use `nil` if unknown or unavailable. -`contents`: +`contents` : the binary contents of the file. Usage: @@ -3873,7 +3855,7 @@ and contents. Parameters: -`filepath`: +`filepath` : name of the file to look up. Returns: @@ -3901,7 +3883,7 @@ path" setting. Parameters: -`source`: +`source` : path to a resource; either a local file path or URI Returns: @@ -3935,7 +3917,7 @@ Concatenates two lists. Parameters: -`list`: +`list` : second list concatenated to the first Returns: a new list containing all elements from list1 and @@ -3950,7 +3932,7 @@ are equal. Parameters: -`a`, `b`: +`a`, `b` : any Lua object Returns: @@ -3969,7 +3951,7 @@ Adds the given list to the end of this list. Parameters: -`list`: +`list` : list to appended ### `pandoc.List:find (needle, init)` {#pandoc.list:find} @@ -3979,10 +3961,10 @@ given item. Parameters: -`needle`: +`needle` : item to search for -`init`: +`init` : index at which the search is started Returns: first item equal to the needle, or nil if no such @@ -3995,10 +3977,10 @@ the predicate holds true. Parameters: -`pred`: +`pred` : the predicate function -`init`: +`init` : index at which the search is started Returns: first item for which \`test\` succeeds, or nil if @@ -4011,7 +3993,7 @@ condition. Parameters: -`pred`: +`pred` : condition items must satisfy. Returns: a new list containing all items for which \`test\` @@ -4023,10 +4005,10 @@ Checks if the list has an item equal to the given needle. Parameters: -`needle`: +`needle` : item to search for -`init`: +`init` : index at which the search is started Returns: true if a list item is equal to the needle, false @@ -4042,10 +4024,10 @@ This function is identical to Parameters: -`pos`: +`pos` : index of the new value; defaults to length of the list + 1 -`value`: +`value` : value to insert into the list ### `pandoc.List:map (fn)` {#pandoc.list:map} @@ -4055,7 +4037,7 @@ function to all elements. Parameters: -`fn`: +`fn` : function which is applied to all list items. ### `pandoc.List:new([table])` {#pandoc.list:new} @@ -4065,7 +4047,7 @@ set the metatable of that value to `pandoc.List`. Parameters: -`table`: +`table` : table which should be treatable as a list; defaults to an empty table @@ -4081,7 +4063,7 @@ This function is identical to Parameters: -`pos`: +`pos` : position of the list value that will be removed; defaults to the index of the last element @@ -4111,7 +4093,7 @@ This function is identical to Parameters: -`comp`: +`comp` : Comparison function as described above. # Module pandoc.path @@ -4417,10 +4399,10 @@ An error is raised if compilation fails. Parameters: -`template`: +`template` : template string (string) -`templates_path`: +`templates_path` : parameter to determine a default path and extension for partials; uses the data files templates path by default. (string) @@ -4438,7 +4420,7 @@ error if no such template can be found. Parameters: -`writer`: +`writer` : name of the writer for which the template should be retrieved; defaults to the global `FORMAT`. @@ -4458,7 +4440,7 @@ Creates a Version object. Parameters: -`version_specifier`: +`version_specifier` : Version specifier: this can be a version string like `'2.7.3'`, a list of integers like `{2, 7, 3}`, a single integer, or a [Version].