Implements #137: markdown parsing and section extraction for help system. - Add Topic and Section types for help content structure - Add Frontmatter type for YAML metadata parsing - Add ParseTopic() to parse markdown files into Topic structs - Add ExtractFrontmatter() to extract YAML frontmatter - Add ExtractSections() to extract headings and content - Add GenerateID() to create URL-safe anchor IDs - Add comprehensive tests following _Good/_Bad naming convention This is the foundation for the display-agnostic help system (#133). Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
31 lines
945 B
Go
31 lines
945 B
Go
// Package help provides display-agnostic help content management.
|
|
package help
|
|
|
|
// Topic represents a help topic/page.
|
|
type Topic struct {
|
|
ID string `json:"id"`
|
|
Title string `json:"title"`
|
|
Path string `json:"path"`
|
|
Content string `json:"content"`
|
|
Sections []Section `json:"sections"`
|
|
Tags []string `json:"tags"`
|
|
Related []string `json:"related"`
|
|
Order int `json:"order"` // For sorting
|
|
}
|
|
|
|
// Section represents a heading within a topic.
|
|
type Section struct {
|
|
ID string `json:"id"`
|
|
Title string `json:"title"`
|
|
Level int `json:"level"`
|
|
Line int `json:"line"` // Start line in content (1-indexed)
|
|
Content string `json:"content"` // Content under heading
|
|
}
|
|
|
|
// Frontmatter represents YAML frontmatter metadata.
|
|
type Frontmatter struct {
|
|
Title string `yaml:"title"`
|
|
Tags []string `yaml:"tags"`
|
|
Related []string `yaml:"related"`
|
|
Order int `yaml:"order"`
|
|
}
|