修改脚本

This commit is contained in:
yinkanglong
2024-01-16 23:28:11 +08:00
parent 428d77fcc5
commit 0943f430c2
3 changed files with 45 additions and 12 deletions

View File

@@ -1,5 +1 @@
<!-- _sidebar.md -->
* 设计模式
* [设计模式之美](./设计模式/0%20设计模式之美.md)
* [设计模式原则](./设计模式/1.1%20单一职责原则.md)
- [首页](.)

View File

@@ -7,13 +7,14 @@ base_dir = None
start_with = None
show_file = None
ignore_file_name = None
include_start_with = None
out_file_list = []
create_depth = -1
def read_config():
global base_dir, show_file, start_with, ignore_file_name, ReadmeFile, _sidebarFile, out_file_list, create_depth
global base_dir, show_file, start_with, ignore_file_name, ReadmeFile, _sidebarFile, out_file_list, create_depth,include_start_with
cf = ConfigParser()
cf.read("config.ini", encoding='utf-8')
@@ -21,6 +22,7 @@ def read_config():
start_with = cf.get("config", "ignore_start_with").split("|")
show_file = cf.get("config", "show_file").split('|')
ignore_file_name = cf.get("config", "ignore_file_name").split("|")
include_start_with = cf.get("config", "include_start_with").split("|")
out_file_list = cf.get("outFile", "eachFile").split("|")
create_depth = int(cf.get("outFile", "create_depth"))
@@ -49,9 +51,32 @@ def check_file_name_satified(file_path):
file_name = splitext(file_name_with_extension)[0]
if file_name[0] in start_with or file_name in ignore_file_name:
return False
if file_name[0] not in include_start_with:
return False
return True
def create_directory_node():
'''
创建目录树
标记当前目录节点下是否有.md文件
'''
pass
def build_next_level():
'''
创建下一级节点的目录_sidebar.md
创建当前目录级别的README.md如果没有则创建如果有则不创建。
'''
pass
def build_full_level():
'''
创建所有子节点的目录_sidebar.md
创建单签目录级别的README.md,如果没有则创建,如果有则不创建。
'''
pass
def save_structure(root_dir, base_dir=base_dir, depth=0):
"""
遍历指定目录及其所有子目录,生成并保存目录结构。
@@ -74,12 +99,12 @@ def save_structure(root_dir, base_dir=base_dir, depth=0):
if create_depth == 0:
subdir_structure += "- " + subdir_name + '\n'
else:
subdir_structure += "- [" + subdir_name + "](" + relpath(root, base_dir) + '\)\n'
subdir_structure += "- [" + subdir_name + "](" + relpath(root, base_dir) + ')\n'
else:
if create_depth == 0:
subdir_structure += "- " + "首页" + '\n'
else:
subdir_structure += "- [" + "首页" + "](" + relpath(root, base_dir) + '\)\n'
subdir_structure += "- [" + "首页" + "](" + relpath(root, base_dir) + ')\n'
for file in files:
if check_file_name_satified(join(root, file)):
@@ -97,11 +122,11 @@ def save_structure(root_dir, base_dir=base_dir, depth=0):
back_struct = subdir_structure
if depth == 1:
subdir_structure = "- [" + "返回首页" + "](" + "" + '\?id=main)\n' + subdir_structure
subdir_structure = "- [" + "返回首页" + "](" + "" + '?id=main)\n' + subdir_structure
elif depth != 0:
abs_pre_path = abspath(join(root, ".."))
rel_pre_path = relpath(abs_pre_path, base_dir)
subdir_structure = "- [" + "返回上一级" + "](" + rel_pre_path + '\)\n' + subdir_structure
subdir_structure = "- [" + "返回上一级" + "](" + rel_pre_path + ')\n' + subdir_structure
subdir_structure = subdir_structure.replace('\\', '/')
print("%s : finished" % root_dir)
@@ -117,7 +142,18 @@ def save_structure(root_dir, base_dir=base_dir, depth=0):
return back_struct
class Node:
pass
if __name__ == "__main__":
'''
如果默认n层目录
第n-1层会生成n层目录的_sidebar
第n层生成之后所有目录的_sidebar
'''
import os
read_config()
os.chdir(base_dir)
print(os.getcwd())
save_structure(base_dir, base_dir, 0)
input()

View File

@@ -7,10 +7,11 @@ ignore_start_with=_|.
show_file=.md
# 要忽略的文件名,要添加新文件,用“|”分隔
ignore_file_name=README
include_start_with=docker|java
[outFile]
# 想要在几级目录生成文件,默认"-1"表示所有文件夹生成,"0"表示在根目录生成,可以配合侧边栏折叠插件使用
create_depth=1
# 每个文件夹下主页文件名称和侧边栏文件名,默认README.md和_sidebar.md文件想生成其他名称可修改文字或者添加用“|”分隔
eachFile=README.md|_sidebar.md
eachFile=_sidebar.md