Skip to content

Commit

Permalink
fix($markdown): fix line highlighting (close: #1364) (#1369)
Browse files Browse the repository at this point in the history
  • Loading branch information
shigma authored and ulivz committed Mar 2, 2019
1 parent 760f90b commit 5a111a2
Showing 1 changed file with 14 additions and 12 deletions.
26 changes: 14 additions & 12 deletions packages/@vuepress/markdown/lib/highlightLines.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,27 +9,29 @@ module.exports = md => {
const [tokens, idx, options] = args
const token = tokens[idx]

const rawInfo = token.info
if (!rawInfo || !RE.test(rawInfo)) {
return fence(...args)
}
if (!token.lineNumbers) {
const rawInfo = token.info
if (!rawInfo || !RE.test(rawInfo)) {
return fence(...args)
}

const langName = rawInfo.replace(RE, '').trim()
// ensure the next plugin get the correct lang.
token.info = langName
const langName = rawInfo.replace(RE, '').trim()
// ensure the next plugin get the correct lang.
token.info = langName

const lineNumbers = RE.exec(rawInfo)[1]
.split(',')
.map(v => v.split('-').map(v => parseInt(v, 10)))
token.lineNumbers = RE.exec(rawInfo)[1]
.split(',')
.map(v => v.split('-').map(v => parseInt(v, 10)))
}

const code = options.highlight
? options.highlight(token.content, langName)
? options.highlight(token.content, token.info)
: token.content

const rawCode = code.replace(wrapperRE, '')
const highlightLinesCode = rawCode.split('\n').map((split, index) => {
const lineNumber = index + 1
const inRange = lineNumbers.some(([start, end]) => {
const inRange = token.lineNumbers.some(([start, end]) => {
if (start && end) {
return lineNumber >= start && lineNumber <= end
}
Expand Down

0 comments on commit 5a111a2

Please sign in to comment.