fix: customizing the starting line number even if globally set (#2941)

pull/2977/head
mehm8128 2 years ago committed by GitHub
parent 76e9fe86b2
commit 0cd87b1baf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -87,13 +87,18 @@ export async function highlight(
const styleRE = /<pre[^>]*(style=".*?")/
const preRE = /^<pre(.*?)>/
const vueRE = /-vue$/
const lineNoStartRE = /=(\d*)/
const lineNoRE = /:(no-)?line-numbers(=\d*)?$/
const mustacheRE = /\{\{.*?\}\}/g
return (str: string, lang: string, attrs: string) => {
const vPre = vueRE.test(lang) ? '' : 'v-pre'
lang =
lang.replace(lineNoRE, '').replace(vueRE, '').toLowerCase() || defaultLang
lang
.replace(lineNoStartRE, '')
.replace(lineNoRE, '')
.replace(vueRE, '')
.toLowerCase() || defaultLang
if (lang) {
const langLoaded = highlighter.getLoadedLanguages().includes(lang as any)

@ -19,7 +19,7 @@ export const lineNumberPlugin = (md: MarkdownIt, enable = false) => {
}
let startLineNumber = 1
const matchStartLineNumber = info.match(/:line-numbers=(\d*)/)
const matchStartLineNumber = info.match(/=(\d*)/)
if (matchStartLineNumber && matchStartLineNumber[1]) {
startLineNumber = parseInt(matchStartLineNumber[1])
}

@ -40,6 +40,7 @@ export function extractTitle(info: string, html = false) {
function extractLang(info: string) {
return info
.trim()
.replace(/=(\d*)/, '')
.replace(/:(no-)?line-numbers({| |$|=\d*).*/, '')
.replace(/(-vue|{| ).*$/, '')
.replace(/^vue-html$/, 'template')

Loading…
Cancel
Save