@@ -36,9 +43,13 @@ Sollten man die volle Kontrolle über das aktuelles Thema haben wollen, dann kan
$ slidev theme eject
```
+<<<<<<< HEAD
Jetzt befindet sich das Thema in `./theme`.
Die Referenz zum Thema, die sich in der Hauptdatei des Projektes befindet, wird automatisch aktualisiert.
+=======
+It will eject the theme you are using currently into `./theme`, and changed your frontmatter to
+>>>>>>> dbfb0168dc2a10c37d04f991ec135a402b411f02
```yaml
---
diff --git a/themes/write-a-theme.md b/themes/write-a-theme.md
index 25b1672..f465b35 100644
--- a/themes/write-a-theme.md
+++ b/themes/write-a-theme.md
@@ -12,12 +12,21 @@ Jetzt kann man alles verändern und mit dem code spielen. Man kann sich auch auf
Ein Thema kann folgende Punkte anpassen:
+<<<<<<< HEAD
- Globale Styles
- Standardkonfigurationen bereitstellen (Schriften, Farbschema, Highlighters, etc.)
- benutzerdefinierte Layouts bereitstellen oder vorhandene überschreiben
- benutzerdefinierte Komponenten bereitstellen oder vorhandene überschreiben
- Windi CSS-Konfigurationen erweitern
- Tools wie Monaco und Prism konfigurieren
+=======
+- Global styles
+- Provide default configurations (fonts, color schema, highlighters, etc.)
+- Provide custom layouts or override the existing one
+- Provide custom components or override the existing one
+- Extend UnoCSS/Windi CSS configurations
+- Configure tools like Monaco and Prism
+>>>>>>> dbfb0168dc2a10c37d04f991ec135a402b411f02
## Konventionen
@@ -53,7 +62,11 @@ Um das Thema zu veröffentlichen, muss nur der `npm publish` Befehl ausgeführt
Thema Kontribution folgt den selben Punkten, wie die Konventionen bei lokalen Anpassungen, in der [Dokumentation](/custom/) steht mehr über Namenskonventionen.
+<<<<<<< HEAD
## Standardkonfigurationen
+=======
+Theme contribution points follow the same conventions as local customization, please refer to [the docs for the naming conventions](/custom/).
+>>>>>>> dbfb0168dc2a10c37d04f991ec135a402b411f02
> Verfügabr seit v0.19
@@ -63,7 +76,7 @@ Ein Thema kann [Standardkonfigurationen](/custom/#frontmatter-configures) in der
// package.json
{
"slidev": {
- "default": {
+ "defaults": {
"aspectRatio": "16/9",
"canvasWidth": 980,
"fonts": {
@@ -117,7 +130,11 @@ Slidev schaltet die `dark` CSS Klasse am `html` Element der Seite um, um das Far
### Highlighter
+<<<<<<< HEAD
Syntaxhervorhebungs-Farben können auch im Thema bereit gestellt werden. Wir unterstützen sowohl [Prism](https://prismjs.com/) als auch [Shiki](https://github.com/shikijs/shiki). Weitere Informationen sind in den [Syntax-Highlighting Dokumentationen](/custom/highlighters).
+=======
+Syntax highlighting colors are also provided in the theme. We support both [Prism](https://prismjs.com/), [Shiki](https://github.com/shikijs/shiki). For more information please refer to [the syntax highlighting docs](/custom/highlighters).
+>>>>>>> dbfb0168dc2a10c37d04f991ec135a402b411f02
Dein Thema kann entweder einen der beide oder beide unterstützen. Konfigurationsbeispiele sind im Standard-Thema [`./styles/code.css`](https://github.com/slidevjs/slidev/blob/main/packages/create-theme/template/styles/code.css) / [`./setup/shiki.ts`](https://github.com/slidevjs/slidev/blob/main/packages/create-theme/template/setup/shiki.ts) zu finden.
@@ -127,7 +144,11 @@ Denke auch daran, unterstützte Highlighters in der `package.json` Datei anzugeb
// package.json
{
"slidev": {
+<<<<<<< HEAD
"highlighter": "shiki" // oder "prism" oder "all"
+=======
+ "highlighter": "shiki" // or "prism" or "both"
+>>>>>>> dbfb0168dc2a10c37d04f991ec135a402b411f02
}
}
```
diff --git a/tsconfig.json b/tsconfig.json
index 9997bfa..d7623f1 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -1,27 +1,27 @@
{
"compilerOptions": {
- "module": "ESNext",
- "baseUrl": ".",
"target": "es2016",
- "lib": ["DOM", "ESNext"],
- "strict": true,
- "esModuleInterop": true,
- "skipLibCheck": true,
- "noUnusedLocals": true,
"jsx": "preserve",
+ "lib": ["DOM", "ESNext"],
+ "baseUrl": ".",
+ "module": "ESNext",
"moduleResolution": "node",
"resolveJsonModule": true,
- "strictNullChecks": true,
- "forceConsistentCasingInFileNames": true,
"types": [
"vite/client",
"node"
- ]
+ ],
+ "strict": true,
+ "strictNullChecks": true,
+ "noUnusedLocals": true,
+ "esModuleInterop": true,
+ "forceConsistentCasingInFileNames": true,
+ "skipLibCheck": true
},
"include": [
"./*.ts",
"./.vitepress/**/*.ts",
- "./.vitepress/**/*.vue",
+ "./.vitepress/**/*.vue"
],
"exclude": ["**/dist/**", "node_modules"]
}
diff --git a/uno.config.ts b/uno.config.ts
new file mode 100644
index 0000000..5ba580d
--- /dev/null
+++ b/uno.config.ts
@@ -0,0 +1,27 @@
+import { defineConfig, presetAttributify, presetUno, presetWebFonts, transformerDirectives } from 'unocss'
+
+export default defineConfig({
+ presets: [
+ presetUno(),
+ presetAttributify(),
+ presetWebFonts({
+ fonts: {
+ mono: ['IBM Plex Mono', 'monospace'],
+ },
+ }),
+ ],
+ transformers: [
+ transformerDirectives(),
+ ],
+ shortcuts: {
+ 'bg-main': 'bg-white dark:bg-[#111]',
+ },
+ theme: {
+ colors: {
+ primary: {
+ DEFAULT: '#3AB9D4',
+ deep: '#2082A6',
+ },
+ },
+ },
+})
diff --git a/vite.config.ts b/vite.config.ts
index dc50764..eba4341 100644
--- a/vite.config.ts
+++ b/vite.config.ts
@@ -1,10 +1,10 @@
-import { resolve } from 'path'
+import { resolve } from 'node:path'
import { defineConfig } from 'vite'
import Icons from 'unplugin-icons/vite'
import IconsResolver from 'unplugin-icons/resolver'
import Components from 'unplugin-vue-components/vite'
-import WindiCSS from 'vite-plugin-windicss'
import Inspect from 'vite-plugin-inspect'
+import UnoCSS from 'unocss/vite'
export default defineConfig({
resolve: {
@@ -33,20 +33,18 @@ export default defineConfig({
'./.vitepress/@slidev/client/builtin',
],
extensions: ['vue', 'md'],
- include: [
- /\.(vue|md)$/,
- ],
+ include: [/\.vue$/, /\.vue\?vue/, /\.md$/],
resolvers: [
IconsResolver({
prefix: '',
}),
],
}),
- Icons(),
- Inspect(),
- WindiCSS({
- preflight: false,
+ Icons({
+ defaultStyle: 'display: inline-block;',
}),
+ Inspect(),
+ UnoCSS(),
{
name: 'code-block-escape',
enforce: 'post',
@@ -58,14 +56,14 @@ export default defineConfig({
},
{
name: 'virtual-modules',
- resolveId(id){
+ resolveId(id) {
return id === '/@slidev/configs' ? id : null
},
load(id) {
- if(id !== '/@slidev/configs')
- return
+ if (id !== '/@slidev/configs')
+ return
return 'export default {}'
- }
+ },
},
],
})
diff --git a/windi.config.ts b/windi.config.ts
deleted file mode 100644
index dc1bf6e..0000000
--- a/windi.config.ts
+++ /dev/null
@@ -1,34 +0,0 @@
-import { defineConfig } from 'vite-plugin-windicss'
-import aspectRatio from 'windicss/plugin/aspect-ratio'
-
-export default defineConfig({
- extract: {
- include: [
- '**/*.md',
- '.vitepress/theme/**/*.{md,vue}',
- '.vitepress/@slidev/client/internals/SlideContainer.vue',
- '.vitepress/@slidev/client/layouts/*.vue',
- '.vitepress/@slidev/theme-default/layouts/*.vue',
- ]
- },
- attributify: true,
- plugins: [
- aspectRatio,
- ],
- shortcuts: {
- 'bg-main': 'bg-white dark:bg-[#111]',
- },
- theme: {
- extend: {
- colors: {
- primary: {
- DEFAULT: '#3AB9D4',
- deep: '#2082A6',
- },
- },
- fontFamily: {
- mono: '\'IBM Plex Mono\', source-code-pro, Menlo, Monaco, Consolas, \'Courier New\', monospace',
- },
- },
- },
-})