@@ -16,7 +16,7 @@ import type { MarkdownEnv } from '../../shared'
16
16
* captures: ['/path/to/file.extension', 'extension', '#region', '{meta}', '[title]']
17
17
*/
18
18
export const rawPathRegexp =
19
- / ^ ( .+ ?(?: (?: \. ( [ a - z 0 - 9 ] + ) ) ? ) ) (?: ( # [ \w - ] + ) ) ? (?: ? (?: { ( \d + (?: [ , - ] \d + ) * ) ? ? ( \S + ) ? } ) ) ? ? (?: \[ ( .+ ) \] ) ? $ /
19
+ / ^ ( .+ ?(?: (?: \. ( [ a - z 0 - 9 ] + ) ) ? ) ) (?: ( # [ \w - ] + ) ) ? (?: ? (?: { ( \d + (?: [ , - ] \d + ) * ) ? ? ( \S + ) ? ? ( \S + ) ? } ) ) ? ? (?: \[ ( .+ ) \] ) ? $ /
20
20
21
21
export function rawPathToToken ( rawPath : string ) {
22
22
const [
@@ -25,12 +25,13 @@ export function rawPathToToken(rawPath: string) {
25
25
region = '' ,
26
26
lines = '' ,
27
27
lang = '' ,
28
+ attrs = '' ,
28
29
rawTitle = ''
29
30
] = ( rawPathRegexp . exec ( rawPath ) || [ ] ) . slice ( 1 )
30
31
31
32
const title = rawTitle || filepath . split ( '/' ) . pop ( ) || ''
32
33
33
- return { filepath, extension, region, lines, lang, title }
34
+ return { filepath, extension, region, lines, lang, attrs , title }
34
35
}
35
36
36
37
export function dedent ( text : string ) : string {
@@ -126,15 +127,15 @@ export const snippetPlugin = (md: MarkdownIt, srcDir: string) => {
126
127
. replace ( / ^ @ / , srcDir )
127
128
. trim ( )
128
129
129
- const { filepath, extension, region, lines, lang, title } =
130
+ const { filepath, extension, region, lines, lang, attrs , title } =
130
131
rawPathToToken ( rawPath )
131
132
132
133
state . line = startLine + 1
133
134
134
135
const token = state . push ( 'fence' , 'code' , 0 )
135
136
token . info = `${ lang || extension } ${ lines ? `{${ lines } }` : '' } ${
136
137
title ? `[${ title } ]` : ''
137
- } `
138
+ } ${ attrs ?? '' } `
138
139
139
140
const { realPath, path : _path } = state . env as MarkdownEnv
140
141
const resolvedPath = path . resolve ( path . dirname ( realPath ?? _path ) , filepath )
0 commit comments