this.setupPointer();
this.setupStickySidebar();
this.setupNavHighlighting();
+ this.setupEditOnHeader();
// Check the hash on load
if (window.location.hash) {
}
}
}
+ setupEditOnHeader() {
+ const headingEditIcon = document.querySelector('.heading-edit-icon');
+ if (headingEditIcon.length === 0) {
+ // user does not have permission to edit.
+ return;
+ }
+
+ // Create a clone of the edit icon without the hidden class
+ const visibleHeadingEditIcon = headingEditIcon.cloneNode(true);
+ visibleHeadingEditIcon.style.display = '';
+
+ const headings = document.querySelector('.page-content').querySelectorAll('h1, h2, h3, h4, h5, h6');
+
+ // add an edit icon to each header.
+ for (let i = 0; i !== headings.length; ++i) {
+ const currHeading = headings[i];
+ const headingId = currHeading.id;
+
+ let editIcon = visibleHeadingEditIcon.cloneNode(true);
+ editIcon.href += `#${headingId}`;
+
+ currHeading.appendChild(editIcon);
+ }
+ }
}
-module.exports = PageDisplay;
\ No newline at end of file
+module.exports = PageDisplay;
editorChange(html);
});
+ window.$events.listen('editor-scroll-to-text', textId => {
+ const element = editor.dom.get(textId)
+ if (!element) {
+ return;
+ }
+
+ // scroll the element into the view and put the cursor at the end.
+ element.scrollIntoView();
+ editor.selection.select(element, true);
+ editor.selection.collapse(false);
+ editor.focus();
+ });
+
registerEditorShortcuts(editor);
let wrap;
window.$events.listen('editor-markdown-change', markdown => {
this.editorMarkdown = markdown;
});
+
+ const scrollToText = window.location.hash ? window.location.hash.substr(1) : '';
+ if (scrollToText) {
+ setTimeout(() => {
+ window.$events.emit('editor-scroll-to-text', scrollToText);
+ }, 1000)
+ }
}
let data = {