Log

Author Commit Date CI Message
Martin Mitas 7906f4ee 2017-08-30T16:05:27 Add codecov.yml to ignore test dir in coverage reports.
Martin Mitas 3571c2f0 2017-08-02T00:41:14 Bump version to 0.2.3.
Martin Mitas 70925cac 2017-08-02T00:40:27 README.md: Upgrade CommonMark version to 0.28.
Martin Mitas 25228d5d 2017-01-08T09:25:10 md_is_link_destination_B: Apply new spec rules for parenthesis. The specification now allows nesting parenthesis inside a link destination as long as opening and closing ones are balanced.
Martin Mitas a847f552 2017-01-08T09:14:49 md_process_inlines: Apply new spec rules for emph/strong emph. The spec now states that for ***foo*** we have to genarate <em><strong>foo</strong></em> instead of <strong><em>foo</em></strong>
Martin Mitas ee3bee1a 2017-08-02T00:37:18 Upgrade to CommonMark specification 0.28.
Martin Mitas c52a50a3 2017-07-24T21:07:09 pathological_tests.py: Add test for reference definition lookup.
Martin Mitas 938460d5 2017-07-24T21:17:53 Improve/unify output of test scripts.
Martin Mitas f0103c16 2017-07-25T00:26:43 MD_MARK structure: Do not limit prev/next members to 24 bits. For normal kind of input, using full 32 bits makes no big difference. And limiting those members to 24 bits was maybe a security issue. That implied a limit of 2 ** 24 == 16,777,216 marks per a single block. As big as it may seem, malicious input may contain more. And if the input is carefully crafted, the mark chains could theoretically form a circles due to some overflows in these members, which could maybe make the parser to never finish.
Martin Mitas 591b2d21 2017-07-25T00:08:51 md_analyze_marks: Make the function inline.
Martin Mitas 61d38ef4 2017-07-24T23:59:23 md_analyze_marks: Remove unneeded parameters.
Martin Mitas c51fb310 2017-07-24T23:14:05 md_analyze_marks: Walk only required range of the marks. This changes causes that when recursing to analysis of link contents, only the marks between the link opener and closer are iterated in md_analyze_marks(). Fixes #22
Martin Mitas a27aefde 2017-07-24T20:17:50 pathological_tests.py: Allow short option -p as a synonym of --program.
Martin Mitas f4f7b223 2017-07-24T20:15:09 pathological_tests.py: Allow Windowish line ends.
Martin Mitas 26f14899 2017-07-24T19:27:27 Add pathological_tests.py from cmark.
Martin Mitas ad4f28bb 2017-07-24T20:09:23 md_analyze_simple_pairing_mark: Fix the "rule of three". If the first emphasis opener is refused due the rule of three, a previous opener is examined. However the variable opener_orig_size_module3 was not (re)set accordingly. Fixes #21.
Martin Mitas e351a1d5 2017-07-24T19:42:57 md_collect_marks: Minor refactorization of emhasis handler.
Martin Mitas 70d73941 2017-07-22T00:56:23 md_build_attribute: Propagate NULL string if attribute is empty.
Martin Mitas ca098547 2017-07-20T15:54:00 Avoid heap allocations when building trivial MD_ATTRIBUTE.
Martin Mitas a638a422 2017-07-18T19:04:08 md_build_ref_def_hashtable: Fix variable conflict. By copy&paste error, we have used two nested loops to use the same iterator.
Martin Mitas 6bc0b861 2017-07-18T18:50:07 Merge branch 'hash'
Martin Mitas cfbce759 2017-07-18T18:01:02 Rework ref. def. dictionary. It now uses FNV1a and we now sort/bsearch only contents of single bucket. Additionally we fix #20 by disabling the invalid ref. definitions during hashtable build.
Martin Mitas ff524e91 2017-07-17T08:50:04 Refactor: Isolate dictionary of reference defintions.
Martin Mitas 07c5dba9 2017-07-18T18:02:00 Remove unused structure member.
Martin Mitas 4e831dc1 2017-07-15T18:40:38 Add 2017 into copyright notes.
Martin Mitas f2821cbd 2017-07-14T17:10:45 md_analyze_permissive_email_autolink: Make it compatible with CMark-gfm.
Martin Mitas a83db2b7 2017-07-14T16:49:42 README.md: Minor update.
Martin Mitas 1bc7f3a8 2017-07-14T02:22:15 render_url_escaped: Fix escaping of ampersand. This affected generating href attribute if links or src attribute of images.
Martin Mitas f3f9404e 2017-07-14T02:06:23 Improve URL autolinks extension. It is now much more compatible to Cmark-gfm. With the flag MD_FLAG_PERMISSIVEWWWAUTOLINKS, we now also support the WWW autolinks (when the http: scheme is omitted).
Martin Mitas 8818ff14 2017-07-13T19:18:03 Get rid of unneeded MD_LINK_REF_DEF::index.
Martin Mitas 302cd5f8 2017-07-13T18:54:34 Improve lookup of link reference definitions. At the cost of remembering all reference definitions (even when having same label), we improved the lookup from O(n) to O(log(n)). This also fixes potential DOS attack by providing input with thousandslink reference definitions and references to them.
Martin Mitas 82c0eb53 2017-07-13T16:23:45 entity_lookup: Make it return UTF-32 codepoints. And adapted callers accordingly. Fixes #12.
Martin Mitas 25a156ee 2017-07-12T23:30:14 Implement strikethrough extension.
Martin Mitas d84dcec8 2017-07-12T22:53:54 md4c/md4c.h: MD_DIALECT_GITHUB does not imply MD_FLAG_PERMISSIVEATXHEADERS. Since migration to Cmark-gfm, github.com does not accept them anymore.
Martin Mitas aa51e86f 2017-07-12T22:52:58 md2html/md2html.c: Add options for Markdown dialect. Added support for options --commonmark and --github.
Martin Mitas 71d74e9f 2017-05-04T16:33:56 Merge branch 'master' of https://github.com/mity/md4c
Martin Mitas 921602b3 2017-05-04T16:21:34 md_is_link_reference_definition: Do not store multiple link definitions with same label.
ale rimoldi 19980907 2017-03-19T22:19:28 use typedef structs that are compatible with both c and c++
Martin Mitas aeaff18e 2017-01-04T16:41:46 Bump version to 0.2.2
Martin Mitas ea83b7f6 2017-01-04T21:57:49 md_analyze_simple_pairing_mark: Fix gcc warning.
Martin Mitas 8999e184 2017-01-04T14:40:44 Fix "rule of three" for emphasis resolution (issue #14).
Martin Mitas c63909df 2017-01-04T15:04:09 When splitting emphasis opener mark, we have to retain 'dummy' marks available for more splitting in the future (issue #15).
Martin Mitas 3c28a8b8 2017-01-04T14:29:50 md_rollback: Do not play with the mark flag MD_MARK_LEAF. And remove the flag altogether.
Martin Mitas 3688e0fc 2017-01-01T23:52:27 md_link_label_eq: Remove harmful anti-optimization.
Martin Mitas ca5da63d 2017-01-01T22:02:33 md_collect_marks: Optimize in case of 8-bit encodings by eliminating some branches in the fast path.
Martin Mitas 443ee515 2017-01-01T21:39:48 md_collect_marks: Optimize the fast path by making its loops tighter.
Martin Mitas 7cb7f65c 2017-01-01T18:20:25 md_collect_marks: Optimize fast path by some manual loop unrolling.
Martin Mitas 2726b7cb 2017-01-01T17:40:02 Minor code cleanup.
Martin Mitas 9c644b40 2017-01-01T17:26:36 md_analyze_line: Optimize scanning for end of line.
Martin Mitas f1a63f1c 2017-01-01T16:18:42 md_process_table_row: Fix possible errorneous free() on an error path.
Martin Mitas 1a8ce93d 2016-12-28T00:02:23 Add macros MD_DIALECT_COMMONMARK and MD_DIALECT_GITHUB.
Martin Mitas 52712384 2016-12-27T22:47:03 When parsing tables, pipes inside a link/image/code span cannot make cell boundary (issue #7).
Martin Mitas 72173b3f 2016-12-21T19:17:07 Propagate to renderer more info about lists (issue #13). Make MD_BLOCK_OL_DETAIL and MD_BLOCK_UL_DETAIL (new structure) expose more info about the lists. In particular flag whether the list is tight or loose, and info about the fundamental chartacter making the list item marks.
Martin Mitas a9582fa4 2016-12-16T11:23:34 .travis.yml: Add md2html to coveralls upload.
Martin Mitas ba686ec3 2016-12-16T10:16:17 render_html.c: Fix build with MSVC.
Martin Mitas c377f567 2016-12-16T10:06:07 Add some versioning info. * md4c.h now contains macros MD_VERSION_xxxx. * md2html has option --version. (Of course those shall have some meaningful values only when we introduce some release process.)
Martin Mitas c9ef8ccb 2016-12-16T09:59:03 render_html.c: Unify use of char versus MD_CHAR.
Martin Mitas c850843c 2016-12-16T09:47:06 md2html: Isolate HTML renderer into render_html.c (issue #8).
Martin Mitas 232ceeac 2016-12-16T00:11:23 md_analyze_line: A list item can begin with at most one blank line (issue #6). Hacky. I very dislike it, but it brings us full CommonMark 0.27 compliance. Hallelujah.
Martin Mitas 3ec2a195 2016-12-15T23:57:58 md_analyze_backtick: Ensire that code span opener and closer do not overlap.
Martin Mitas f9b4cb8f 2016-12-15T16:47:41 md_process_inlines: Fix when an expanded mark shadows some nested marks (issue #11).
Martin Mitas c235a02e 2016-12-15T13:18:48 test/coverage.txt: Add some tests for higher code coverage.
Martin Mitas a38c79db 2016-12-15T11:29:31 md_build_attr_append_substr: Fix leak on an error path (CID 1389262).
Martin Mitas a725fee3 2016-12-14T16:51:24 md_enter_child_containers: Fix crash (issue #10). Calling md_push_container_bytes() may result in ending a current block which may result in removing some contents from ctx->block_bytes when removing some lines with link reference definitions. This in effect means we have to end the block explicitly before storing the offset into the ctx->block_bytes.
Martin Mitas c085ab5c 2016-12-12T23:23:51 Implement support for entities outside normal text flow (issue #5). * Change API (md4c.h) to propagate different substring type info to renderer. * Implement/refactor related code in the parser. * Adapt renderer (md2html) to the new API.
Martin Mitas ba29d007 2016-12-12T23:31:59 md_is_link_reference_definition: Fix handling of multiline label (issue #9).
Martin Mitas a4d4f463 2016-12-12T18:04:14 README.md: Improve wording.
Martin Mitas 09ae8609 2016-12-07T23:56:47 Handle images more like links. Remove MD_SPAN_IMG_DETAIL::alt. Instead, the contents of the image is propagated to the renderer via MD_RENDERER::text() callback. * This fixes handling of entities inside the image text (issue #4). * It simplifies parsing and, more importantly, it better distingusshes what is responsibility of parser or renderer respectively. * This allows more flexibility on renderers side. Renderer who do not * really support images can just output the image content as any other text. The cost is a renderer into HTML (if it wants to render image contents into the attribute ALT of the IMG tag), has to handle images with more care. Typically such renderer has to track whether it is inside an image, and if so, then render span enter/leave as an empty string.
Martin Mitas b7f37ae6 2016-12-07T23:24:17 README.md: Minor update.
Martin Mitas 6d35c73c 2016-12-07T18:29:02 Minor cleanup.
Martin Mitas f0175cfc 2016-12-07T15:08:41 md_do_normalize_string: Fix checking whether we are done.
Martin Mitas 8f754776 2016-12-07T15:00:51 md_setup_fenced_code_detail: Fix size of temp. buffer.
Martin Mitas 4405d797 2016-12-07T14:29:49 md_analyze_line: Fix prioritization of "brother" list item detection.
Martin Mitas 45a10271 2016-12-07T13:43:54 md_do_normalize_string: Fix handling of escaped backslash ("\\").
Martin Mitas 29284842 2016-12-07T13:22:16 Handle escapes in code fence info string.
Martin Mitas 75cee13e 2016-12-07T13:04:29 Handle escape sequences in link titles.
Martin Mitas 29524387 2016-12-05T23:53:30 README.md: Minor update.
Martin Mitas 864da293 2016-12-05T21:25:29 Fix typos.
Martin Mitas 6c90b37f 2016-12-05T21:17:45 More fixes and enhancements to Windows Unicode support (issue #3). * Rename MD4C_USE_WIN_UNICODE to MD4C_USE_UTF16. * Update and improve related documentation in README.md.
Martin Mitas f9e58913 2016-12-05T20:54:37 Rename MD4C_USE_UNICODE to MD4C_USE_UTF8.
Martin Mitas 7d20152c 2016-12-05T13:45:57 Fix UTF-16 sorrogate decoding (with -DMD4C_USE_UNICODE). See https://github.com/mity/md4c/pull/1#issuecomment-264842360
tin-pot 0d10f6db 2016-12-05T12:34:29 md2html.c: No need for <stdint.h>
tin-pot bc52610e 2016-12-05T12:21:07 Fix signed/unsigned comparisons. This removes a lot of MSVC warnings.
Martin Mitas e6dc14e9 2016-12-05T11:24:29 Fix md4c.c compilation with -DMD4C_USE_WIN_UNICODE.
Martin Mitas 23312d6d 2016-12-05T11:13:43 md_is_html_tag: Fix parsing unquoted attribute value (issue #2).
Martin Mitas c5fa9a70 2016-12-01T22:16:50 md_analyze_line: Closing code fence cannot have list loosening effect.
Martin Mitas 17e6b940 2016-12-04T20:53:47 md_resolve_links: Minor cleanup.
Martin Mitas 035dea49 2016-12-04T20:48:06 Fix crash caused by bad management of opener chains. 1. We need to reset (potentially used) chains after each mark analysis phase. This ensures that md_rollback() does not try to play with chains used in previous phases. 2. md_rollback() must never play with PTR_CHAIN.
Martin Mitas 578dea5b 2016-12-04T18:41:41 md_resolve_links: Remove possible invalid initialization.
Martin Mitas bb23f791 2016-12-04T18:09:33 md_build_img_alt: Fix crash when dealing with some mark types. For some mark types, it is possible that subsequent mark has lower 'beg' then 'end' of the previous one. This typically happens when an opener mark is expanded to cover whole range to the closer.
Martin Mitas b40d5950 2016-12-04T17:01:00 Fix file permissions of python scripts.
Martin Mitas 4e416f1b 2016-12-01T22:09:38 md_analyze_line: Fix blank lines inside a fenced code block when nested in a container.
Martin Mitas 12b16001 2016-12-01T21:48:42 md_analyze_line: Blank line inside a blockquote cannot have a list loosening effect.
Martin Mitas 3f95f065 2016-12-01T21:40:50 md_process_all_blocks: Fix decrementing of ctx->n_containers when leaving blockquote.
Martin Mitas b0ac9ef4 2016-12-01T18:18:10 md_analyze_line: Ordered list can interrupt paragraph only if start index is 1.
Martin Mitas c7083d88 2016-12-01T18:07:35 md_process_all_blocks: Block quote cannot be "tight". Block quote cannot "inherit" tightness of a (tight) enclosing list item.
Martin Mitas 203ed892 2016-12-01T17:41:51 md_analyze_line: Update MD_CONTAINER when switching to the brother list item.
Martin Mitas 52dea362 2016-12-01T16:52:24 Handle empty list items.
Martin Mitas 93701fdb 2016-12-01T11:51:57 md_process_inlines: Handle line breaks inside (inline) raw HTML.
Martin Mitas 25f0f137 2016-12-01T11:32:04 md_analyze_line: Use ctx->code_indent_offset rather then encoded 4.