Commit Graph

303 Commits

Author SHA1 Message Date
Estevao Soares dos Santos
d3ebff7ef0 fix(links): a number of issues with links subparser
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
2018-09-25 04:04:59 +01:00
Estevao Soares dos Santos
f46479b4ee chore: update readme and add TASKS.TODO.md 2018-09-16 03:45:07 +01:00
Estevao Soares dos Santos
6259f37bd6 fix(gfm-codeblocks): leading space no longer breaks gfm codeblocks
Now GFM Code Blocks can have up to 3 spaces before the backticks

Closes #523
2018-09-15 14:58:50 +01:00
Estevao Soares dos Santos
26abc7a795 fix(headings): inconsistent behavior in lists
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
2018-09-15 14:45:48 +01:00
Estevao Soares dos Santos
d9eea64794 remove(literalMidWordAsterisks): remove literalMidWordAsterisks feature
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>
2018-09-14 22:46:03 +01:00
Estevao Soares dos Santos
a4be301331 fix: allow escaping of colons
Previously, you couldn't escape colons (as they were semi-magic markdown characters).
Colons (:) can now be backslash escaped.
2018-09-14 21:34:48 +01:00
Estevao Soares dos Santos
2ba00751cc fix(mentions): allow for usernames with dot, underscore and dash
Closes #574
2018-09-14 17:03:07 +01:00
Estevao Soares dos Santos
b0d475fc08 fix(images): fix js error when using image references
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
2018-09-14 15:49:24 +01:00
Estevao Soares dos Santos
63763b136f fix(images): fix error when using image references
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
2018-09-14 15:40:18 +01:00
Estevao Soares dos Santos
0c6b5bdc4b Merge branch 'develop' of https://github.com/showdownjs/showdown into develop
# Conflicts:
#	dist/showdown.js
#	dist/showdown.js.map
#	dist/showdown.min.js
#	dist/showdown.min.js.map
2018-09-14 14:11:08 +01:00
Estevao Soares dos Santos
05ef5c55dc refactor(event dispatcher): make event dispatcher return an object instead of text 2018-09-14 14:10:15 +01:00
Lee Moody
1f0242c6ea fix(gfm-codeblock): add support for spaces before language declaration
One or more spaces before the language declaration of a code block is supported by Github.

E.g.

```    html
<div>HTML!</div>
```

``` html
<div>HTML!</div>
```

```html
<div>HTML!</div>
```

Closes #569
2018-08-08 01:25:32 +01:00
maxwellito
55f22de0a0 fix: compress showdown emoji
* fix showdown emoji compression

* test: fix functional test
2018-05-07 19:27:19 +01:00
Estevao Soares dos Santos
173ad51b05 test: fix tests 2017-12-23 13:20:14 +00:00
Estevao Soares dos Santos
be2a10797c refactor: force brackets in links 2017-12-23 12:41:21 +00:00
Estevao Soares dos Santos
94aa3e53ca test: add tests for reverse converter 2017-12-23 12:35:31 +00:00
Estevao Soares dos Santos
19d2e9f9d4 test: testsuite refactoring 2017-12-22 15:28:41 +00:00
Estevao Soares dos Santos
ea3db5f180 feat(splitAdjacentBlockquotes): add option to split adjacent blockquote blocks
With this option enabled, this:

```md
> some text

> some other text
```

witll result in:

```html
<blockquote>
    <p>some text</p>
</blockquote>
<blockquote>
    <p>some other text</p>
</blockquote>
```

This is the default behavior of GFM.

Closes #477
2017-12-22 10:51:21 +00:00
Estevao Soares dos Santos
187123fed5 release 1.8.5 2017-12-10 19:13:26 +00:00
Estevao Soares dos Santos
63d949f731 feat(metadata): add support for embedded metadata
A simple metadata parser can be useful in markdown documents.
This commit introduces the feature, with the following syntax:

--- or ««« at tstart of the document,
(optionally) followed by a alphanumeric format identifier
followed by key value pairs separated by a colon and a space
followed by --- or ÂÂÂ

Also, adds methods for retrieving the parsed metadata, namely:

getMetadata() and getMetadataFormat

