Files
welshman/docs/.vitepress/config.mts
T
hodlbod 5b8fef5b23
tests / tests (push) Failing after 5m8s
Fix NIP conformance in domain kinds; add domain docs/skill
NIP fixes:
- RelayMembers (13534): use NIP-43 `member` tags (not `p`) and set the required
  NIP-70 `-` protected tag.
- Profile (kind 0): remove display-name support entirely (getter, setter, display()
  fallback, and the search weight).
- Comment (1111): A/a tags now carry a real address, not the event id.
- BlossomServerList (10063): normalize server URLs with normalizeUrl (HTTP), not
  normalizeRelayUrl (which forced wss://).
- HandlerRecommendation (31989): fix inverted removeRecommendation filter; add
  setSupportedKind()/supportedKind() for the NIP-89 d-tag.
- Report (1984): place the report-type string on the e tag (note reports) or p tag
  (profile reports); always emit the p tag.

Docs/skills:
- Add @welshman/domain docs (docs/domain/) and the welshman-domain skill.
- Prune @welshman/util docs/skill of the moved Profile/List/Handler/Encryptable
  helpers; register domain in the sidebar, index, and skills README.
- Apply accuracy fixes to the @welshman/app docs/skill.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BsMjvv7krpZeHK1Njeneru
2026-06-20 14:55:21 +00:00

156 lines
5.5 KiB
TypeScript

import {defineConfig} from "vitepress"
import typeDocSidebar from "../reference/typedoc-sidebar.json"
export default defineConfig({
title: "Welshman",
description: "The official Welshman documentation",
ignoreDeadLinks: true,
themeConfig: {
nav: [
{text: "Guide", link: "/what-is-welshman"},
{text: "Reference", link: "/reference/"},
],
sidebar: {
"/reference/": [...typeDocSidebar],
"/": [
{
text: "Introduction",
items: [
{text: "What is Welshman", link: "/what-is-welshman"},
{text: "Getting started", link: "/getting-started"},
],
},
{
text: "@welshman/app",
link: "/app/",
items: [
{text: "The App", link: "/app/app"},
{text: "User & Sessions", link: "/app/user"},
{text: "Plugin Architecture", link: "/app/plugins"},
{text: "Data Plugins", link: "/app/data"},
{text: "Publishing Events", link: "/app/publishing"},
{text: "Making Requests", link: "/app/requests"},
{text: "Routing & Tags", link: "/app/routing"},
{text: "Web of Trust", link: "/app/wot"},
{text: "Feeds & Search", link: "/app/feeds-and-search"},
],
},
{
text: "@welshman/domain",
link: "/domain/",
items: [
{text: "The App Reader/Builder model", link: "/domain/readers-and-builders"},
{text: "Profile", link: "/domain/profile"},
{text: "Lists", link: "/domain/lists"},
{text: "Rooms", link: "/domain/rooms"},
{text: "Relay Membership", link: "/domain/relay-membership"},
{text: "Handlers", link: "/domain/handlers"},
{text: "Zaps", link: "/domain/zaps"},
{text: "Content", link: "/domain/content"},
],
},
{
text: "@welshman/util",
link: "/util/",
items: [
{text: "Kinds", link: "/util/kinds"},
{text: "Address", link: "/util/address"},
{text: "Links", link: "/util/links"},
{text: "Events", link: "/util/events"},
{text: "Filters", link: "/util/filters"},
{text: "Tags", link: "/util/tags"},
{text: "Relays", link: "/util/relay"},
{text: "Zaps", link: "/util/zaps"},
{text: "Relay Auth", link: "/util/nip42"},
{text: "HTTP Auth", link: "/util/nip98"},
{text: "Blossom", link: "/util/blossom"},
{text: "Relay Management", link: "/util/nip86"},
],
},
{
text: "@welshman/net",
link: "/net/",
items: [
{text: "Context", link: "/net/context"},
{text: "Messages", link: "/net/message"},
{text: "Adapters", link: "/net/adapter"},
{text: "Sockets", link: "/net/socket"},
{text: "Pool", link: "/net/pool"},
{text: "NIP 42 Auth", link: "/net/auth"},
{text: "Socket Policy", link: "/net/policy"},
{text: "Making Requests", link: "/net/request"},
{text: "Publishing Events", link: "/net/publish"},
{text: "Negentropy", link: "/net/diff"},
{text: "Tracker", link: "/net/tracker"},
],
},
{
text: "@welshman/signer",
link: "/signer/",
items: [
{text: "ISigner", link: "/signer/isigner"},
{text: "NIP 01", link: "/signer/nip-01"},
{text: "NIP 07", link: "/signer/nip-07"},
{text: "NIP 46", link: "/signer/nip-46"},
{text: "NIP 55", link: "/signer/nip-55"},
{text: "NIP 59", link: "/signer/nip-59"},
],
},
{
text: "@welshman/router",
link: "/router/",
items: [],
},
{
text: "@welshman/content",
link: "/content/",
items: [
{text: "Parser", link: "/content/parser"},
{text: "Renderer", link: "/content/renderer"},
],
},
{
text: "@welshman/editor",
link: "/editor/",
items: [],
},
{
text: "@welshman/feeds",
link: "/feeds/",
items: [
{text: "Core", link: "/feeds/core"},
{text: "Utilities", link: "/feeds/utils"},
{text: "Compiler", link: "/feeds/compiler"},
{text: "Controller", link: "/feeds/controller"},
],
},
{
text: "@welshman/store",
link: "/store/",
items: [
{text: "Throttled", link: "/store/throttle"},
{text: "Synced", link: "/store/synced"},
{text: "Getter", link: "/store/getter"},
{text: "Custom", link: "/store/custom"},
{text: "Repository", link: "/store/repository"},
{text: "Collections", link: "/store/collection"},
],
},
{
text: "@welshman/lib",
link: "/lib/",
items: [
{text: "Utilities", link: "/lib/tools"},
{text: "LRU cache", link: "/lib/lru"},
{text: "Task Queue", link: "/lib/task-queue"},
{text: "Normalize URL", link: "/lib/normalize-url"},
{text: "Deferred", link: "/lib/deferred"},
{text: "Emitter", link: "/lib/emitter"},
],
},
],
},
socialLinks: [{icon: "github", link: "https://github.com/vuejs/vitepress"}],
},
})