mirror of
https://github.com/ublue-os/bazzite.git
synced 2024-12-29 12:22:20 +00:00
181497bc17
* 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 commit6a781c6596
. * 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 commit74130ee1fe
. * 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 commita685de4dce
. * Reapply "docs: Prefix url replacements with site-url in replace-urls.py preprocessor" This reverts commit777d8055ea
. * 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
83 lines
1.9 KiB
Python
Executable File
83 lines
1.9 KiB
Python
Executable File
#!/usr/bin/env python
|
|
|
|
__doc__ = """Preprocess markdown files in order to be processed by mdbook-i18n-helpers
|
|
"""
|
|
|
|
import argparse
|
|
import os
|
|
from pathlib import Path
|
|
import re
|
|
import shlex
|
|
import shutil
|
|
import subprocess
|
|
import sys
|
|
from typing import Optional
|
|
|
|
|
|
def execute_command(command: Optional[str]) -> str:
|
|
if not command:
|
|
return ""
|
|
try:
|
|
result = subprocess.run(
|
|
shlex.split(command),
|
|
check=True,
|
|
capture_output=True,
|
|
text=True,
|
|
)
|
|
return result.stdout.strip()
|
|
except subprocess.CalledProcessError as err:
|
|
return f"Error: {err.stderr.strip()}"
|
|
|
|
|
|
def debug(*msg) -> None:
|
|
if os.getenv("DEBUG") == "1":
|
|
return print("[DEBUG]:", *msg, file=sys.stderr)
|
|
|
|
|
|
def exe_wrapper(match: re.Match[str]):
|
|
return execute_command(match.group(1) or None)
|
|
|
|
|
|
def render(content: str):
|
|
templ = r"<!-- cmdrun (.*)\s?-->\n?"
|
|
return re.sub(templ, exe_wrapper, content)
|
|
|
|
|
|
def main():
|
|
argparser = argparse.ArgumentParser()
|
|
argparser.add_argument(
|
|
"-s",
|
|
"--src",
|
|
help="Directory with all markdown files",
|
|
type=str,
|
|
required=True,
|
|
)
|
|
argparser.add_argument(
|
|
"-o",
|
|
"--output",
|
|
help="Where to store files",
|
|
required=True,
|
|
)
|
|
|
|
args = argparser.parse_args()
|
|
# Move files to temporary directory
|
|
src_md_directory = Path(args.src)
|
|
_dst_md_directory = Path(args.output)
|
|
if _dst_md_directory.exists():
|
|
shutil.rmtree(_dst_md_directory)
|
|
dst_md_directory = shutil.copytree(src_md_directory, _dst_md_directory)
|
|
|
|
files_to_parse = [Path(f) for f in dst_md_directory.glob("**/*.md")]
|
|
|
|
for file in files_to_parse:
|
|
content_to_write: str = render(file.read_text(encoding="utf-8"))
|
|
with open(file, "w") as out:
|
|
out.write(content_to_write)
|
|
debug(f"File '{file.name}' was parsed")
|
|
|
|
print(dst_md_directory)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|