YAML-based help catalog with topic search
Run go work sync to align dependency versions across workspace. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| docs | ||
| templates | ||
| .gitignore | ||
| catalog.go | ||
| catalog_test.go | ||
| CLAUDE.md | ||
| generate.go | ||
| generate_test.go | ||
| go.mod | ||
| go.sum | ||
| ingest.go | ||
| ingest_test.go | ||
| parser.go | ||
| parser_test.go | ||
| README.md | ||
| render.go | ||
| render_test.go | ||
| search.go | ||
| search_bench_test.go | ||
| search_test.go | ||
| server.go | ||
| server_test.go | ||
| stemmer.go | ||
| stemmer_test.go | ||
| templates.go | ||
| templates_test.go | ||
| topic.go | ||
go-help
Display-agnostic help content management library. Provides a YAML/Markdown topic catalogue, full-text search with inverted index, stemming, fuzzy matching, and relevance scoring, goldmark-based Markdown rendering, an HTTP server with six routes (three HTML, three JSON), a static site generator with client-side JavaScript search, and CLI help text ingestion. No runtime dependency on a database, network, or external service.
Module: forge.lthn.ai/core/go-help
Licence: EUPL-1.2
Language: Go 1.25
Quick Start
import "forge.lthn.ai/core/go-help"
catalog := help.DefaultCatalog()
catalog.Add(&help.Topic{ID: "rate-limiting", Title: "Rate Limiting", Content: "..."})
// Search
results := catalog.Search("sliding window token")
// HTTP server (HTML + JSON routes)
srv := help.NewServer(catalog, ":8080")
srv.ListenAndServe()
// Static site output
help.Generate(catalog, "./dist")
Documentation
- Architecture — catalog, parser, search engine, HTTP server, static site generator, CLI ingestion
- Development Guide — building, testing, benchmarks, coding standards
- Project History — completed phases and known limitations
Build & Test
go test ./...
go test -bench=. -benchmem ./...
go vet ./...
go build ./...
Licence
European Union Public Licence 1.2 — see LICENCE for details.