Modular, context-aware and aspect-oriented dendritic Nix configurations.
Discussions: https://oeiuwq.zulipchat.com/join/nqp26cd4kngon6mo3ncgnuap/
den.oeiuwq.com
configurations
den
dendritic
nix
aspect
oriented
1// @ts-check
2import { defineConfig, fontProviders } from 'astro/config';
3import starlight from '@astrojs/starlight';
4
5import mermaid from 'astro-mermaid';
6import catppuccin from "@catppuccin/starlight";
7
8// https://astro.build/config
9export default defineConfig({
10 experimental: {
11 fonts: [
12 {
13 provider: fontProviders.google(),
14 name: "Victor Mono",
15 cssVariable: "--font-victor-mono",
16 },
17 {
18 provider: fontProviders.google(),
19 name: "JetBrains Mono",
20 cssVariable: "--font-jetbrains-mono",
21 },
22 ],
23 },
24 integrations: [
25 mermaid({
26 theme: 'forest',
27 autoTheme: true
28 }),
29 starlight({
30 title: 'den',
31 sidebar: [
32 {
33 label: 'Den',
34 items: [
35 { label: 'Overview', slug: 'overview' },
36 { label: 'Motivation', slug: 'motivation', },
37 { label: 'Community', slug: 'community' },
38 { label: 'Contributing', slug: 'contributing' },
39 ],
40 },
41 {
42 label: 'Learn',
43 items: [
44 { label: 'Core Principles', slug: 'explanation/core-principles' },
45 { label: 'Context System', slug: 'explanation/context-system' },
46 { label: 'Aspects & Functors', slug: 'explanation/aspects' },
47 { label: 'Parametric Aspects', slug: 'explanation/parametric' },
48 { label: 'NixOS Context Pipeline', slug: 'explanation/context-pipeline' },
49 { label: 'Library vs Framework', slug: 'explanation/library-vs-framework' },
50 ],
51 },
52 {
53 label: 'Templates',
54 items: [
55 { label: 'Overview', slug: 'tutorials/overview' },
56 { label: 'Minimal', slug: 'tutorials/minimal' },
57 { label: 'Default', slug: 'tutorials/default' },
58 { label: 'No-Flake', slug: 'tutorials/noflake' },
59 { label: 'MicroVM', slug: 'tutorials/microvm' },
60 { label: 'Example', slug: 'tutorials/example' },
61 { label: 'Bug Reproduction', slug: 'tutorials/bogus' },
62 { label: 'CI Tests', slug: 'tutorials/ci' },
63 ],
64 },
65 {
66 label: 'Cookbook',
67 items: [
68 { label: 'From Zero to Den', slug: 'guides/from-zero-to-den' },
69 { label: 'From Flake to Den', slug: 'guides/from-flake-to-den' },
70 { label: 'Declare Hosts & Users', slug: 'guides/declare-hosts' },
71 { label: 'Configure Aspects', slug: 'guides/configure-aspects' },
72 { label: 'Custom Nix Classes', slug: 'guides/custom-classes' },
73 { label: 'Homes Integration', slug: 'guides/home-manager' },
74 { label: 'Use Batteries', slug: 'guides/batteries' },
75 { label: 'Share with Namespaces', slug: 'guides/namespaces' },
76 { label: 'Angle Brackets Syntax', slug: 'guides/angle-brackets' },
77 { label: 'Migrate to Den', slug: 'guides/migrate' },
78 { label: 'Debug Configurations', slug: 'guides/debug' },
79 ],
80 },
81 {
82 label: 'Reference',
83 items: [
84 { label: 'den.schema', slug: 'reference/schema' },
85 { label: 'den.aspects', slug: 'reference/aspects' },
86 { label: 'den.provides', slug: 'reference/batteries' },
87 { label: 'den.ctx', slug: 'reference/ctx' },
88 { label: 'den.lib', slug: 'reference/lib' },
89 { label: 'flake.*', slug: 'reference/output' },
90 ],
91 },
92 ],
93 components: {
94 Head: './src/components/Head.astro',
95 Sidebar: './src/components/Sidebar.astro',
96 Footer: './src/components/Footer.astro',
97 SocialIcons: './src/components/SocialIcons.astro',
98 PageSidebar: './src/components/PageSidebar.astro',
99 },
100 plugins: [
101 catppuccin({
102 dark: { flavor: "macchiato", accent: "mauve" },
103 light: { flavor: "latte", accent: "mauve" },
104 }),
105 ],
106 editLink: {
107 baseUrl: 'https://github.com/vic/den/edit/main/docs/',
108 },
109 customCss: [
110 './src/styles/custom.css'
111 ],
112 }),
113 ],
114});