Skip to content

Phase 18: md serve thin local read-only folder browser - #15

Merged
lidonggui merged 1 commit into
mainfrom
feat/md-serve
Sep 22, 2026
Merged

lidonggui merged 1 commit into
mainfrom
feat/md-serve

Conversation

@lidonggui

Copy link
Copy Markdown
Contributor

Summary

  • Add md serve <dir> bin (@roobli/md) — thin localhost HTTP read-only folder browser (not Electron Noto, not holt, not presence).
  • Markdown preview: parseBlocks → ported spansToHtml (Noto.docs dogfood pattern); no marked/micromark as primary HTML path.
  • IA from atelier skeleton: left tree (~248px), thin top bar (crumbs + type badge + 只读), main preview (md / text / image / empty / unsupported+download).
  • Defaults: bind 127.0.0.1:4321; --host 0.0.0.0 must be explicit. Root pinned by CLI; cold-start opens README.md when present.
  • Version left at 0.1.14 for release chore (no publish from this PR).

Test plan

  • pnpm verify (typecheck + 109 tests + build)
  • Smoke: node dist/serve/cli.js serve <fixture> — tree, md HTML, text, image, unsupported, path traversal blocked
  • Manual: open browser at printed URL; click tree; confirm paper-like MD measure ~42rem

How to run locally

pnpm build
node dist/serve/cli.js serve ./some-folder
# or: pnpm link / npx → md serve ./some-folder

Add `md serve <dir>` bin: localhost HTTP shell with tree + preview.
Markdown uses parseBlocks → spansToHtml (Noto.docs dogfood path).
Version left at 0.1.14 for the release chore.
@lidonggui
lidonggui merged commit 6f509fe into main Sep 22, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant