QuartoDocBuilder
Notedocblock
QuartoDocBuilderA Julia package for building documentation websites using Quarto, inspired by R’s pkgdown package and Documenter.jl.
Features
- Generate documentation from Julia docstrings
- Organized reference pages with grouping
- Multiple navbar sections with dropdowns
- Articles/vignettes support
- Changelog generation from NEWS.md
- GitHub Actions integration
- Customizable themes and navigation
- Optional default styles (applied when no theme is specified)
- Multi-version documentation with version selector dropdown
- Edit on GitHub links for easy contributions
- Auto-documentation of all module symbols (
autodocs_group) - Missing docstring detection (
check_missing_docstrings) - External cross-references to other packages’ documentation
- Link checking for broken URLs
- Submodule documentation (
include_submodules) with collision-safe page names - Automatic
objects.invemission for cross-package linking
Quick Start
using MyPackage
using QuartoDocBuilder
# Simple usage (uses default styles)
config = QuartoConfig(
module_name = MyPackage,
repo = "user/MyPackage.jl"
)
quarto_build_site(config)
# With Quarto theme (default styles NOT applied)
config = QuartoConfig(
module_name = MyPackage,
repo = "user/MyPackage.jl",
theme = ThemeConfig(bootswatch="flatly", dark_mode=true)
)
quarto_build_site(config)
# With multiple sections
config = QuartoConfig(
module_name = MyPackage,
repo = "user/MyPackage.jl",
reference = [
ReferenceGroup(title="Core", contents=[:main_func]),
ReferenceGroup(title="Utils", contents=[starts_with("util_")])
],
sections = [
SectionConfig(title="Tutorials", dir="tutorials", order=1),
SectionConfig(title="Explanation", dir="explanation", order=2),
SectionConfig(title="How-to Guides", dir="how-to", order=3)
]
)
quarto_build_site(config)
# With versioned documentation (like DataFrames.jl)
config = QuartoConfig(
module_name = MyPackage,
repo = "user/MyPackage.jl",
version = VersionConfig(
enabled = true,
dev_branch = "main",
keep_versions = 5
)
)
quarto_build_site(config)
# Then generate the versioned GitHub Actions workflow:
quarto_github_action_versioned()