完成文档生成脚本,准备测试

This commit is contained in:
estom
2024-01-18 00:51:50 +08:00
parent 0943f430c2
commit 5793ae5bd0
4 changed files with 200 additions and 31 deletions

View File

@@ -4,8 +4,6 @@
总共包括六个主要的部分。学完就能毕业啦。开始吧。
对一个软件的了解程度
使用快速搭建器软件运行实现基础的内容。看quick start中的内容和视频即
@@ -15,34 +13,41 @@
### Java 的学习路线(视频打卡系列)
- [ ] 基础知识(学习方式——阅读书籍)
- [ ] 数据库
- [ ] 操作系统
- [ ] 计算机网络
- [ ] 数据结构与算法
- [ ] 编译原理
- [ ] Java 基础教程Java 的基本语法和使用及原理,分五个阶段完成)
- [x] Java 语言基础。语言语法。
- [X] Java 语言基础。语言语法。
- [ ] Java 高级操作。JDK 标准库/集合类/IO 操作/并发编程/网络编程
- [ ] Javaweb 开发。Servlet 和 JSP 相关的老技术。知道就行
- [ ] Java 基本原理。JVM 底层的原理和技术
- [ ] Java 架构模式。面向对象和设计模式
- [ ] Java 网站开发JavaWeb 相关的技术知识。)
- [ ] MySQL
- [x] JDBC
- [x] lombak
- [X] JDBC
- [X] lombak
- [ ] mybatis
- [x] Java 工具教程Java 使用的关键工具,白天学习一下)
- [x] maven 教程
- [x] idea 教程
- [X] Java 工具教程Java 使用的关键工具,白天学习一下)
- [X] maven 教程
- [X] idea 教程
- [ ] Java 框架教程Spring 全家桶,白天自学)
- [x] Spring
- [x] Springboot
- [X] Spring
- [X] Springboot
- [ ] Spring MVC
- [ ] SpringCloud
- [ ] Java云原生
- [ ] docker
- [ ] k8s
- [ ] Java 性能优化
- [ ] 高可用
- [ ] 双机架构
- [ ] 异地多活
@@ -53,6 +58,7 @@
- [ ] 分库分表
- [ ] 消息队列
- [ ] Java 分布式基础
- [ ] 负载均衡和调度
- [ ] 分布式缓存
- [ ] 分布式算法
@@ -61,9 +67,8 @@
- [ ] mysql
- [ ] redis
- [ ] 中间件
- [ ] 微服务架构经典和Mesh
- [ ] 服务侧
- [ ] 注册中心Nacos/ZooKeeper/Etcd
@@ -82,23 +87,27 @@
- [ ] 数据缓存(Redis)
- [ ] 数据同步
- [ ] PaaS 运维发布
- [ ] 运维发布(Docker/K8s/Helm):服务自愈、弹性伸缩
- [ ] 应用管理、服务管理、节点管理、全链路灰度、灰度发布
- [ ] RaaS 监控告警
- [ ] 日志
- [ ] 监控、告警(Prometheus/Grafana)
- [ ] 链路追踪
- [ ] 研发效能 CI/CD
- [ ] 需求管理
- [ ] 迭代管理和流水线(Jekeins)
- [ ] 仓库:代码仓库(Gitee/Git)、镜像仓库(DockerHub)、依赖仓库(Maven)等
> 首先看完这些相关的课程,然后去看书重新学习一遍这些知识
> * 下三个内容jdk -> jdbc -> javaweb -> springmvc -> mybatis -> ssm -> sprincloud
>
> * 下三个内容jdbc -> mybatis -> springmvc -> sprincloud
> * -> java(jdk->jvm)
> * -> spring(spring->springboot->springmvc->springcloud)
> * -> java(jdk->javaweb->jvm)
> * -> 网站开发(mysql->jdbc->lomback->mybatis)
> * -> 云计算(docker->k8s)
> * -> 云计算(docker->k8s)
> * -> 微服务(nacos->zookeeper->sentinel->dubbo->rocketeMQ->prometheus->grafana->git->jekens)
### Java 书籍打卡系列开始
@@ -121,6 +130,8 @@
第三阶段:云原生三本
- [ ] 微服务架构设计
- [ ] 数据密集型系统设计原理
- [ ] 云原生技术
- [ ] 服务网格

View File

