Add language auto-detection, add YAML, more shell languages
This commit is contained in:
parent
b6d2e4d1af
commit
7924dd8bca
|
@ -20,6 +20,7 @@
|
||||||
"copy-to-clipboard": "^3.3.3",
|
"copy-to-clipboard": "^3.3.3",
|
||||||
"eslint-config-standard-with-typescript": "^34.0.1",
|
"eslint-config-standard-with-typescript": "^34.0.1",
|
||||||
"eslint-plugin-svelte3": "^4.0.0",
|
"eslint-plugin-svelte3": "^4.0.0",
|
||||||
|
"flourite": "^1.2.2",
|
||||||
"postcss": "^8.4.21",
|
"postcss": "^8.4.21",
|
||||||
"sass": "^1.59.2",
|
"sass": "^1.59.2",
|
||||||
"svelte": "^3.55.1",
|
"svelte": "^3.55.1",
|
||||||
|
@ -2208,6 +2209,15 @@
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"peer": true
|
"peer": true
|
||||||
},
|
},
|
||||||
|
"node_modules/flourite": {
|
||||||
|
"version": "1.2.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/flourite/-/flourite-1.2.2.tgz",
|
||||||
|
"integrity": "sha512-eSRUyfKaJ0dyyas8GOQEqwYCcBymfjS+bMgzQAq2rA6jCbkeCm7upT8o5HmBT3SILzslzeUqEvjak1MjJY+NrA==",
|
||||||
|
"dev": true,
|
||||||
|
"funding": {
|
||||||
|
"url": "https://saweria.co/teknologiumum"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/for-each": {
|
"node_modules/for-each": {
|
||||||
"version": "0.3.3",
|
"version": "0.3.3",
|
||||||
"resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
|
"resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
|
||||||
|
|
|
@ -26,6 +26,7 @@
|
||||||
"copy-to-clipboard": "^3.3.3",
|
"copy-to-clipboard": "^3.3.3",
|
||||||
"eslint-config-standard-with-typescript": "^34.0.1",
|
"eslint-config-standard-with-typescript": "^34.0.1",
|
||||||
"eslint-plugin-svelte3": "^4.0.0",
|
"eslint-plugin-svelte3": "^4.0.0",
|
||||||
|
"flourite": "^1.2.2",
|
||||||
"postcss": "^8.4.21",
|
"postcss": "^8.4.21",
|
||||||
"sass": "^1.59.2",
|
"sass": "^1.59.2",
|
||||||
"svelte": "^3.55.1",
|
"svelte": "^3.55.1",
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { Highlight } from 'svelte-highlight'
|
import { Highlight } from 'svelte-highlight'
|
||||||
|
import flourite from 'flourite'
|
||||||
|
|
||||||
// Import both dark and light styles
|
// Import both dark and light styles
|
||||||
import { github, githubDark } from 'svelte-highlight/styles'
|
import { github, githubDark } from 'svelte-highlight/styles'
|
||||||
|
@ -22,6 +23,7 @@
|
||||||
shell,
|
shell,
|
||||||
php,
|
php,
|
||||||
plaintext,
|
plaintext,
|
||||||
|
yaml,
|
||||||
type LanguageType
|
type LanguageType
|
||||||
} from 'svelte-highlight/languages'
|
} from 'svelte-highlight/languages'
|
||||||
|
|
||||||
|
@ -33,6 +35,12 @@
|
||||||
|
|
||||||
// Map lang string to LanguageType
|
// Map lang string to LanguageType
|
||||||
let language: LanguageType<string>
|
let language: LanguageType<string>
|
||||||
|
|
||||||
|
// If no language is set, try to detect it using flourite
|
||||||
|
if (!lang) {
|
||||||
|
lang = flourite(text, { shiki: true }).language
|
||||||
|
}
|
||||||
|
|
||||||
switch (lang) {
|
switch (lang) {
|
||||||
case 'js':
|
case 'js':
|
||||||
case 'javascript':
|
case 'javascript':
|
||||||
|
@ -63,11 +71,18 @@
|
||||||
case 'sh':
|
case 'sh':
|
||||||
case 'shell':
|
case 'shell':
|
||||||
case 'bash':
|
case 'bash':
|
||||||
|
case 'console':
|
||||||
|
case 'shellscript':
|
||||||
|
case 'zsh':
|
||||||
language = shell
|
language = shell
|
||||||
break
|
break
|
||||||
case 'php':
|
case 'php':
|
||||||
language = php
|
language = php
|
||||||
break
|
break
|
||||||
|
case 'yaml':
|
||||||
|
case 'yml':
|
||||||
|
language = yaml
|
||||||
|
break
|
||||||
default:
|
default:
|
||||||
language = plaintext
|
language = plaintext
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue