diff --git a/plugins/plugin-shikiji/src/node/markdown/lineNumberPlugin.ts b/plugins/plugin-shikiji/src/node/markdown/lineNumberPlugin.ts index 718d389f..fe911347 100644 --- a/plugins/plugin-shikiji/src/node/markdown/lineNumberPlugin.ts +++ b/plugins/plugin-shikiji/src/node/markdown/lineNumberPlugin.ts @@ -6,6 +6,7 @@ import type { LineNumberOptions } from '../types.js' const LINE_NUMBERS_REGEXP = /:line-numbers\b/ const NO_LINE_NUMBERS_REGEXP = /:no-line-numbers\b/ +const LINE_NUMBERS_START_REGEXP = /:line-numbers=(\d+)\b/ export function lineNumberPlugin(md: Markdown, { lineNumbers = true }: LineNumberOptions = {}): void { const rawFence = md.renderer.rules.fence! @@ -41,11 +42,15 @@ export function lineNumberPlugin(md: Markdown, { lineNumbers = true }: LineNumbe ) return rawCode + const startNumbers + = Number(info.match(LINE_NUMBERS_START_REGEXP)?.[1] ?? 1) - 1 + const lineNumbersStyle = `style="counter-reset:line-number ${startNumbers}"` + const lineNumbersCode = [...Array(lines.length)] .map(() => `
`) .join('') - const lineNumbersWrapperCode = `` + const lineNumbersWrapperCode = `` const finalCode = rawCode .replace(/<\/div>$/, `${lineNumbersWrapperCode}`) diff --git a/theme/src/client/components/Page.vue b/theme/src/client/components/Page.vue index 66fa9944..b0a49ef3 100644 --- a/theme/src/client/components/Page.vue +++ b/theme/src/client/components/Page.vue @@ -1,7 +1,5 @@