Skip to content

Commit d11fd64

Browse files
authored
Merge pull request #30 from neatc0der/feature/encryptcontent
feature/encryptcontent
2 parents f27131e + e21f08e commit d11fd64

File tree

3 files changed

+42
-23
lines changed

3 files changed

+42
-23
lines changed

changelog/v2.2.0.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
# v2.2.0
22

3-
* Fixes distribute workflow
3+
* Adds [support for mkdocs-encryptcontent-plugin](https://github.com/neatc0der/mkdocs-markmap/issues/26)
44
* Adds troubleshooting for [nav tree lists markmap files](https://github.com/neatc0der/mkdocs-markmap/issues/33)
5+
* Fixes distribute workflow

mkdocs_markmap/plugin.py

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -91,20 +91,24 @@ def on_config(self, config: Config) -> Config:
9191

9292
return config
9393

94-
def on_post_page(self, output_content: str, config: Config, **kwargs) -> str:
95-
soup: BeautifulSoup = BeautifulSoup(output_content, 'html.parser')
96-
page: Page = kwargs.get('page')
97-
98-
markmaps: ResultSet = soup.find_all(class_='language-markmap')
99-
if not any(markmaps):
94+
def on_post_page(self, html: str, page: Page, config: Config, **kwargs) -> str:
95+
if not getattr(page, '_found_markmap', False):
10096
log.info(f"no markmap found: {page.file.name}")
101-
return output_content
97+
return html
10298

99+
soup: BeautifulSoup = BeautifulSoup(html, 'html.parser')
103100
script_base_url: str = re.sub(r'[^/]+?/', '../', re.sub(r'/+?', '/', page.url)) + 'js/'
104101
js_path: Path = Path(config['site_dir']) / 'js'
105102
self._load_scripts(soup, script_base_url, js_path)
106103
self._add_statics(soup)
107104

105+
return str(soup)
106+
107+
def on_page_content(self, html: str, page: Page, **kwargs) -> str:
108+
soup: BeautifulSoup = BeautifulSoup(html, 'html.parser')
109+
markmaps: ResultSet = soup.find_all(class_='language-markmap')
110+
setattr(page, '_found_markmap', any(markmaps))
111+
108112
for index, markmap in enumerate(markmaps):
109113
markmap: Tag
110114
tag_id: str = f'markmap-{index}'
Lines changed: 29 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,33 @@
11
(function initializeMarkmap() {
2-
const markmap_transformer = new markmap.Transformer();
3-
const markmaps = document.getElementsByClassName('mkdocs-markmap');
4-
var el, content, svg, root, m;
5-
for (var i = 0; i < markmaps.length; i++) {
6-
el = markmaps[i];
7-
content = el.getAttribute('data-markdown').replaceAll('&#10;', '\n');
8-
svg = el.querySelector('svg');
9-
root = markmap_transformer.transform(content).root;
10-
m = markmap.Markmap.create(svg, null, root);
2+
function update_markmaps() {
3+
const markmap_transformer = new markmap.Transformer();
4+
const markmaps = document.getElementsByClassName('mkdocs-markmap');
5+
var el, content, svg, root, m;
6+
for (var i = 0; i < markmaps.length; i++) {
7+
el = markmaps[i];
8+
content = el.getAttribute('data-markdown').replaceAll('&#10;', '\n');
9+
svg = el.querySelector('svg');
10+
root = markmap_transformer.transform(content).root;
11+
m = markmap.Markmap.create(svg, null, root);
1112

12-
(function(obj, e, r) {
13-
obj.rescale(1).then(function() {
14-
e.parentElement.style.height = (e.getBBox().height + 10) + "px";
15-
requestAnimationFrame(() => { obj.fit(); })
16-
});
17-
})(m, svg, root);
13+
(function(obj, e, r) {
14+
obj.rescale(1).then(function() {
15+
e.parentElement.style.height = (e.getBBox().height + 10) + "px";
16+
requestAnimationFrame(() => { obj.fit(); })
17+
});
18+
})(m, svg, root);
19+
}
1820
}
21+
22+
var MutationObserver = window.MutationObserver || window.WebKitMutationObserver;
23+
var observer = new MutationObserver(function(mutations) {
24+
update_markmaps();
25+
});
26+
27+
var target = document.getElementById('mkdocs-decrypted-content');
28+
if (undefined != target) {
29+
observer.observe(target, { childList: true });
30+
}
31+
32+
update_markmaps();
1933
})();

0 commit comments

Comments
 (0)