Skip to content
Skill

polydoc

by iwillig

AI Summary

Polydoc enables developers to build advanced documentation systems using Pandoc filters compiled to native code with GraalVM, eliminating Python/Node.js dependencies for JVM/Clojure projects. It's useful for teams needing performant document transformation and searchable documentation books.

Install

Copy this and paste it into Claude Code, Cursor, or any AI assistant:

I want to install the "polydoc" skill in my project.

Please run this command in my terminal:
# Install skill into the correct directory
mkdir -p .claude/skills/polydoc && curl --retry 3 --retry-delay 2 --retry-all-errors -o .claude/skills/polydoc/SKILL.md "https://raw.githubusercontent.com/iwillig/polydoc/main/POLYDOC_SKILL.md"

Then restart Claude Code (or reload the window in Cursor) so the skill is picked up.

Description

Build advanced documentation systems using Pandoc filters compiled with GraalVM for the JVM/Clojure ecosystem. Use when creating documentation filters, processing code blocks, building searchable documentation books, running code in documents, or when the user mentions Pandoc filters, documentation processing, document transformation, or interactive documentation systems.

Polydoc - JVM-Native Pandoc Documentation System

Polydoc brings Pandoc's powerful filtering capabilities to the JVM/Clojure ecosystem, providing advanced document processing without Python/Node.js dependencies. It compiles to native code with GraalVM for fast execution.

In REPL

(dev) ; Load dev namespace (refresh) ; Reload all namespaces (lint) ; Lint with clj-kondo (run-all) ; Run all tests

Build and use

bb build-cli polydoc --help ` Key capabilities: • Code execution filters: Run Clojure, SQLite, JavaScript, Python code blocks • Rendering filters: Process PlantUML diagrams • Linting filters: Check Clojure code with clj-kondo • Include filters: Compose documents from multiple sources • Book building: Generate books with TOC and full-text search • Interactive viewer: HTTP-based document browser with SQLite-powered search

Pandoc Filter Architecture

Polydoc processes documents through Pandoc's filter system: ` Document (Markdown/etc) → Pandoc Parser → JSON AST → Polydoc Filter (JVM/Clojure) → Modified AST → Pandoc Writer → Output (HTML/PDF/etc) ` Pandoc AST Structure: `clojure ;; Complete Pandoc document {:pandoc-api-version [1 23 1] :meta {:title {:t "MetaString" :c "My Document"}} :blocks [{:t "Header" :c [1 ["id" [] []] [{:t "Str" :c "Title"}]]} {:t "Para" :c [{:t "Str" :c "Content"}]} {:t "CodeBlock" :c [["" ["clojure"] []] "(+ 1 2)"]}]} ;; Common block types {:t "Para" :c [...]} ; Paragraph {:t "Header" :c [level attrs content]} ; Header {:t "CodeBlock" :c [attrs code]} ; Code block {:t "BulletList" :c [...]} ; Bullet list {:t "OrderedList" :c [...]} ; Numbered list `

Discussion

0/2000
Loading comments...

Health Signals

MaintenanceCommitted 4mo ago
Stale
AdoptionUnder 100 stars
1 ★ · Niche
DocsREADME + description
Well-documented

GitHub Signals

Stars1
Issues0
Updated4mo ago
View on GitHub
No License

My Fox Den

Community Rating

Sign in to rate this booster

Works With

Claude Code