aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
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.
2014-11-16Move inline function definitions to header filesNick Wellnhofer
Inline functions must be defined in header files in order to be inlined in other compilation units. This also fixes the MSVC build where out-of-line versions weren't created and allows to remove the -fgnu89-inline flag.
2014-11-16Feature test for GCC attributesNick Wellnhofer
2014-11-16Look for re2c in path when compiling with MSVCNick Wellnhofer
2014-11-16Feature test for __builtin_expectNick Wellnhofer
2014-11-16Remove unneeded va_copyNick Wellnhofer
va_copy isn't needed here. See http://stackoverflow.com/questions/26953289 Remove it because it isn't part of C89 and not implemented by MSVC.
2014-11-16Compile as C++ under MSVCNick Wellnhofer
2014-11-16Declare all functions as extern "C"Nick Wellnhofer
2014-11-16Probe for stdbool.hNick Wellnhofer
Let cmake create a cmark_config.h file to deal with platforms missing stdbool.h.
2014-11-16Don't use variable-length arraysNick Wellnhofer
They're not supported by MSVC.
2014-11-16Remove unneeded #includesNick Wellnhofer
Fixes cross-platform issues.
2014-11-16Use named enum typesNick Wellnhofer
Needed for C++ compatibility.
2014-11-16Create html_unescape.h as ANSI CNick Wellnhofer
Pass -L ANSI-C to gperf to create more compatible code.
2014-11-16Rename variables named 'new'Nick Wellnhofer
Needed for C++ compatibility.
2014-11-16Cast void pointers explicitlyNick Wellnhofer
Needed for C++ compatibility.
2014-11-16We don't need to include stdbool in the public header.John MacFarlane
2014-11-16Moved inline/block-making functions to ast.h.John MacFarlane
Now we no longer depend on buffer.h or chunk.h in the public API. Install cmark.h and cmark_export.h into PREFIX/include instead of PREFIX/include/cmark.
2014-11-16cmark_render_html now just returns a regular C string.John MacFarlane
This way, we don't have to expose buffer.h; it is just used internally.
2014-11-16Moved AST details from public header cmark.h to private ast.h.John MacFarlane
2014-11-16Rename include guards for consistency and to avoid reserved identifiersCraig Barnes
2014-11-15Workaround to add -fvisibility=hidden for older versions of cmake.John MacFarlane
2014-11-15Don't expose append_inlines.John MacFarlane
2014-11-15Fixed install target in src/CMakeLists.John MacFarlane
Use proper include directory, include needed headers chunk.h and references.h.
2014-11-15Expose lower-level parsing API.John MacFarlane
The new functions cmark_new_doc_parser, cmark_free_doc_parser, cmark_process_line, and cmark_finish allow you to feed lines one by one (possibly from several files) to the parser and call finish when you're done. This is now used in main for mulitple files.