|
43bfa54d
|
2019-12-10T12:11:40
|
|
md2html.c: Fix printing input file name when output cannot be opened. (#99)
|
|
db8e9fac
|
2019-12-06T04:13:23
|
|
README.md: Add logos to the badges.
|
|
4e2b37e4
|
2019-11-29T12:58:41
|
|
Bump version to 0.4.2.
|
|
46f25f0b
|
2019-11-12T21:48:26
|
|
md_analyze_emph: Call md_resolve_range() with proper chain.
Errorneously, we have called md_resolve_range() with mark chain derived
from the closer mark. In the case that the opener and closer marks
differ in length (and we have split one or the other), we pass in an
incorrect chain, which may lead to strange behavior in subsequent
analysis.
Fixes #98.
|
|
78764217
|
2019-11-04T15:36:51
|
|
Bump version to 0.4.1 and fix CHANGELOG.md.
|
|
a6b37216
|
2019-11-04T15:30:17
|
|
Bump version to 0.4.0.
|
|
e336e640
|
2019-11-04T15:20:59
|
|
Add support for Wiki links (#92)
With a new flag MD_FLAG_WIKILINKS, recoginize wiki-style links
as [[foo]] and [[foo|bar]].
Update also the HTML renderer accordingly, to output a custom
HTML tag <x-wikilink> when seeing it.
|
|
ef85cfc2
|
2019-11-04T15:05:07
|
|
Simplify parsing of tables (#97)
We do so by removing the function md_is_table_row().
md_is_table_row() did some crazy inline parsing to detect whether the
line contains at least one pipe which is not inside a code span or other
high-priority inline element.
This was very complicated under the hood and to was actually breaking
the clean design which separates block analysis parse and inline analysis
of each block contents.
We now just use the table underline for determining the block is table
and its properties like e.g. the column count.
This means a paragraph now cannot interrupt a table. This is a change in
a behavior but likely acceptable one as it actually brings the behavior
closer to behavior of tables in cmark-gfm in this regard.
Last but not least, it seems to prevent adoption of other useful
features, for about that, see the discussion in PR #92.
|
|
993c7b9b
|
2019-11-03T23:32:46
|
|
Render LaTeX math into HTML as a tag <x-equation>...
... instead of <equation>. This is to highlight that it is not a
standard HTML tag.
|
|
13a5a4b4
|
2019-11-03T22:21:18
|
|
README.md: Update link to commonmark-d.
|
|
e97d0250
|
2019-11-03T13:44:29
|
|
Link label comparision fixes.
* md_link_label_cmp: To match the labels, the loop has to reach ends of
the labels for both of them.
* md_link_label_cmp_load_fold_info: Collapse consequtive whitespace
into a single ' ' for the label comparison purposes.
Fixes #96.
|
|
0354e1ab
|
2019-10-04T22:34:08
|
|
md_is_container_mark: Ordered list mark requires at least one digit.
Fixes #95.
|
|
64a63d53
|
2019-10-03T20:21:00
|
|
README.md: Add link to commonmark-d as a port of MD4C for D language.
|
|
728f2af4
|
2019-10-03T20:09:33
|
|
md_build_ref_def_hashtable: Do not allocate more memory then needed.
Fixes #94.
|
|
ae5ca894
|
2019-07-12T08:44:53
|
|
md2html/CMakeLists.txt: Use INSTALL(TARGETS) instead of INSTALL(PROGRAMS).
Fixes #88.
|
|
97606369
|
2019-07-07T11:19:21
|
|
Fix the last test case in latex-math.txt.
|
|
9e8b3548
|
2019-07-07T11:16:23
|
|
Simplify some assertions.
|
|
099ce69b
|
2019-07-07T11:15:44
|
|
Add missing file into git.
|
|
2e965941
|
2019-07-07T10:59:20
|
|
Add/improve docs for the LaTeX math spans.
|
|
8bac86aa
|
2019-07-07T09:46:10
|
|
Added support for LaTeX math (#87)
Addresses #86.
|
|
f0de1990
|
2019-06-24T21:56:50
|
|
Add man page for md2html program (#85)
Fixes #56
|
|
410bb419
|
2019-06-19T17:04:48
|
|
Bump version to 0.3.4.
|
|
b2e60066
|
2019-05-30T15:59:22
|
|
README.md: Shorten an URL to improve line wrapping.
|
|
ce8b5d94
|
2019-05-27T22:16:35
|
|
md_analyze_line: Blockquote with blank line can interrupt a paragraph.
Fixes #83.
|
|
7d1cfbc1
|
2019-05-23T22:50:37
|
|
CHANGELOG.md: Fix some wording.
|
|
c4e6ddc3
|
2019-05-20T21:27:20
|
|
md2html/render_html.h: Add extern "C" when included in C++.
Seems some people desire to use the HTML renderer in C++ projects, so
lets make this as the 1st step in making it easy :-)
|
|
346874e0
|
2019-05-20T21:03:47
|
|
Add and fill MD_BLOCK_CODE_DETAIL::fence_char accordingly.
For the case of indented code block, it is left zeroed.
Fixes #81
|
|
97dd1ba8
|
2019-05-20T14:16:48
|
|
Fix gcc warning at -Wpedantic.
md4c.c:184:14: warning: ISO C forbids forward references to
enumâ types [-Wpedantic]
Fixes #79
|
|
4d926435
|
2019-05-19T22:40:08
|
|
md_analyze_line: Disallow the strcspn() optiomization path...
for other platforms then Linux. glibc has well-optimized implementation
which provides good boost, but (as measured one Windows), it can be also
relatively small to our own path below.
We can always enable that path for more platforms, if we get some data
showing it has good impact.
|
|
0344a077
|
2019-05-19T22:10:17
|
|
md_analyze_line: Fix the fast path if the input contains zero character.
|
|
56f8bbb1
|
2019-05-19T15:12:32
|
|
Implement/improve some optimizations, both in the parser and HTML renderer.
|
|
f281db0b
|
2019-05-19T11:51:10
|
|
CHNANGELOG.md: Minor typo and wording fixes.
|
|
51386164
|
2019-05-19T11:46:26
|
|
md_link_label_cmp: Fix handling non-trivial folding info.
Fixes #78.
|
|
4f6a9e54
|
2019-05-19T10:46:26
|
|
Update Unicode support to 12.1.
* scipts/build_*_map.py: Implement helper pythonic scripts used to
generate some Unicode search maps and data for helper Unicode
functions used in MD4C.
This should simplify updating to future Unicode versions.
* md_get_unicode_fold_info: Use data generated by the scripts.
* md_is_unicode_whitespace__: Ditto.
* md_is_unicode_punct__: Ditto.
|
|
267e82df
|
2019-05-16T22:59:45
|
|
md_is_[hex|dec]_entity_contents: Fix maximal entity length.
Spec. version 0.29 limits the decimal character length to at most
7 decimal digits and hexadecimal character length to at most 6
hexadecimal digits.
Fixes #77.
|
|
aca5c27f
|
2019-05-16T22:48:08
|
|
test/spec.txt: Update from upstream head.
|
|
64a1bc37
|
2019-05-15T23:25:05
|
|
test/coverage.txt: Sort the regression test cases by the issue number.
|
|
ef64fd38
|
2019-05-13T10:46:50
|
|
render_html.c: Improve RENDER_LITERAL to not cause warnings in MSVC 2017.
|
|
04c65c4c
|
2019-05-13T10:45:38
|
|
Build: Improve CMakeLists.txt compatibility with MSVC 2017.
|
|
e091d160
|
2019-05-11T00:40:28
|
|
Fix previous incomplete commit.
|
|
51da223b
|
2019-05-11T00:11:44
|
|
Minor cleanup.
* md_analyze_line: Use while() loop instead of bunch of gotos.
* Remove some manual optimizations. The optimizing skills of
compilers have improved in the recent years. With gcc 8.3
at -O3 there is no measurable change.
|
|
d7a8ede0
|
2019-05-10T10:36:45
|
|
Bump version to 0.3.3.
|
|
74636f3b
|
2019-05-08T11:07:15
|
|
md_scan_for_html_closer: Fix typo in a comment.
|
|
919a0cc9
|
2019-05-08T07:38:33
|
|
test/*.txt: Fix some formatting.
|
|
1757ff55
|
2019-05-07T23:10:46
|
|
test/spec_tests.py: Make ready for spec.txt from cmark-gfm project.
This allows easier checking of our GFM dialect compatibility.
|
|
e43f73a3
|
2019-05-07T22:36:29
|
|
CHANGELOG.md: Supplement description of the issue #76.
|
|
83047d3e
|
2019-05-07T22:24:29
|
|
md_analyze_permissive_url_autolink: Improve.
* Fix domain recognition so that it has to have at least two
dot-delimited components.
* Fix handling if parenthesis so that they have to form balanced
pairs; i.e. the first ')' not having a preceding opener ends the
path.
Fixes #76.
|
|
f8ed51c9
|
2019-05-05T16:11:21
|
|
md_analyze_line: Simplify.
Move some common code from multiple branches to one (and more
appropriate) place.
|
|
609dfb0b
|
2019-05-05T15:56:51
|
|
md_analyze_line: Treat blank lines inside a HTML block more carefully...
... with respect to the parent list containers.
Fixes #10 (but now really).
|
|
5cf2000a
|
2019-05-05T11:23:14
|
|
Build: Fix a few sign-comparison issues
This will fix a couple of issues where the GCC compiler (in strict
mode) is complaining with "error: comparison between signed and
unsigned integer expressions [-Werror=sign-compare]".
|
|
95279131
|
2019-04-30T00:32:36
|
|
When undoing complete block from ctx->block_bytesp[], reset ctx->current_block properly.
Fixes #74.
|
|
19504cad
|
2019-04-29T22:24:23
|
|
Revert "Build: With gcc and clang, enforce -std=c90."
This reverts commit 716b6ca4448318df900eb22bb7a31499a827d905.
Rationale: snprintf() not available in C90, so -std=c90 causes
warnings on Linux.
|
|
d4d10915
|
2019-04-29T19:03:16
|
|
Improve parsing of inline raw HTML.
* Isolate some common code for scanning HTML closer into a new function
so most HTML scanner functions reuse the same code.
* Improve the scanning for the closer so that on failure we remember
the range where no closer is present. So any later scanning attempts
may fail early.
Fixes #73.
|
|
716b6ca4
|
2019-04-17T15:01:03
|
|
Build: With gcc and clang, enforce -std=c90.
See #71.
This forces us to be more conservative in the future code changes,
and make us more friendly mainly to some embedded compilers who are
often behind the current state of art.
Fix also related warnings and errors, as provided by gcc 8.1.0.
|
|
d9a5a6f6
|
2019-04-17T14:18:14
|
|
Fix errors and warnings on INTEGRITY compiler
It seems to be applying C90 (?) rules: initializers must be
compile-time constants.
Fixes #71.
|
|
7a6bf33c
|
2019-04-08T19:56:23
|
|
Bump version to 0.3.2
|
|
29dfdd91
|
2019-04-08T19:45:50
|
|
README.md and CHANGELOG.md: Update for spec 0.29.
|
|
d7920b9c
|
2019-04-08T19:35:06
|
|
Merge pull request #67 from mity/spec-0.29
This merges all changes for CommonMark specification 0.28 -> 0.29 transition.
|
|
98850288
|
2019-04-08T19:31:57
|
|
md_is_html_block_start_condition: Do not recognize <meta>.
This change is mandated by specifiction 0.29.
|
|
734a7c82
|
2019-04-08T11:00:39
|
|
Allow link ref. defs. at the beginning of SeText headers.
|
|
5b78f295
|
2019-04-08T11:00:27
|
|
test/spec.txt: Update from upstream head.
|
|
b7d3c1a3
|
2019-04-05T08:53:27
|
|
Fix handling EOLs inside a code span.
|
|
8994c382
|
2019-04-05T08:19:01
|
|
md_is_code_span: Follow new spec rules for space trimming.
|
|
2a7b97ed
|
2019-04-05T08:18:54
|
|
test/spec.txt: Update from upstream head.
|
|
b8586987
|
2019-04-03T08:28:27
|
|
md_collect_mark: Add missing 'continue' to '~' branch.
Fixes #69.
|
|
30bf5667
|
2019-03-27T02:04:49
|
|
md_is_link_destination: Use first char as an indicator...
... type of link destination we should try.
If it is '<', then try only <>-styled link destination.
|
|
855a1bfc
|
2019-03-27T02:04:24
|
|
test/spec.txt: Update from upstream head.
|
|
cccfb3d7
|
2019-03-26T16:59:52
|
|
md_is_html_block_start_condition: Fix starting condition 1 when EOF follows.
Fixes #68
|
|
13672154
|
2019-03-26T15:10:12
|
|
md_is_container_mark: Check the indentation is not too big...
If it is then it is rather an indented code block.
|
|
94c86fe2
|
2019-03-26T14:45:23
|
|
Revert "Fix problematic link destinations with angle brackets."
The updated specification now explicitly requests the behavior we
implemented before fixing #24.
This reverts commit 2e0a74ba990e291ef4eace047d50af05ca81daef.
Also remove associated regression test as it is no longer valid.
|
|
0959975a
|
2019-03-26T14:01:02
|
|
md_analyze_emph: Follow specs changes to the "rule of three".
|
|
003a551d
|
2019-03-26T13:51:03
|
|
Remove left-over commented out code.
|
|
6e49193e
|
2019-03-26T13:44:55
|
|
md_is_link_title: Link title must be delimited from link destination with a whitespace.
|
|
98968e22
|
2019-03-26T13:33:05
|
|
Update spec.txt from upstream head.
(I previously used an updated revision of it by mistake.)
|
|
8f04d113
|
2019-03-26T13:06:21
|
|
md_is_link_destination_A: Link destination in <> can contain spaces.
|
|
44762161
|
2019-03-26T12:58:22
|
|
md_is_code_span: New rules for eating whitespace...
... after the opening and before the closing marker of a code span.
|
|
eb6a221e
|
2019-03-26T11:58:17
|
|
md_is_opening_code_fence: Allow backtick...
... in info string of tilde-based fence.
|
|
1edd0c9c
|
2019-03-26T11:49:25
|
|
test/spec.txt: Update to current upstream HEAD.
|
|
a80e2e1a
|
2019-03-18T00:49:55
|
|
md_is_setext_underline: Remove useless duplicated code.
|
|
1a248650
|
2019-03-16T09:39:00
|
|
Fix building with MD4C_USE_UTF16.
|
|
2670043f
|
2019-03-13T07:50:34
|
|
Bump version to 0.3.1
|
|
2dd96ab4
|
2019-03-12T09:56:11
|
|
Fix O(n^2) in handling the "rule of three".
We had to break the list of potential '*' openers into multiple ones so
we do not have to walk it when looking for matching length due to the
"rule of three" for intraword delimiter runs.
Fixes #63.
|
|
b2108652
|
2019-03-11T21:13:15
|
|
md_analyze_line: Fix O(n^2) in thematic break handling.
Fixes #66.
|
|
37104fc2
|
2019-03-11T20:26:58
|
|
md_is_code_span: Fix crash at EOF.
Fixes #65.
|
|
966b8e39
|
2019-03-11T19:56:46
|
|
md_is_link_title: Stop on ')' lin ()-style title.
Fixes #60.
|
|
fc27108e
|
2019-03-11T19:55:08
|
|
test/pathological_tests.py: Output test durations.
|
|
53f65852
|
2019-03-11T19:03:34
|
|
test/spec.txt: Little update.
Somehow we were having little different spec.txt version that the one
from CommonMark repo tag 0.28. But we still pass all its compliance
test suite.
|
|
089174b5
|
2019-03-11T13:59:53
|
|
CHANGELOG.md: Update.
|
|
17c9b32b
|
2019-03-10T18:23:39
|
|
Move autolink detection into md_collect_marks().
It has to be done at the same time as raw inline HTML and code spans.
|
|
685b7144
|
2019-03-10T11:20:39
|
|
Move codespan detection from md_analyze_backtick() into...
md_is_code_span(), called from md_collect_marks().
We have to do this at the same time as detecting raw inline HTML to
follow CommonMark priority requirements.
Also it is done very differently now:
When scanning for the closer mark, we remember (the latest) position of
potential closers for all other lengths as well.
This means that:
(1) If we find it, we reduced the task because all subsequent scan shall
begin after the closer.
(2) If we do not find it, then we have to reach the end of the block and
hence we then know (for every allowed marker length) the position of last
such backtick sequence.
(3) That makes the guaranty that any subsequent call with either succeed
in its scan (and reduce the task even further); or that we shall be able
to detect instantly there is no suitable closer.
I.e. every call either reduces the task by O(n) scan (1); or collects
all the data in O(n) because (2) happens at most once; or fails in O(1)
(3).
This makes O(n) guaranty of the function complexity.
Fixes #59.
|
|
0cb61205
|
2019-03-10T10:50:23
|
|
Move raw inline HTML detection from md_analyze_lt_qt() into md_collect_marks().
Fixes #58:
For resolving raw inline HTML the function tried closer with all
potential openers, because raw HTML can have '<' inside of an attribute.
However this caused O(n^2) for input like "<><><><><><><>...".
We solved by handling raw HTML in earlier stage, directly in
md_collect_marks(), where we can scan linerary forward.
Fixes #61:
As a side effect, this also fixes the issue that MD_FLAG_NOHTMLSPANS
disabled also recognition of CommonMark autolinks.
|
|
cbae1793
|
2019-02-18T11:55:17
|
|
md_analyze_line: Fix propagation of uninitialized variable.
Actually it should not be harmful because the consumer should use the
variable MD_CONTAINER::task_mark_off only when MD_CONTAINER::is_task
flag is set and it that case the task_mark_off _is_ initialized.
(CID 1476829)
|
|
30cfd4e3
|
2019-02-13T12:27:21
|
|
appveyor.yml: Fix syntax.
|
|
e43ac60a
|
2019-02-13T12:25:27
|
|
appveyor.yml: CMake 3.13.3 seems to always equire path to project root.
|
|
7ca80c6f
|
2019-02-13T11:26:19
|
|
CHANGELOG.md: Add note about building as shared lib.
|
|
1ea4b3e2
|
2019-02-11T10:10:26
|
|
README.md + CHANGELOG.md: More updates.
|
|
2c1dddc1
|
2019-02-11T09:29:53
|
|
README.md: Minor update.
|
|
5a5f10ef
|
2019-02-10T23:08:54
|
|
CHANGELOG.md: Update for version 0.3.0.
|
|
00a70fea
|
2019-02-10T22:59:49
|
|
Bump version to 0.3.0
|
|
8e01a769
|
2019-02-10T22:58:42
|
|
Implement task lists. (#50)
Fixes #30.
|