summaryrefslogtreecommitdiff
path: root/src/html.c
AgeCommit message (Collapse)Author
2019-03-17Make rendering safe by default.John MacFarlane
Removes CMARK_OPT_SAFE from options. Adds CMARK_OPT_UNSAFE, with the opposite meaning. The new default behavior is to suppress raw HTML and potentially dangerous links. The CMARK_OPT_UNSAFE option has to be set explicitly to prevent this. -------------------------------------------------------- NOTE: This change will require modifications in bindings for cmark and in most libraries and programs that use cmark. -------------------------------------------------------- Closes #239, #273. Borrows heavily from @kivikakk's patch in github/cmark-gfm#123.
2016-06-06cmark: Implement support for custom allocatorsVicent Marti
2016-03-18Add library option to render softbreaks as spacesPavlo Kapyshin
2016-03-12Don't use variable length arraysNick Wellnhofer
They're not supported by MSVC.
2016-03-12Switch from "inline" to "CMARK_INLINE"Nick Wellnhofer
Newer MSVC versions support enough of C99 to be able to compile cmark in plain C mode. Only the "inline" keyword is still unsupported. We have to use "__inline" instead.
2016-01-18Merge branch 'master' of https://github.com/mbenelli/cmark into mbenelli-masterJohn MacFarlane
2016-01-10html renderer - removed unnecessary check for 'fenced'.John MacFarlane
It's sufficient to check that the info string is empty. Indeed, those who use the API may well create a code block with an info string without explicitly setting 'fenced'.
2015-12-28Rename NODE_HTML -> NODE_HTML_BLOCK, NODE_INLINE_HTML -> NODE_HTML_INLINE.John MacFarlane
API change. Sorry, but this is the time to break things, before 1.0 is released. This matches the recent changes to CommonMark.dtd.
2015-12-22Rename hrule -> thematic_break.John MacFarlane
CMARK_NODE_HRULE -> CMARK_NODE_THEMATIC_BREAK. However we've defined the former as the latter to keep backwards compatibility. See jgm/CommonMark 8fa94cb460f5e516b0e57adca33f50a669d51f6c
2015-12-22CMARK_NODE_HEADER -> CMARK_NODE_HEADING.John MacFarlane
Defined CMARK_NODE_HEADER to CMARK_NODE_HEADING to ease the transition.
2015-12-22Rename 'header' -> 'heading'.John MacFarlane
See jgm/CommonMark commit 0cdbcee4e840abd0ac7db93797b2b75ca4104314 Note that we have defined cmark_node_get_header_level = cmark_node_get_heading_level and cmark_node_set_header_level = camrk_node_set_heading_level for backwards compatibility in the API.
2015-12-19Fixed bug in html renderer for custom nodes.John MacFarlane
2015-12-19Changed API for CUSTOM_BLOCK and CUSTOM_INLINE.John MacFarlane
Instead of using their `as.literal` content, we now give each custom node *two* literal fields, one to be printed on entering the node (before rendering the children, if any), the other on exiting (after rendering children). This gives us the flexibility to have custom nodes with children.
2015-12-19Rename RAW_BLOCK -> CUSTOM_BLOCK, RAW_INLINE -> CUSTOM_INLINE.John MacFarlane
2015-12-19Added RAW_BLOCK and RAW_INLINE node types.John MacFarlane
These are passed through verbatim by all writers, with no escaping. They are never generated by the parser, and do not correspond to CommonMark elements. They are designed to be inserted by filters that postprocess the AST. For example, a filter might convert specially marked code blocks to svg diagrams in HTML and tikz diagrams in LaTeX, passing these through to the renderer as a RAW_BLOCK.
2015-11-02Replaced sprintf with snprintf.Marco Benelli
2015-08-10Remove need to disable MSVC warning 4244Kevin Wojniak
2015-07-27Use clang-format, llvm style, for formatting.John MacFarlane
* Reformatted all source files. * Added 'format' target to Makefile. * Removed 'astyle' target. * Updated .editorconfig.
2015-07-25html renderer - use sprintf to avoid strbuf_printf.John MacFarlane
2015-07-14astyle reformatting.John MacFarlane
2015-07-13Added `CMARK_OPT_SAFE` option and `--safe` command-line flag.John MacFarlane
* Added `CMARK_OPT_SAFE`. This option disables rendering of raw HTML and potentially dangerous links. * Added `--safe` option in command-line program. * Updated `cmark.3` man page. * Added `scan_dangerous_url` to scanners. * In HTML, suppress rendering of raw HTML and potentially dangerous links if `CMARK_OPT_SAFE`. Dangerous URLs are those that begin with `javascript:`, `vbscript:`, `file:`, or `data:` (except for `image/png`, `image/gif`, `image/jpeg`, or `image/webp` mime types). * Added `api_test` for `OPT_CMARK_SAFE`. * Rewrote `README.md` on security.
2015-07-01html renderer: properly split info on first space char.John MacFarlane
See jgm/commonmark.js#54.
2015-06-16astyle formatting changes.John MacFarlane
2015-06-07Avoid strlen in html.cNick Wellnhofer
2015-06-07Convert code base to strbuf_tNick Wellnhofer
There are probably a couple of places I missed. But this will only be a problem if we use a 64-bit bufsize_t at some point. Then, we'll get warnings from -Wshorten-64-to-32.
2015-06-06astyle formatting changes.John MacFarlane
2015-05-14Store link URL and title as cmark_chunkNick Wellnhofer
2015-02-16Made 'options' an int rather than a long.John MacFarlane
For consistency with the API.
2015-02-15Removed unneeded include.John MacFarlane
2015-02-15Moved handling of --smart from renderer to parser.John MacFarlane
This allows backslash escapes to disable smart quote transformations in particular cases. Closes #8.
2015-02-14Added smart.c, smart.h with function abstracting smart punct rendering.John MacFarlane
Also fixed some bugs in earlier smart handling. Now handles UTF-8.
2015-02-14astyle changes (code formatting only).John MacFarlane
2015-02-14Improved smart quote recognition.John MacFarlane
All tests now pass.
2015-02-14Added CMARK_OPT_SMARTPUNCT and --smart option.John MacFarlane
So far this is only implemented for the HTML renderer. Ultimately some of this should be factored out into a form that can be used in other renderers.
2015-01-21Removed unnecessary strbuf_free's.John MacFarlane
2015-01-05Reformatted code consistently with astyle.John MacFarlane
2014-12-31Remove useless void* castNick Wellnhofer
2014-12-29Added options parameter to renderers.John MacFarlane
To keep the API simple and avoid API changes when new options are added, this is just a long integer. Set it by disjoining options that are defined as powers of 2: e.g. `CMARK_HTML_SOURCEPOS | CMARK_HTML_HARDREAKS`. Test options using `&`: `if (options & CMARK_HTML_SOURCEPOS)`. Added `--hardbreaks` and `--sourcepos` command-line options.
2014-12-28Rename CMARK_NODE_LIST_ITEM -> CMARK_NODE_ITEM.John MacFarlane
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-16HTML writer: fixed bug in detection of fenced code blocks.John MacFarlane
2014-12-15Re-added cmark_ prefix to strbuf and chunk.John MacFarlane
Reverts 225d720.
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-14Added empty clauses for DOCUMENT node to html and man writers.John MacFarlane
For completeness.
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-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.