Text Formatting Rules

Wikantik pages use CommonMark-flavored Markdown stored as .md files. The rendering engine is based on Flexmark, extended with Wikantik-specific syntax for plugins, access control, and metadata. A page can start with a YAML frontmatter block for structured data; the wiki adds a canonical_id to it on save.

I. Markdown Core

Wikantik supports standard CommonMark with the following active extensions:

ExtensionSyntax ExampleUse Case
Tables| Col | Col |GitHub-style pipe tables.
Footnotes[^1] and [^1]:Citations and side-notes.
DefinitionsTerm\n: DefStructural glossaries.
Attributes{.class}Appending CSS classes/IDs to blocks.
Math$E=mc^2$LaTeX-style inline and block math.
Strikethrough~~struck~~Double tilde only; a single ~x~ stays literal.
Task lists- [ ] to do, - [x] doneRead-only checkboxes.
Callouts> [!note] TitleObsidian-style callout blockquote (tip, warning, danger and others).

Headings

Use ATX-style headings (# through ######).

Code Blocks

Prefer fenced code blocks with language hints for syntax highlighting:

```java
public class HelloWorld { ... }
```

Mathematical Notation

II. Internal Linking and References

Internal links resolve to page names (slugs) within the wiki. Both forms below work:

Canonical IDs

Page slugs can change during refactoring. For permanent references in code, documentation, or runbooks, use the canonical_id.

III. Wikantik Bracket Syntax

Bracket syntax [{ ... }]() is used for dynamic functions and system controls.

FunctionSyntaxDescription
Plugins[{PluginName param=val}]()Execute a rendering plugin.
ACLs[{ALLOW view All}]()Define page-level permissions.
Variables[{$variableName}]()Inline a system or page variable.
Setters[{SET key=val}]()Define a page-scoped variable.

Access Control Lists (ACLs)

An ACL can sit anywhere in the page text outside a code span or code block. Valid permissions are view, comment, edit, modify, upload, rename, and delete; principals are login names, group names or roles, separated by commas.

IV. Core Plugins

Plugins extend the static Markdown with dynamic content.

V. Frontmatter Schema

The YAML frontmatter is the "Structural Spine" of the wiki.

---
canonical_id: 01H8G3... (Auto-injected on save)
title: Page Title
type: article | hub | runbook | design | reference
cluster: thematic-grouping
status: draft | active | archived
date: YYYY-MM-DD
summary: A one-sentence description.
tags: [tag1, tag2]
related: [PageSlug1, PageSlug2]
---

Type-Specific Requirements

Verification Metadata

Stamp pages as reviewed using the mark_page_verified tool or manual entry:

VI. Best Practices

  1. Summary Quality: Keep summaries between 50 and 160 characters. They drive search results and agent projections.
  2. Prefer Markdown to HTML: Raw HTML is rendered after it is sanitised (scripts, frames, forms, event-handler attributes and unsafe link schemes are removed). Use Markdown primitives or plugins for styling where you can.
  3. Frontmatter vs. Body: Store machine-queryable data (dates, types, relations) in frontmatter; store prose and examples in the body.
  4. Authoring help: See Editing for the editor and Frontmatter for every field.