forked from BioMooc/txtBlog.py
-
Notifications
You must be signed in to change notification settings - Fork 0
[知识管理]A simple yet powerful blog system for reading and organizing txt files, based on Python3 flask framework.
Chen-Guanming/txtBlog.py
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
################################ # project name: txtBlog.py is the python3 version of txtBlog # desc: [知识管理]A simple yet powerful blog system for reading and organizing txt files. # desc2: Pyhton3编写的、基于文件的文本笔记管理系统,简捷高效,可用于管理知识。 # version: 0.0.9 # github: https://github.com/DawnEve/txtBlog.py # appearence: https://github.com/DawnEve/txtBlog # # local test url: http://blog2.163.com:8000/ # local dir:G:\xampp\htdocs\163 ################################ ################################ 整体构架: # 和记忆作斗争,是“坐家”们毕生的事业,本项目是一个简洁的文本笔记系统,就是为了管理知识,支持插入少量图片。 # 使用Python3的flask包作为web框架,尽量简化。https://flask.palletsprojects.com/en/1.1.x/ # 顶部关键词,左侧文件名,都使用json格式的配置文件。 # 支持html/txt/markdown格式的笔记,未来会支持 ReStructuredText等; # 为了应付最危险的情况:python部件不再支持(5-10年内不会发生),博客系统失灵,建议文件命名时要言简意赅、见名知意!保证human也能读懂。 # ################################ What's new? v0.0.9-1 为markdown代码块添加行号 v0.0.9-6 data/search.sh 单行脚本搜索功能 ################################ 安装方法: 1. 环境: OS: win10和linux都可以,但是需要有可用的端口号,本项目默认使用8000端口。 安装python3,查看版本号 $ python -V ## Python 3.6.4 使用pip安装 flask(web服务器): $ pip install flask 使用pip安装 mistune(markdown解析器): $ pip install mistune 2.下载该项目 通过 $ git clone https://github.com/DawnEve/txtBlog.py.git 或者下载压缩包并解压 $ wget https://github.com/DawnEve/txtBlog.py/archive/master.zip 可以放到硬盘的任意位置,但是路径中不要出现中文字符。 3.修改该项目的IP和端口 index.py的最后一行为host和端口号。 如果不确定,不用修改,使用默认值即可。 4.运行该txt博客 $ cd txtBlog.py/ 进入项目文件夹,运行: $ python index.py 按照命令行提示的网址: Running on http://127.0.0.1:8000/ (Press CTRL+C to quit) 打开chrome浏览器,输入 http://127.0.0.1:8000/ 并回车即可访问。 如果报错,请阅读出错提示,百度解决,或者留言 issues 提问。 ################################ 新增、删除、修改笔记内容: 注意: 所有路径和文件名,尽量不要出现空格和汉字,避免报错!建议使用下划线、连字符、或驼峰格式等。 不推荐: Python 001.txt, Python基础.txt, 推荐: Python_001.txt, Python-001.txt, PythonBasic.txt, 1. 文件结构 所有可自由修改的部分,主要集中在data/文件夹中。 /data/ |- topMenu.json |- R.json |- Python.json |- R/ |- Python/ |- images/ |- Python001.html |- Python-basic.txt |- Linux/ (1)json格式的顶部目录 topMenu.json,一行一个顶部链接; 第一个字符直接显示出来,第二个字符鼠标悬停时显示出来。 [ ["Linux", "basic 操作"], ["Python", "爬虫"], ["R", "画图效果"] ] 第一个字符要和/data/下的文件夹同名。 Pyhton对json要求很严格: - 最后一个元素后不能出现逗号!否则报错。 - 键值对中,键要用双引号,值如果是字符串也要用双引号。 - json中不能出现注释!相比js中的json,太可悲了。 (2)json格式的左侧目录 Python.json为例 [ { "title":"前沿与资料", "data": [ ["项目描述", "Python001", "html"], ["常用资源", "Python002", "md"], ["入门教程", "Python003", "txt"] ] } ] 该文件的文件名,要和/data/下的文件夹同名,并在topMenu.json中出现 是一个数组[],数组中是对象{},对象的title是显示到左侧的仅有分类作用的一级标题,对象的data属性是二级标题,可以点击并跳转。 data属性也是一个数组,每个元素是一个3元素数组,第一个是页面显示用,第二项是文件名(不带路径,不带后缀名),第三项是文件后缀名(不带点) (3)文件夹内是文本文件: .txt/.html/.markdown/.md 未来会考虑支持 rst //todo 1)txt格式文档,符合前一行有40个=、后一行有40个-的行,会被解析成标题,并自动生成顶部目录。 如 ======================================== web based tutorials ---------------------------------------- 2)html的编写应该写到<div class=content></div>中,中间支持<h2>,<h3>,<p>等标签及预定义格式; 更多html标签的含义和用法请参考网络资源,如 https://www.runoob.com/html/html-tutorial.html 图片建议也放到同关键词的images文件夹下,使用完整路径访问,如 <img class="banner" src='/data/Python/images/SciPy_ecosystem.png'> 注意目录最前的 / 符号不能省略! 该项目叫做txtBlog,对图片支持程度较低,尽量少用图片!尽量用占用空间较小的瘦身图片! 否则可能会影响项目的迁移、存储、显示! 3)支持使用GitHub Flavored Markdown - 纯python版的markdown解析器 mistune; - css使用github的主要样式,颜色参考 https://segmentfault.com/a/1190000018084098 - 支持代码高亮(依赖 highlight.js); - md中的代码行号由自定义js实现 模仿 模仿 https://blog.csdn.net/hustqb/article/details/80628721 - 支持LaTex(依赖 MathJax.js, 在线cdn,加载很慢) ,默认不开启,开关在 /config/conf.ini; 2. 更新时要注意文本文件和json目录的同步!防止互相被孤立! 也就是说改文件名时,要同时在对应的json目录中修改,否则系统web页看不到该文件; 删除文件时,要在对应的json里删除该行; {现在只能全手动同步,或者看到报错再更新至同步。} 3. 底部友情链接的更新 链接数据是json格式的,定义在文件 /footer_urls.py 中。 链接html生成函数 get_links() 在 /txtBloglib.py 中定义,并在 /index.py 中执行。 4. 如何制作皮肤? 目前 - txt 页面默认是极简风格。 - txt和markdown都是自动生成顶部页内目录。 - markdown页左下角有可伸缩的目录,并响应鼠标滚轮高亮当前目录; (1)css文件在 static/css/下,可尝试修改该文件。 未来可能会支持更多可配置的外观。//todo /static/css/ |-- base.css 是基础样式,不建议改动; |-- main.css 是html和txt页面的样式,可以尝试更改为自己喜欢的颜色; |-- MarkDown3.css 是markdown的样式表; |-- txt.css 是txt文件的样式表,支持在/config/conf.ini中指定皮肤样式 (2)自定义txt皮肤,就是在/static/css/txt.css末尾添加css代码,格式模仿前几个即可。 5.【还没有实现】 如何全站静态化?//todo $ pip install Frozen-Flask $ python index.py build url已经静态化风格了。 todo: 1. 自由切换 data 文件夹的位置,这样一个博客笔记系统,就可以对应多个内容部分了。 data dir -> shelf; 书架子 top menu -> book; 书 left mune -> chapter; 章节 top contents -> headers; 小标题 2. 全站静态化,这样就可以放到github上; ################################ 如何升级 1. 从github使用 git clone 下载新的框架; 2. 把旧项目中自己的data/文件夹,复制粘贴,覆盖新版本中的data/文件夹; 3. 其他小的数据文件包括: - 底部友情链接: /footer_urls.py - English 频道的名人名言: - 自定义风格: /config/conf.ini 彩蛋: English项目下添加菜单:底部名人名言插件,刷新随机展示一条,会周期性滚动。 - 滚动显示的内容在 /static/js/motto.js
About
[知识管理]A simple yet powerful blog system for reading and organizing txt files, based on Python3 flask framework.
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published
Languages
- CSS 40.5%
- JavaScript 23.3%
- HTML 23.0%
- Python 13.2%