fix(ghCompatibleHeaderId): improve the number of removed chars

This commit is contained in:
Estevao Soares dos Santos 2016-12-30 19:46:46 +00:00
parent 150a5cd3ff
commit d499feb2aa
9 changed files with 9 additions and 5 deletions

View File

@ -189,7 +189,7 @@ var defaultOptions = showdown.getDefaultOptions();
* **noHeaderId**: (boolean) [default false] Disable the automatic generation of header ids. Setting to true overrides **prefixHeaderId** * **noHeaderId**: (boolean) [default false] Disable the automatic generation of header ids. Setting to true overrides **prefixHeaderId**
* **ghCompatibleHeaderId**: (boolean) [default false] Generate header ids compatible with github style (spaces are replaced with dashes, ][&~$!@#*()=:/,;?+'.%\ chars are removed) (since v1.5.5) * **ghCompatibleHeaderId**: (boolean) [default false] Generate header ids compatible with github style (spaces are replaced with dashes and a bunch of non alphanumeric chars are removed) (since v1.5.5)
* **prefixHeaderId**: (string/boolean) [default false] Add a prefix to the generated header ids. Passing a string will prefix that string to the header id. Setting to `true` will add a generic 'section' prefix. * **prefixHeaderId**: (string/boolean) [default false] Add a prefix to the generated header ids. Passing a string will prefix that string to the header id. Setting to `true` will add a generic 'section' prefix.

BIN
dist/showdown.js vendored

Binary file not shown.

BIN
dist/showdown.js.map vendored

Binary file not shown.

BIN
dist/showdown.min.js vendored

Binary file not shown.

Binary file not shown.

View File

@ -23,7 +23,7 @@ function getDefaultOpts(simple) {
}, },
ghCompatibleHeaderId: { ghCompatibleHeaderId: {
defaultValue: false, defaultValue: false,
describe: 'Generate header ids compatible with github style (spaces are replaced with dashes, &~$!@#*()=:/,;?+%\\\'. chars are removed)', describe: 'Generate header ids compatible with github style (spaces are replaced with dashes, a bunch of non alphanumeric chars are removed)',
type: 'string' type: 'string'
}, },
headerLevelStart: { headerLevelStart: {

View File

@ -63,7 +63,8 @@ showdown.subParser('headers', function (text, options, globals) {
.replace(/~T/g, '') .replace(/~T/g, '')
.replace(/~D/g, '') .replace(/~D/g, '')
//replace rest of the chars (&~$ are repeated as they might have been escaped) //replace rest of the chars (&~$ are repeated as they might have been escaped)
.replace(/[&~$!@#*()=:/,;?+'.%\\]/g, '') // borrowed from github's redcarpet (some they should produce similar results)
.replace(/[&+$,\/:;=?@"#{}|^~\[\]`\\*)(%.!'<>]/g, '')
.toLowerCase(); .toLowerCase();
} else { } else {
escapedId = m.replace(/[^\w]/g, '').toLowerCase(); escapedId = m.replace(/[^\w]/g, '').toLowerCase();

View File

@ -1,2 +1,3 @@
<h1 id="some-header">some header</h1> <h1 id="some-header">some header</h1>
<h1 id="some-header-with--chars">some header with ~!@#$&amp;*()=:/,;?+'.\ chars</h1> <h1 id="some-header-with--chars">some header with &amp;+$,/:;=?@\"#{}|^~[]`\*()%.!' chars</h1>
<h1 id="another-header--with--chars">another header > with &lt; chars</h1>

View File

@ -1,3 +1,5 @@
# some header # some header
# some header with ~!@#$&*()=:/,;?+'.\ chars # some header with &+$,/:;=?@\"#{}|^~[]`\\*()%.!' chars
# another header > with < chars