Closes #260
2017-12-10 07:15:09 +00:00
Estevao Soares dos Santos
a8427c9423 feat(completeHTMLOutput): add option to output a complete HTML document 2017-12-10 04:49:24 +00:00
Estevao Soares dos Santos
4ef4c5e674 fix(tables): raw html inside code tags in tables no longer breaks tables
Under certains conditions, raw html inside code tags in tables would break
table parsing. This commit fixes that.

Closes #471
2017-12-05 01:13:11 +00:00
Estevao Soares dos Santos
d6203320aa test: add issue 467 test 2017-11-28 03:07:28 +00:00
Estevao Soares dos Santos
0c933a01f9 fix(tables): pipe character in code spans no longer breaks table
A code span with a pipe character no longer incorrectly breaks the cell table.

Closes #465
2017-11-23 05:39:53 +00:00
Estevao Soares dos Santos
f4f63c5c39 fix(spanGamut): code spans are hashed after parsing
Code spans are now hashed after parsing which means extensions
that listen to spanGamut events no longer need to worry about
escaping "custom" magic chars inside code spans.

Closes #464
2017-11-23 05:18:20 +00:00
Estevao Soares dos Santos
21194c8a03 fix(literalMidWordAsterisks): no longer treats colon as alphanumeric char
Closes #461
2017-11-17 15:23:23 +00:00
Estevao Soares dos Santos
dd7efb5a8a test: small test refactoring 2017-11-16 18:34:02 +00:00
Estevao Soares dos Santos
11936ecb77 fix(openLinksInNewWindow): hash links are not affected by the option
Closes #457
2017-11-11 13:19:19 +00:00
Estevao Soares dos Santos
c956ede4e7 fix(fenced codeblocks): add tilde as fenced code block delimiter
Closes #456
2017-11-11 12:29:36 +00:00
Estevao Soares dos Santos
25f1978666 feat(ellipsis): add auto-ellipsis support
Three dots `...` are now converted automatically into an ellipsis
2017-10-24 17:06:08 +01:00
Estevao Soares dos Santos
084b819b14 feat(underline): add EXPERIMENTAL support for underline
Syntax is:
```
__double underscores__
or
___triple unserscores___
```
Keep in mind that, with this option enabled, underscore no longer
parses as `<em>` or `<strong>`

Closes #450
2017-10-24 16:46:40 +01:00
Estevao Soares dos Santos
9cdc35e705 feat(ol start num): add support for defining the first num of ol
Implement support for starting ordered lists at an arbitrary number

Closes #377
BREAKING CHANGE: Since showdown now supports starting ordered lists
at an arbitrary number, list output may differ.
2017-10-24 15:15:56 +01:00
Estevao Soares dos Santos
5b8f1d312f feat(emoji): add emoji support
Add unicode emoji support to showdown. To enable this feature,
use `emoji: true` option. A list of supported emojis is
available here: https://github.com/showdownjs/showdown/wiki/Emojis

Closes #448
2017-10-24 13:44:49 +01:00
Estevao Soares dos Santos
61929bb262 fix(autolinks): prevent _ and * to be parsed in links
Closes #444
2017-10-24 10:22:13 +01:00
Estevao Soares dos Santos
66bdd21312 fix(tables): trailing spaces no longer prevent table parsing
If there were a trailing space following the closing | of a single column
table, the table does not get rendered. This fixes the issue.

Closes #442
2017-10-06 12:52:20 +01:00
Estevao Soares dos Santos
d88b095f05 fix(tables): tables are properly rendered when followed by a single linebreak and a list
Closes #443
2017-10-06 12:38:01 +01:00
Estevao Soares dos Santos
3efcd101a2 fix(html-comments): changed regex to precent malformed long comment to freeze showdown
Closes #439
2017-10-02 05:18:10 +01:00
Estevao Soares dos Santos
8c593a4f11 feat(base64-wrapping): support for wrapping base64 strings
Wrapping base64 strings, which are usually extremely long lines of text, is now supported.
Newlines can be added arbitrarily, as long as they appear after the comma (,) character.

Closes #429
2017-09-08 20:46:01 +01:00
Estevao Soares dos Santos
ff26c08904 feat(rawPrefixHeaderId): add option to prevent showdown from modifying the prefix
Setting this option to true will prevent showdown from modifying the
prefix. This might result in malformed IDs (if, for instance, the " char is
used in the prefix). Has no effect if prefixHeaderId is set to false.

