1
0
mirror of https://github.com/BoostIo/Boostnote synced 2025-12-13 09:46:22 +00:00

Add file name and any first line number in code block (fixed)

This commit is contained in:
Masahide Morio
2018-02-11 02:28:03 +09:00
parent d4594eff3b
commit c43589fe6a
2 changed files with 20 additions and 4 deletions

View File

@@ -9,10 +9,11 @@ import {lastFindInArray} from './utils'
const katex = window.katex
const config = ConfigManager.get()
function createGutter (str) {
const lc = (str.match(/\n/g) || []).length
function createGutter (str, fc) {
if(Number.isNaN(fc)) fc = 1
const lc = (str.match(/\n/g) || []).length + fc - 1
const lines = []
for (let i = 1; i <= lc; i++) {
for (let i = fc; i <= lc; i++) {
lines.push('<span class="CodeMirror-linenumber">' + i + '</span>')
}
return '<span class="lineNumber CodeMirror-gutters">' + lines.join('') + '</span>'
@@ -25,6 +26,12 @@ var md = markdownit({
xhtmlOut: true,
breaks: true,
highlight: function (str, lang) {
let delimiter = ":";
let langinfo = lang.split(delimiter);
let lang = langinfo[0];
let filename = langinfo[1] || "";
let fc = parseInt(langinfo[2],10);
if (lang === 'flowchart') {
return `<pre class="flowchart">${str}</pre>`
}
@@ -32,7 +39,8 @@ var md = markdownit({
return `<pre class="sequence">${str}</pre>`
}
return '<pre class="code">' +
createGutter(str) +
'<span class="filename">' + filename + '</span>' +
createGutter(str, fc) +
'<code class="' + lang + '">' +
str +
'</code></pre>'