AI SummaryPolydoc 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
Health Signals
My Fox Den
Community Rating
Sign in to rate this booster