* feat(makemarkdown.table): support non-strict tables
change to support non strict html tables.
currently html tables require both 'thead' and 'tbody' to be set.
since there are many tables out there that dont meet these requirements,
i added support for most common tables. all of the following tables will now
work (the last one, is the only version that is currently working):
<table><tr><td>t 0 - missing thead/tbody</td></tr></table>
<table><tr><td>t 1 - missing thead/tbody</td></tr><tr><td>t 1 body</td></tr></table>
<table><thead><tr><th>t 2 - thead only</th></tr></thead></table>
<table><thead><tr><td>t 3 - thead with td</td></tr></thead></table>
<table><tbody><tr><td>t 4 - tbody only</td></tr></tbody></table>
<table><thead><tr><th>t 5 - both thead and tbody</th></tr></thead><tbody><tr><td>t 5</td></tr></tbody></table>
i thought this feature should be made optional in case you only want
to support fully compliant tables. but then i realized, that the options
are only passed to the markdown subparsers, not the html ones.
and since this does not break anything (all tests pass), its ok, i guess...
Closes#687
* refactor: code refactor and added tests
Co-authored-by: Estevão Soares dos Santos <estevao.santos@gmail.com>
* feat(helpers): determined results for email address obfuscation
email address is used as the seed, so it should always provide the same result for a given mail.
utilizes a random number generator shown here: https://stackoverflow.com/questions/521295/seeding-the-random-number-generator-in-javascript/47593316#47593316
* feat(helpers): added Math.imul() support for older browsers
Co-authored-by: Estevão Soares dos Santos <estevao.santos@gmail.com>
.substr() is deprecated so we replace it with .slice() which works similarily but isn't deprecated
Signed-off-by: Tobias Speicher <rootcommander@gmail.com>
The CLI was completely rewrote. Changed dependency from yargs to
commanderjs,
which is cleaner, faster and has no dependencies.
Also added a complete testsuite for the cli.
Merged branch 'cli_refactor' into develop
Closes#893, #894
Currently, only adds the class `task-list-item-complete` to completed tasks items in GFM tasklists.
But in the future, each time a css class is deemed to be necessary, should be added under this umbrella
option.
Closes#540
The line with the opening code fence may optionally contain some text following the code fence (the info string); this is trimmed of leading and trailing whitespace and can contain multiple words (but not newlines).
Closes#856
This is a major refactor of the links subparser, previously known as anchors subparser.
Closes#355, #534
BREAKING CHANGE: `excludeTrailingPunctuationFromURLs` option was removed. This is now the default behavior
In text, headings only require a single linebreak to be treated as such.
However, in lists, they would require a double linebreak.
Now, the behavior in lists and text is consistent, requiring only a single
linebreak.
Closes#495
This feature was seen as a bit "duh!" since midword asterisks are not really a thing and, for these situations, you can simply escape the asterisk character.
Closes#499
BREAKING CHANGE: literalMidWordAsterisks option was removed and so asterisks will always retain their markdown magic meaning in a source text.
If you're using this feature, and you wish to retain this option, you can find a shim here: <https://gist.github.com/tivie/7f8a88c89ffb00d2afe6c59a25528386>
In some circumstances, on a reference style image, the last capturing
group is ignored, which causes the fucntion argument to return the number
of matches instead of a string (or undefined).
Checking if the title parameter is a string ensures that the title
parameter is actually something that was caught by the regex and not some
metadata.
Closes#585
In some circumstances, on a reference style image, the last capturing
group is ignored, which causes the fucntion argument to return the number
of matches instead of a string (or undefined).
Checking if the title parameter is a string ensures that the title
parameter is actually something that was caught by the regex and not some
metadata.
Closes#585