Skip to content

inu-tsuki/kmd

Repository files navigation

Kinetic Markdown (KMD)

TypeScript Vue 3 PixiJS GSAP

Kinetic Markdown (KMD) is an experimental markup language and toolchain for animated, highly stylized text experiences. It combines Markdown-like authoring with a runtime built around parsing, layout, stage control, and GPU-rendered kinetic typography.

This repository is currently the main KMD incubation repo. It contains the Web editor, the evolving KMD core runtime, the VS Code extension, architecture notes, and product planning for future readers and community tools.

Current Scope

  • KMD Web Editor: Vue-based editor and preview application.
  • KMD Core Runtime: Parser, layout engine, effect pipeline, stage runtime, and rendering bridge.
  • VS Code Extension: Language support under extensions/vscode-kmd/.
  • Android Reader Integration: WebView runtime strategy and optional Android checkout coordination.
  • Architecture Docs: Notes for command routing, parser flow, effect flow, and ongoing refactors.

The project is moving from an editor-only prototype toward a broader KMD language and content ecosystem. The WebView-hostable @kmd/reader-runtime-web package now exists; the current priority is stabilizing Android consumption of that artifact, keeping the package boundary clean, and reviewing Phase B language design before implementation resumes.

Repository Layout

apps/editor/             Web editor and current KMD runtime source
apps/android-reader/     Optional local checkout of the Android app; ignored by this repo
packages/language/       Shared KMD language assets and package-level import seam
packages/reader-runtime-web/
                         Reader-only WebView/browser runtime bundle
extensions/vscode-kmd/   VS Code language extension
docs/planning/           Roadmaps plus package, app, and ecosystem plans
docs/knowledge/          Long-lived architecture, design, and research notes
docs/archive/            Historical discussions and obsolete drafts
dist/                    Root build output generated by the editor app
scripts/                 Local scripts

The current editor app still contains the shared parser/layout/effect/stage runtime under apps/editor/src/core/. packages/reader-runtime-web/ owns the reader-only entry and build artifact while it still reuses that runtime closure. A pure packages/core package remains intentionally later.

Quick Start

This project uses pnpm.

pnpm install
pnpm dev

Useful commands:

pnpm build
pnpm preview
pnpm test:parser
pnpm language:check
pnpm reader:build

Syntax Glimpse

[align=center .glitch]
{Hello} {World} @ .ease(1s).goto(globalmark_up) f.red.wait(1s).shake f.blue.wave
  • {...} defines a token or grouped text segment.
  • @ separates text from commands.
  • f.effect applies an effect to a token.
  • .effect applies a paragraph/global effect.
  • [...] defines block options, global effects, and startup instructions.

Documentation

Start with docs/README.md.

Important docs:

Status

KMD is under active exploration. APIs, syntax details, and runtime internals may change quickly. The current runtime package boundary is @kmd/reader-runtime-web; Phase B language changes remain gated by language design review and integration stability.

License

KMD code is licensed under the Apache License 2.0. See LICENSE.

Bundled fonts and other third-party assets remain under their own licenses. See THIRD_PARTY_NOTICES.md.

About

An experimental markup language and GPU-accelerated engine for animated, highly stylized text experiences.

Resources

License

Stars

2 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages