Code
Code blokken
Codeblokken worden weergegeven door de ProsePre-component met syntaxisaccentuering aangedreven door Shiki.
export default defineNuxtConfig({
modules: ['@nuxt/ui']
})
```ts
export standaard defineNuxtConfig ({
modules: ['@ nuxt / ui']
})
```
| Prop | Default | Type |
|---|---|---|
icon | any | |
code | string | |
language | string | |
filename | string | |
highlights | number[] | |
hideHeader | boolean | |
meta | string | |
copy | true | boolean | Omit<ButtonProps, LinkPropsKeys> Display a button to copy the code to the clipboard.
|
ui | { root?: SlotClass; header?: SlotClass; filename?: SlotClass; icon?: SlotClass; copy?: SlotClass; base?: SlotClass; } |
export default defineAppConfig({
ui: {
prose: {
pre: {
slots: {
root: 'relative my-5 group',
header: 'flex items-center gap-1.5 border border-muted bg-default border-b-0 relative rounded-t-md px-4 py-3',
filename: 'text-default text-sm/6',
icon: 'size-4 shrink-0',
copy: 'absolute top-[11px] end-[11px] lg:opacity-0 lg:group-hover:opacity-100 lg:focus-visible:opacity-100 transition',
base: 'group font-mono text-sm/6 border border-muted bg-muted rounded-md px-4 py-3 whitespace-pre-wrap wrap-break-word overflow-x-auto outline-primary/25 focus-visible:outline-3 focus-visible:border-primary **:[.line]:block **:[.line.highlight]:-mx-4 **:[.line.highlight]:px-4 **:[.line.highlight]:bg-accented/50!'
},
variants: {
filename: {
true: {
root: '[&>pre]:rounded-t-none [&>pre]:my-0 my-5'
}
}
}
},
codeIcon: {
'.editorconfig': 'i-vscode-icons-file-type-editorconfig',
'.env': 'i-vscode-icons-file-type-dotenv',
'.env.example': 'i-vscode-icons-file-type-dotenv',
'.eslintignore': 'i-vscode-icons-file-type-eslint',
'.eslintrc': 'i-vscode-icons-file-type-eslint',
'.eslintrc.cjs': 'i-vscode-icons-file-type-eslint',
'.gitignore': 'i-vscode-icons-file-type-git',
'.npmrc': 'i-vscode-icons-file-type-npm',
'.nuxtignore': 'i-vscode-icons-file-type-nuxt',
'.nuxtrc': 'i-vscode-icons-file-type-nuxt',
'.vscode/settings.json': 'i-vscode-icons-file-type-vscode',
asm: 'i-vscode-icons-file-type-assembly',
bicep: 'i-vscode-icons-file-type-bicep',
bicepparam: 'i-vscode-icons-file-type-bicep',
bun: 'i-vscode-icons-file-type-bun',
cjs: 'i-vscode-icons-file-type-js',
cs: 'i-vscode-icons-file-type-csharp',
dart: 'i-vscode-icons-file-type-dartlang',
deno: 'i-vscode-icons-file-type-deno',
erl: 'i-vscode-icons-file-type-erlang',
'eslint.config.cjs': 'i-vscode-icons-file-type-eslint',
'eslint.config.js': 'i-vscode-icons-file-type-eslint',
'eslint.config.mjs': 'i-vscode-icons-file-type-eslint',
exs: 'i-vscode-icons-file-type-elixir',
f: 'i-vscode-icons-file-type-fortran',
fs: 'i-vscode-icons-file-type-fsharp',
gleam: 'i-vscode-icons-file-type-gleam',
go: 'i-vscode-icons-file-type-go',
h: 'i-vscode-icons-file-type-cppheader',
hs: 'i-vscode-icons-file-type-haskell',
ico: 'i-vscode-icons-file-type-favicon',
ino: 'i-vscode-icons-file-type-arduino',
jl: 'i-vscode-icons-file-type-julia',
js: 'i-vscode-icons-file-type-js',
jsx: 'i-vscode-icons-file-type-js',
kt: 'i-vscode-icons-file-type-kotlin',
lsp: 'i-vscode-icons-file-type-lisp',
md: 'i-vscode-icons-file-type-markdown',
mjs: 'i-vscode-icons-file-type-js',
npm: 'i-vscode-icons-file-type-npm',
npx: 'i-vscode-icons-file-type-npm',
nuxt: 'i-vscode-icons-file-type-nuxt',
'nuxt.config.js': 'i-vscode-icons-file-type-nuxt',
'nuxt.config.ts': 'i-vscode-icons-file-type-nuxt',
'nuxt.schema.ts': 'i-vscode-icons-file-type-nuxt',
'package.json': 'i-vscode-icons-file-type-node',
pl: 'i-vscode-icons-file-type-perl',
pnpm: 'i-vscode-icons-file-type-pnpm',
ps1: 'i-vscode-icons-file-type-powershell',
psd1: 'i-vscode-icons-file-type-powershell',
psm1: 'i-vscode-icons-file-type-powershell',
py: 'i-vscode-icons-file-type-python',
rb: 'i-vscode-icons-file-type-ruby',
rs: 'i-vscode-icons-file-type-rust',
sbt: 'i-vscode-icons-file-type-scala',
'tailwind.config.js': 'i-vscode-icons-file-type-tailwind',
'tailwind.config.ts': 'i-vscode-icons-file-type-tailwind',
terminal: 'i-lucide-terminal',
ts: 'i-vscode-icons-file-type-typescript',
'tsconfig.json': 'i-vscode-icons-file-type-tsconfig',
tsx: 'i-vscode-icons-file-type-typescript',
vue: 'i-vscode-icons-file-type-vue',
yarn: 'i-vscode-icons-file-type-yarn',
'yarn.lock': 'i-vscode-icons-file-type-yarn',
yml: 'i-vscode-icons-file-type-yaml'
}
}
}
})import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import ui from '@nuxt/ui/vite'
export default defineConfig({
plugins: [
vue(),
ui({
ui: {
prose: {
pre: {
slots: {
root: 'relative my-5 group',
header: 'flex items-center gap-1.5 border border-muted bg-default border-b-0 relative rounded-t-md px-4 py-3',
filename: 'text-default text-sm/6',
icon: 'size-4 shrink-0',
copy: 'absolute top-[11px] end-[11px] lg:opacity-0 lg:group-hover:opacity-100 lg:focus-visible:opacity-100 transition',
base: 'group font-mono text-sm/6 border border-muted bg-muted rounded-md px-4 py-3 whitespace-pre-wrap wrap-break-word overflow-x-auto outline-primary/25 focus-visible:outline-3 focus-visible:border-primary **:[.line]:block **:[.line.highlight]:-mx-4 **:[.line.highlight]:px-4 **:[.line.highlight]:bg-accented/50!'
},
variants: {
filename: {
true: {
root: '[&>pre]:rounded-t-none [&>pre]:my-0 my-5'
}
}
}
},
codeIcon: {
'.editorconfig': 'i-vscode-icons-file-type-editorconfig',
'.env': 'i-vscode-icons-file-type-dotenv',
'.env.example': 'i-vscode-icons-file-type-dotenv',
'.eslintignore': 'i-vscode-icons-file-type-eslint',
'.eslintrc': 'i-vscode-icons-file-type-eslint',
'.eslintrc.cjs': 'i-vscode-icons-file-type-eslint',
'.gitignore': 'i-vscode-icons-file-type-git',
'.npmrc': 'i-vscode-icons-file-type-npm',
'.nuxtignore': 'i-vscode-icons-file-type-nuxt',
'.nuxtrc': 'i-vscode-icons-file-type-nuxt',
'.vscode/settings.json': 'i-vscode-icons-file-type-vscode',
asm: 'i-vscode-icons-file-type-assembly',
bicep: 'i-vscode-icons-file-type-bicep',
bicepparam: 'i-vscode-icons-file-type-bicep',
bun: 'i-vscode-icons-file-type-bun',
cjs: 'i-vscode-icons-file-type-js',
cs: 'i-vscode-icons-file-type-csharp',
dart: 'i-vscode-icons-file-type-dartlang',
deno: 'i-vscode-icons-file-type-deno',
erl: 'i-vscode-icons-file-type-erlang',
'eslint.config.cjs': 'i-vscode-icons-file-type-eslint',
'eslint.config.js': 'i-vscode-icons-file-type-eslint',
'eslint.config.mjs': 'i-vscode-icons-file-type-eslint',
exs: 'i-vscode-icons-file-type-elixir',
f: 'i-vscode-icons-file-type-fortran',
fs: 'i-vscode-icons-file-type-fsharp',
gleam: 'i-vscode-icons-file-type-gleam',
go: 'i-vscode-icons-file-type-go',
h: 'i-vscode-icons-file-type-cppheader',
hs: 'i-vscode-icons-file-type-haskell',
ico: 'i-vscode-icons-file-type-favicon',
ino: 'i-vscode-icons-file-type-arduino',
jl: 'i-vscode-icons-file-type-julia',
js: 'i-vscode-icons-file-type-js',
jsx: 'i-vscode-icons-file-type-js',
kt: 'i-vscode-icons-file-type-kotlin',
lsp: 'i-vscode-icons-file-type-lisp',
md: 'i-vscode-icons-file-type-markdown',
mjs: 'i-vscode-icons-file-type-js',
npm: 'i-vscode-icons-file-type-npm',
npx: 'i-vscode-icons-file-type-npm',
nuxt: 'i-vscode-icons-file-type-nuxt',
'nuxt.config.js': 'i-vscode-icons-file-type-nuxt',
'nuxt.config.ts': 'i-vscode-icons-file-type-nuxt',
'nuxt.schema.ts': 'i-vscode-icons-file-type-nuxt',
'package.json': 'i-vscode-icons-file-type-node',
pl: 'i-vscode-icons-file-type-perl',
pnpm: 'i-vscode-icons-file-type-pnpm',
ps1: 'i-vscode-icons-file-type-powershell',
psd1: 'i-vscode-icons-file-type-powershell',
psm1: 'i-vscode-icons-file-type-powershell',
py: 'i-vscode-icons-file-type-python',
rb: 'i-vscode-icons-file-type-ruby',
rs: 'i-vscode-icons-file-type-rust',
sbt: 'i-vscode-icons-file-type-scala',
'tailwind.config.js': 'i-vscode-icons-file-type-tailwind',
'tailwind.config.ts': 'i-vscode-icons-file-type-tailwind',
terminal: 'i-lucide-terminal',
ts: 'i-vscode-icons-file-type-typescript',
'tsconfig.json': 'i-vscode-icons-file-type-tsconfig',
tsx: 'i-vscode-icons-file-type-typescript',
vue: 'i-vscode-icons-file-type-vue',
yarn: 'i-vscode-icons-file-type-yarn',
'yarn.lock': 'i-vscode-icons-file-type-yarn',
yml: 'i-vscode-icons-file-type-yaml'
}
}
}
})
]
})Taal
Syntaxisaccentuering is beschikbaar voor tientallen programmeertalen.
<script setup lang="ts">
const message = ref('Hello World!')
function updateMessage() {
message.value = 'Button clicked!'
}
</script>
<template>
<div>
<h1>{{ message }}</h1>
<UButton @click="updateMessage">
Click me
</UButton>
</div>
</template>
```vue
<script setup lang="ts">
const message = ref ('Hallo Wereld!')
functie updateMessage () {
message.value = 'Knop aangeklikt!'
}
</script>
<template>
<div>
<h1> {{ message }} </h1>
<UButton @click="updateMessage">
Klik mij
</UButton>
</div>
</template>
```
material-theme-lighter en material-theme-palenight Shiki thema 's gebruikt voor respectievelijk de lichte en donkere modus. Wanneer u @nuxt/content gebruikt, kunt u dit wijzigen via de content.build.markdown.highlight in uw nuxt.config.ts.
Wanneer u standalone @nuxtjs/mdc gebruikt, configureert u thema 's via de mdc.highlight . Wanneer u Comark gebruikt, configureert u thema 's via de shiki-plug-inopties.Om de donkere modus met Comark te ondersteunen, voegt u de volgende CSS toe aan uw stylesheet:html.dark .shiki span {
color: var(--shiki-dark) !important;
background-color: var(--shiki-dark-bg) !important;
font-style: var(--shiki-dark-font-style) !important;
font-weight: var(--shiki-dark-font-weight) !important;
text-decoration: var(--shiki-dark-text-decoration) !important;
}
Bestandsnaam
Codeblokken ondersteunen bestandsnaamweergave met automatische pictogramdetectie.
export default defineNuxtConfig({
modules: ['@nuxt/ui']
})
```ts [nuxt.config.ts]
export standaard defineNuxtConfig ({
modules: ['@ nuxt / ui']
})
```
ProseCodeIcon-component en bevat een set vooraf gedefinieerde pictogrammen die u kunt aanpassen in uw app-configuratie:export default defineAppConfig({
ui: {
prose: {
codeIcon: {
terminal: 'i-lucide-square-terminal',
config: 'i-lucide-settings',
package: 'i-lucide-package'
}
}
}
})
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import ui from '@nuxt/ui/vite'
export default defineConfig({
plugins: [
vue(),
ui({
ui: {
prose: {
codeIcon: {
terminal: 'i-lucide-square-terminal',
config: 'i-lucide-settings',
package: 'i-lucide-package'
}
}
}
})
]
})
vscode-icons collectie, die los staat van de lucide-pictogrammen die de rest van de componenten gebruikt, en worden op verzoek opgelost vanuit de bestandsextensie.
Installeer @iconify-json/vscode-icons om ze lokaal en offline te bedienen, net als elke andere collectie.Kopieer knop
Elk codeblok heeft een ingebouwde kopieerknop die de code naar uw klembord kopieert.
Stel de copy prop in op false om de knop te verbergen, of geef Button rekwisieten door om het aan te passen.
ui.icons.copy- en ui.icons.copyCheck-toetsen in uw app-configuratie:export default defineAppConfig({
ui: {
icons: {
copy: 'i-lucide-copy',
copyCheck: 'i-lucide-copy-check'
}
}
})
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import ui from '@nuxt/ui/vite'
export default defineConfig({
plugins: [
vue(),
ui({
ui: {
icons: {
copy: 'i-lucide-copy',
copyCheck: 'i-lucide-copy-check'
}
}
})
]
})
Line accentuering
Markeer specifieke lijnen om de aandacht te vestigen op belangrijke onderdelen.
export default defineNuxtConfig({
modules: ['@nuxt/ui'], // This line is highlighted
css: ['~/assets/css/main.css']
})
```ts [nuxt.config.ts] {2}
export standaard defineNuxtConfig ({
modules: ['@ nuxt / ui'], / / Deze regel is gemarkeerd
css: ['~ / assets / css / hoofd.css']
})
```
Code diff
Gebruik de diff-taal om wijzigingen tussen codeversies weer te geven.
export default defineNuxtConfig({
modules: [
- '@nuxt/ui-pro'
+ '@nuxt/ui'
]
})
```diff [nuxt.config.ts]
export standaard defineNuxtConfig ({
modules: [
- '@ nuxt / ui-pro'
+ '@ nuxt / uit'
]
})
```
Inline code
Inline codefragmenten worden weergegeven door de ProseCode-component.
inline code
Kleur
Gebruik de color prop om de kleur van de inline code te wijzigen. Standaard neutral.
inline code
`inline code`{color="error"}
Lang
Gebruik de lang prop om de taal van de inline code op te geven.
nuxt.config.ts
`nuxt.config.ts`{lang="ts-type"}