mirror of
https://github.com/brain-hackers/README
synced 2025-07-07 03:54:12 +09:00
Implement generate_toc.py
parent
456d08f9b2
commit
7f3ee3f52f
0
Linux_ビルド.md
Normal file
0
Linux_ビルド.md
Normal file
6
Makefile
6
Makefile
@ -1,7 +1,13 @@
|
|||||||
.PHONY:
|
.PHONY:
|
||||||
install-dependency:
|
install-dependency:
|
||||||
npm install -g doctoc
|
npm install -g doctoc
|
||||||
|
pip3 install -r requirements.txt
|
||||||
|
|
||||||
.PHONY:
|
.PHONY:
|
||||||
doctoc:
|
doctoc:
|
||||||
doctoc --title "### 目次" .
|
doctoc --title "### 目次" .
|
||||||
|
|
||||||
|
.PHONY:
|
||||||
|
generate-sidebar:
|
||||||
|
python3 generate_toc.py
|
||||||
|
|
||||||
|
0
U-Boot_ビルド_buildbrain.md
Normal file
0
U-Boot_ビルド_buildbrain.md
Normal file
0
U-Boot_ビルド_手動.md
Normal file
0
U-Boot_ビルド_手動.md
Normal file
0
U-Boot_起動 (EBOOT).md
Normal file
0
U-Boot_起動 (EBOOT).md
Normal file
0
U-Boot_起動 (USB Recovery).md
Normal file
0
U-Boot_起動 (USB Recovery).md
Normal file
10
_Sidebar.md
Normal file
10
_Sidebar.md
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
<!-- This file is generated by generate_toc.py. DO NOT EDIT MANUALLY! -->
|
||||||
|
|
||||||
|
# Linux
|
||||||
|
- [ビルド](Linux_%E3%83%93%E3%83%AB%E3%83%89.md)
|
||||||
|
# U-Boot
|
||||||
|
- [起動 (EBOOT)](U-Boot_%E8%B5%B7%E5%8B%95%20%28EBOOT%29.md)
|
||||||
|
- [起動 (USB Recovery)](U-Boot_%E8%B5%B7%E5%8B%95%20%28USB%20Recovery%29.md)
|
||||||
|
## ビルド
|
||||||
|
- [buildbrain](U-Boot_%E3%83%93%E3%83%AB%E3%83%89_buildbrain.md)
|
||||||
|
- [手動](U-Boot_%E3%83%93%E3%83%AB%E3%83%89_%E6%89%8B%E5%8B%95.md)
|
47
generate_toc.py
Normal file
47
generate_toc.py
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
from pathlib import Path
|
||||||
|
from urllib.parse import quote
|
||||||
|
import markdown
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
fn_tree = dict()
|
||||||
|
idfn = dict()
|
||||||
|
|
||||||
|
for fn in sorted(Path('.').glob("*.md")):
|
||||||
|
if fn.name in {'Home.md', '_Sidebar.md', '_Footer.md'}:
|
||||||
|
continue
|
||||||
|
|
||||||
|
fn_tokens = fn.name[:-3].split('_')
|
||||||
|
ptr = fn_tree
|
||||||
|
for t in fn_tokens:
|
||||||
|
ptr[t] = ptr.get(t, dict())
|
||||||
|
ptr = ptr[t]
|
||||||
|
|
||||||
|
idfn[id(ptr)] = quote(fn.name)
|
||||||
|
|
||||||
|
md = markdown.Markdown(extensions=['toc'])
|
||||||
|
|
||||||
|
with open(str(fn)) as f:
|
||||||
|
raw = f.read()
|
||||||
|
|
||||||
|
md.convert(raw)
|
||||||
|
|
||||||
|
with open('_Sidebar.md', 'w') as f:
|
||||||
|
f.write('<!-- This file is generated by generate_toc.py. DO NOT EDIT MANUALLY! -->\n\n')
|
||||||
|
recurse(f, fn_tree, idfn)
|
||||||
|
|
||||||
|
|
||||||
|
def recurse(f, d, idfn, level=1):
|
||||||
|
for k, child_dict in d.items():
|
||||||
|
if child_dict:
|
||||||
|
continue
|
||||||
|
f.write(f' - [{k}]({idfn[id(child_dict)]})\n')
|
||||||
|
|
||||||
|
for k, child_dict in d.items():
|
||||||
|
if not child_dict:
|
||||||
|
continue
|
||||||
|
f.write(f'#'*level + f' {k}\n')
|
||||||
|
recurse(f, child_dict, idfn, level=level+1)
|
||||||
|
|
||||||
|
|
||||||
|
main()
|
1
requirements.txt
Normal file
1
requirements.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
markdown
|
Loading…
x
Reference in New Issue
Block a user