Commit Graph

271 Commits

Author SHA1 Message Date
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
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
6374b5b376 feat(flavor: ghost): add Ghost flavor 2017-02-06 07:22:01 +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
368f0b6309 fix(flavor: github): new version of github does not use prefix 'user-content' in headers
New version of GFM does not add a 'user-content-' before generated header ids.
This matches the new spec.
2017-02-06 05:39:41 +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
Estevao Soares dos Santos
f7a429e8db fix(paragraph): workaround QML bug
QML has a bug that changes the behavior or String.search().
This prevents blocks from being correctly unhashified.
This commit works around that bug, using RegExp.test
instead of String.search.
Credits to @qyvlik

Closes #246, Closes #338
2017-02-05 19:57:24 +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
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
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
062e465902 chore: cleanup code and comments 2017-01-29 19:50: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
4243a313fd fix(codeSpans): add - and = to escaped chars inside code spans 2017-01-29 19:33:54 +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
10fb1cf451 refactor: use ¨ instead of ~ as escape character 2017-01-29 00:07:19 +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
bfcc0e44f0 fix(escapeSpecialCharsWithinTagAttributes): add ~ and = to escaped chars 2017-01-28 03:02:27 +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
fea64bdd3c test: add tests for helper functions
Closes #167
2017-01-28 01:19:07 +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
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
4d78633c4d refactor(CLI): bump to include breaking change notice
BREAKING CHANGE:

CLI tool now uses the same option defaults as showdown main library. This mean
the default flavor is vanilla and ghCodeBlocks options is enabled by default.

