Commit Graph

94 Commits

Author SHA1 Message Date
Estevão Soares dos Santos
9f8c7199ea
feat(makehtml.events): implements event system refactor for converter.makeHtml (#919)
* startrefactoring the event system

* refactor: blockquotes, code blocks and links refactored

* refactor codeblock to new event system

* refactor subparser until ghcode to new events

* finish adating ghcodeblock to new event

* add headings to new events

* add image to event system

* add emphasisAndStrong to event system

* fix wrong event name in emphasisAndStrong onEnd event

* spanGamut and build

* showdown.helper.event refactored to showdown.Event

* partial

* add links

* add metadata

* add strikethrough and table

* build

* add underline

* add unescapeSpecialChars

* small refactoring

* remove old tables parser

* add lists

* add simple event trigger tests

* build

* fix browserstack

* fix browserstack

* remove testing for ie11 and bumped firefox min version to 45

* fixes and closes #920

* build
2022-04-27 21:42:24 +01:00
Estevao Soares dos Santos
c3411a567d fix(cli): cli now works properly
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
2022-03-03 12:48:23 +00:00
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
358947bd29 feat(makeMarkdown): convert HTML to MD
This feature enables convertion of HTML into MD.
2018-07-07 19:05:16 +01:00
Estevao Soares dos Santos
410b453049 fix jsdom polyfill 2017-12-23 14:00:20 +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
e5d7705569 first step for reverse convert 2017-11-27 06:44:25 +00: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
5284439edc fix(github flavor): add backslashEscapesHTMLTags to GFM flavor 2017-08-06 17:53:06 +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
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
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
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
f2671c0cc7 feat(ghMentions): add support for github's @mentions
Closes #51
2017-01-06 04:33:12 +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
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
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
Estevão Soares dos Santos
2734326e19 feat(eventDispatcher): add an event dispatcher to converter 2015-08-03 03:47:49 +01:00
Estevão Soares dos Santos
f6a33e402c feat(CLI): add a simple cli tool 2015-07-13 05:09:03 +01:00
Estevão Soares dos Santos
7e55bceb0e feat(flavours): add markdown presets/flavors
This feature enables users to select a preset/flavor.
A flavor is just a preset of options, a shortcut so users don't have to set each option one by one.

Closes #164
2015-07-12 02:15:35 +01:00
Estevão Soares dos Santos
dc72403acc feat(tasklists): add support for GFM tasklists
Github Flavored Markdown supports tasklist by `[x]` or `[ ]` after list item marker.
This commit adds this feature to showdown through an option called "tasklists".

Related to #164
2015-07-11 23:02:02 +01:00
Estevão Soares dos Santos
c33f98884b feat(ghCodeBlocks): add option to disable GH codeblocks
GFM support fenced codeblocks. Showdown, since very early, adopted this too.
It is now possible to disable GFM codeblocks with the option "ghCodeBlocks" set to false.
It is enabled by default
2015-07-11 20:33:11 +01:00
Estevão Soares dos Santos
1c8c928d0a feat(subParsers/table): support for table alignment
Credits to [torcellite (Karthik Balakrishnan)](https://github.com/torcellite)
2015-07-11 18:21:43 +01:00
Estevão Soares dos Santos
3a924e3c7e feat(tables): add support for GFM tables
Github Flavored Markdown supports a specific table syntax. Table support was already available as an extension.
With this commit, the feature was moved to core, adding this feature to showdown through an option called "tables".

Related to #164
2015-07-11 16:44:24 +01:00
Estevão Soares dos Santos
43e9448d6e feat(strikethrough): add support for GFM strikethrough
Github Flavored Markdown supports strikethrough (`<del>`) syntax using double tilde `~~` delimiters.
This commit adds this feature to showdown through an option called "strikethrough".

Related to #164
2015-07-11 15:59:06 +01:00
Estevão Soares dos Santos
0c0cd7db99 feat(literalMidWordUnderscores): add support for GFM literal midword underscores
Github Flavored Markdown does not parse underscores in the middle of a word as emphasis/bold.
This commit adds this feature to showdown through an option called "literalMidWordUnderscores".

Related to #164
2015-07-11 15:45:58 +01:00
Estevão Soares dos Santos
cff0237299 feat(simplifiedAutoLink): add support for GFM autolinks
Github Flavored Markdown detects urls and mails embeded in the text without any extra markup or delimiter.
This commit adds this feature to showdown through an option called "simplifiedAutoLink".
Related to #164
2015-07-11 02:42:53 +01:00
Estevão Soares dos Santos
b84ac67dac feat(headerLevelStart): add support for setting the header starting level
Closes #69
2015-06-17 02:19:44 +01:00
Estevão Soares dos Santos
af82c2b616 feat(image dimensions): add support for setting image dimensions within markdown syntax
This feature allows users to define the image dimensions using markdown syntax:
```
![my image](img.jpg =100x80 "image title")
```
To enable this feature, use the option `parseImgDimensions`.

Closes #143
2015-06-17 01:22:05 +01:00
Estevão Soares dos Santos
2de53a7d03 feat(showdown.getDefaultOptions): add method to retrieve default global options key->values
Showdown default options are now retrievable through `showdown.getDefaultOptions()` function
2015-06-15 14:49:26 +01:00
Estevao Soares dos Santos
7ac893e93b feat(noHeaderId): add option to suppress automatic generation of ids in headers
Passing the option `noHeaderId; true` to showdown or showdown converter removes the automatic generation of header ids
2015-06-08 03:41:14 +01:00
Estevao Soares dos Santos
4ebd0caa27 feature(extensionLoading): add support to legacy extensions in the new extension mechanism
Old extensions that register themselves in `showdown.extensions` can be loaded and validated using the new extension loading mechanism.
However, a warn is issued, alerting users and developers that the extension should be updated to use the new mechanism

BREAKING CHANGE: Deprecates `showdown.extensions` property. To migrate, you should use the new method `showdown.extension(<ext name>, <extension>)` to register the extension.
2015-06-07 19:02:45 +01:00
Estevão Soares dos Santos
33f64f60c9 feature(extensionLoading): refactor extension loading mechanism 2015-05-31 20:56:28 +01:00
Estevão Soares dos Santos
6492e74c5b docs(showdown.options): fix jsdocs for methods setOption, getOption and getOptions 2015-05-27 01:43:08 +01:00
Estevão Soares dos Santos
db6f79b08d feat(Converter.options): add getOption(), setOption() and getOptions() to Converter object
Provides a way to get and set options directly in a Converter object
2015-05-27 01:37:01 +01:00
Estevão Soares dos Santos
ddd6011df2 fix(showdown): fix for options merging into globalOptions
Passing an option to a specific converter affects other instances of the converter since options are merged into showdown's global options.
This commit fixes that.

Closes #153
2015-05-26 19:46:07 +01:00
Estevão Soares dos Santos
95ed7c682e fix(extensions): support for old extension loading mechanism 2015-04-23 00:15:54 +01:00
Estevão Soares dos Santos
a38c76d236 fix(showdown.js): fix showdown extension loader 2015-04-22 16:58:07 +01:00
Estevão Soares dos Santos
d996b4438d partial(showdown.js): enabled output modifiers 2015-04-22 14:51:57 +01:00
Estevão Soares dos Santos
0fd10cb56a Added new extension registering method 2015-03-01 18:15:32 +00:00
Estevão Soares dos Santos
8ee87ead9f doc(showdown.js): add source documentation for showdown's api 2015-01-19 16:28:14 +00:00
Estevão Soares dos Santos
8b000b134a chore(all): code style change 2015-01-19 11:37:21 +00:00
Estevão Soares dos Santos
c367a4b9a1 feat(uniqueHeaderId): add unique id prefix and suffix to headers
If two headers have similar texts, the generated id could be equal. In order to prevent id clash:
  - A unique suffix is added if a header id already exists
  - Option to add a prefix to header id
  - Update of correspondent tests
  - (credits to nicovalencia)

Closes #81, closes #82
2015-01-18 02:12:32 +00:00
Estevão Soares dos Santos
c9de4b6b1f Revert "feat(allowBlockIndents): Indented inline block elements can be parsed as markdown"
This reverts commit f6326b84e4.
2015-01-17 00:13:12 +00:00
Estevão Soares dos Santos
f6326b84e4 feat(allowBlockIndents): Indented inline block elements can be parsed as markdown
When the text is pulled from indented HTML elements, ex:
```
 <body>
    <div>
        ## Content to be converted
    </div>
 </body>
```
it no longer becomes wrapped in code/pre tags. A new option is also available (allowBlockIndents) that when set to false, reverts to the previous behavior
2015-01-16 23:39:20 +00:00