No description
Find a file
user.email 983ca4b0f6 chore(docs): convert catalog_test + generate_test + integration_test
Drops `fmt` + `os` + `path/filepath` + `encoding/json` imports from
all 3 test files. ZERO banned-imports remaining in docs.

Conversions in catalog_test.go:
- os.MkdirAll → MkdirAll (dot-imported Result-shape; bare statement,
  no error check, matches original Go behaviour)
- os.WriteFile → WriteFile (1 site)
- filepath.Join → PathJoin (~6 sites)
- fmt.Sprintf → Sprintf (5 sites in benchmark)

Conversions in generate_test.go:
- Adds 2 test helpers: statExists(path) error + readFileBytes(t, path)
  → []byte. They wrap Stat + ReadFile Result-shape into the
  conventional test idiom (assertion-on-error / fail-on-error).
- os.Stat + AssertNoError → AssertNoError(t, statExists(...)) (3 sites)
- os.ReadFile + RequireNoError → readFileBytes(t, ...) (6 sites;
  collapses 4 lines per site into 1)
- json.Unmarshal → JSONUnmarshal Result-shape with t.Fatal on !OK
  (2 sites)
- filepath.Join → PathJoin

Conversions in integration_test.go:
- os.MkdirAll/WriteFile → MkdirAll/WriteFile Result-shape with
  t.Fatal on !OK (4 sites)
- os.Stat + AssertNoError → statExists() helper (6 sites)
- os.ReadFile + RequireNoError → readFileBytes() helper (3 sites)
- json.Unmarshal → JSONUnmarshal Result-shape (1 site)
- filepath.Join → PathJoin

All docs tests pass.

Banned-imports: 9 → 0 (-9, FULLY CLEARED) for docs.

Refs Mantis #1316

Filed-by: hephaestus
Co-authored-by: Hephaestus <hephaestus@lthn.ai>
2026-05-01 12:57:56 +01:00
.core chore(repo): canonicalize — add .core/go.yaml + scope .gitignore to runtime subdirs 2026-05-01 11:23:43 +01:00
.forgejo/workflows feat: migrate docs site to Zensical with full nav and new sections 2026-03-11 11:48:44 +00:00
docs docs(repo): add canonical AGENTS/README + docs/{architecture,development}.md (Mantis #1316) 2026-05-01 09:27:40 +01:00
external chore(docs): bump core/go submodule + convert render.go + server.go 2026-05-01 12:38:29 +01:00
go chore(docs): convert catalog_test + generate_test + integration_test 2026-05-01 12:57:56 +01:00
.gitignore chore(repo): canonicalize — add .core/go.yaml + scope .gitignore to runtime subdirs 2026-05-01 11:23:43 +01:00
.gitmodules refactor(docs): restructure to /go/ subtree (Phase 1, Mantis #1281) 2026-05-01 07:00:44 +01:00
.woodpecker.yml ci: woodpecker pipeline (Go) — golangci-lint/eslint/phpstan + sonar.lthn.sh 2026-04-29 00:02:55 +01:00
AGENTS.md docs(repo): add canonical AGENTS/README + docs/{architecture,development}.md (Mantis #1316) 2026-05-01 09:27:40 +01:00
CLAUDE.md docs: add CLAUDE.md project instructions 2026-03-13 13:38:01 +00:00
go.work chore(repo): refresh submodules + go.work hygiene (Phase 2 cascade unblock) 2026-05-01 09:38:32 +01:00
LICENCE chore: add EUPL-1.2 LICENCE file (UK English canonical) 2026-05-01 08:33:20 +01:00
llm.txt feat: add llm.txt + docs/RFC.md — agent entry points and spec index 2026-03-25 10:52:46 +00:00
README.md docs(repo): add canonical AGENTS/README + docs/{architecture,development}.md (Mantis #1316) 2026-05-01 09:27:40 +01:00
sonar-project.properties ci: woodpecker pipeline (Go) — golangci-lint/eslint/phpstan + sonar.lthn.sh 2026-04-28 23:33:11 +01:00
zensical.toml docs: update documentation from implemented plans 2026-03-14 08:09:17 +00:00

Go Reference License: EUPL-1.2 Go Version

core/docs

Documentation platform for the Core ecosystem (CLI, Go packages, PHP modules, MCP tools). Published at https://core.help.

Module: dappco.re/go/core/docs Licence: EUPL-1.2 Language: Go 1.26 (library) + Python 3 (site build via zensical)

Components

  1. docs/ — Markdown source files (217+) with YAML frontmatter, organised by section (Go, PHP, TS, GUI, AI, Tools, Deploy, Publish).
  2. go/pkg/help/ — Go library for help content management: parsing, search, HTTP serving, and static site generation.

Quickstart

Build the static site

pip install zensical
zensical build
# Output: site/

Use the Go help library

import help "dappco.re/go/core/docs/pkg/help"

cat, err := help.LoadContentDir("docs/")
if err != nil { panic(err) }

results := cat.Search("install")
for _, r := range results {
    fmt.Println(r.Topic.ID, r.Score)
}

Run as an HTTP server

srv := help.NewServer(cat)
http.ListenAndServe(":8080", srv)
// GET /, /topics/{id}, /search?q=X
// GET /api/topics, /api/topics/{id}, /api/search?q=X

Layout

docs/                       Markdown content (217+ files)
go/pkg/help/                Help library (parser, catalog, search, server, generate, render)
external/                   Submodule deps
zensical.toml               Site build config (Python)
.forgejo/workflows/         Forgejo CI (deploy.yml builds + pushes site/ to BunnyCDN)

See docs/architecture.md for the help-library data flow and docs/development.md for contributor setup.

Licence

EUPL-1.2 — see LICENCE.