Closes #409
2017-08-06 18:19:46 +01:00
Estevao Soares dos Santos
1791cf0ebf feat(rawHeaderId): Remove only spaces, ' and " from generated header ids
This option removes only spaces, ' and " from generated Header IDs,
replacing them with dashes. This might generate malformed IDs.

Closes #409
2017-08-06 17:45:04 +01:00
Estevao Soares dos Santos
fef110cccb Fix(tables): allow for one column table
Closes #406
2017-08-05 03:34:49 +01:00
Estevao Soares dos Santos
8f05be7788 fix(literalMidWordAsterisks): fix option no longer treat punctuation as word character
Closes #398
2017-08-05 02:52:03 +01:00
Estevao Soares dos Santos
51e46933a4 fix(tablesHeaderId): fix missmatch of option name
In code, the option appeared both as 'tableHeaderId' and 'tablesHeaderId',
although only the first form had effect. In documentation was referenced
as 'tablesHeaderId'.
Option is now fixed in code to reflex the documentation and table parser
accepts both forms, with and without an s.

Closes #412
2017-08-04 20:19:15 +01:00
Estevao Soares dos Santos
a2259c063b fix(lists): fix multi paragraph lists with sublists
Paragraphed lists with sublists were being parsed incorrectly due to
workaround realted with simpleLineBreaks. This commit fixes this.

Closes #397
2017-06-07 03:33:20 +01:00
Estevao Soares dos Santos
5a5aff6721 feat(backslashEscapesHTMLTags): backslash escapes HTML tags
Add support for HTML tag escaping with backslash

Closes #374
2017-06-02 04:48:53 +01:00
Estevao Soares dos Santos
6566c72cc1 fix(HTML Parser): fix nasty bug where malformed HTML would hang showdown
When feeding malformed HTML to showdown, the library would enter an infinite loop,
effectively halting showdown's execution.

Closes #393
2017-06-02 03:29:29 +01:00
Marinin Tim
94c570a9d8 feat(customizeHeaderId): add option for customizing header ids
It’s useful for non-Latin texts, where header might be, for example, in Russian, but user wants id to be in English. This feature allows user to set id for header manually, using curly braces:

    ## Привет, мир {hello-world}

Closes #383
2017-06-01 02:35:42 +01:00
Estevao Soares dos Santos
30aa18c003 fix(url parsing): fix url edge case parsing in images and links
Allow some edge cases to parse correctly. Example:
`![img](.images/cat(1).png)`,
`![img](<.image(1)/cat(1).png>)`,
`[link](<>)`
2017-05-30 04:11:00 +01:00
Estevao Soares dos Santos
230f443442 test: add tests for issue #390 2017-05-28 17:30:18 +01:00
Estevao Soares dos Santos
6fbc072c2c fix(HTML parsing): fix HTML parsing issues with nested tags
Deeply nested HTML tags and recursive tags broke the HTML parser.

