Skip to content

Commit afbbaa2

Browse files
committed
Remove outdated highlightjs-vue dependency from package.json and replace with custom inline solution
1 parent 91fd8fd commit afbbaa2

3 files changed

Lines changed: 269 additions & 223 deletions

File tree

app/assets/highlight.js

Lines changed: 48 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,58 @@
11
import CopyButtonPlugin from 'highlightjs-copy'
22
import hljs from 'highlight.js'
3-
import hljsDefineVue from 'highlightjs-vue'
3+
4+
// Define Vue language for Highlight.js
5+
// Based on: https://github.com/highlightjs/highlightjs-vue
6+
hljs.registerLanguage('vue', function (hljs) {
7+
return {
8+
subLanguage: 'xml',
9+
contains: [
10+
hljs.COMMENT('<!--', '-->', {
11+
relevance: 10
12+
}),
13+
{
14+
begin: /^(\s*)(<script>)/gm,
15+
end: /^(\s*)(<\/script>)/gm,
16+
subLanguage: 'javascript',
17+
excludeBegin: true,
18+
excludeEnd: true
19+
},
20+
{
21+
begin: /^(\s*)(<script lang=["']ts["']>)/gm,
22+
end: /^(\s*)(<\/script>)/gm,
23+
subLanguage: 'typescript',
24+
excludeBegin: true,
25+
excludeEnd: true
26+
},
27+
{
28+
begin: /^(\s*)(<style(\sscoped)?>)/gm,
29+
end: /^(\s*)(<\/style>)/gm,
30+
subLanguage: 'css',
31+
excludeBegin: true,
32+
excludeEnd: true
33+
},
34+
{
35+
begin: /^(\s*)(<style lang=["'](scss|sass)["'](\sscoped)?>)/gm,
36+
end: /^(\s*)(<\/style>)/gm,
37+
subLanguage: 'scss',
38+
excludeBegin: true,
39+
excludeEnd: true
40+
},
41+
{
42+
begin: /^(\s*)(<style lang=["']stylus["'](\sscoped)?>)/gm,
43+
end: /^(\s*)(<\/style>)/gm,
44+
subLanguage: 'stylus',
45+
excludeBegin: true,
46+
excludeEnd: true
47+
}
48+
]
49+
}
50+
})
451

552
// Initialize Highlight.js with Copy Button plugin
653
hljs.addPlugin(
754
new CopyButtonPlugin({
855
autohide: false // Always show the copy button
956
})
1057
)
11-
hljsDefineVue(hljs) // Register Vue language definition
1258
hljs.highlightAll()

0 commit comments

Comments
 (0)