diff options
author | Wu Cheng-Han | 2016-11-28 22:15:07 +0800 |
---|---|---|
committer | Wu Cheng-Han | 2016-11-28 22:15:07 +0800 |
commit | ead48e45e0977e6376640b89f842f238ab382f94 (patch) | |
tree | 5cd8a54efb787a58b31c1c5c059f20423d5d05d8 /public | |
parent | de2067f7e898f3557323782d28e8f7530ffb539f (diff) |
Fix header id and text might affects by mathjax tags
Diffstat (limited to 'public')
-rw-r--r-- | public/js/extra.js | 15 | ||||
-rwxr-xr-x[-rw-r--r--] | public/vendor/md-toc.js | 3 |
2 files changed, 14 insertions, 4 deletions
diff --git a/public/js/extra.js b/public/js/extra.js index 3fe1084e..8ca1dcb5 100644 --- a/public/js/extra.js +++ b/public/js/extra.js @@ -689,7 +689,8 @@ function generateToc(id) { 'top': -1, 'class': 'toc', 'ulClass': 'nav', - 'targetId': id + 'targetId': id, + 'process': getHeaderContent }); if (target.text() == 'undefined') target.html(''); @@ -777,7 +778,7 @@ var linkifyAnchors = function (level, containingElement) { if (header.getElementsByClassName("anchor").length == 0) { if (typeof header.id == "undefined" || header.id == "") { //to escape characters not allow in css and humanize - var id = slugifyWithUTF8(header.innerHTML); + var id = slugifyWithUTF8(getHeaderContent(header)); header.id = id; } header.insertBefore(anchorForId(header.id), header.firstChild); @@ -795,6 +796,13 @@ function autoLinkify(view) { } } +function getHeaderContent(header) { + var headerHTML = $(header).clone(); + headerHTML.find('.MathJax_Preview').remove(); + headerHTML.find('.MathJax').remove(); + return headerHTML[0].innerHTML; +} + function deduplicatedHeaderId(view) { var headers = view.find(':header.raw').removeClass('raw').toArray(); for (var i = 0; i < headers.length; i++) { @@ -826,7 +834,8 @@ function renderTOC(view) { 'level': 3, 'top': -1, 'class': 'toc', - 'targetId': id + 'targetId': id, + 'process': getHeaderContent }); if (target.text() == 'undefined') target.html(''); diff --git a/public/vendor/md-toc.js b/public/vendor/md-toc.js index abdd9f56..200275a5 100644..100755 --- a/public/vendor/md-toc.js +++ b/public/vendor/md-toc.js @@ -13,6 +13,7 @@ this.ulClass = options['ulClass']; this.tocTop = parseInt(options.top) || 0; this.elChilds = this.el.children; + this.process = options['process']; if (!this.elChilds.length) return; this._init(); } @@ -53,7 +54,7 @@ var j = i + 1; this._elTitleElement = this.elTitleElements[i]; this._elTitleElementName = this._elTitleElement.tagName; - this._elTitleElementText = this._elTitleElement.innerHTML.replace(/<(?:.|\n)*?>/gm, ''); + this._elTitleElementText = (typeof this.process === 'function' ? this.process(this._elTitleElement) : this._elTitleElement.innerHTML).replace(/<(?:.|\n)*?>/gm, ''); var id = this._elTitleElement.getAttribute('id'); if (!id) { this._elTitleElement.setAttribute('id', 'tip' + i); |