Internal

internal/adapters/markdown

Package markdown parses, renders, and stores living Markdown task specs.

import "github.com/nilstate/scafld/v2/internal/adapters/markdown"

Package markdown parses, renders, and stores living Markdown task specs.

Variables

Source: internal/adapters/markdown/spec_store.go:18

var (
	// ErrSpecNotFound is returned when taskID cannot be found in spec directories.
	ErrSpecNotFound = errors.New("spec not found")
	// ErrSpecExists is returned when a write would overwrite another task spec.
	ErrSpecExists = errors.New("spec already exists")
	// ErrMalformedMarkdown wraps spec Markdown grammar failures.
	ErrMalformedMarkdown = errors.New("malformed markdown spec")
)

Functions

func Parse(data []byte) (spec.Model, error)

Source: internal/adapters/markdown/parser.go:24

Parse converts living Markdown spec bytes into a normalized model.

func Render(model spec.Model) []byte

Source: internal/adapters/markdown/renderer.go:14

Render converts a normalized model into canonical living Markdown.

Types

type Store

Source: internal/adapters/markdown/spec_store.go:26

Store reads and writes Markdown task specs under a workspace root.

type Store struct {
	Root string
}
Fields
  • Root string

func CreateDraft(ctx context.Context, model spec.Model) (string, error)

Source: internal/adapters/markdown/spec_store.go:38

CreateDraft writes model as a new draft spec and returns its path.

func Find(taskID string) (string, error)

Source: internal/adapters/markdown/spec_store.go:86

Find returns the path for taskID across active spec directories.

func List(ctx context.Context) ([]spec.Record, error)

Source: internal/adapters/markdown/spec_store.go:116

List returns summaries for current non-archived task specs.

func ListAll(ctx context.Context) ([]spec.Record, error)

Source: internal/adapters/markdown/spec_store.go:121

ListAll returns summaries for current and archived task specs.

func Load(ctx context.Context, taskID string) (spec.Model, string, error)

Source: internal/adapters/markdown/spec_store.go:56

Load finds, parses, and returns a spec by task ID. Loading is read-only: lifecycle projections are derived from the session ledger, and only explicit save/create commands may move or rewrite the canonical Markdown contract.

func LoadSource(ctx context.Context, taskID string) (spec.Source, error)

Source: internal/adapters/markdown/spec_store.go:66

LoadSource finds, parses, and returns a spec together with the exact Markdown bytes read from disk. Loading is read-only and returns the path actually read.

func Save(ctx context.Context, path string, model spec.Model) error

Source: internal/adapters/markdown/spec_store.go:49

Save writes model to an existing spec path.