vscode-ffsmd highlights FFS-MD, the FFS in-house Markdown dialect (used in component content/ and blog posts). It does not replace VS Code's Markdown support — it injects the FFS-specific tokens on top of the built-in Markdown grammar, so your .md files keep all their normal highlighting and additionally light up the FFS constructs.

Install

Marketplace (publisher Fedem): search FFS-MD, or

code --install-extension Fedem.vscode-ffsmd

From a .vsix: DownloadsInstalling a .vsix. For FSON fenced-code colours inside FFS-MD, also install Fedem.vscode-fson.

What it adds

Injected on top of text.html.markdown:

  • Block directives [IMAGE:…], [VIDEO: …], [SVG: …], [LIST:…] — the keyword, the inner path/label and the | / , field separators each get their own scope. Prefixes are matched exactly ([IMAGE: has no space, [VIDEO: has one).
  • Status marks (/) (x) (!) (?) (y) (n) (on) (off) — only those exact literals.
  • Emoji shortcodes :name: (curated set plus ISO country-code flags, upper- and lower-case).
  • Footnotes [^label] references and [^label]: definitions.
  • fson ` fenced code — highlighted with the FSON grammar when vscode-fson is also installed.

The injection only adds scopes — it never overrides the base Markdown highlighting, so headings, emphasis, lists, code and VS Code's own YAML front-matter colouring keep working exactly as in a plain .md file.

Formatter

FFS-MD has no canonical Markdown writer (the FFS renderer only produces HTML), so the formatter is conservative and render-neutral: format(x) renders to the same HTML as x. It normalises only what is provably safe — FFS directive fields ([IMAGE: a | b ][IMAGE:a|b]), front-matter key: valuekey: value, trailing whitespace, blank-line runs, the final newline — and never touches fenced-code content, tables, or any Markdown structure.

Use FFS-MD: Format Document (FFS-MD), or turn on ffsmd.format.enable to make it the Markdown formatter for Format Document / format-on-save (off by default so it does not affect every .md file).

Note

Because this is an injection into every Markdown file, all .md files recognise FFS tokens. If that is too broad for a workspace, disable the extension per-workspace.