From d0cadaf1a67c69016c4ab534d1560b22c03b0ed7 Mon Sep 17 00:00:00 2001 From: Jeroen van Rijn Date: Tue, 30 Aug 2022 00:54:12 +0200 Subject: [PATCH] Add CMark bindings --- vendor/README.md | 9 +- vendor/cmark/LICENSE | 170 +++++++++++++++ vendor/cmark/cmark.dll | Bin 0 -> 204288 bytes vendor/cmark/cmark.lib | Bin 0 -> 17308 bytes vendor/cmark/cmark.odin | 464 ++++++++++++++++++++++++++++++++++++++++ vendor/cmark/doc.odin | 118 ++++++++++ 6 files changed, 760 insertions(+), 1 deletion(-) create mode 100644 vendor/cmark/LICENSE create mode 100644 vendor/cmark/cmark.dll create mode 100644 vendor/cmark/cmark.lib create mode 100644 vendor/cmark/cmark.odin create mode 100644 vendor/cmark/doc.odin diff --git a/vendor/README.md b/vendor/README.md index 628ea2727..b5f7b1e52 100644 --- a/vendor/README.md +++ b/vendor/README.md @@ -134,4 +134,11 @@ See also LICENSE in the `GGPO` directory itself. `botan.lib` is available under Botan's [BSD](https://botan.randombit.net/license.txt) license. See also LICENSE in the `botan` directory itself. -Includes full bindings as well as wrappers to match the `core:crypto` API. \ No newline at end of file +Includes full bindings as well as wrappers to match the `core:crypto` API. + +## CMark + +[CMark](https://github.com/commonmark/cmark) CommonMark parsing library. + +See also LICENSE in the `cmark` directory itself. +Includes full bindings and Windows `.lib` and `.dll`. \ No newline at end of file diff --git a/vendor/cmark/LICENSE b/vendor/cmark/LICENSE new file mode 100644 index 000000000..c87c7a615 --- /dev/null +++ b/vendor/cmark/LICENSE @@ -0,0 +1,170 @@ +Copyright (c) 2014, John MacFarlane + +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +----- + +houdini.h, houdini_href_e.c, houdini_html_e.c, houdini_html_u.c + +derive from https://github.com/vmg/houdini (with some modifications) + +Copyright (C) 2012 Vicent Martí + +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. + +----- + +buffer.h, buffer.c, chunk.h + +are derived from code (C) 2012 Github, Inc. + +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. + +----- + +utf8.c and utf8.c + +are derived from utf8proc +(), +(C) 2009 Public Software Group e. V., Berlin, Germany. + +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. + +----- + +The normalization code in normalize.py was derived from the +markdowntest project, Copyright 2013 Karl Dubost: + +The MIT License (MIT) + +Copyright (c) 2013 Karl Dubost + +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. + +----- + +The CommonMark spec (test/spec.txt) is + +Copyright (C) 2014-15 John MacFarlane + +Released under the Creative Commons CC-BY-SA 4.0 license: +. + +----- + +The test software in test/ is + +Copyright (c) 2014, John MacFarlane + +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file diff --git a/vendor/cmark/cmark.dll b/vendor/cmark/cmark.dll new file mode 100644 index 0000000000000000000000000000000000000000..39deedf1fe0000f250f59a55d0354ee916af3166 GIT binary patch literal 204288 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

