mirror of
https://github.com/DiscordFactory/website-documentation.git
synced 2026-01-29 00:00:26 +01:00
🚧 Create Prism component
This commit is contained in:
226
src/components/CodeHighlight.vue
Normal file
226
src/components/CodeHighlight.vue
Normal file
@@ -0,0 +1,226 @@
|
|||||||
|
<template>
|
||||||
|
<Prism language="typescript">{{ code }}</Prism>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup lang='ts'>
|
||||||
|
import 'prismjs'
|
||||||
|
import 'prismjs/components/prism-typescript'
|
||||||
|
// @ts-ignore
|
||||||
|
import Prism from 'vue-prism-component'
|
||||||
|
|
||||||
|
defineProps<{
|
||||||
|
code: string
|
||||||
|
}>()
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss">
|
||||||
|
code[class*="language-"],
|
||||||
|
pre[class*="language-"] {
|
||||||
|
text-align: left;
|
||||||
|
white-space: pre;
|
||||||
|
word-spacing: normal;
|
||||||
|
word-break: normal;
|
||||||
|
word-wrap: normal;
|
||||||
|
color: #c3cee3;
|
||||||
|
background: #263238;
|
||||||
|
font-family: Roboto Mono, monospace;
|
||||||
|
font-size: 1em;
|
||||||
|
line-height: 1.5em;
|
||||||
|
-moz-tab-size: 2;
|
||||||
|
-o-tab-size: 2;
|
||||||
|
tab-size: 2;
|
||||||
|
-webkit-hyphens: none;
|
||||||
|
-moz-hyphens: none;
|
||||||
|
-ms-hyphens: none;
|
||||||
|
hyphens: none;
|
||||||
|
@apply rounded-md h-full;
|
||||||
|
}
|
||||||
|
|
||||||
|
code[class*="language-"]::-moz-selection,
|
||||||
|
pre[class*="language-"]::-moz-selection,
|
||||||
|
code[class*="language-"] ::-moz-selection,
|
||||||
|
pre[class*="language-"] ::-moz-selection {
|
||||||
|
background: #363636;
|
||||||
|
}
|
||||||
|
|
||||||
|
code[class*="language-"]::selection,
|
||||||
|
pre[class*="language-"]::selection,
|
||||||
|
code[class*="language-"] ::selection,
|
||||||
|
pre[class*="language-"] ::selection {
|
||||||
|
background: #363636;
|
||||||
|
}
|
||||||
|
|
||||||
|
:not(pre) > code[class*="language-"] {
|
||||||
|
white-space: normal;
|
||||||
|
border-radius: 0.2em;
|
||||||
|
padding: 0.1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre[class*="language-"] {
|
||||||
|
overflow: auto;
|
||||||
|
position: relative;
|
||||||
|
margin: 0.5em 0;
|
||||||
|
padding: 0 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.language-css > code,
|
||||||
|
.language-sass > code,
|
||||||
|
.language-scss > code {
|
||||||
|
color: #fd9170;
|
||||||
|
}
|
||||||
|
|
||||||
|
[class*="language-"] .namespace {
|
||||||
|
opacity: 0.7;
|
||||||
|
}
|
||||||
|
|
||||||
|
.token.atrule {
|
||||||
|
color: #c792ea;
|
||||||
|
}
|
||||||
|
|
||||||
|
.token.attr-name {
|
||||||
|
color: #ffcb6b;
|
||||||
|
}
|
||||||
|
|
||||||
|
.token.attr-value {
|
||||||
|
color: #c3e88d;
|
||||||
|
}
|
||||||
|
|
||||||
|
.token.attribute {
|
||||||
|
color: #c3e88d;
|
||||||
|
}
|
||||||
|
|
||||||
|
.token.boolean {
|
||||||
|
color: #c792ea;
|
||||||
|
}
|
||||||
|
|
||||||
|
.token.builtin {
|
||||||
|
color: #BFBFBF;
|
||||||
|
}
|
||||||
|
|
||||||
|
.token.cdata {
|
||||||
|
color: #80cbc4;
|
||||||
|
}
|
||||||
|
|
||||||
|
.token.char {
|
||||||
|
color: #80cbc4;
|
||||||
|
}
|
||||||
|
|
||||||
|
.token.class {
|
||||||
|
color: #ffcb6b;
|
||||||
|
}
|
||||||
|
|
||||||
|
.token.class-name {
|
||||||
|
color: #BFBFBF;
|
||||||
|
}
|
||||||
|
|
||||||
|
.token.color {
|
||||||
|
color: #f2ff00;
|
||||||
|
}
|
||||||
|
|
||||||
|
.token.comment {
|
||||||
|
color: #546e7a;
|
||||||
|
}
|
||||||
|
|
||||||
|
.token.constant {
|
||||||
|
color: #c792ea;
|
||||||
|
}
|
||||||
|
|
||||||
|
.token.deleted {
|
||||||
|
color: #f07178;
|
||||||
|
}
|
||||||
|
|
||||||
|
.token.doctype {
|
||||||
|
color: #546e7a;
|
||||||
|
}
|
||||||
|
|
||||||
|
.token.entity {
|
||||||
|
color: #f07178;
|
||||||
|
}
|
||||||
|
|
||||||
|
.token.function {
|
||||||
|
color: #0F74B9;
|
||||||
|
}
|
||||||
|
|
||||||
|
.token.hexcode {
|
||||||
|
color: #f2ff00;
|
||||||
|
}
|
||||||
|
|
||||||
|
.token.id {
|
||||||
|
color: #c792ea;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.token.important {
|
||||||
|
color: #c792ea;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.token.inserted {
|
||||||
|
color: #80cbc4;
|
||||||
|
}
|
||||||
|
|
||||||
|
.token.keyword {
|
||||||
|
color: #17A7C1;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
|
||||||
|
.token.number {
|
||||||
|
color: #fd9170;
|
||||||
|
}
|
||||||
|
|
||||||
|
.token.operator {
|
||||||
|
color: #0F74B9;
|
||||||
|
}
|
||||||
|
|
||||||
|
.token.prolog {
|
||||||
|
color: #546e7a;
|
||||||
|
}
|
||||||
|
|
||||||
|
.token.property {
|
||||||
|
color: #80cbc4;
|
||||||
|
}
|
||||||
|
|
||||||
|
.token.pseudo-class {
|
||||||
|
color: #c3e88d;
|
||||||
|
}
|
||||||
|
|
||||||
|
.token.pseudo-element {
|
||||||
|
color: #c3e88d;
|
||||||
|
}
|
||||||
|
|
||||||
|
.token.punctuation {
|
||||||
|
color: #BFBFBF;
|
||||||
|
}
|
||||||
|
|
||||||
|
.token.regex {
|
||||||
|
color: #f2ff00;
|
||||||
|
}
|
||||||
|
|
||||||
|
.token.selector {
|
||||||
|
color: #f07178;
|
||||||
|
}
|
||||||
|
|
||||||
|
.token.string {
|
||||||
|
color: #c3e88d;
|
||||||
|
}
|
||||||
|
|
||||||
|
.token.symbol {
|
||||||
|
color: #C792EA;
|
||||||
|
}
|
||||||
|
|
||||||
|
.token.tag {
|
||||||
|
color: #f07178;
|
||||||
|
}
|
||||||
|
|
||||||
|
.token.unit {
|
||||||
|
color: #f07178;
|
||||||
|
}
|
||||||
|
|
||||||
|
.token.url {
|
||||||
|
color: #fd9170;
|
||||||
|
}
|
||||||
|
|
||||||
|
.token.variable {
|
||||||
|
color: #f07178;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
Reference in New Issue
Block a user