Skip to content

Commit

Permalink
Disable heading IDs (markedjs#1190)
Browse files Browse the repository at this point in the history
* Add option to disable heading ids
* Alphabetize and add options to docs
  • Loading branch information
joshbruce authored and styfle committed Apr 3, 2018
1 parent ef073a9 commit b055f87
Show file tree
Hide file tree
Showing 4 changed files with 59 additions and 33 deletions.
31 changes: 19 additions & 12 deletions docs/USING_ADVANCED.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,18 +39,25 @@ console.log(myMarked('I am using __markdown__.'));

<h2 id="options">Options</h2>

|Member |Type |Notes |
|:----------|:---------|:----------------------------------------------------------------------------------------------------------------------------|
|highlight |`function`|A function to highlight code blocks. See also: <a href="#highlight">Asynchronous highlighting</a>.|
|renderer |`object` |An object containing functions to render tokens to HTML. See [extensibility](https://github.com/markedjs/marked/blob/master/docs/USING_PRO.md) for more details. Default: `new Renderer()`.|
|pedantic |`boolean` |Conform to obscure parts of `markdown.pl` as much as possible. Don't fix original markdown bugs or behavior. Default: `false`.|
|gfm |`boolean` |Use approved [GitHub Flavored Markdown (GFM) specification](https://github.github.com/gfm/). Default: `true`.|
|tables |`boolean` |Use [GFM Tables extension](https://github.github.com/gfm/#tables-extension-). Requires `gfm` be `true`. Default: `true`.|
|breaks |`boolean` |Use GFM [hard](https://github.github.com/gfm/#hard-line-breaks) and [soft](https://github.github.com/gfm/#soft-line-breaks) line breaks. Requires `gfm` be `true`. Default: `false`.|
|sanitize |`boolean` |Ignore HTML passed into `markdownString` (sanitize the input). Default: `false`.|
|smartlists |`boolean` |Use smarter list behavior than those found in `markdown.pl`. Default: `true`.|
|smartypants|`boolean` |Use "smart" typographic punctuation for things like quotes and dashes. Default: `false`.|
|xhtml |`boolean` |Self-close the tags for void elements (&lt;br/&gt;, &lt;img/&gt;, etc.) with a "/" as required by XHTML. Default: `false`.|
|Member |Type |Notes |
|:-----------|:---------|:----------------------------------------------------------------------------------------------------------------------------|
|baseUrl |`??` |Default is `null` |
|breaks |`boolean` |Use GFM [hard](https://github.github.com/gfm/#hard-line-breaks) and [soft](https://github.github.com/gfm/#soft-line-breaks) line breaks. Requires `gfm` be `true`. Default: `false`|
|gfm |`boolean` |Use approved [GitHub Flavored Markdown (GFM) specification](https://github.github.com/gfm/). |
|headerIds |`boolean` |Whether to add an `id` attribute to headers. Default: `true` |
|headerPrefix|`string` |A short string to add as a prefix to the `id` attributes added to headers by default. Default: `empty string` |
|highlight |`function`|A function to highlight code blocks. See also: <a href="#highlight">Asynchronous highlighting</a>. |
|langPrefix |`??` |Default is `lang-`
|mangle |`boolean` |Default is `true`
|pedantic |`boolean` |Conform to obscure parts of `markdown.pl` as much as possible. Don't fix original markdown bugs or behavior. Default: `false`|
|renderer |`object` |An object containing functions to render tokens to HTML. See [extensibility](https://github.com/markedjs/marked/blob/master/docs/USING_PRO.md) for more details. Default: `new Renderer()`|
|sanitize |`boolean` |Ignore HTML passed into `markdownString` (sanitize the input). Default: `false` |
|sanitizer |`??` |Default is `null` |
|silent |`boolean` |Default is `false` |
|smartlists |`boolean` |Use smarter list behavior than those found in `markdown.pl`. Default: `true` |
|smartypants |`boolean` |Use "smart" typographic punctuation for things like quotes and dashes. |
|tables |`boolean` |Use [GFM Tables extension](https://github.github.com/gfm/#tables-extension-). Requires `gfm` be `true`. |
|xhtml |`boolean` |Self-close the tags for void elements (&lt;br/&gt;, &lt;img/&gt;, etc.) with a "/" as required by XHTML. Default: `false` |

<h2 id="highlight">Asynchronous highlighting</h2>

Expand Down
45 changes: 25 additions & 20 deletions lib/marked.js
Original file line number Diff line number Diff line change
Expand Up @@ -823,16 +823,20 @@ Renderer.prototype.html = function(html) {
};

Renderer.prototype.heading = function(text, level, raw) {
return '<h'
+ level
+ ' id="'
+ this.options.headerPrefix
+ raw.toLowerCase().replace(/[^\w]+/g, '-')
+ '">'
+ text
+ '</h'
+ level
+ '>\n';
if (this.options.headerIds) {
return '<h'
+ level
+ ' id="'
+ this.options.headerPrefix
+ raw.toLowerCase().replace(/[^\w]+/g, '-')
+ '">'
+ text
+ '</h'
+ level
+ '>\n';
}
// ignore IDs
return '<h' + level + '>' + text + '</h' + level + '>\n';
};

Renderer.prototype.hr = function() {
Expand Down Expand Up @@ -1342,22 +1346,23 @@ marked.setOptions = function(opt) {
};

marked.defaults = {
gfm: true,
tables: true,
baseUrl: null,
breaks: false,
gfm: true,
headerIds: true,
headerPrefix: '',
highlight: null,
langPrefix: 'lang-',
mangle: true,
pedantic: false,
renderer: new Renderer(),
sanitize: false,
sanitizer: null,
mangle: true,
smartLists: false,
silent: false,
highlight: null,
langPrefix: 'lang-',
smartLists: false,
smartypants: false,
headerPrefix: '',
renderer: new Renderer(),
xhtml: false,
baseUrl: null
tables: true,
xhtml: false
};

/**
Expand Down
Loading

0 comments on commit b055f87

Please sign in to comment.