summaryrefslogtreecommitdiff
path: root/src/inlines.c
AgeCommit message (Collapse)Author
2014-12-25Improved rules for emphasis and strong emphasis.John MacFarlane
This improves parsing of emphasis around punctuation. Background: http://talk.commonmark.org/t/emphasis-inside-strong-broken-in-js-implementation-when-parenthesis-involved/903/6 The basic idea of the change is that if the delimiter is part of a delimiter clump that has punctuation to the left and a normal character (non-space, non-punctuation) to the right, it can only be an opener. If it has punctuation to the right and a normal character (non-space, non-punctuation) to the left, it can only be a closer. This handles cases like **Gomphocarpus (*Gomphocarpus physocarpus*, syn. *Asclepias physocarpa*)** and **foo "*bar*" foo** better than before. The spec section on Emphasis and Strong Emphasis has been extensively revised. The C and JS implementations have been brought up to date, and all tests pass.
2014-12-15Re-added cmark_ prefix to strbuf and chunk.John MacFarlane
Reverts 225d720.
2014-12-14Added comment.John MacFarlane
2014-12-14Use UTF-8 sensitive functions to check for spaces around emph markers.John MacFarlane
2014-12-14Rename CMARK_NODE_INLINE_CODE -> CMARK_NODE_CODE.John MacFarlane
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-04Moved source files from src/html into src.John MacFarlane
The separate directory presents problems for some simple extension building systems, like luarocks.
2014-11-30Rename member first_inline to inl_text in struct delimiterNick Wellnhofer
2014-11-30Eliminate delim_count in struct delimiterNick Wellnhofer
Use literal length instead.
2014-11-30Simplify remove_delimiterNick Wellnhofer
2014-11-30Simplify push_delimiterNick Wellnhofer
Always modify the subject when pushing a delimiter.
2014-11-30Rename delimiter_stack to delimiterNick Wellnhofer
The struct actually describes a delimiter. I also find it conceptually much clearer to think of a doubly linked list of delimiters than a stack.
2014-11-29Merge pull request #227 from nwellnhof/process_emphJohn MacFarlane
Optimize and clarify process_emph
2014-11-29Check for `[` character in `link_label`.John MacFarlane
Closes #226.
2014-11-29Clarify code in insert_emphNick Wellnhofer
2014-11-29Add local variable for closer inlineNick Wellnhofer
2014-11-29Optimize emph insertionNick Wellnhofer
Avoid unnecessary malloc/free if opener is removed.
2014-11-29Remove redundant codeNick Wellnhofer
next/prev pointers are handled by cmark_node_free.
2014-11-29Split process_emphasis into two functionsNick Wellnhofer
Makes the code more readable.
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-28Clarified logic in remove_delimiter.John MacFarlane
Motivated by warnings from clang static analyzer.
2014-11-28Use prefixed names for symbols from references.hNick Wellnhofer
2014-11-28Use prefixed names for symbols from inlines.hNick Wellnhofer
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-22Fixed #214 C and JS implementations.John MacFarlane
They were gobbling whitespace after shortcut reference links, e.g. [foo] bar [foo]: url Closes #214.
2014-11-18Initialize all fields in node when creating inlines.John MacFarlane
2014-11-17Make sure the emph inline added in process_emphasis has a parent.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-17Rename ast.h to parser.hNick Wellnhofer
2014-11-17Move inline-related stuff to inlines.cNick Wellnhofer
2014-11-17Switch cmark_node_inl over to cmark_nodeNick 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-16Rename variables named 'new'Nick Wellnhofer
Needed for C++ compatibility.
2014-11-16Cast void pointers explicitlyNick Wellnhofer
Needed for C++ compatibility.
2014-11-16Moved AST details from public header cmark.h to private ast.h.John MacFarlane
2014-11-15Don't expose append_inlines.John MacFarlane
2014-11-13Removed ast modules, moved these defs back to cmark.h.John MacFarlane
2014-11-13Moved ast-manipulating functions from inlines to ast.John MacFarlane
2014-11-13inline static -> static inline for consistency.John MacFarlane
2014-11-13Moved cmark_free_inlines from inlines to ast.John MacFarlane
2014-11-12Merge pull request #195 from nwellnhof/fix_namespace_pollutionJohn MacFarlane
Fix namespace pollution
2014-11-12Mark some functions as staticNick Wellnhofer
2014-11-12Removed some no-longer-used code in C impl.John MacFarlane
2014-11-11Don't include debug.h in any production code.John MacFarlane
It uses some GNU-specific things.
2014-11-10Fixed memory allocation bug.John MacFarlane
2014-11-10Allow images to contain images.John MacFarlane