To update, add `--ghCodeBlocks="false"` to the command.
2017-01-09 02:23:09 +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
2d6cd1e908 feat(CLI:flavor): add flavor option to CLI
Add the option to pass a flavor preset to CLI. Ex:
`showdown makehtml --flavor="github"`
2017-01-08 20:02:42 +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
Estevao Soares dos Santos
a58674e597 chore: improve ghMentions 2017-01-06 04:58:28 +00:00
Estevao Soares dos Santos
f2671c0cc7 feat(ghMentions): add support for github's @mentions
Closes #51
2017-01-06 04:33:12 +00:00
Estevao Soares dos Santos
561dc5f155 fix(IE8): fix for IE8 error on using isUndefined function
Using isUndefined on console object in IE8 will throw an error.
This reverts to using `typeof console === 'undefined'.

Closes #280
2017-01-06 04:00:30 +00:00
Estevao Soares dos Santos
b1c458a762 fix(simpleLineBreaks): fix simpleLineBreaks option not working with non-ASCII chars and markdown delimiters
The option simpleLineBreaks was not working with non-ASCII characters such as chinese characters and
when lines started or ended with markdown delimiters such as `*` or `~`

Closes #318, #323
2017-01-06 03:51:12 +00:00
Estevao Soares dos Santos
de7c37eaea fix(options): fix ghCompatibleHeaderId that was set as string instead of boolean 2017-01-06 02:42:47 +00:00
Estevao Soares dos Santos
d499feb2aa fix(ghCompatibleHeaderId): improve the number of removed chars 2016-12-30 19:46:46 +00:00
Estevao Soares dos Santos
3102615ec2 fix(ghCompatibleHeaderId): add % as an escaped char 2016-12-30 19:21:03 +00:00
Estevao Soares dos Santos
db97a90d5b feat(ghCompatibleHeaderId): generate header ids compatible with github
style

Github replaces spaces with dashes and removes a bunch of characters
from generated header ids ][&~$!@#*()=:/,;?+'.\
This feature implements this.

Closes # 320, closes #321
2016-12-30 19:01:44 +00:00
Estevao Soares dos Santos
43ff0b643e test: add performance tests 2016-12-23 09:29:58 +00:00
Estevao Soares dos Santos
ed4c33fe4e fix(simpleLineBreaks): fix simpleLineBreak option breaking lists html
When option was enabled, `<br />` tags where being added wrongfully
between `<li>` tags, which resulted in malformed html. This commit
prevents this behavior.

Closes #316
2016-12-20 23:57:10 +00:00
Estevao Soares dos Santos
113f5f64b1 fix(horizontal rule): revert backwards incompatibility change
Horizontal rule syntax allows up to 3 spaces preceding dashes or
asterisks. Commit da8fb53 wrongfully removed that. This commit
puts that back.

Closes #317
2016-12-20 22:08:33 +00:00
Estevao Soares dos Santos
cf2a9075ae chore: small blockGamut regex fix 2016-12-20 21:44:15 +00:00
Estevao Soares dos Santos
d532dea8f0 Merge branch 'master' into develop 2016-12-19 12:16:22 +00:00
Estevao Soares dos Santos
da8fb535c9 fix: parser slowness with certain inputs
A bad desinged regex was causing the parser to become extremelly slow
when given some inputs.

Closes #315
2016-12-19 12:13:30 +00:00
Estevao Soares dos Santos
5d19877590 feat(requireSpaceBeforeHeadingText): option to make space between # and header text mandatory
Credit: @nikz [Nik Wakelin](https://github.com/nikz)

Closes #277
2016-12-17 06:01:15 +00:00
Estevao Soares dos Santos
6e90f7c5ad fix(nbsp): nbsp are replaced with simple spaces 2016-12-17 05:26:15 +00:00
Estevao Soares dos Santos
10b3410934 fix: lines with mutiple dashes being parsed as multilists
This input: `- - - a` causes trouble for the parser,
since it interprets it as multiple sublists, where it should
only interpert it as a list with a single list item.
This commit fixes this behavior.

Closes #312
2016-12-17 05:20:23 +00:00
Estevao Soares dos Santos
0a856d5394 refactor(hr): speed up hr parsing
speed up horizontal rule parsing by simplifying the regex
2016-12-17 03:29:53 +00:00
Estevao Soares dos Santos
f0d25b7bd5 fix(listeners): fix listeners typo
Closes #290
2016-12-01 15:48:30 +00:00
Estevao Soares dos Santos
d2fc2a0c5c feature(excludeTrailingPunctuationFromURLs): excludes trailing punctuation from auto linked URLs
Closes #266, #308
2016-12-01 15:25:46 +00:00
Estevao Soares dos Santos
0942b5e87d feature(simpleLineBreaks): parse linebreaks as <br />
This option enables linebreaks to always be treated as `<br />` tags
without needing to add spaces in front of the line, the same way GitHub does.

Closes #206
2016-11-30 18:04:17 +00:00
Estevao Soares dos Santos
0be39bccae feat(disableForced4SpacesIndentedSublists): option that disables the requirement of indenting nested sublists by 4 spaces 2016-11-11 08:15:24 +00:00
Estevao Soares dos Santos
1a232e8717 chore: fix small typo in options description 2016-11-11 07:57:56 +00:00
Estevao Soares dos Santos
d51be6e0b4 fix(lists): enforce 4 space indentation in sublists
Acording to the spec, multi paragraph (or block) list item requires subblocks
to be indented 4 spaces (or 1 tab). Although, this is mentioned in the documentation,
Showdown didn't enforce this rule in sublists because other implementations,
such as GFM also didn't. However, in some edge cases, this led to inconsistent behavior,
as shown in issue #299. This commit makes 4 space indentation in sublists
mandatory.

BREAKING CHANGE: syntax for sublists is more restrictive. Before, sublists SHOULD be
indented by 4 spaces, but indenting 2 spaces would work. Now, sublists MUST be
indented 4 spaces or they won't work.

With this input:
```md
* one
  * two
    * three
```

Before (ouput):
```html
<ul>
  <li>one
    <ul>
      <li>two
        <ul><li>three</li></ul>
      <li>
    </ul>
  </li>
<ul>
```

After (output):
```html
<ul>
  <li>one</li>
  <li>two
    <ul><li>three</li></ul>
  </li>
