aboutsummaryrefslogtreecommitdiff
path: root/src/node.c
AgeCommit message (Collapse)Author
2014-12-28Added cmark_node_set_list_delim, cmark_node_get_list_delim.John MacFarlane
Even though this doesn't make a difference in default HTML output, it's worth keeping track; some output formats may allow you to distinguish lists with `1)` and with `1.` delimiters.
2014-12-28Added end_column to cmark_node struct.John MacFarlane
API exports cmark_node_get_column. XML writer indicates start and end line and column for block-level nodes.
2014-12-28Rename CMARK_NODE_LIST_ITEM -> CMARK_NODE_ITEM.John MacFarlane
2014-12-28Rename cmark_node_type_string -> cmark_node_get_type_string.John MacFarlane
And export in cmark.h public header. Also, use lowercase names, not uppercase.
2014-12-28Expose cmark_node_type_string in node.h (private header).John MacFarlane
Previously was static function S_type_string.
2014-12-16Added 'literal' field to 'code' struct.John MacFarlane
In the last few commits we were using as.code.fenced and as.literal at the same time for NODE_CODE_BLOCK, which obviously led to problems.
2014-12-15Re-added cmark_ prefix to strbuf and chunk.John MacFarlane
Reverts 225d720.
2014-12-14Rename get/set_string_content -> get/set_literal.John MacFarlane
2014-12-14Use chunk for fenced code info, instead of strbuf.John MacFarlane
2014-12-14Use as.literal instead of string_content for HTML and code blocks.John MacFarlane
This is for consistency with the other types of nodes that have literal strings as contents.
2014-12-14Rename CMARK_NODE_INLINE_CODE -> CMARK_NODE_CODE.John MacFarlane
2014-12-13Added iterator interface to API, removed cmark_walk.John MacFarlane
* Added `iterator.c`, `iterator.h`. * Removed `cmark_walk`. * Replaced `cmark_walk` with iterator in HTML renderer. * Replaced API test for `cmark_walk` with simple iterator test.
2014-12-13API improvements: cmark_event_type parameter for walk handlers.John MacFarlane
Added cmark_event_type enum, which is used as the second parameter of the handler passed to cmark_walk. See #224.
2014-12-13Remove CMARK_NODE_REFERENCE_DEF from API.John MacFarlane
Modified finalize in blocks.c to return parent of finalized block, so we can handle the case of reference definitions, when we simply remove the finalized block.
2014-12-13Removed cmark_ prefix on chunk and strbuf.John MacFarlane
This isn't needed any more since we don't expose these in the API.
2014-12-12Revert "Removed CMARK_NODE_REFERENCE_DEF from API."John MacFarlane
This reverts commit b598b52a4acdc2332be3d34e30237d1b93b7dd03. The change led to some problems, because some of the callers of 'finalize' expected the node to exist after the call. This could all be rewritten, but for now let's just revert.
2014-12-12Removed CMARK_NODE_REFERENCE_DEF from API.John MacFarlane
There's no reason to store these empty nodes in the API. The references have already been resolved.
2014-12-12Rewrote HTML renderer using cmark_walk.John MacFarlane
This version is shorter, more readable, and more regular. It should serve as a template for creating new writers. Performance is the same. All tests pass.
2014-12-12Added cmark_node_handler and cmark_walk to header.John MacFarlane
2014-12-05Revert "API change: Add cmark_node_set_type for completeness."John MacFarlane
This reverts commit 6c1f76a8a22f6c84231e5101f0950ce353ec8075.
2014-12-05API change: Add cmark_node_set_type for completeness.John MacFarlane
2014-12-05node.c: Make sure no functions segfault if passed null pointers.John MacFarlane
2014-12-05Changed CMARK_NODE_NONE from -1 to 0.John MacFarlane
This is more consistent with CMARK_LIST_NONE, etc.
2014-12-05Added CMARK_NODE_TYPE_NONE.John MacFarlane
This is the return value of cmark_get_node_type when the argument is a null pointer. Avoids segfault.
2014-11-29Fix prev pointer of emph->first_childNick Wellnhofer
2014-11-28Removed cmark_free_nodes from public API.John MacFarlane
Replace it with static S_free_nodes.
2014-11-28Renamed identifiers in public API:John MacFarlane
cmark_doc_parser => cmark_parser cmark_new_doc_parser => cmark_parser_new cmark_free_doc_parser => cmark_parser_free cmark_finish => cmark_parser_finish cmark_process_line => cmark_parser_process_line cmark_node_destroy => cmark_node_free Closes #223.
2014-11-26Don't allow insert_{before|after} root nodeNick Wellnhofer
This can be changed if support for node lists is added to the public API.
2014-11-25Rename NODE_STRING -> NODE_TEXT.John MacFarlane
In JS, use 'Text' instead of 'Str'. In spec, use "plain textual content" instead of "strings."
2014-11-23Do not distinguish btw fenced and indented code in AST.John MacFarlane
Use a single CMARK_NODE_CODE_BLOCK tag for both. Distinguish them when needed for parsing by looking at the fence_length attribute, which is 0 for indented blocks.
2014-11-23Revert "Revert "Remove distinction btw atx and setext header in AST.""John MacFarlane
This reverts commit 4570eb2bff2e1b71fa5b6408abbc69c98ff5ff24.
2014-11-22Revert "Remove distinction btw atx and setext header in AST."John MacFarlane
This reverts commit a71423f6ee1b77d9f79d42599ea00b4ca99f5da0. Not quite sure about this change, so reverting for now. Note that we still have a distinction between fenced and indented code blocks in the AST. These two distinctions seem to stand or fall together.
2014-11-22Remove distinction btw atx and setext header in AST.John MacFarlane
Now we just have 'header' -- Setext and ATX are just two ways of forming these; it's not a semantic difference that should remain in the AST.
2014-11-22Renamed NODE_BQUOTE -> NODE_BLOCK_QUOTE.John MacFarlane
2014-11-22Fix and test node_checkNick Wellnhofer
2014-11-22Set defaults for new headers and listsNick Wellnhofer
2014-11-22More tree hierarchy checks and testsNick Wellnhofer
2014-11-19Input validation for settersNick Wellnhofer
2014-11-19Fix {get|set}_string_contentNick Wellnhofer
2014-11-19Accessors for start_line, start_column, end_lineNick Wellnhofer
These are read-only as they're only metadata returned by the parser.
2014-11-19Accessors for link titlesNick Wellnhofer
2014-11-19Accessors for fence infoNick Wellnhofer
Only fence info should be relevant for rendering. Accessors for other fenced code data could be added for completeness but they don't seem very useful.
2014-11-19Accessors for list dataNick Wellnhofer
Only 'list_type', 'start', and 'tight' should be relevant for rendering. Accessors for other list data could be added for completeness but they don't seem very useful.
2014-11-19Accessors for header levelNick Wellnhofer
2014-11-19Accessors for string content of code and HTML blocksNick Wellnhofer
2014-11-19Rename {get|set}_content to {get|set}_string_contentNick Wellnhofer
2014-11-18Add node constructor and accessors to the public APINick Wellnhofer
The approach I'm taking is to copy inline literals internally to NULL-terminated C strings if requested by an accessor. This allows to return a 'const char *' that doesn't have to be freed by the caller.
2014-11-18Improve output of tree integrity checkNick Wellnhofer
2014-11-17Make parse_inlines add directly to parent.John MacFarlane
Previously parse_inlines returned a list of parsed inlines. This had to be added to the parent, and fix_parents had to be called to manually add the 'parent' links to the children, and the 'last_child' link to the parent. Now parse_inlines takes the parent block as a parameter, and uses cmark_node_append_child to add the children, so that the pointers should be properly managed. This avoids the need for the fix_parents pass.
2014-11-17Store link labels as children in tree structureNick Wellnhofer