Closes #357, closes #387
2017-05-28 17:20:07 +01:00
Estevao Soares dos Santos
813f832160 fix(openLinksInNewWindow): encode _ to prevent clash with em
Closes #379
2017-04-25 22:13:27 +01:00
Estevao Soares dos Santos
71acff5757 fix(excludeTrailingPunctuationFromURLs): fix weird character when this option with simplifiedAutoLinks
Closes #378
2017-04-23 02:14:56 +01:00
Estevao Soares dos Santos
1bca88f8fa test: add several testcases 2017-04-23 02:04:13 +01:00
Estevao Soares dos Santos
f3dff7b0cf Merge branch 'master' into develop 2017-04-23 01:59:53 +01:00
Miguel Laginha
5bec8f9e9a feat(literalMidWordAsterisks): add option for mid word asterisks
Implements feature similar to ignoring midword underscores but with asterisks. The main use case is ignoring cursing.
2017-04-05 16:25:20 +01:00
Estevao Soares dos Santos
50235d6951 feat(openLinksInNewWindow): add option to open all links in a new window
Closes #362, #337, #249, #247, #222
2017-03-31 00:25:40 +01:00
Estevao Soares dos Santos
0c6c07b341 feat(images): add support for image's implicit reference syntax
Closes #366
2017-03-30 23:35:28 +01:00
Estevao Soares dos Santos
f1eab2a7f2 Merge branch 'master' into develop 2017-03-30 23:17:56 +01:00
simo
3e22fc658c Reset options before switching to a flavor (#365)
fix(flavors): reset options before switching to a flavor
2017-03-30 23:17:10 +01:00
Estevao Soares dos Santos
fa47938b81 blame: last commit introduced a bug 2017-03-15 02:49:20 +00:00
Estevao Soares dos Santos
fa35fd5e7e fix(excludeTrailingPunctuationFromURL): add comma to punctuation list
Closes #354
2017-03-09 00:43:45 +00:00
Estevão Soares dos Santos
c6ac36d9f2 test(appveyor): add appveyor testing
Add testing on windows environment
2017-03-05 05:08:52 +00:00
Estevão Soares dos Santos
93fecc8650 chore(travis): add support for node 0.12 in travis 2017-03-05 02:49:13 +00:00
Estevao Soares dos Santos
5c50675cca fix(simpleAutoLinks): URLs with emphasis/strikethrough are parsed
correctly

When a user enters a URL with emphasis or strikethrough, the html output
were incorrect.
Now, URLs inside emphasis or strikethrough are parsed corerctly

Closes #347
2017-02-26 19:13:52 +00:00
Estevao Soares dos Santos
1ebc1959dd fix(tables): pipe char can now be escaped
Pipe character is now treated as a special markdown char,
which makes it possible to escape it.

Closes #345
2017-02-21 14:13:12 +00:00
Estevao Soares dos Santos
605d8b7b05 fix(encodeEmail): now produces valid emails
Closes #340
2017-02-06 06:50:52 +00:00
Estevao Soares dos Santos
f641a7de90 fix(prefixHeaderId): make prefixHeaderId string be parsed along the generated id
If an invalid prefix was passed (a string with spaces, for instance),
the string would be added as is. This ould generate invalid ids.
Also, this makes `prefixHeaderId` option play nicely with `ghCompatibleHeaderId`, since they will
follow the same escaping rules when both options are enabled.
2017-02-06 05:37:49 +00:00
Estevao Soares dos Santos
41cb3f6b7f fix(hashCodeTags): escape code tags
Previously, `<code>` tags were not escaped. This was counter intuitive since ´<pre><code>` tags
were being escaped. Now both pre code and code are escaped.

Closes #339
2017-02-06 05:09:52 +00:00
Estevao Soares dos Santos
7f43b79b33 fix(encodeAmpsAndAngles): fix > and < encoding
In some circumstances, > and < were not being encoded properly.

Closes #236
2017-02-06 03:28:49 +00:00
greenkeeper[bot]
b5e46fdb8d Update dependencies to enable Greenkeeper 🌴 (#335)
adapt code to updated dependencies
2017-01-31 05:46:25 +00:00
Estevao Soares dos Santos
1832b7f721 fix(italicsAndBold): fix double emphasis edge case 2017-01-31 01:48:03 +00:00
Estevao Soares dos Santos
ab54933b16 release 1.6.3 2017-01-30 22:40:55 +00:00
Estevao Soares dos Santos
54bf74472a fix(paragraphs): fix empty lines generating empty paragraphs
Empty lines should not be parsed as paragraphs. This was happening
in determined circumstances.
For instance, when stripping reference style links, `\n\n` was left being,
creating an undesired empty paragraph. This commit fixes the issue.

Closes #334
2017-01-30 20:43:56 +00:00
Estevao Soares dos Santos
e18be38995 test: add test for simpleLineBreak and pre tags 2017-01-30 18:11:13 +00:00
Estevao Soares dos Santos
dbbee6c094 test: add test for literalMidWordUnderscores 2017-01-30 00:04:16 +00:00
Estevao Soares dos Santos
94c9700d1a test: add test for emphasis case 2017-01-30 00:01:57 +00:00
Estevao Soares dos Santos
0292ae0dcb fix(literalMidWordUnderscores): Inconsistent behavior of emphasis and strong with literalMidWordUndescores
Closes #333
2017-01-29 23:31:52 +00:00
Estevao Soares dos Santos
a4f05d4693 fix(italicsAndBold): fiz inconsistency in italicsAndBold parsing
The way showdown parsed cases suchs as this:
```
**foo **bar
__foo __bar
*foo *bar
_foo _bar
```
was inconsistent. This established that `__` or `**` preceeding a word
would not be parsed as em or strong.

Closes #332
2017-01-29 23:24:31 +00:00
Estevao Soares dos Santos
e4c43ea433 refactor(italicsAndBold): refactoring of italicsAndBold regexes for speed 2017-01-29 22:29:21 +00:00
Estevao Soares dos Santos
169cbe8e2d fix(strikethrough): fix striketrough being wrongly parsed inside codeSpans 2017-01-29 19:38:45 +00:00
Estevao Soares dos Santos
7d63a3e635 feat(events): add events to all subparsers
This commit adds events to all subparsers (that were previously not being watched).
2017-01-29 19:28:30 +00:00
Estevao Soares dos Santos
51cc7c430f test: add some strikethrough tests 2017-01-29 00:26:29 +00:00
Estevao Soares dos Santos
24d47d7c68 fix(strikethrough): allow escapinging tilde char
Since tilde is now used as a magic markdown character,
in strikethrough syntax, we need to enable escaping it.

Closes #331
2017-01-28 23:54:28 +00:00
Estevao Soares dos Santos
a4c24c9805 feat(ghMentionsLink): add ability to define the generated url in @mentions
This option enables users to define the generated links in @mentions.
For instance,  with ghMentionsOption set to `//mysite.com/{u}/profile`
this text
`@tivie`
will result in this link
`<a href="//mysite.com/tivie/profile">@tivie</a>`
2017-01-28 04:28:50 +00:00
Estevao Soares dos Santos
dbf876b6cb test: add test for nested gh codeblocks 2017-01-28 03:59:27 +00:00
Estevao Soares dos Santos
ed6a687013 bump package.json 2017-01-28 02:53:25 +00:00
Estevao Soares dos Santos
0c9ebd4e24 refactor: some minor performance improvements 2017-01-28 02:46:34 +00:00
Estevao Soares dos Santos
4613260cdf refactor: create horizontal rules own subParser 2017-01-28 02:17:19 +00:00
Estevao Soares dos Santos
ef7d0ec7a9 test: use new performance test file 2017-01-28 02:04:50 +00:00
Estevao Soares dos Santos
4b53d3707b test: add newline at end of test files 2017-01-28 01:46:33 +00:00
Estevao Soares dos Santos
d3ebbc128e chore: add newline at end of test files 2017-01-28 01:34:38 +00:00
Estevao Soares dos Santos
fea64bdd3c test: add tests for helper functions
Closes #167
2017-01-28 01:19:07 +00:00
Estevao Soares dos Santos
32a4cee258 chore: update chai 2017-01-27 22:07:55 +00:00
Estevao Soares dos Santos
0b32a95efd chore(performance): update performance testing 2017-01-27 20:53:47 +00:00
Estevao Soares dos Santos
5190b6a41f fix(simplifiedAutoLink): fix missing spaces before and after email addresses
Space char before and after the linked email address is no longer dropped
with "simplifiedAutoLink" option enabled.

Closes #330
2017-01-27 19:25:46 +00:00
Estevao Soares dos Santos
90c52b83e7 feat(encodeEmail): add option to enable/disable mail obfuscation
Prior to version 1.6.1, emails would always be obfuscated through dec and hex encoding.
This option makes it possible to disable this.
2017-01-27 19:03:37 +00:00
Estevao Soares dos Santos
b6513fadb9 release 1.6.0 2017-01-09 02:38:24 +00:00
Estevao Soares dos Santos
f3b86f06cc feat(CLI): add -q (quiet) and -m (mute) mode to CLI
-q supresses all normal messages from the output, but still reports errors.
-m mutes all messages, even errors.
2017-01-09 02:26:24 +00:00
Estevao Soares dos Santos
e3521bd8fa refactor(CLI): refactoring of CLI code 2017-01-09 02:08:23 +00:00
Estevao Soares dos Santos
0eaf1050c7 feat(getFlavor): add getFlavor method to showdown and Converter
With this new method, you can check what type of base flavor showdown is currently set
to run as.
2017-01-08 19:09:12 +00:00