docs-site: implement site search
This commit is contained in:
@@ -38,8 +38,8 @@ See the complete [list](../guides/inventory/autoincludes.md) of auto-loaded file
|
|||||||
### Configuring a machine
|
### Configuring a machine
|
||||||
|
|
||||||
!!! Note
|
!!! Note
|
||||||
The option: `inventory.machines.<name>` is used to define metadata about the machine
|
The option: `inventory.machines.<name>` is used to define metadata about the machine
|
||||||
That includes for example `deploy.targethost` `machineClass` or `tags`
|
That includes for example `deploy.targethost` `machineClass` or `tags`
|
||||||
|
|
||||||
The option: `machines.<name>` is used to add extra *nixosConfiguration* to a machine
|
The option: `machines.<name>` is used to add extra *nixosConfiguration* to a machine
|
||||||
|
|
||||||
@@ -71,7 +71,7 @@ This example demonstrates what is needed based on a machine called `jon`:
|
|||||||
```
|
```
|
||||||
|
|
||||||
1. Tags can be used to automatically add this machine to services later on. - You dont need to set this now.
|
1. Tags can be used to automatically add this machine to services later on. - You dont need to set this now.
|
||||||
2. Add your *ssh key* here - That will ensure you can always login to your machine via *ssh* in case something goes wrong.
|
2. Add your _ssh key_ here - That will ensure you can always login to your machine via _ssh_ in case something goes wrong.
|
||||||
|
|
||||||
### (Optional) Create a `configuration.nix`
|
### (Optional) Create a `configuration.nix`
|
||||||
|
|
||||||
@@ -99,8 +99,8 @@ git mv ./machines/jon ./machines/<your-machine-name>
|
|||||||
|
|
||||||
Since your Clan configuration lives inside a Git repository, remember:
|
Since your Clan configuration lives inside a Git repository, remember:
|
||||||
|
|
||||||
* Only files tracked by Git (`git add`) are recognized.
|
- Only files tracked by Git (`git add`) are recognized.
|
||||||
* Whenever you add, rename, or remove files, run:
|
- Whenever you add, rename, or remove files, run:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git add ./machines/<your-machine-name>
|
git add ./machines/<your-machine-name>
|
||||||
|
|||||||
3
pkgs/docs-site/.gitignore
vendored
3
pkgs/docs-site/.gitignore
vendored
@@ -7,6 +7,7 @@ node_modules
|
|||||||
.wrangler
|
.wrangler
|
||||||
/.svelte-kit
|
/.svelte-kit
|
||||||
/build
|
/build
|
||||||
|
/static/pagefind
|
||||||
|
|
||||||
# Env
|
# Env
|
||||||
.env
|
.env
|
||||||
@@ -25,4 +26,4 @@ src/routes/docs/reference/clan.core
|
|||||||
src/routes/docs/services/official
|
src/routes/docs/services/official
|
||||||
|
|
||||||
# Icons and other assets
|
# Icons and other assets
|
||||||
static/icons
|
static/icons
|
||||||
|
|||||||
164
pkgs/docs-site/package-lock.json
generated
164
pkgs/docs-site/package-lock.json
generated
@@ -11,7 +11,7 @@
|
|||||||
"@fontsource-variable/geist": "^5.2.8",
|
"@fontsource-variable/geist": "^5.2.8",
|
||||||
"@shikijs/rehype": "^3.13.0",
|
"@shikijs/rehype": "^3.13.0",
|
||||||
"@shikijs/transformers": "^3.13.0",
|
"@shikijs/transformers": "^3.13.0",
|
||||||
"@sveltejs/adapter-auto": "^6.1.1",
|
"@sveltejs/adapter-static": "^3.0.10",
|
||||||
"@sveltejs/kit": "^2.43.2",
|
"@sveltejs/kit": "^2.43.2",
|
||||||
"@sveltejs/vite-plugin-svelte": "^6.2.0",
|
"@sveltejs/vite-plugin-svelte": "^6.2.0",
|
||||||
"@types/node": "^24.7.0",
|
"@types/node": "^24.7.0",
|
||||||
@@ -25,6 +25,7 @@
|
|||||||
"mdast-util-from-markdown": "^2.0.2",
|
"mdast-util-from-markdown": "^2.0.2",
|
||||||
"mdast-util-to-hast": "^13.2.0",
|
"mdast-util-to-hast": "^13.2.0",
|
||||||
"mdast-util-toc": "^7.1.0",
|
"mdast-util-toc": "^7.1.0",
|
||||||
|
"pagefind": "^1.4.0",
|
||||||
"postcss-preset-env": "^10.4.0",
|
"postcss-preset-env": "^10.4.0",
|
||||||
"prettier": "^3.6.2",
|
"prettier": "^3.6.2",
|
||||||
"prettier-plugin-svelte": "^3.4.0",
|
"prettier-plugin-svelte": "^3.4.0",
|
||||||
@@ -43,7 +44,8 @@
|
|||||||
"unist-util-visit": "^5.0.0",
|
"unist-util-visit": "^5.0.0",
|
||||||
"vfile": "^6.0.3",
|
"vfile": "^6.0.3",
|
||||||
"vfile-matter": "^5.0.1",
|
"vfile-matter": "^5.0.1",
|
||||||
"vite": "^7.1.7"
|
"vite": "^7.1.7",
|
||||||
|
"vite-plugin-pagefind": "^1.0.7"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@csstools/cascade-layer-name-parser": {
|
"node_modules/@csstools/cascade-layer-name-parser": {
|
||||||
@@ -1772,6 +1774,90 @@
|
|||||||
"@jridgewell/sourcemap-codec": "^1.4.14"
|
"@jridgewell/sourcemap-codec": "^1.4.14"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@pagefind/darwin-arm64": {
|
||||||
|
"version": "1.4.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@pagefind/darwin-arm64/-/darwin-arm64-1.4.0.tgz",
|
||||||
|
"integrity": "sha512-2vMqkbv3lbx1Awea90gTaBsvpzgRs7MuSgKDxW0m9oV1GPZCZbZBJg/qL83GIUEN2BFlY46dtUZi54pwH+/pTQ==",
|
||||||
|
"cpu": [
|
||||||
|
"arm64"
|
||||||
|
],
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"optional": true,
|
||||||
|
"os": [
|
||||||
|
"darwin"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"node_modules/@pagefind/darwin-x64": {
|
||||||
|
"version": "1.4.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@pagefind/darwin-x64/-/darwin-x64-1.4.0.tgz",
|
||||||
|
"integrity": "sha512-e7JPIS6L9/cJfow+/IAqknsGqEPjJnVXGjpGm25bnq+NPdoD3c/7fAwr1OXkG4Ocjx6ZGSCijXEV4ryMcH2E3A==",
|
||||||
|
"cpu": [
|
||||||
|
"x64"
|
||||||
|
],
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"optional": true,
|
||||||
|
"os": [
|
||||||
|
"darwin"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"node_modules/@pagefind/freebsd-x64": {
|
||||||
|
"version": "1.4.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@pagefind/freebsd-x64/-/freebsd-x64-1.4.0.tgz",
|
||||||
|
"integrity": "sha512-WcJVypXSZ+9HpiqZjFXMUobfFfZZ6NzIYtkhQ9eOhZrQpeY5uQFqNWLCk7w9RkMUwBv1HAMDW3YJQl/8OqsV0Q==",
|
||||||
|
"cpu": [
|
||||||
|
"x64"
|
||||||
|
],
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"optional": true,
|
||||||
|
"os": [
|
||||||
|
"freebsd"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"node_modules/@pagefind/linux-arm64": {
|
||||||
|
"version": "1.4.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@pagefind/linux-arm64/-/linux-arm64-1.4.0.tgz",
|
||||||
|
"integrity": "sha512-PIt8dkqt4W06KGmQjONw7EZbhDF+uXI7i0XtRLN1vjCUxM9vGPdtJc2mUyVPevjomrGz5M86M8bqTr6cgDp1Uw==",
|
||||||
|
"cpu": [
|
||||||
|
"arm64"
|
||||||
|
],
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"optional": true,
|
||||||
|
"os": [
|
||||||
|
"linux"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"node_modules/@pagefind/linux-x64": {
|
||||||
|
"version": "1.4.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@pagefind/linux-x64/-/linux-x64-1.4.0.tgz",
|
||||||
|
"integrity": "sha512-z4oddcWwQ0UHrTHR8psLnVlz6USGJ/eOlDPTDYZ4cI8TK8PgwRUPQZp9D2iJPNIPcS6Qx/E4TebjuGJOyK8Mmg==",
|
||||||
|
"cpu": [
|
||||||
|
"x64"
|
||||||
|
],
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"optional": true,
|
||||||
|
"os": [
|
||||||
|
"linux"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"node_modules/@pagefind/windows-x64": {
|
||||||
|
"version": "1.4.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@pagefind/windows-x64/-/windows-x64-1.4.0.tgz",
|
||||||
|
"integrity": "sha512-NkT+YAdgS2FPCn8mIA9bQhiBs+xmniMGq1LFPDhcFn0+2yIUEiIG06t7bsZlhdjknEQRTSdT7YitP6fC5qwP0g==",
|
||||||
|
"cpu": [
|
||||||
|
"x64"
|
||||||
|
],
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"optional": true,
|
||||||
|
"os": [
|
||||||
|
"win32"
|
||||||
|
]
|
||||||
|
},
|
||||||
"node_modules/@polka/url": {
|
"node_modules/@polka/url": {
|
||||||
"version": "1.0.0-next.29",
|
"version": "1.0.0-next.29",
|
||||||
"resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.29.tgz",
|
"resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.29.tgz",
|
||||||
@@ -2204,10 +2290,10 @@
|
|||||||
"acorn": "^8.9.0"
|
"acorn": "^8.9.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@sveltejs/adapter-auto": {
|
"node_modules/@sveltejs/adapter-static": {
|
||||||
"version": "6.1.1",
|
"version": "3.0.10",
|
||||||
"resolved": "https://registry.npmjs.org/@sveltejs/adapter-auto/-/adapter-auto-6.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/@sveltejs/adapter-static/-/adapter-static-3.0.10.tgz",
|
||||||
"integrity": "sha512-cBNt4jgH4KuaNO5gRSB2CZKkGtz+OCZ8lPjRQGjhvVUD4akotnj2weUia6imLl2v07K3IgsQRyM36909miSwoQ==",
|
"integrity": "sha512-7D9lYFWJmB7zxZyTE/qxjksvMqzMuYrrsyh1f4AlZqeZeACPRySjbC3aFiY55wb1tWUaKOQG9PVbm74JcN2Iew==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
@@ -3102,6 +3188,13 @@
|
|||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
|
"node_modules/colorette": {
|
||||||
|
"version": "2.0.20",
|
||||||
|
"resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz",
|
||||||
|
"integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
"node_modules/comma-separated-tokens": {
|
"node_modules/comma-separated-tokens": {
|
||||||
"version": "2.0.3",
|
"version": "2.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz",
|
||||||
@@ -6882,6 +6975,34 @@
|
|||||||
"node": ">=0.10.0"
|
"node": ">=0.10.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/package-manager-detector": {
|
||||||
|
"version": "0.2.11",
|
||||||
|
"resolved": "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-0.2.11.tgz",
|
||||||
|
"integrity": "sha512-BEnLolu+yuz22S56CU1SUKq3XC3PkwD5wv4ikR4MfGvnRVcmzXR9DwSlW2fEamyTPyXHomBJRzgapeuBvRNzJQ==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"quansync": "^0.2.7"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/pagefind": {
|
||||||
|
"version": "1.4.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/pagefind/-/pagefind-1.4.0.tgz",
|
||||||
|
"integrity": "sha512-z2kY1mQlL4J8q5EIsQkLzQjilovKzfNVhX8De6oyE6uHpfFtyBaqUpcl/XzJC/4fjD8vBDyh1zolimIcVrCn9g==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"bin": {
|
||||||
|
"pagefind": "lib/runner/bin.cjs"
|
||||||
|
},
|
||||||
|
"optionalDependencies": {
|
||||||
|
"@pagefind/darwin-arm64": "1.4.0",
|
||||||
|
"@pagefind/darwin-x64": "1.4.0",
|
||||||
|
"@pagefind/freebsd-x64": "1.4.0",
|
||||||
|
"@pagefind/linux-arm64": "1.4.0",
|
||||||
|
"@pagefind/linux-x64": "1.4.0",
|
||||||
|
"@pagefind/windows-x64": "1.4.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/param-case": {
|
"node_modules/param-case": {
|
||||||
"version": "1.1.2",
|
"version": "1.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/param-case/-/param-case-1.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/param-case/-/param-case-1.1.2.tgz",
|
||||||
@@ -8277,6 +8398,23 @@
|
|||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
|
"node_modules/quansync": {
|
||||||
|
"version": "0.2.11",
|
||||||
|
"resolved": "https://registry.npmjs.org/quansync/-/quansync-0.2.11.tgz",
|
||||||
|
"integrity": "sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==",
|
||||||
|
"dev": true,
|
||||||
|
"funding": [
|
||||||
|
{
|
||||||
|
"type": "individual",
|
||||||
|
"url": "https://github.com/sponsors/antfu"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "individual",
|
||||||
|
"url": "https://github.com/sponsors/sxzz"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
"node_modules/randomatic": {
|
"node_modules/randomatic": {
|
||||||
"version": "3.1.1",
|
"version": "3.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz",
|
||||||
@@ -9884,6 +10022,20 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/vite-plugin-pagefind": {
|
||||||
|
"version": "1.0.7",
|
||||||
|
"resolved": "https://registry.npmjs.org/vite-plugin-pagefind/-/vite-plugin-pagefind-1.0.7.tgz",
|
||||||
|
"integrity": "sha512-BTYGhqbEsEBfG7ZIbV41HjKAKGlJcq+h819Lsq+83+bkN5mcrl0YLqbh0fx+tCvmdOZs9rfgMpKoBlyv8pcvfQ==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"colorette": "^2.0.20",
|
||||||
|
"package-manager-detector": "^0.2.11"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"vite": ">=4.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/vitefu": {
|
"node_modules/vitefu": {
|
||||||
"version": "1.1.1",
|
"version": "1.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/vitefu/-/vitefu-1.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/vitefu/-/vitefu-1.1.1.tgz",
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "vite dev",
|
"dev": "vite dev",
|
||||||
"build": "vite build",
|
"build": "vite build && pagefind --site build",
|
||||||
"preview": "vite preview",
|
"preview": "vite preview",
|
||||||
"prepare": "svelte-kit sync || echo ''",
|
"prepare": "svelte-kit sync || echo ''",
|
||||||
"check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
|
"check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
|
||||||
@@ -17,7 +17,7 @@
|
|||||||
"@fontsource-variable/geist": "^5.2.8",
|
"@fontsource-variable/geist": "^5.2.8",
|
||||||
"@shikijs/rehype": "^3.13.0",
|
"@shikijs/rehype": "^3.13.0",
|
||||||
"@shikijs/transformers": "^3.13.0",
|
"@shikijs/transformers": "^3.13.0",
|
||||||
"@sveltejs/adapter-auto": "^6.1.1",
|
"@sveltejs/adapter-static": "^3.0.10",
|
||||||
"@sveltejs/kit": "^2.43.2",
|
"@sveltejs/kit": "^2.43.2",
|
||||||
"@sveltejs/vite-plugin-svelte": "^6.2.0",
|
"@sveltejs/vite-plugin-svelte": "^6.2.0",
|
||||||
"@types/node": "^24.7.0",
|
"@types/node": "^24.7.0",
|
||||||
@@ -31,6 +31,7 @@
|
|||||||
"mdast-util-from-markdown": "^2.0.2",
|
"mdast-util-from-markdown": "^2.0.2",
|
||||||
"mdast-util-to-hast": "^13.2.0",
|
"mdast-util-to-hast": "^13.2.0",
|
||||||
"mdast-util-toc": "^7.1.0",
|
"mdast-util-toc": "^7.1.0",
|
||||||
|
"pagefind": "^1.4.0",
|
||||||
"postcss-preset-env": "^10.4.0",
|
"postcss-preset-env": "^10.4.0",
|
||||||
"prettier": "^3.6.2",
|
"prettier": "^3.6.2",
|
||||||
"prettier-plugin-svelte": "^3.4.0",
|
"prettier-plugin-svelte": "^3.4.0",
|
||||||
@@ -49,6 +50,7 @@
|
|||||||
"unist-util-visit": "^5.0.0",
|
"unist-util-visit": "^5.0.0",
|
||||||
"vfile": "^6.0.3",
|
"vfile": "^6.0.3",
|
||||||
"vfile-matter": "^5.0.1",
|
"vfile-matter": "^5.0.1",
|
||||||
"vite": "^7.1.7"
|
"vite": "^7.1.7",
|
||||||
|
"vite-plugin-pagefind": "^1.0.7"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,11 @@
|
|||||||
import favicon from "$lib/assets/favicon.svg";
|
import favicon from "$lib/assets/favicon.svg";
|
||||||
import type { NavLink } from "$lib";
|
import type { NavLink } from "$lib";
|
||||||
import { onNavigate } from "$app/navigation";
|
import { onNavigate } from "$app/navigation";
|
||||||
|
import { onMount } from "svelte";
|
||||||
|
import type {
|
||||||
|
Pagefind,
|
||||||
|
PagefindSearchFragment,
|
||||||
|
} from "vite-plugin-pagefind/types";
|
||||||
import "./index.css";
|
import "./index.css";
|
||||||
|
|
||||||
const { data, children } = $props();
|
const { data, children } = $props();
|
||||||
@@ -9,6 +14,26 @@
|
|||||||
let menuOpen = $state(false);
|
let menuOpen = $state(false);
|
||||||
onNavigate(() => {
|
onNavigate(() => {
|
||||||
menuOpen = false;
|
menuOpen = false;
|
||||||
|
query = "";
|
||||||
|
});
|
||||||
|
let pagefind: Pagefind | undefined;
|
||||||
|
let query = $state("");
|
||||||
|
let searchResults: PagefindSearchFragment[] = $state([]);
|
||||||
|
onMount(async () => {
|
||||||
|
// @ts-expect-error
|
||||||
|
pagefind = await import("/pagefind/pagefind.js");
|
||||||
|
pagefind!.init();
|
||||||
|
});
|
||||||
|
$effect(() => {
|
||||||
|
(async () => {
|
||||||
|
query;
|
||||||
|
const search = await pagefind?.debouncedSearch(query);
|
||||||
|
if (search) {
|
||||||
|
searchResults = await Promise.all(
|
||||||
|
search.results.slice(0, 5).map((r) => r.data()),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
})();
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
@@ -19,6 +44,25 @@
|
|||||||
<div class="global-bar">
|
<div class="global-bar">
|
||||||
<span class="logo">Clan Docs</span>
|
<span class="logo">Clan Docs</span>
|
||||||
<nav>
|
<nav>
|
||||||
|
<div class="search">
|
||||||
|
<input type="search" bind:value={query} />
|
||||||
|
{#if searchResults.length > 0}
|
||||||
|
<ul>
|
||||||
|
{#each searchResults as searchResult}
|
||||||
|
<li class="search-result">
|
||||||
|
<div class="search-result-title">
|
||||||
|
<a href={searchResult.url.slice(0, -".html".length)}
|
||||||
|
>{searchResult.meta.title}</a
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
<div class="search-result-excerpt">
|
||||||
|
{@html searchResult.excerpt}
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{/each}
|
||||||
|
</ul>
|
||||||
|
{/if}
|
||||||
|
</div>
|
||||||
<div class={["menu", menuOpen && "open"]}>
|
<div class={["menu", menuOpen && "open"]}>
|
||||||
<button onclick={() => (menuOpen = !menuOpen)}>Menu</button>
|
<button onclick={() => (menuOpen = !menuOpen)}>Menu</button>
|
||||||
<ul>
|
<ul>
|
||||||
@@ -63,6 +107,27 @@
|
|||||||
border-bottom: 1px solid;
|
border-bottom: 1px solid;
|
||||||
padding: 0 var(--pagePadding);
|
padding: 0 var(--pagePadding);
|
||||||
}
|
}
|
||||||
|
.search {
|
||||||
|
& > ul {
|
||||||
|
position: fixed;
|
||||||
|
z-index: 10;
|
||||||
|
left: 0;
|
||||||
|
top: var(--globalBarHeight);
|
||||||
|
width: 100vw;
|
||||||
|
height: 100vh;
|
||||||
|
background: #fff;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.search-result {
|
||||||
|
padding: 15px;
|
||||||
|
border-bottom: 1px solid #a3a3a3;
|
||||||
|
}
|
||||||
|
.search-result-title {
|
||||||
|
padding: 0 0 15px;
|
||||||
|
}
|
||||||
|
.search-result-excerpt {
|
||||||
|
color: #666;
|
||||||
|
}
|
||||||
.menu {
|
.menu {
|
||||||
& > ul {
|
& > ul {
|
||||||
visibility: hidden;
|
visibility: hidden;
|
||||||
@@ -81,6 +146,11 @@
|
|||||||
padding-left: 1em;
|
padding-left: 1em;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
nav {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
ul {
|
ul {
|
||||||
list-style: none;
|
list-style: none;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import adapter from "@sveltejs/adapter-auto";
|
import adapter from "@sveltejs/adapter-static";
|
||||||
import { vitePreprocess } from "@sveltejs/vite-plugin-svelte";
|
import { vitePreprocess } from "@sveltejs/vite-plugin-svelte";
|
||||||
|
|
||||||
/** @type {import('@sveltejs/kit').Config} */
|
/** @type {import('@sveltejs/kit').Config} */
|
||||||
@@ -10,7 +10,10 @@ const config = {
|
|||||||
// adapter-auto only supports some environments, see https://svelte.dev/docs/kit/adapter-auto for a list.
|
// adapter-auto only supports some environments, see https://svelte.dev/docs/kit/adapter-auto for a list.
|
||||||
// If your environment is not supported, or you settled on a specific environment, switch out the adapter.
|
// If your environment is not supported, or you settled on a specific environment, switch out the adapter.
|
||||||
// See https://svelte.dev/docs/kit/adapters for more information about adapters.
|
// See https://svelte.dev/docs/kit/adapters for more information about adapters.
|
||||||
adapter: adapter(),
|
adapter: adapter({
|
||||||
|
pages: "build",
|
||||||
|
strict: true,
|
||||||
|
}),
|
||||||
prerender: {
|
prerender: {
|
||||||
handleHttpError: "warn",
|
handleHttpError: "warn",
|
||||||
handleMissingId: "warn",
|
handleMissingId: "warn",
|
||||||
|
|||||||
@@ -1,7 +1,15 @@
|
|||||||
import { sveltekit } from "@sveltejs/kit/vite";
|
import { sveltekit } from "@sveltejs/kit/vite";
|
||||||
|
import { pagefind } from "vite-plugin-pagefind";
|
||||||
import { defineConfig } from "vite";
|
import { defineConfig } from "vite";
|
||||||
import markdown from "./src/lib/markdown/vite";
|
import markdown from "./src/lib/markdown/vite";
|
||||||
|
|
||||||
export default defineConfig({
|
export default defineConfig({
|
||||||
plugins: [sveltekit(), markdown()],
|
plugins: [
|
||||||
|
sveltekit(),
|
||||||
|
markdown(),
|
||||||
|
pagefind({
|
||||||
|
outputDirectory: "build",
|
||||||
|
assetsDirectory: "static",
|
||||||
|
}),
|
||||||
|
],
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user