Merge branch 'anchors-in-toc' into soon
commit
32618fe482
|
@ -650,9 +650,25 @@ define([
|
|||
}, 500); // 500ms to make sure it is sent after chainpad sync
|
||||
};
|
||||
|
||||
var isAnchor = function (el) { return el.nodeName === 'A'; };
|
||||
var getAnchorName = function (el) {
|
||||
return el.getAttribute('id') ||
|
||||
el.getAttribute('data-cke-saved-name') ||
|
||||
el.getAttribute('name') ||
|
||||
Util.stripTags($(el).text());
|
||||
};
|
||||
|
||||
var updateTOC = Util.throttle(function () {
|
||||
var toc = [];
|
||||
$inner.find('h1, h2, h3').each(function (i, el) {
|
||||
$inner.find('h1, h2, h3, a[id][data-cke-saved-name]').each(function (i, el) {
|
||||
if (isAnchor(el)) {
|
||||
return void toc.push({
|
||||
level: 2,
|
||||
el: el,
|
||||
title: getAnchorName(el),
|
||||
});
|
||||
}
|
||||
|
||||
toc.push({
|
||||
level: Number(el.tagName.slice(1)),
|
||||
el: el,
|
||||
|
@ -661,6 +677,8 @@ define([
|
|||
});
|
||||
var content = [h('h2', Messages.markdown_toc)];
|
||||
toc.forEach(function (obj) {
|
||||
var title = (obj.title || "").trim();
|
||||
if (!title) { return; }
|
||||
// Only include level 2 headings
|
||||
var level = obj.level;
|
||||
var a = h('a.cp-pad-toc-link', {
|
||||
|
@ -672,7 +690,7 @@ define([
|
|||
if (!obj.el || UIElements.isVisible(obj.el, $inner)) { return; }
|
||||
obj.el.scrollIntoView();
|
||||
});
|
||||
a.innerHTML = obj.title;
|
||||
a.innerHTML = title;
|
||||
content.push(h('p.cp-pad-toc-'+level, a));
|
||||
});
|
||||
$toc.html('').append(content);
|
||||
|
@ -1098,7 +1116,7 @@ define([
|
|||
*/
|
||||
Ckeditor.dom.element.prototype.setHtml = function(a){
|
||||
if (/callFunction/.test(a)) {
|
||||
a = a.replace(/on(mousedown|blur|keydown|focus|click|dragstart)/g, function (value) {
|
||||
a = a.replace(/on(mousedown|blur|keydown|focus|click|dragstart|mouseover|mouseout)/g, function (value) {
|
||||
return 'o' + value;
|
||||
});
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue