Fix header id and text might affects by mathjax tags

This commit is contained in:
Wu Cheng-Han 2016-11-28 22:15:07 +08:00
parent de2067f7e8
commit ead48e45e0
2 changed files with 14 additions and 4 deletions

View file

@ -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('');