mirror of https://gitlab.com/curben/blog
micropost: 27 July 2025
This commit is contained in:
parent
4d797debcc
commit
798c54ae4d
|
|
@ -0,0 +1,33 @@
|
||||||
|
---
|
||||||
|
title: Separate markdown headings into pages
|
||||||
|
date: 2025-07-27
|
||||||
|
---
|
||||||
|
|
||||||
|
Previously the [Threat Hunting](/threat-hunting/) page contained all search queries in one page separated by headings. That approach was untidy especially when conducting a web search; where after being redirected to the threat hunting page, still had to navigate to the relevant heading to locate the relevant search query.
|
||||||
|
|
||||||
|
Each heading or search query is now in a [separate page](https://gitlab.com/curben/blog/-/commit/4922492c959627fe7beeb678c13e29efee79b540), so once those new pages are indexed by search engine, the search result will lead directly to a page that only contains the relevant search query, e.g. [FileFix detection](/threat-hunting/filefix-detection).
|
||||||
|
|
||||||
|
```py
|
||||||
|
from os import chdir, path
|
||||||
|
from re import S, findall, sub
|
||||||
|
|
||||||
|
chdir(path.dirname(__file__))
|
||||||
|
|
||||||
|
template = """---
|
||||||
|
title: {title}
|
||||||
|
layout: page
|
||||||
|
date: 2025-07-27
|
||||||
|
---
|
||||||
|
{content}"""
|
||||||
|
|
||||||
|
with open("index.md") as f:
|
||||||
|
s = f.read()
|
||||||
|
# https://stackoverflow.com/a/66619938
|
||||||
|
for title, content in findall(r"(?:^|\n)##\s([^\n]+)\n(.*?)(?=\n##?\s|$)", s, S):
|
||||||
|
# https://stackoverflow.com/a/74260791
|
||||||
|
fname = sub(r"\W+", "-", title).strip("-").lower()
|
||||||
|
with open(fname + ".md", "w") as w:
|
||||||
|
w.write(template.format(title=title, content=content))
|
||||||
|
with open("index-new.md", "a") as a:
|
||||||
|
a.write(f"- [{title}]({fname})\n")
|
||||||
|
```
|
||||||
Loading…
Reference in New Issue