this.onMarkdownScroll = this.onMarkdownScroll.bind(this);
this.init();
+
+ // Scroll to text if needed.
+ const queryParams = (new URL(window.location)).searchParams;
+ const scrollText = queryParams.get('content-text');
+ if (scrollText) {
+ this.scrollToText(scrollText);
+ }
}
init() {
});
}
+ // Scroll to a specified text
+ scrollToText(searchText) {;
+ if (!searchText) {
+ return;
+ }
+ const content = this.cm.getValue();
+ const lines = content.split(/\r?\n/);
+ let lineNumber = -1;
+ for (let i = 0; i !== lines.length; ++i) {
+ const line = lines[i];
+ if (!line) {
+ continue;
+ }
+ if (line.indexOf(searchText) !== -1) {
+ lineNumber = i;
+ break;
+ }
+ }
+
+ if (lineNumber !== -1) {
+ this.cm.scrollIntoView({
+ line: lineNumber,
+ }, 200);
+ this.cm.focus();
+ // set the cursor location.
+ this.cm.setCursor({
+ line: lineNumber,
+ char: lines[lineNumber].length
+ })
+ }
+ }
+
}
module.exports = MarkdownEditor ;
\ No newline at end of file