@@ -56,37 +56,129 @@ def check_file_name_satified(file_path):
return True
def create_directory_node():
'''
创建目录树
标记当前目录节点下是否有.md文件
'''
pass
def build_next_level():
def build_next_level(base_path):
'''
创建下一级节点的目录_sidebar.md
创建当前目录级别的README.md如果没有则创建如果有则不创建。
todo:排除子目录下没有md文件的子目录
'''
pass
print("build next level:"+root_path)
items = os.listdir(base_path)
result = "\n"
for item in items:
abspath = os.path.join(base_path,item)
if isdir(abspath):
rel_path = relpath(root_dir, base_dir)
readme_path = os.path.join(rel_path,"README.md")
result += "- [" + item + "](" + readme_path + ')\n'
basename = os.path.basename(base_path)
# 如果README.md文件不存在则创建
sidebar_path = os.path.join(base_path,"_sidebar.md")
with open(sidebar_path, 'w') as f:
f.write('## '+ basename + '\n')
f.write(result)
def build_full_level():
def build_full_level(base_path):
'''
创建所有子节点的目录_sidebar.md
创建单签目录级别的README.md,如果没有则创建,如果有则不创建。
'''
pass
print("build full path"+root_path)
result = deep_traverse(base_dir,'')
if '' == result:
return
basename = os.path.basename(base_path)
sidebar_path = os.path.join(base_path,"_sidebar.md")
with open(sidebar_path, 'w') as f:
f.write('## '+ basename + '\n')
f.write(result)
def deep_traverse(base_dir,prefix):
'''
深度递归遍历
'''
if os.path.isfile(base_dir)
if base_dir.endwith('.md')
return build_md_item(prefix,base_dir)
else:
return ''
title = prefix + '- ' + os.path.basename(base_dir) + '\n'
result = ''
for items in os.listdir(base_dir):
result += deep_traverse(base_dir,prefix+' ')
if '' == result:
return ''
return title + result
def build_readme_now(base_path):
'''
创建当前节点的readme文件指向当前目录下的md文件。
深度小于depth+1 就要生成readme文件
'''
print("build readme now:"+base_dir)
readme_path = os.path.join(base_path, 'README.md')
basename = os.path.basename(base_path)
# 如果README.md文件不存在则创建
if not os.path.exists(readme_path):
with open(readme_path, 'w') as f:
f.write('## '+ basename + '\n')
f.write(build_md_items('',base_path))
def build_md_items(prefix,base_path):
'''
todo:排除前缀不符合需求的文件
'''
items = os.listdir(base_path)
result = "\n"
for item in items:
abspath = join(root, item)
if abspath is not dir:
result += build_md_item(prefix,item)
return result
def build_md_item(prefix,file_path):
base_name = os.path.basename(file_path)
title = os.path.splitext(base_name)[0]
return prefix + "- [" + title + "](" + relpath(root_dir, base_dir) + ')\n'
def layer_traverse(root,now,depth):
build_readme_now(root)
'''
now=depth创建递归目录不再按层遍历
'''
if now >= depth:
build_full_level(root)
return
'''
now<depth创建下层目录并继续递归
'''
build_next_level(root)
items = listdir(root)
for item in items:
node = join(root, item)
if isdir(node):
layer_traverse(node,now+1,depth)
def save_structure(root_dir, base_dir=base_dir, depth=0):
"""
遍历指定目录及其所有子目录,生成并保存目录结构。
遍历方案按层遍历当前目录如果层数小于depth则只生成下一层的目录。如果等于depth则生成所有子节点的目录。
:param root_dir: 要处理的根目录路径
:param base_dir: 用来获得root_dir对base_dir的相对路径
:param depth: 递归深度,文件夹深度
:param depth: 递归深度,文件夹深度。0表示根目录只在最开始生辰_sidebar1表示两级目录
"""
root = root_dir
dirs = []
files = []
i = 0
for item in listdir(root):
if isdir(join(root, item)):
dirs.append(item)
@@ -95,6 +187,9 @@ def save_structure(root_dir, base_dir=base_dir, depth=0):
subdir_structure = ''
subdir_name = basename(root)
if depth != 0:
if create_depth == 0:
subdir_structure += "- " + subdir_name + '\n'
@@ -155,5 +250,6 @@ if __name__ == "__main__":
import os
read_config()
os.chdir(base_dir)
print(os.getcwd())
save_structure(base_dir, base_dir, 0)
print("cwd:"+os.getcwd())
layer_traverse(base_dir,0,create_depth)
# save_structure(base_dir, base_dir, 0)

View File

@@ -1,6 +1,6 @@
[config]
# docsify根目录
base_dir=E:\gitee\notes
base_dir=/root/gitee/notes/blog
# 忽略以“_”,"."开头的文件,如果要添加新文件,用“|”分隔
ignore_start_with=_|.
# 只读取".md"格式问价,如果添加新格式,用“|”分隔

62
blog/generate/test.py Normal file
View File

@@ -0,0 +1,62 @@
import os
from configparser import ConfigParser
from os.path import splitext, basename, join, isdir, relpath, abspath
from os import listdir
root_dir = '/root/gitee/notes/blog'
def test_walk():
for dirpath, dirnames, filenames in os.walk(root_dir):
print(f"Currently in directory: {dirpath}")
for dirname in dirnames:
print(f"Subdirectory: {dirname}")
for filename in filenames:
print(f"File: {filename}")
def test_list_dir():
dir = os.listdir(root_dir)
print(dir)
def build_next_level(root_path):
'''
创建下一级节点的目录_sidebar.md
'''
print("next_level"+root_path)
def build_full_level(root_path):
'''
创建所有子节点的目录_sidebar.md
'''
print("full_path"+root_path)
def build_readme_now(root_dir):
'''
创建当前节点的readme文件指向当前目录下的md文件。
深度小于depth+1 就要生成readme文件
'''
print("readme:"+root_dir)
def layer_traverse(root,now,depth):
build_readme_now(root)
'''
now=depth创建递归目录不再按层遍历
'''
if now >= depth:
build_full_level(root)
return
'''
now<depth创建下层目录并继续递归
'''
build_next_level(root)
items = listdir(root)
for item in items:
node = join(root, item)
if isdir(node):
layer_traverse(node,now+1,depth)
# test_list_dir()
# test_walk()
layer_traverse(root_dir,0,1)