-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathplugins.py
More file actions
58 lines (42 loc) · 1.57 KB
/
plugins.py
File metadata and controls
58 lines (42 loc) · 1.57 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
import logging
import os
import re
from mkdocs.config import Config
from mkdocs.structure.files import Files
from mkdocs.structure.pages import Page
logger = logging.getLogger("mkdocs.plugin")
def on_pre_build(config: Config):
"""
Not doing anything here anymore.
"""
pass
def on_files(files: Files, config: Config) -> Files:
return remove_files(files)
def remove_files(files: Files) -> Files:
to_remove = []
for file in files:
if file.src_path in {"plugins.py", "cli_help.txt"}:
to_remove.append(file)
elif file.src_path.startswith("__pycache__/"):
to_remove.append(file)
logger.debug("removing files: %s", [f.src_path for f in to_remove])
for f in to_remove:
files.remove(f)
return files
def on_page_markdown(markdown: str, page: Page, config: Config, files: Files) -> str:
return reinstate_code_titles(markdown)
def reinstate_code_titles(markdown: str) -> str:
"""
Fix titles in code blocks, see https://youtrack.jetbrains.com/issue/PY-53246.
"""
return re.sub(r"^(```py)\s*\ntitle=", r"\1 title=", markdown, flags=re.M)
def add_version(markdown: str, page: Page) -> str:
if page.abs_url == "/":
version_ref = os.getenv("GITHUB_REF")
if version_ref:
version = re.sub("^refs/tags/", "", version_ref.lower())
version_str = f"Documentation for version: **{version}**"
else:
version_str = "Documentation for development version"
markdown = re.sub(r"{{ *version *}}", version_str, markdown)
return markdown