Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions browser/components/markdown.styl
Original file line number Diff line number Diff line change
Expand Up @@ -220,6 +220,7 @@ pre
background-color white
&.CodeMirror
height initial
flex-wrap wrap
&>code
flex 1
overflow-x auto
Expand All @@ -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
Expand Down
22 changes: 15 additions & 7 deletions browser/lib/markdown.js
Original file line number Diff line number Diff line change
Expand Up @@ -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>'
Expand All @@ -25,15 +26,22 @@ var md = markdownit({
xhtmlOut: true,
breaks: true,
highlight: function (str, lang) {
if (lang === 'flowchart') {
const delimiter = ':'
const langInfo = lang.split(delimiter)
const langType = langInfo[0]
const fileName = langInfo[1] || ''
const fc = parseInt(langInfo[2], 10)

if (langType === 'flowchart') {
return `<pre class="flowchart">${str}</pre>`
}
if (lang === 'sequence') {
if (langType === 'sequence') {
return `<pre class="sequence">${str}</pre>`
}
return '<pre class="code">' +
createGutter(str) +
'<code class="' + lang + '">' +
'<span class="filename">' + fileName + '</span>' +
createGutter(str, fc) +
'<code class="' + langType + '">' +
str +
'</code></pre>'
}
Expand Down