Schema

Schema

version: 1
imports: [module]
schemas:
- id: pkg
  desc: a package
  parent: root
  namespace: true
  children:
    - module.qa
    - module.quickstart
    - module.concepts
    - module.architecture
    - module.tips
    - module.faq
    - module.topic
    - module.ops
    - module.dev
    - module.changelog
    - module.config
    - module.advanced
    - module.best

Wildcards

Wildcards are nodes that can be put as the children of anything. They can also live as sections inside a note

Nodes

  • Cook: Guide on how to accomplish a specific task
  • Tip: Optimizations on doing things better
  • Gotchas: Things to watch out for

Types

Wildcard as Child of Note

  • hiearchy: {module}.dev.cook
    • how to do X in a certain module

Wildcard as Section of Note

  • {module}.dev
## Cook

### Adding a new command to plugin-core

...

Choosing betwen Child vs Section

Following the Amoeba pattern (Private), wildcards should start of as sections of existing notes. If the content needs to be used in multiple places or exceeds 800 lines of text, it should be refactored into a child

Ref vs Topic

A topic is a major component that requires its own module hiearchy to properly document. For example, Lookup is a topic of plugin-core.

A reference is a minor component that should hang as a leaf and should be self contained. For example, Decorations is a reference in plugin-core because it is specific to VSCode.

Examples of using the schema

How do I get started developing?

How do I write or read logs?

  • schema: {module}.ops.logs

How do I handle errors?

  • schema: {module}.ops.errors

How do I create a new {X} in {Y}?

Architecture

What is lifecycle of a given command?

  • schema: {module}.arch.lifecycle

Testing

How do I write a test?

  • schema: `{module}.qa.test

How do I debug a test?

  • schema: `{module}.qa.debug

Backlinks