Generate GitHub-styled HTML walkthroughs from markdown
Project description
linear-walkthrough
Generate self-contained, GitHub-styled HTML walkthroughs from GFM markdown.
Takes markdown files with code walkthroughs and produces single-file HTML pages with syntax highlighting, dark mode support, and Mermaid diagram rendering. Optionally launches an interactive server where you can select text and ask Claude follow-up questions.
Install
# Run directly from GitHub
uvx --from git+https://github.com/uptick/linear-walkthrough linear-walkthrough input.md -o output.html
# Or install locally
uv pip install git+https://github.com/uptick/linear-walkthrough
linear-walkthrough input.md -o output.html
AI Coding Assistants
Add the skill to your AI coding assistant:
npx skills add uptick/linear-walkthrough
Works with Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, Goose, OpenCode, and Windsurf.
Example prompts:
/linear-walkthrough Walk me through the auth module
/linear-walkthrough Create a walkthrough for PR #42
/linear-walkthrough Give me a beginner-friendly walkthrough of the API layer
Quick Start
# File input → file output
uv run linear-walkthrough input.md -o output.html
# Stdin → stdout
cat input.md | uv run linear-walkthrough -o out.html
# Interactive server mode (opens browser)
uv run linear-walkthrough input.md --serve
Features
- GFM markdown — tables, task lists, fenced code blocks
- Syntax highlighting — Pygments with light/dark theme support via
prefers-color-scheme - Mermaid diagrams — rendered client-side from fenced
mermaidblocks - Self-contained output — single HTML file with all CSS inlined
- Interactive mode — select text in the browser, ask Claude follow-up questions, responses appended to the source file
Interactive Server Mode
uv run linear-walkthrough walkthrough.md --serve [-p PORT] [--cwd DIR]
Starts a local HTTP server (default port 7847) that renders your walkthrough with a text selection UI. Select any text and ask a question — Claude responds using the full walkthrough as context. Follow-up responses are appended to the original markdown file.
Project Structure
linear_walkthrough/
cli.py - CLI entry point
renderer.py - Markdown → HTML via markdown-it-py + Pygments
template.py - Minijinja template loader + CSS
server.py - Interactive server mode (stdlib http.server + claude subprocess)
templates/
page.html - Static output template
page_interactive.html - Interactive template with follow-up JS
Tech Stack
- Python 3.12+ managed with uv
- markdown-it-py — GFM parsing
- Pygments — syntax highlighting
- minijinja — HTML templating
- Mermaid.js — diagram rendering (CDN)
Development
uv run ruff check . # lint
uv run mypy . # type check
uv run pytest # test
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file linear_walkthrough-0.2.0.tar.gz.
File metadata
- Download URL: linear_walkthrough-0.2.0.tar.gz
- Upload date:
- Size: 356.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
318d10f5596573ca4ca41b57f3c9fee576959dda80a066897f5496e61a55267d
|
|
| MD5 |
16bd6f560a84fc4542c6653f199c9b38
|
|
| BLAKE2b-256 |
135af204ae5216170c82569767fa11f2aca72d6b7ae1a06655e14683c87eb0c1
|
File details
Details for the file linear_walkthrough-0.2.0-py3-none-any.whl.
File metadata
- Download URL: linear_walkthrough-0.2.0-py3-none-any.whl
- Upload date:
- Size: 14.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d7bccb766de308419cb66944258497f7d5e61cb69b8626b142310ecbb5a4210c
|
|
| MD5 |
ba05c151e59c0082e291f6170efe8397
|
|
| BLAKE2b-256 |
f3275938de7c8fb8efc5911ea7a43ba6ab295680ec9f79311efdbb3dac7bd7ab
|