Skip to content

Commit 0e1dae6

Browse files
committed
add entangled as pre_build; replace build-artifact with entangled build support
1 parent 4a82ece commit 0e1dae6

File tree

4 files changed

+616
-549
lines changed

4 files changed

+616
-549
lines changed

mkdocs_entangled/on_page_markdown.py

+1-29
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,18 @@
11
from typing import Optional
22
from dataclasses import dataclass
3-
from pathlib import Path
43
import re
5-
import tempfile
6-
import subprocess
7-
import sys
84

95
from mkdocs.config.defaults import MkDocsConfig
106
from mkdocs.structure.pages import Page
117
from mkdocs.structure.files import Files
128

13-
from .config import EntangledConfig
14-
from .properties import read_properties, Id, Attribute, Class
9+
from .properties import read_properties, Id, Attribute
1510
from . import mawk
1611

1712

1813
@dataclass
1914
class EntangledFilter(mawk.RuleSet):
2015
add_title: bool = True
21-
build_artifacts: bool = True
22-
23-
_collect_make_script: bool = False
2416
_ignore: bool = False
2517

2618
@mawk.on_match(r"~~~markdown")
@@ -58,31 +50,11 @@ def open_code_block(self, m: re.Match) -> Optional[list[str]]:
5850
if title is not None:
5951
props.append(Attribute("title", title))
6052

61-
if self.build_artifacts and Class("build-artifact") in props:
62-
self._collect_make_script = True
63-
self._make_script: list[str] = []
64-
self._make_props = props
65-
self._indent = indent
66-
6753
prop_str = " ".join(str(p) for p in props)
6854
return [f"{indent}``` {{{prop_str}}}"]
6955

7056
@mawk.on_match(r"\s*```\s*$")
7157
def close_code_block(self, m: re.Match) -> Optional[list[str]]:
72-
if not self._ignore and self._collect_make_script:
73-
self._collect_make_script = False
74-
script = "\n".join(self._make_script)
75-
with tempfile.TemporaryDirectory() as _tmpdir:
76-
tmpdir = Path(_tmpdir)
77-
with open(tmpdir / "Makefile", "w") as makefile:
78-
makefile.write(script)
79-
subprocess.run(["make", "-f", str(tmpdir / "Makefile")])
80-
return None
81-
82-
@mawk.always
83-
def add_line_to_script(self, line: str) -> Optional[list[str]]:
84-
if not self._ignore and self._collect_make_script:
85-
self._make_script.append(line.removeprefix(self._indent))
8658
return None
8759

8860

mkdocs_entangled/plugin.py

+8
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,19 @@
1+
import logging
12
import mkdocs
23
from mkdocs.config.defaults import MkDocsConfig
34
from mkdocs.structure.pages import Page
45
from mkdocs.structure.files import Files
56

7+
from entangled.commands import sync
8+
69
from .on_page_markdown import on_page_markdown
710
from .config import EntangledConfig
811

912
class EntangledPlugin(mkdocs.plugins.BasePlugin[EntangledConfig]):
13+
def on_pre_build(self, config: MkDocsConfig):
14+
logging.info("Running entangled sync()")
15+
sync()
16+
1017
def on_page_markdown(self, markdown: str, *, page: Page, config: MkDocsConfig, files: Files):
18+
logging.info("Entangled markdown filter version 0.3.0")
1119
return on_page_markdown(markdown, page=page, config=config, files=files)

0 commit comments

Comments
 (0)