使用python编写的一个70行的简单文档服务
下载项目代码
访问gitee来直接下载代码
https://gitee.com/luhaipinga/LhpDocs
项目的预览网址
http://39.106.34.123:10011/
项目的安装使用
项目使用技术的说明
后端:
python -tornado -yaml
前端【cdn导入静态文件】:
vue2,highlight,marked
安装python
我使用的版本为python3.8+ 应该python3.6+也可以
安装依赖库
tornado支持windows和linux
pip install -r requirements.txt
运行项目
python main.py
访问项目
host:10011/
新建内容的说明
新建一个目录
例子:新建在第三个目录后面新建一个目录,目录名为 测试
你需要在项目根目录下创建:
/md_info/3 【这是一个文件夹,3是文件夹名称,代表处于目录树的第四个位置】
/md_info/3/main.yaml 【这是一个文件,这个文件存放目录的名称 name: 测试】
在指定目录下新建一个md文档
例子:在第三个目录下新增一个md文档 文档名为测试 文档内容为"# 测试文档"
你需要在项目根目录下创建:
/md_info/2/md_files 【这是一个文件夹,如果没有需要创建】
/md_info/2/md_files/2 【这是一个文件夹,2代表处于目录中md的位置】
/md_info/2/md_files/2/main.yaml 【这是一个文件,,这个文件存放md文档的名称 name: 测试】
/md_info/2/md_files/2/main.md 【这是一个文件,,这个文件存放md的内容 “# 测试文档”】
后端代码介绍
静态文件夹的设置
(r"/%s/(.*)"%'LhpDocs_static', tornado.web.StaticFileHandler, {"path": os.path.join(os.path.dirname(os.path.abspath(__file__)), "static")}),
],
使用项目目录下的static文件夹作为静态文件夹,静态文件的url路径为 host:port/static/* 【*代表静态文件在static文件夹下的路径】
(r"/%s/(.*)"%'LhpDocs_img',read_img),
输出md文档中的 img图片数据
文档主页的访问
(r"/", MainHandler)
使用MainHandler类处理访问,用于返回 项目目录下的templates文件夹下的index.html文件内容
实时获取文档
(r"/md_file", MarkdownFileHandler),
(r"/md_info", MarkdownInfoHandler),
index.html页面通过/md_info这个url来实时获取文档的目录结构【每一次访问 服务就会遍历文件夹获取到目录结构,如果index.html页面没有刷新,name目录结构不会重新获取第二次】
index.html页面通过/md_file这个url来实时获取md文档的内容【如果index.html页面没有刷新,name已经访问过的md文档不会重新获取第二次】
注意事项
文档的目录和文档的内容都是根据文件夹变化实时刷新的,并不是返回静态文件,所以对于性能有一定影响。