</ul>
```

To migrate either fix source md files or activate the option `disableForced4SpacesIndentedSublists` (coming in v1.5.0):

```md
showdown.setOption('disableForced4SpacesIndentedSublists', true);
```
2016-11-11 07:56:29 +00:00
Estevao Soares dos Santos
9cfe8b1412 fix(lists): fix sublists inconsistent behavior
Nested ul and ol lists behave inconsistently in the requirement
of having 3 spaces to be considered a nested list.
This fix changes the requirement to only one space in
both cases.

Closes #299
2016-11-09 02:54:18 +00:00
Estevao Soares dos Santos
2b813cd3fb fix(lists linebreaks): fix lists linebreaks in html output
Closes #291
2016-09-29 01:12:27 +01:00
Estevao Soares dos Santos
f97e072bc4 fix(double linebreaks): fix double linebreaks in html output
Closes #291
2016-09-29 00:50:58 +01:00
Estevao Soares dos Santos
b7e7560f87 fix: make some regexes a bit faster and make tab char equivalent to 4 spaces 2016-08-30 06:24:19 +01:00
Estevao Soares dos Santos
799abea767 fix(parser): fix issue with comments inside nested code blocks
Code blocks containing comments are now converted correctly when nested in list items.

Closes #288
2016-08-30 06:07:57 +01:00
Estevao Soares dos Santos
0cc55b07ee fix(simplifiedAutoLink): fix simplified autolink to match GFM behavior
Using the simplifiedAutoLink option does not return the expected GFM behaviour when parsing links without a http prefix.
Previously, `www.google.com` would be parsed into `<a href="www.google.com">www.google.com</a>`.
With this fix, showdown behaves like GFM, and the result is `<a href="http://www.google.com">www.google.com</a>`

Closes #284, closes #285
2016-08-19 19:12:25 +01:00
Estevao Soares dos Santos
984942e239 fix(ie8 compatibility): Improve ie8 compatibility
Several fixes to improve compatibility with Internet Explorer 8

Closes #275, Closes #271
2016-07-20 22:26:15 +01:00
Estevao Soares dos Santos
740f580f11 Merge branch 'master' of https://github.com/showdownjs/showdown
# Conflicts:
#	dist/showdown.js
#	dist/showdown.js.map
#	dist/showdown.min.js
#	dist/showdown.min.js.map
2016-07-20 22:07:49 +01:00
Estevao Soares dos Santos
238726ca91 fix(comments): Fix html comment parser
When an html comment was followed by a a long line of dashes, it would
freeze the parser as the lookahead in the html comment parser regex was
very slow. The regex was modified and simplified, so no lookahead is
needed anymore.

Closes #276
2016-07-20 22:01:10 +01:00
Butch Marshall
682bbbeca4 Fixed IE8 regex compatability 2016-06-27 15:43:51 +00:00
Estevao Soares dos Santos
8591ec8196 Merge branch 'develop' into feature/source_indentation_auto_removal 2016-06-21 01:42:50 +01:00
Estevão Soares dos Santos
73206b07fb fix(image-parser): fix ref style imgs after inline style imgs not parsing correctly
When reference style and inline style are mixed together, in the same line, it produces weird parsing bugs. This commit fixes this

Closes #261
2016-06-08 17:16:49 +01:00
Estevão Soares dos Santos
261f127f7e feat(smart-indent-fix): fix for es6 identation problems
Closes #259
2016-06-07 01:23:52 +01:00
Stewart McKee
6e30a48890 added check for undefined on text due to failing to parse tables 2016-05-24 10:26:59 +01:00
Estevão Soares dos Santos
ddaacfc41a fix(tables): fix table heading separators requiring 3 dashes instead of 2
Closes #256
2016-05-17 21:27:40 +01:00
Estevão Soares dos Santos
77007181d8 Merge branch 'master' into develop 2016-04-26 19:19:00 +01:00
Sam Bottoni
656aa98305 Support for case-insensitive checkboxes for render. [x] == [X] 2016-04-26 09:08:50 -05:00
Estevão Soares dos Santos
e0726a6e42 feature(evt_listeners): make globals var accessible to listeners 2016-03-20 17:08:44 +00:00
Estevão Soares dos Santos
6e5073d977 chore: remove html beautify from tests 2016-02-02 00:29:06 +00:00
Estevão Soares dos Santos
f58f014bc3 fix(tables): fix tables to match github's md spec
Now Leading and trailing pipes (|) are optional in tables

Closes #230
2016-01-25 05:24:54 +00:00
Estevão Soares dos Santos
71a5873902 fix(HTMLParser): fix code tags parsing
Closes #231
2016-01-25 03:01:54 +00:00
Estevão Soares dos Santos
4c68452999 chore: remove stray console.log 2016-01-25 01:16:51 +00:00
Estevão Soares dos Santos
7d0436d210 fix(HTMLParser): fix ghCodeBlocks being parsed inside code tags
When using html pre/code tags to wrap github's fenced code block syntax,
showdown would parsed them instead of treating them like plain code.

Closes #229
2016-01-25 01:04:06 +00:00
Estevão Soares dos Santos
e8852a83bb refactor: clean regex helper functions 2016-01-02 01:16:40 +00:00
Estevão Soares dos Santos
c97f1dc6b1 feat(markdown="1"): enable parsing markdown inside HTML blocks
Enable parsing markdown inside HTML blocks if those blocks have an attribute called markdown="1".
This feature is EXPERIMENTAL! As such, the behavior might change on future releases.

Closes #178
2016-01-02 01:08:17 +00:00
Estevão Soares dos Santos
2746949d7d fix(hashHTMLBlock): fix issue with html breaking markdown parsing
Closes #220
2016-01-01 23:33:33 +00:00
Adam Carr
74470ededa removing define module name as it breaks aliasing the module name 2015-12-22 20:24:53 -08:00
Estevão Soares dos Santos
5669317fe4 fix(strikethrough): Fix strikethrough issue with escaped chars
Closes #214
2015-10-30 01:00:30 +00:00
Estevão Soares dos Santos
f4cb29e05a Merge branch 'develop' into feature/event_mediator
Conflicts:
	dist/showdown.js
	dist/showdown.js.map
	dist/showdown.min.js
	dist/showdown.min.js.map
	src/converter.js
	src/subParsers/blockGamut.js
	src/subParsers/codeSpans.js
2015-10-19 03:20:20 +01:00
Estevão Soares dos Santos
e86aea8183 fix(literalMidWordUnderscores): fix different behavior with asterisks
Closes #198
2015-10-19 03:09:50 +01:00
Estevão Soares dos Santos
3097bd45c2 feat(hashHTMLSpans): Add support for hashing span elements
This feature enables hashing span elements that should not be touched by
showdown. For instance, `<code>` tags in markdown source should not be
parsed by showdown, so the text inside them remains unchanged.
This is made possible by a new exciting internal feature,
matchRecursiveRegExp.

Closes #196, Closes #175, Partially reverts 5f043ca
2015-10-19 01:55:35 +01:00
Estevão Soares dos Santos
8ebb25e486 fix(simpleautolink): fix mail simpleAutoLink to ignore urls with @ symbol
Urls with @ symbol will not be incorrectly converted to mail addressed

Closes #204
2015-10-07 04:46:28 +01:00
Estevão Soares dos Santos
50256233eb fix(tables): fix md tables being parsed inside indented code blocks.
Closes #193
2015-08-27 03:41:59 +01:00
Estevão Soares dos Santos
ed2cf595b0 fix(blockQuote): fix 'github style codeblocks' not being parsed inside 'blockquote'
Closes #192
2015-08-25 21:10:49 +01:00
Estevão Soares dos Santos
e754668814 Merge branch 'hotfix/#191' into develop 2015-08-23 03:12:43 +01:00
Estevão Soares dos Santos
3df706248f fix(blockGamut): fix for headings inside blockquotes
The spec states that you can be lazy and only put the `>` before the first line of a hard-wrapped paragraph.
It also states that blocquotes can contain any other md element inside.
This means headings and horizontal rules should be included in the blockquote but, right now, are treated as
independent entities

Closes #191
2015-08-23 03:11:11 +01:00
Estevão Soares dos Santos
b6c8b497db docs(lists.js): fix missing jsdoc parameter 2015-08-23 02:46:04 +01:00