mirror of
https://github.com/wahyd4/vuepress.git
synced 2026-08-09 05:16:23 +10:00
@@ -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
|
||||
|
||||
token.lineNumbers = RE.exec(rawInfo)[1]
|
||||
.split(',')
|
||||
.map(v => v.split('-').map(v => parseInt(v, 10)))
|
||||
}
|
||||
|
||||
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)))
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user