React Slides
* Adds useState * State * useEffect * Side Effects
This commit is contained in:
6
src/lib/languages/index.ts
Normal file
6
src/lib/languages/index.ts
Normal file
@@ -0,0 +1,6 @@
|
||||
import { svelte } from './svelte'
|
||||
import type { Hljs } from './types'
|
||||
|
||||
export function registerLanguages(hljs: Hljs) {
|
||||
hljs.registerLanguage('svelte', svelte)
|
||||
}
|
||||
50
src/lib/languages/svelte.ts
Normal file
50
src/lib/languages/svelte.ts
Normal file
@@ -0,0 +1,50 @@
|
||||
import type { Hljs } from './types'
|
||||
|
||||
export function svelte(hljs: Hljs) {
|
||||
return {
|
||||
subLanguage: 'xml',
|
||||
contains: [
|
||||
hljs.COMMENT('<!--', '-->', {
|
||||
relevance: 10,
|
||||
}),
|
||||
{
|
||||
begin: /^(\s*)(<script(\s*context="module")?>)/gm,
|
||||
end: /^(\s*)(<\/script>)/gm,
|
||||
subLanguage: 'javascript',
|
||||
excludeBegin: true,
|
||||
excludeEnd: true,
|
||||
contains: [
|
||||
{
|
||||
begin: /^(\s*)(\$:)/gm,
|
||||
end: /(\s*)/gm,
|
||||
className: 'keyword',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
begin: /^(\s*)(<style.*>)/gm,
|
||||
end: /^(\s*)(<\/style>)/gm,
|
||||
subLanguage: 'css',
|
||||
excludeBegin: true,
|
||||
excludeEnd: true,
|
||||
},
|
||||
{
|
||||
begin: /\{/gm,
|
||||
end: /\}/gm,
|
||||
subLanguage: 'javascript',
|
||||
contains: [
|
||||
{
|
||||
begin: /[\{]/,
|
||||
end: /[\}]/,
|
||||
skip: true,
|
||||
},
|
||||
{
|
||||
begin: /([#:\/@])(if|else|each|await|then|catch|debug|html)/gm,
|
||||
className: 'keyword',
|
||||
relevance: 10,
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
}
|
||||
}
|
||||
3
src/lib/languages/types.ts
Normal file
3
src/lib/languages/types.ts
Normal file
@@ -0,0 +1,3 @@
|
||||
import hljs from 'highlight.js'
|
||||
|
||||
export type Hljs = typeof hljs
|
||||
Reference in New Issue
Block a user