~KD~2~<4E*t8G5!7Yw{&nl`qG-ydEp_O<0@9 ausZL;`n($}^g~#q4`7u}8UEk*`#%6X>b3;{ literal 0 HcmV?d00001 diff --git a/vendor/cmark/cmark.lib b/vendor/cmark/cmark.lib new file mode 100644 index 0000000000000000000000000000000000000000..03070a6d6bbbb683b2808d90b5cf7f6a19d880ad GIT binary patch literal 17308 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 j?@dLl (res: Version_Info) --- + version_string :: proc() -> (res: cstring) --- +} + +// Simple API +@(default_calling_convention="c", link_prefix="cmark_") +foreign lib { + // Convert 'text' (assumed to be a UTF-8 encoded string with length `len`) from CommonMark Markdown to HTML + // returning a null-terminated, UTF-8-encoded string. It is the caller's responsibility + // to free the returned buffer. + markdown_to_html :: proc(text: cstring, length: c.size_t, options: Options) -> (html: cstring) --- +} + +// Custom allocator - Defines the memory allocation functions to be used by CMark +// when parsing and allocating a document tree +Allocator :: struct { + calloc: proc(c.size_t, c.size_t) -> rawptr, + realloc: proc(rawptr, c.size_t) -> rawptr, + free: proc(rawptr), +} + +@(default_calling_convention="c", link_prefix="cmark_") +foreign lib { + // Returns a pointer to the default memory allocator. + get_default_mem_allocator :: proc() -> (mem: ^Allocator) --- +} + +bufsize_t :: distinct i32 + +// Node creation, destruction, and tree traversal +Node :: struct { + mem: ^Allocator, + + next: ^Node, + prev: ^Node, + parent: ^Node, + first_child: ^Node, + last_child: ^Node, + + user_data: rawptr, + data: [^]u8, + len: bufsize_t, + + start_line: c.int, + start_column: c.int, + end_line: c.int, + end_column: c.int, + + type: Node_Type, + flags: Node_Flags, + + as: struct #raw_union { + list: List, + code: Code, + heading: Heading, + link: Link, + custom: Custom, + html_block_type: c.int, + }, +} + +Node_Flag :: enum u16 { + Open = 0, + Last_Line_Blank = 1, + Last_Line_Checked = 2, +} +Node_Flags :: bit_set[Node_Flag; u16] + +List :: struct { + marker_offset: c.int, + padding: c.int, + start: c.int, + list_type: u8, + delimiter: u8, + bullet_char: u8, + tight: c.bool, +} + +Code :: struct { + info: cstring, + fence_length: u8, + fence_offset: u8, + fence_char: u8, + fenced: b8, +} + +Heading :: struct { + internal_offset: c.int, + level: i8, + setext: c.bool, +} + + +Link :: struct { + url: cstring, + title: cstring, +} + +Custom :: struct { + on_enter: cstring, + on_exit: cstring, +} + +@(default_calling_convention="c", link_prefix="cmark_") +foreign lib { + // Creates a new node of type 'type'. + // Note that the node may have other required properties, which it is the caller's responsibility + // to assign. + node_new :: proc(type: Node_Type) -> (node: ^Node) --- + + // Same as `node_new`, but explicitly listing the memory allocator used to allocate the node. + // Note: be sure to use the same allocator for every node in a tree, or bad things can happen. + node_new_with_mem :: proc(type: Node_Type, mem: ^Allocator) -> (node: ^Node) --- + + // Frees the memory allocated for a node and any children. + node_free :: proc(node: ^Node) --- + + /* + Tree Traversal + */ + // Returns the next node in the sequence after `node`, or nil if there is none. + node_next :: proc(node: ^Node) -> (next: ^Node) --- + + // Returns the previous node in the sequence after `node`, or nil if there is none. + node_previous :: proc(node: ^Node) -> (prev: ^Node) --- + + // Returns the parent of `node`, or nil if there is none. + node_parent :: proc(node: ^Node) -> (parent: ^Node) --- + + // Returns the first child of `node`, or nil if `node` has no children. + node_first_child :: proc(node: ^Node) -> (child: ^Node) --- + + // Returns the last child of `node`, or nil if `node` has no children. + node_last_child :: proc(node: ^Node) -> (child: ^Node) --- + +} + +Iter :: distinct rawptr + +Event_Type :: enum c.int { + None, + Done, + Enter, + Exit, +} + +@(default_calling_convention="c", link_prefix="cmark_") +foreign lib { + // Creates a new iterator starting at 'root'. The current node and event + // type are undefined until `iter_next` is called for the first time. + // The memory allocated for the iterator should be released using + // 'iter_free' when it is no longer needed. + iter_new :: proc(root: ^Node) -> (iter: ^Iter) --- + + // Frees the memory allocated for an iterator. + iter_free :: proc(iter: ^Iter) --- + + // Advances to the next node and returns the event type (`.Enter`, `.Exit`, `.Done`) + iter_next :: proc(iter: ^Iter) -> (event_type: Event_Type) --- + + // Returns the current node. + iter_get_node :: proc(iter: ^Iter) -> (node: ^Node) --- + + // Returns the current event type. + iter_get_event_type :: proc(iter: ^Iter) -> (event_type: Event_Type) --- + + // Returns the root node. + iter_get_root :: proc(iter: ^Iter) -> (root: ^Node) --- + + // Resets the iterator so that the current node is `current` and + // the event type is `event_type`. The new current node must be a + // descendant of the root node or the root node itself. + iter_reset :: proc(iter: ^Iter, current: ^Node, event_type: Event_Type) --- +} + +// Accessors +@(default_calling_convention="c", link_prefix="cmark_") +foreign lib { + // Returns the user data of `node`. + node_get_user_data :: proc(node: ^Node) -> (user_data: rawptr) --- + + // Sets arbitrary user data for `node`. Returns `true` on success, `false` on failure. + node_set_user_data :: proc(node: ^Node, user_data: rawptr) -> (success: b32) --- + + // Returns the type of `node`, or `.None` on error. + node_get_type :: proc(node: ^Node) -> (node_type: Node_Type) --- + + // Like `node_get_type`, but returns a string representation of the type, or "". + node_get_type_string :: proc(node: ^Node) -> (node_type: cstring) --- + + // Returns the string contents of `node`, or an empty string if none is set. + // Returns `nil` if called on a node that does not have string content. + node_get_literal :: proc(node: ^Node) -> (content: cstring) --- + + // Sets the string contents of `node`. Returns `true` on success, `false` on failure. + node_set_literal :: proc(node: ^Node, content: cstring) -> (success: b32) --- + + // Returns the heading level of `node`, or 0 if `node` is not a heading. + node_get_heading_level :: proc(node: ^Node) -> (level: c.int) --- + + // Sets the heading level of `node`. Returns `true` on success, `false` on failure. + node_set_heading_level :: proc(node: ^Node, level: c.int) -> (success: b32) --- + + // Returns the list type of `node`, or `.No_List` if not a list. + node_get_list_type :: proc(node: ^Node) -> (list_type: List_Type) --- + + // Sets the list type of `node`. Returns `true` on success, `false` on failure. + node_set_list_type :: proc(node: ^Node, list_type: List_Type) -> (success: b32) --- + + // Returns the list delimiter type of `node`, or `.No_Delim` if not a list. + node_get_list_delim :: proc(node: ^Node) -> (delim_type: Delim_Type) --- + + // Sets the delimiter type of `node`. Returns `true` on success, `false` on failure. + node_set_list_delim :: proc(node: ^Node, delim_type: Delim_Type) -> (success: b32) --- + + // Returns starting number of `node`, if it is an ordered list, otherwise 0. + node_get_list_start :: proc(node: ^Node) -> (start: c.int) --- + + // Sets starting number of `node`, if it is an ordered list. + // Returns `true` on success, `false` on failure. + node_set_list_start :: proc(node: ^Node, start: c.int) -> (success: b32) --- + + // Returns `true` if `node` is a tight list, `false` otherwise. + node_get_list_tight :: proc(node: ^Node) -> (tight: b32) --- + + // Sets the "tightness" of a list. Returns `true` on success, `false` on failure. + node_set_list_tight :: proc(node: ^Node, tight: b32) -> (success: b32) --- + + // Returns the info string from a fenced code block. + get_fence_info :: proc(node: ^Node) -> (fence_info: cstring) --- + + // Sets the info string in a fenced code block, returning `true` on success and `false` on failure. + node_set_fence_info :: proc(node: ^Node, fence_info: cstring) -> (success: b32) --- + + // Returns the URL of a link or image `node`, or an empty string if no URL is set. + // Returns nil if called on a node that is not a link or image. + node_get_url :: proc(node: ^Node) -> (url: cstring) --- + + // Sets the URL of a link or image `node`. Returns `true` on success, `false` on failure. + node_set_url :: proc(node: ^Node, url: cstring) -> (success: b32) --- + + // Returns the title of a link or image `node`, or an empty string if no title is set. + // Returns nil if called on a node that is not a link or image. + node_get_title :: proc(node: ^Node) -> (title: cstring) --- + + // Sets the title of a link or image `node`. Returns `true` on success, `false` on failure. + node_set_title :: proc(node: ^Node, title: cstring) -> (success: b32) --- + + // Returns the literal "on enter" text for a custom `node`, or an empty string if no on_enter is set. + // Returns nil if called on a non-custom node. + node_get_on_enter :: proc(node: ^Node) -> (on_enter: cstring) --- + + // Sets the literal text to render "on enter" for a custom `node`. + // Any children of the node will be rendered after this text. + // Returns `true` on success, `false`on failure. + node_set_on_enter :: proc(node: ^Node, on_enter: cstring) -> (success: b32) --- + + // Returns the line on which `node` begins. + node_get_start_line :: proc(node: ^Node) -> (line: c.int) --- + + // Returns the column at which `node` begins. + node_get_start_column :: proc(node: ^Node) -> (column: c.int) --- + + // Returns the line on which `node` ends. + node_get_end_line :: proc(node: ^Node) -> (line: c.int) --- + + // Returns the column at which `node` ends. + node_get_end_column :: proc(node: ^Node) -> (column: c.int) --- +} + +// Tree Manipulation +@(default_calling_convention="c", link_prefix="cmark_") +foreign lib { + // Unlinks a `node`, removing it from the tree, but not freeing its memory. + // (Use `node_free` for that.) + node_unlink :: proc(node: ^Node) --- + + // Inserts 'sibling' before `node`. Returns `true` on success, `false` on failure. + node_insert_before :: proc(node: ^Node, sibling: ^Node) -> (success: b32) --- + + // Inserts 'sibling' after `node`. Returns `true` on success, `false` on failure. + node_insert_after :: proc(node: ^Node, sibling: ^Node) -> (success: b32) --- + + // Replaces 'oldnode' with 'newnode' and unlinks 'oldnode' + // (but does not free its memory). + // Returns `true` on success, `false` on failure. + node_replace :: proc(old_node: ^Node, new_node: ^Node) -> (success: b32) --- + + // Adds 'child' to the beginning of the children of `node`. + // Returns `true` on success, `false` on failure. + node_prepend_child :: proc(node: ^Node, child: ^Node) -> (success: b32) --- + + // Adds 'child' to the end of the children of `node`. + // Returns `true` on success, `false` on failure. + node_append_child :: proc(node: ^Node, child: ^Node) -> (success: b32) --- + + // Consolidates adjacent text nodes. + consolidate_text_nodes :: proc(root: ^Node) --- +} + +Parser :: distinct rawptr + +@(default_calling_convention="c", link_prefix="cmark_") +foreign lib { + // Creates a new parser object. + parser_new :: proc(options: Options) -> (parser: ^Parser) --- + + // Creates a new parser object with the given memory allocator. + parser_new_with_mem :: proc(options: Options, mem: ^Allocator) -> (parser: ^Parser) --- + + // Frees memory allocated for a parser object. + parser_free :: proc(parser: ^Parser) --- + + // Feeds a string of length 'len' to 'parser'. + parser_feed :: proc(parser: ^Parser, buffer: [^]byte, len: c.size_t) --- + + // Finish parsing and return a pointer to a tree of nodes. + parser_finish :: proc(parser: ^Parser) -> (root: ^Node) --- + + // Parse a CommonMark document in 'buffer' of length 'len'. + // Returns a pointer to a tree of nodes. The memory allocated for + // the node tree should be released using 'node_free' when it is no longer needed. + parse_document :: proc(buffer: [^]byte, len: c.size_t, options: Options) -> (root: ^Node) --- + + // Parse a CommonMark document in file 'f', returning a pointer to a tree of nodes. + // The memory allocated for the node tree should be released using 'node_free' + // when it is no longer needed. + // + // Called `parse_from_libc_file` so as not to confuse with Odin's file handling. + + @(link_name = "parse_from_file") + parse_from_libc_file :: proc(file: ^libc.FILE, options: Options) -> (root: ^Node) --- +} + +// Rendering +@(default_calling_convention="c", link_prefix="cmark_") +foreign lib { + // Render a `node` tree as XML. + // It is the caller's responsibilityto free the returned buffer. + render_xml :: proc(root: ^Node, options: Options) -> (xml: cstring) --- + + // Render a `node` tree as an HTML fragment. + // It is up to the user to add an appropriate header and footer. + // It is the caller's responsibility to free the returned buffer. + render_html :: proc(root: ^Node, options: Options) -> (html: cstring) --- + + // Render a `node` tree as a groff man page, without the header. + // It is the caller's responsibility to free the returned buffer. + render_man :: proc(root: ^Node, options: Options, width: c.int) -> (groff: cstring) --- + + // Render a `node` tree as a commonmark document. + // It is the caller's responsibility to free the returned buffer. + render_commonmark :: proc(root: ^Node, options: Options, width: c.int) -> (commonmark: cstring) --- + + // Render a `node` tree as a LaTeX document. + // It is the caller's responsibility to free the returned buffer. + render_latex :: proc(root: ^Node, options: Options, width: c.int) -> (latex: cstring) --- +} + +// Helpers to free results from `render_*`. +free_rawptr :: proc (ptr: rawptr) { + cmm := get_default_mem_allocator() + cmm.free(ptr) +} +free_cstring :: proc (str: cstring) { + free_rawptr(rawptr(str)) +} +free :: proc{free_rawptr, free_cstring} \ No newline at end of file diff --git a/vendor/cmark/doc.odin b/vendor/cmark/doc.odin new file mode 100644 index 000000000..b87b25b61 --- /dev/null +++ b/vendor/cmark/doc.odin @@ -0,0 +1,118 @@ +// +ignore +/* + Bindings against CMark (https://github.com/commonmark/cmark) + + Original authors: John MacFarlane, Vicent Marti, Kārlis Gaņģis, Nick Wellnhofer. + See LICENSE for license details. +*/ +package cmark + +/* + Parsing - Simple interface: + + ```odin + import cm "vendor:cmark" + + hellope_world :: proc() { + fmt.printf("CMark version: %v\n", cm.version_string()) + + str := "Hellope *world*!" + root := cm.parse_document(raw_data(str), len(str), cm.DEFAULT_OPTIONS) + defer cm.node_free(root) + + html := cm.render_html(root, cm.DEFAULT_OPTIONS) + defer cm.free(html) + + fmt.println(html) + } + ``` + + Parsing - Streaming interface: + + ```odin + import cm "vendor:cm" + + streaming :: proc() { + using cm + + STR :: "Hellope *world*!\n\n" + N :: 50 + STREAM_SIZE :: 42 + + str_buf: [len(STR) * N]u8 + for i in 0.. STREAM_SIZE { + parser_feed(parser, raw_data(buf), STREAM_SIZE) + buf = buf[STREAM_SIZE:] + } + + if len(buf) > 0 { + parser_feed(parser, raw_data(buf), len(buf)) + buf = buf[len(buf):] + } + + root := parser_finish(parser) + defer cm.node_free(root) + + html := cm.render_html(root, cm.DEFAULT_OPTIONS) + defer cm.free(html) + + fmt.println(html) + } + + + ``` + + An iterator will walk through a tree of nodes, starting from a root + node, returning one node at a time, together with information about + whether the node is being entered or exited. + + The iterator will first descend to a child node, if there is one. + When there is no child, the iterator will go to the next sibling. + When there is no next sibling, the iterator will return to the parent + (but with an `Event_Type.Exit`). + + The iterator will return `.Done` when it reaches the root node again. + + One natural application is an HTML renderer, where an `.Enter` event + outputs an open tag and an `.Exit` event outputs a close tag. + + An iterator might also be used to transform an AST in some systematic + way, for example, turning all level-3 headings into regular paragraphs. + + ```odin + usage_example(root: ^Node) { + ev_type: Event_Type + iter := iter_new(root) + defer iter_free(iter) + for { + ev_type = iter_next(iter) + if ev_type == .Done do break + cur := iter_get_node(iter) + // Do something with `cur` and `ev_type` + } + } + ``` + + Iterators will never return `.Exit` events for leaf nodes, + which are nodes of type: + + * HTML_Block + * Thematic_Break + * Code_Block + * Text + * Soft_Break + * Line_Break + * Code + * HTML_Inline + + Nodes must only be modified after an `.Exit` event, or an `.Enter` event for + leaf nodes. +*/ \ No newline at end of file