Contributing¶
Contributions to the Folge Vision Publishing Pipeline are welcome.
Getting Started¶
- Fork the repository
- Clone your fork:
- Install dependencies:
- Create a feature branch:
Development¶
Running Tests¶
# Validate schema against a test file
uv run python scripts/validate_schema.py test-data/guide.enriched.json
# Run the pipeline against a project folder (see docs/getting-started.md)
FOLGE_PROJECTS_DIR=/tmp/folge-dev folge-cli pipeline --project my-guide
Building Documentation¶
# Serve docs locally with hot reload
uv run mkdocs serve
# Build static site
uv run mkdocs build --strict
Code Style¶
- Python 3.10+ syntax
- Follow existing patterns in the codebase
- Keep scripts focused on single responsibilities
- Use
subprocess.runwithcapture_output=Truefor external commands
Making Changes¶
Pipeline Scripts¶
Each script in scripts/ should:
- Accept command-line arguments via
sys.argv - Print progress to stdout
- Return exit code 0 on success, non-zero on failure
- Handle errors gracefully with informative messages
Lua Filters¶
Each filter should:
- Define Pandoc filter functions for the relevant elements
- Be self-contained (no external dependencies)
- Document the attributes it sets
Documentation¶
- Keep pages in
docs/synchronized with script behavior - Use admonitions for warnings and tips
- Include command examples with expected output
Submitting¶
- Commit your changes with descriptive messages
- Push to your fork
- Open a Pull Request against
main - Describe what changed and why
License¶
By contributing, you agree that your contributions will be licensed under the Apache License 2.0.