diff --git a/browser/components/markdown.styl b/browser/components/markdown.styl index d1d306e9..b64af56c 100644 --- a/browser/components/markdown.styl +++ b/browser/components/markdown.styl @@ -220,6 +220,7 @@ pre background-color white &.CodeMirror height initial + flex-wrap wrap &>code flex 1 overflow-x auto @@ -229,6 +230,13 @@ pre padding 0 border none border-radius 0 + &>span.filename + width 100% + border-radius: 5px 0px 0px 0px + margin -8px 100% 8px -8px + padding 0px 6px + background-color #777; + color white &>span.lineNumber display none font-size 1em diff --git a/browser/lib/markdown.js b/browser/lib/markdown.js index c3510f89..e6ba46d6 100644 --- a/browser/lib/markdown.js +++ b/browser/lib/markdown.js @@ -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('' + i + '') } return '' + lines.join('') + '' @@ -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 `
${str}`
}
@@ -32,7 +39,8 @@ var md = markdownit({
return `${str}`
}
return '' +
- createGutter(str) +
+ '' + filename + '' +
+ createGutter(str, fc) +
'' +
str +
''