mirror of
https://github.com/hanzo-docs/docs.git
synced 2026-10-24 20:09:02 +00:00
A version written into a manifest is written into every manifest that wants it, which is how eslint came to exist in a hundred and four forms across this estate and how a package came to resolve twice at run time. The catalog moves the number out of the manifest: a manifest names the package, the workspace names the version. Four are held below their latest because the newer release cannot be used, and the reason is recorded rather than the version alone: @noble/hashes 2 renamed every subpath the web3 stack imports, @splinetool/runtime 2 depends on a package that was never published, @dynamic-labs 5.4.1 the same, and react-resizable-panels 3 points its types condition at the bundle. Co-authored-by: Hanzo Dev <[email protected]>
Proposals Documentation Template
A shared template for improvement proposals documentation sites:
- LPs - Lux Proposals (lps.lux.network)
- HIPs - Hanzo Improvement Proposals (hips.hanzo.ai)
- ZIPs - Zoo Improvement Proposals (zips.zoo.ngo)
Quick Start
pnpm install
pnpm dev
Customization
Brand Configuration
Edit lib/config.ts to use your brand:
// For Lux Proposals
import { luxBrand as brand } from './brand';
export { brand };
// For Hanzo Improvement Proposals
import { hanzoBrand as brand } from './brand';
export { brand };
// For Zoo Improvement Proposals
import { zooBrand as brand } from './brand';
export { brand };
Content Directory
Edit lib/instance.ts to point to your proposals directory:
// For LPs repository structure
const PROPOSALS_DIR = path.join(process.cwd(), '../LPs');
Categories
Customize categories in lib/brand.ts by editing the categories array:
categories: [
{
name: 'Core',
shortDesc: 'Core specifications',
description: 'Full description...',
range: [0, 99], // Proposal number range
icon: 'layers', // Icon from lucide-react
color: 'blue', // Tailwind color
learnMore: 'Educational content...',
keyTopics: ['Topic 1', 'Topic 2'],
},
]
Features
-
Context-Sensitive Search - Cmd+K opens a search dialog with:
- Category-based navigation
- Full-text search across proposals
- Page-specific actions (edit on GitHub, view raw, join discussion)
- Keyboard navigation
-
Proposal Metadata - Automatic parsing of frontmatter:
- Status badges (Draft, Review, Final, etc.)
- Category classification
- Author attribution
- Dependencies tracking
-
Statistics Dashboard - Sidebar showing:
- Total proposals count
- Count by status
- Count by type
Project Structure
proposals/
├── app/
│ ├── api/search/ # Search API endpoint
│ ├── docs/ # Documentation pages
│ ├── (home)/ # Landing page
│ ├── global.css # Global styles
│ └── layout.tsx # Root layout
├── components/
│ └── search-dialog.tsx # Custom search with quick actions
├── lib/
│ ├── brand.ts # Brand configurations (LP, HIP, ZIP)
│ ├── config.ts # Active brand selection
│ ├── source.ts # Proposal source loader
│ └── instance.ts # Source instance
├── content/docs/ # Sample proposals (or point to real dir)
└── public/ # Static assets
Deployment
For Lux Proposals (lps.lux.network)
- Clone the lps repository
- Copy this template to the
docs/directory - Update
lib/config.tsto useluxBrand - Update
lib/instance.tsto point to../LPs - Deploy to Vercel/Netlify
For Hanzo HIPs or Zoo ZIPs
Same process, using the appropriate brand configuration.
License
MIT - See LICENSE