bazzite/docs/Justfile

74 lines
2.1 KiB
Makefile
Raw Normal View History

feat: Prepare mdBook workflow for documentation (#1441) * feat: add mdbook docs * chore: add several articles to docs * docs: add documentation at surface level Using Discourse urls as fallback for missing content for now docs: add missing image files * docs: Add missing chapter emojis docs: Add missing warning in Advanced docs in summary docs: add missing waydroid guide docs: rename files to avoid spaces docs: fix badly set docs build params docs: remove unnecesary placeholders * docs: Realocate 'Gaming' section under 'General' * docs: Add 'Introduction' section This section contains a table of contents of the documentation * docs: Add unstable documentation warning * docs: Add missing github url docs: add missing symlink to resources * docs: Add discourse scrapper utility * docs: minor discourse scrapper docs changes * docs: Add youtube embeding preprocessor * minor reformat for youtube-embed * docs: Add mdbook preprocessor template * docs: add format-author preprocessor * docs: add git lib to mdbook toolset * docs: Always fetch the highest quality image by fetch_discourse_md * docs: fix youtube-embed ignoring new line requirement * docs: Add documentation transcription guide * docs: Missing url in transcription guide * docs: Remove YAML header from doc guide * docs: Minor tweaks to transcription guide * docs: Add utilities preprocessor module docs: Move debug preprocessor util to utils * docs: tweak debug function * docs: Add 'replace-urls' preprocessor * chore: Move mappings parameter in replace-urls preprocessor * docs: add ignore field to replace-urls * docs: add Mdbook python types * docs: Add ignore field to replace-urls Now we can exclude files from being processed with blob patterns * chore(ci): add deploy_docs * chore(ci): Add dynamic edit url template to deploy_docs * chore(ci): Add html.site-url to deploy_docs * chore(readme): Use relative paths for repo_content * chore(ci): Add README to included paths for deploy_docs * chore(ci): Disable deploy_docs * chore(ci): Use main in deploy_docs.on.push.branches * docs: Rephrase unstable docs warning * chore(ci): Exclude docs from triggering build workflow * chore(ci): Enable deploy_docs * fix(docs): Remove unnecessary imports in preprocessors * docs: Move unstable docs warning to index.hbs * docs: Add page metadata inclusion with fetch_discourse_md.py * docs: Move fetch_discourse_md.py to docs/utils * docs: Add 'fetched_at' metadata field in fetch_discourse_md.py * docs: Update fetch_discourse_md.py to format metadata in json * Revert "chore(readme): Use relative paths for repo_content" This reverts commit 6a781c659607e0c83c19248241684c5785c7e93b. * docs: Replace include with an url to repo README * ci(docs): Add multilanguage doc build support * docs: add Justfile utility * docs: update Justfile utility * ci(docs): Add stricter workflow trigger to deploy_docs * docs: add 'preview_translation' to Justfile * docs: add documentation translation guide * ci(docs): Add mdbook cache * ci(docs): Add i18n-report * ci(docs): tweak deploy_docs workflow triggers * ci(docs): remove unnecessary slash at build.yml * ci(docs): remove unnecessary slash at deploy_docs.yml * ci(docs): add docs/book.toml to deploy_docs trigger * ci(docs): Add schedule trigger * ci(docs): add github-pages cleaning * ci(docs): Exclude docs from generate_changelog * docs: Add dependencies installation script * ci(docs): Add mdbook pdf build * docs: Tweak Justfile to support pdf generation * Revert "docs: Always fetch the highest quality image by fetch_discourse_md" This reverts commit 74130ee1fe9264dc7a4c4c49fb416ef3dc12e322. * ci(docs): Exclude deploy_docs.yml from cache-mdbook keys * docs: Add 'mdbook_build' to Justfile * docs: Add 'mdbook_serve' to Justfile * docs: Add debug flag to fetch_discourse_md * docs: Automate discourse documentation scrapping * docs: Add flock to fetch_discourse_md * docs: Add translation file generation with Justfile * docs: Prefix url replacements with site-url in replace-urls.py preprocessor * docs: Add installation guides docs: Replace print button * Revert "docs: Prefix url replacements with site-url in replace-urls.py preprocessor" This reverts commit a685de4dce54debc900607d743069b79202a26ac. * Reapply "docs: Prefix url replacements with site-url in replace-urls.py preprocessor" This reverts commit 777d8055eac7543001200834939c960fb490e666. * docs: fix replace-urls.py * docs: fix fetch_discourse_md.py hitting discourse ip_10_secs_limit * ci(docs): Remove duplicate '/' in build translation step * ci(docs): Update actions/cache * ci(docs): Reduce deploy_docs schedule timespan between triggers * docs: update install-deps.sh * docs: Update Advanced docs * docs: Add favicon * docs: Reword unstable documentation warning * docs: Change default theme to 'navy' * ci(docs): Move permisions to job scope
2024-08-21 18:56:12 +00:00
export PATH := justfile_directory() + "/utils:" + env("PATH")
_default:
just --list
# Install dependencies required for documentation stuff
install_dependencies:
bash ./utils/install-deps.sh
_build_messages_pot:
#!/usr/bin/bash
DEBUG=1 ./utils/pre-build.py -s src -o src.tmp
MDBOOK_BOOK__SRC="src.tmp" \
MDBOOK_OUTPUT='{"xgettext": {}}' \
mdbook build -d po
rm -r src.tmp
# Check that a translation file exists, otherwise exit with 1
_is_translation LANG:
[[ -f po/{{LANG}}.po ]] || { \
echo "ERROR: 'po/{{LANG}}.po' does not exist."; \
echo "Use 'just add_translation {{LANG}}' to create a new translation file"; \
exit 1; }
# Add a language to translate
add_translation LANG: _build_messages_pot
msginit -i po/messages.pot -l {{LANG}} -o po/{{LANG}}.po
# Flatten a directory containing multiple mdbook outputs
_flatten_outputs OUTPUTS_DIR="./book":
#!/usr/bin/bash
cd {{ OUTPUTS_DIR }}
to_flatten=( \
# Add here directories you want to flatten
$(ls -d "html" "pdf") \
) || true
for dir in "${to_flatten[@]}"; do
(
shopt -s dotglob
mv $dir/* ./
)
done
# Update a language with a fresh messages.pot
update_translation LANG: (_is_translation LANG) _build_messages_pot
msgmerge --update po/{{LANG}}.po po/messages.pot
# Equivalent to 'mdbook build'
mdbook_build LANG="":
#!/usr/bin/bash
mdbook clean
mdbook build -d ./book && just _flatten_outputs
if [[ -n "{{LANG}}" ]]; then
MDBOOK_BOOK__LANGUAGE={{LANG}} mdbook build -d book/{{LANG}} && \
just _flatten_outputs book/{{LANG}}
fi
_serve_http DIR="./book":
python -m http.server -d {{DIR}} -b 127.0.0.1 3000
# Start a lightweight web server with a preview of the mdbook
mdbook_serve LANG="":
#!/usr/bin/bash
set -meo pipefail
just mdbook_build {{LANG}}
just _serve_http &
sleep 1
printf '\n\n\n\n'
echo "Page ready at 'http://127.0.0.1:3000/{{LANG}}'"
fg
# Same as 'mdbook_serve' but for a specific language
preview_translation LANG: (_is_translation LANG)
just mdbook_serve {{LANG}}