Skip to content

Commit 0cd87b1

Browse files
authoredSep 16, 2023
fix: customizing the starting line number even if globally set (#2941)
1 parent 76e9fe8 commit 0cd87b1

File tree

3 files changed

+8
-2
lines changed

3 files changed

+8
-2
lines changed
 

‎src/node/markdown/plugins/highlight.ts

+6-1
Original file line numberDiff line numberDiff line change
@@ -87,13 +87,18 @@ export async function highlight(
8787
const styleRE = /<pre[^>]*(style=".*?")/
8888
const preRE = /^<pre(.*?)>/
8989
const vueRE = /-vue$/
90+
const lineNoStartRE = /=(\d*)/
9091
const lineNoRE = /:(no-)?line-numbers(=\d*)?$/
9192
const mustacheRE = /\{\{.*?\}\}/g
9293

9394
return (str: string, lang: string, attrs: string) => {
9495
const vPre = vueRE.test(lang) ? '' : 'v-pre'
9596
lang =
96-
lang.replace(lineNoRE, '').replace(vueRE, '').toLowerCase() || defaultLang
97+
lang
98+
.replace(lineNoStartRE, '')
99+
.replace(lineNoRE, '')
100+
.replace(vueRE, '')
101+
.toLowerCase() || defaultLang
97102

98103
if (lang) {
99104
const langLoaded = highlighter.getLoadedLanguages().includes(lang as any)

‎src/node/markdown/plugins/lineNumbers.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ export const lineNumberPlugin = (md: MarkdownIt, enable = false) => {
1919
}
2020

2121
let startLineNumber = 1
22-
const matchStartLineNumber = info.match(/:line-numbers=(\d*)/)
22+
const matchStartLineNumber = info.match(/=(\d*)/)
2323
if (matchStartLineNumber && matchStartLineNumber[1]) {
2424
startLineNumber = parseInt(matchStartLineNumber[1])
2525
}

‎src/node/markdown/plugins/preWrapper.ts

+1
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ export function extractTitle(info: string, html = false) {
4040
function extractLang(info: string) {
4141
return info
4242
.trim()
43+
.replace(/=(\d*)/, '')
4344
.replace(/:(no-)?line-numbers({| |$|=\d*).*/, '')
4445
.replace(/(-vue|{| ).*$/, '')
4546
.replace(/^vue-html$/, 'template')

0 commit comments

Comments
 (0)
Please sign in to comment.