
typst
by audibleblink
agent skill repository
SKILL.md
name: typst description: Comprehensive Typst copilot for semantic improvements, markdown conversion, compilation with visual debugging, and expert consultation. Use when working with Typst documents for (1) improving or refactoring Typst code, (2) converting Markdown to Typst, (3) compiling .typ files to PDF and debugging visual issues, (4) answering questions about Typst syntax, functions, or best practices, (5) creating or styling Typst documents, (6) troubleshooting Typst errors or layout problems. refs:
- references/*.md
Typst Copilot
Expert assistant for Typst document creation, editing, conversion, compilation, and consultation.
Core Capabilities
- Semantic Improvements: Review and refactor Typst code for better structure and idiomaticity
- Markdown Conversion: Convert Markdown (Extended level) to Typst syntax
- Compilation & Visual Debugging: Compile .typ files and analyze PDFs for page flow and layout issues
- Expert Consultation: Answer questions and provide guidance on Typst best practices
Available Resources
Scripts
scripts/compile_typst.py: Compile .typ files to PDF with error handling. Output all pdfs to./drafts
References
references/typst-docs.md: Comprehensive Typst syntax and function referencereferences/markdown-conversion.md: Markdown to Typst conversion mappingsreferences/visual-debugging.md: Page flow and layout issue identification and fixesreferences/threat-model-outline.md: Section definitions for threat actor threat modeling
Templates
assets/templates/report.typ: Professional report template with title page, TOCassets/templates/paper.typ: Academic paper template with two-column layoutassets/templates/presentation.typ: Presentation template with slide structure
Workflow Guidance
1. Semantic Code Improvements
When user provides Typst code for improvement:
Analyze the code:
- Identify structure and intent
- Note any non-idiomatic patterns
- Check for opportunities to use built-in functions
Apply best practices:
- Use set rules instead of repeated function calls
- Apply show rules for consistent styling
- Utilize proper semantic elements (headings, lists, figures)
- Simplify complex expressions
- Add appropriate spacing and layout functions
Explain improvements:
- Describe what was changed and why
- Reference Typst best practices
- Suggest additional enhancements if applicable
Example pattern to improve:
// Before: Repetitive function calls
#text(size: 14pt, weight: "bold")[Heading]
#text(size: 14pt, weight: "bold")[Another Heading]
// After: Use show rule
#show heading: set text(size: 14pt, weight: "bold")
= Heading
= Another Heading
2. Markdown to Typst Conversion
When user provides Markdown for conversion:
Consult conversion reference: Read references/markdown-conversion.md for detailed mappings
Parse Markdown structure:
- Identify headers, lists, code blocks, tables, etc.
- Note nesting and hierarchy
Convert systematically:
- Headers:
#→= - Lists: maintain
-for unordered, convert1.to+for ordered - Code blocks: preserve language identifiers
- Tables: convert to
#table()function - Images: convert to
#image()or#figure() - Math: convert LaTeX syntax to Typst math
Key conversion patterns:
## Title→== Title**text**→*text**text*→_text_1. item→+ item- ```lang → ```lang
3. Compilation Workflow
When user needs to compile Typst documents:
Compile using script:
python scripts/compile_typst.py input.typ [output.pdf]
Handle errors:
- Analyze error message
- Provide specific fixes for common errors
- Suggest consulting documentation if needed
Common compilation errors and fixes:
- Unknown function: Check spelling, imports
- Type mismatch: Verify parameter types
- Missing file: Check file paths
- Syntax error: Review syntax in documentation
4. Visual Debugging (Page Flow & Layout)
When user reports visual issues or after compilation:
Consult debugging reference: Read references/visual-debugging.md for comprehensive patterns
Identify issue category:
- Page flow: Awkward breaks, widows/orphans, section breaks
- Layout: Margins, spacing, alignment, columns, overlap
Apply targeted fixes:
Page Break Issues:
// Prevent heading orphans
#show heading: it => block(breakable: false, it)
// Force page break before chapter
#show heading.where(level: 1): it => {
pagebreak(weak: true)
it
}
Spacing Issues:
// Consistent heading spacing
#show heading: set block(above: 2em, below: 1em)
Layout Issues:
// Optimize line breaks
#set par(linebreaks: optimized)
// Prevent table breaks
#show table: set block(breakable: false)
5. Expert Consultation
When user asks questions about Typst:
Consult comprehensive documentation: Read references/typst-docs.md for syntax, functions, and patterns
Provide accurate answers:
- Reference specific functions and parameters
- Show code examples
- Explain concepts clearly
Common consultation topics:
- Syntax: How to write specific elements
- Styling: Set rules, show rules, themes
- Layout: Page setup, grids, columns, positioning
- Functions: Parameters, return values, usage
- Patterns: Templates, custom functions, automation
- Troubleshooting: Error messages, unexpected behavior
6. Document Creation
When user asks for help creating a document:
Determine document type:
- Report → Use
assets/templates/report.typ - Academic paper → Use
assets/templates/paper.typ - Presentation → Use
assets/templates/presentation.typ - Custom → Build from scratch using best practices
Provide template usage example:
#import "templates/report.typ": *
#show: report.with(
title: "My Report",
authors: ("Author Name",),
date: datetime.today().display(),
)
= Introduction
Content here...
Best Practices
Code Quality
- Use set rules for defaults
- Apply show rules for consistency
- Use semantic elements
- Modular code with functions
- Clear variable names (kebab-case)
Document Structure
- Logical heading hierarchy
- Consistent spacing
- Cross-references with labels
- Table of contents for longer documents
- Appropriate page numbering
Typography
- Font pairing for hierarchy
- Appropriate line spacing
- Justification with hyphenation
- Semantic markup
- Clear visual hierarchy
Layout
- Adequate margins
- Grid systems for complex layouts
- Control page breaks
- Auto placement for figures
- Column gutters for readability
Common Patterns
Custom Functions:
#let alert(body, color: red) = block(
fill: color.lighten(80%),
inset: 1em,
radius: 0.3em,
stroke: 2pt + color,
)[#body]
Conditional Styling:
#show heading.where(level: 1): set text(size: 18pt)
#show heading.where(level: 2): set text(size: 14pt)
Error Handling
Common errors:
- Function not found: Check imports and spelling
- Type error: Verify parameter types
- File not found: Check file paths
- Syntax error: Review documentation
- Compilation timeout: Simplify operations
Debugging approach:
- Read error message carefully
- Identify line number and context
- Check documentation for correct usage
- Simplify code to isolate issue
- Test incrementally
Notes
- Assume Typst CLI is installed
- Use Python compilation script for reliability
- Focus on page flow and layout for visual debugging
- Consult bundled documentation first
- Provide clear, actionable advice with code examples
Score
Total Score
Based on repository quality metrics
SKILL.mdファイルが含まれている
ライセンスが設定されている
100文字以上の説明がある
GitHub Stars 100以上
3ヶ月以内に更新がある
10回以上フォークされている
オープンIssueが50未満
プログラミング言語が設定されている
1つ以上のタグが設定されている
Reviews
Reviews coming soon