summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2014-11-22Make parser accept a char*Nick Wellnhofer
2014-11-22Make render_html return a char*Nick Wellnhofer
2014-11-22Stackless HTML renderingNick Wellnhofer
Now that every node has a parent pointer, it's possible to implement the HTML rendering functions without render stacks and any dynamic memory allocations. This commit also adds some minor optimizations that eliminate some strbuf_put* calls for the common case and avoid printf for headers.
2014-11-22Fix debug flagsNick Wellnhofer
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-21html: Simplified render_stack code.John MacFarlane
Now that we have just one node type, it is not necessary to have two separate 'push' functions.
2014-11-20Added utf8proc_is_space.John MacFarlane
2014-11-20Added utf8proc_is_punctuation.John MacFarlane
We'll probably need this when the spec for emph/strong gets revised.
2014-11-19Merge pull request #208 from nwellnhof/more_accessors_and_testsJohn MacFarlane
More accessors and tests
2014-11-19cmark: Add space before '/' in img tag.John MacFarlane
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-19Add cmark_node_insert_after to cmark.hNick Wellnhofer
Fix copy/paste error.
2014-11-18Start with tests for the C APINick Wellnhofer
The C API tests can be run individually via build/api_test/api_test Or together with the spec tests via cmake --build build --target test
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-18Make render_html support nodes with no childrenNick Wellnhofer
For empty inline nodes like EMPH, the parser always creates a child containing an empty string. Using the tree manipulation API, nodes with no children can be created. Adjust render_html to cope.
2014-11-18Initialize all fields in node when creating inlines.John MacFarlane
2014-11-18html: Removed union from RenderStack.John MacFarlane
It doesn't make sense to have a union here, and this simplifies the code.
2014-11-18Improve output of tree integrity checkNick Wellnhofer
2014-11-17Make sure the emph inline added in process_emphasis has a parent.John MacFarlane
2014-11-17Set CMARK_DEBUG_NODES for debug builds.John MacFarlane
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-17Set last_child and parent in make_linkNick Wellnhofer
2014-11-17Store link labels as children in tree structureNick Wellnhofer
2014-11-17Set prev, parent and last_child for inlinesNick Wellnhofer
2014-11-17Move cmark_free_nodes to node.cNick Wellnhofer
2014-11-17Rename ast.h to parser.hNick Wellnhofer
2014-11-17Move reference type definitions to reference.hNick Wellnhofer
2014-11-17Move inline-related stuff to inlines.cNick Wellnhofer
2014-11-17Move public stuff from node.h to cmark.hNick Wellnhofer
2014-11-17Remove old node_block and node_inlNick Wellnhofer
2014-11-17Switch cmark_node_inl over to cmark_nodeNick Wellnhofer
2014-11-17Switch cmark_node_block over to cmark_nodeNick Wellnhofer
2014-11-17Start with unified nodesNick Wellnhofer
2014-11-16Free the string returned by html renderer in main program.John MacFarlane
2014-11-16Moved refmap from the top-level block node to the doc_parser.John MacFarlane
2014-11-16Added some basic functions for traversing/editing blocks in AST.John MacFarlane
2014-11-16Export enums for inline, block types, list and list delim types.John MacFarlane
Also switched from `bullet`, `ordered`, `parens`, `period` to `CMARK_BULLET_LIST`, `CMARK_ORDERED_LIST`, `CMARK_PAREN_DELIM`, `CMARK_PERIOD_DELIM`.
2014-11-16Moved MAX_LINK_LABEL_LENGTH out of public header.John MacFarlane
Put it in ast.h.
2014-11-16Removed CMARK_CODE_INDENT, CODE_INDENT from public header.John MacFarlane
Now it's in blocks.c, the only module that uses it.
2014-11-16Added targets to regenerate html_unescape.h and case_fold_switch.inc.John MacFarlane
For now these are just in the regular Makefile, not in CMakeLists.txt, since the generated files are in the repo and shouldn't ordinarily be regenerated. Note that html_unescape.h is a bit different on regeneration, and this removes error messages we were getting with Clang.