From 8215fd94f3e665c4520c7bae020b7e9180f61af4 Mon Sep 17 00:00:00 2001 From: Uchechukwu Orji Date: Thu, 23 Jan 2025 15:42:14 +0100 Subject: [PATCH] set up documentation using mkdocs --- .readthedocs.yaml | 18 + CHANGELOG.md | 4 + docs/assets/openzim.png | Bin 0 -> 9926 bytes docs/index.md | 7 + docs/license.md | 7 + docs/scripts/generate_api_nav.py | 66 +++ libzim/libzim.pyx | 853 ++++++++++++++++++++++--------- mkdocs.yml | 126 +++++ pyproject.toml | 14 + 9 files changed, 841 insertions(+), 254 deletions(-) create mode 100644 .readthedocs.yaml create mode 100644 docs/assets/openzim.png create mode 100644 docs/index.md create mode 100644 docs/license.md create mode 100644 docs/scripts/generate_api_nav.py create mode 100644 mkdocs.yml diff --git a/.readthedocs.yaml b/.readthedocs.yaml new file mode 100644 index 0000000..6edf0ac --- /dev/null +++ b/.readthedocs.yaml @@ -0,0 +1,18 @@ +# Read the Docs configuration file +# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details + +version: 2 + +build: + os: ubuntu-24.04 + tools: + python: '3.12' + + # custom commands to run mkdocs build within hatch, as suggested by maintainer in + # https://github.com/readthedocs/readthedocs.org/issues/10706 + commands: + - pip install hatch + - hatch run build-ext + - mkdocs build + - mkdir --parents $READTHEDOCS_OUTPUT + - mv site $READTHEDOCS_OUTPUT/html diff --git a/CHANGELOG.md b/CHANGELOG.md index 5c5d205..1e66ff7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,10 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [Unreleased] + +- Set up documentation using `mkdocs`, published on readthedocs.com (#186) + ## [3.6.0] - 2024-10-15 ### Added diff --git a/docs/assets/openzim.png b/docs/assets/openzim.png new file mode 100644 index 0000000000000000000000000000000000000000..006574ba791f4b2c07a8ba18ce5b15a6d86854f0 GIT binary patch literal 9926 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