纯 HTML 与纯 Python 小工具的一个尝试(附遇到的坑与解决办法)

2020-03-09 00:30:06 +08:00
 cmdOptionKana

会编程的人,总会想做些小工具。

通常,小工具如果有 GUI 界面会比较直观。

但是,用什么来做 GUI 是个问题,如果用 C#, 会局限于 win 系统,如果用 Java 则需要拖着一个 jvm, 如果用 Electron 又体积巨大占用内存多……

后来发现了 TiddlyWiki, 它的实现方式很另类,就单独一个 html 文件,我感觉这对于不太复杂的小工具来说, 是个极好的方式!因为:

作为一个尝试,最近做了一个小工具 ( https://github.com/ahui2016/small-plans 上周发布, 最近几天有几个重要改进 ), 采用类似 TiddlyWiki 的方式.

TiddlyWiki 把用户数据也保存到 html 文件里, 结果导致升级 TiddlyWiki 本身非常麻烦

浏览器没有权限获取本地文件夹地址

主要功能在 html 里做,但有时可能需要做一些周边的辅助工具

强烈推荐 appJar!

结论

3737 次点击
所在节点    分享创造
21 条回复
loginv2
2020-03-09 08:52:06 +08:00
都用 python 了,本地起一个 HTTP 服务做 UI,用浏览器访问不就行了么
tomxin7
2020-03-09 09:27:02 +08:00
这不是还需要 Python 的环境才能运行吗
cmdOptionKana
2020-03-09 09:46:25 +08:00
@loginv2 不需要 python,不需要服务器,就一个 html 文件,别的啥都不用,类似于 TiddlyWiki
@tomxin7 不需要 python
fx0719
2020-03-09 12:16:45 +08:00
标记一下,偶尔做个小工具说不定用的上
ps1aniuge
2020-03-09 21:51:43 +08:00
mokain
2020-03-09 23:41:05 +08:00
用 nodejs 写 web 服务难道不香吗?都是 html 呈现,数据还能本地保存与上传 github,只需一个 nodejs !
cmdOptionKana
2020-03-10 00:10:57 +08:00
@ps1aniuge 我才发现这种方式被墙了……我想想怎么改下载说明
cmdOptionKana
2020-03-10 00:31:20 +08:00
@mokain nodejs 也很香,事实上我这个工具第一版就是用 Golang 做后端,用 Vue 做前端。

后来改成现在这种方式。从这个工具的使用情境来看,现在这种方式比 web 服务器好太多了。

现在可以跟着项目走,跟着项目一起 git push,使用时也不需要先启动本地服务器,各方面的心理负担都小了很多。

举个例子,多个项目同时使用这个程序时,如果用你说的 web 服务器的方式,“上传到 github” 这个部分怎样处理?(是集中上传到一个仓库,还是分别上传到各自的仓库,如果分开仓库,要怎样设置)

程序的启动方式怎样处理?(要在控制台输入命令吗,需要先切换文件夹吗,根据启动时的文件夹只显示当前项目的内容,还是不用切换文件夹启动后显示一个项目列表?)

总之,最后我发现现在这种方式有它的优点,一个 html 文件就是一个独立的程序,很多问题都得到了简化。
dyxang
2020-03-10 08:33:30 +08:00
项目看起来挺完整的,收藏先,就是没有常见的 demo……然后就是项目的分类是 python
ps1aniuge
2020-03-10 15:37:57 +08:00
@dyxang 对头,有请楼主弄张 gif 图例。
cmdOptionKana
2020-03-10 15:44:57 +08:00
cmdOptionKana
2020-03-10 15:47:53 +08:00
@dyxang
@ps1aniuge 谢谢建议!我去 coding 搞了个 demo 页面, 请看附言。
viperasi
2020-03-10 16:29:03 +08:00
tiddlywiki 用了好多年,之前也研究过 tiddlywiki 的方式。
好东西,star 了
viperasi
2020-03-10 16:48:59 +08:00
还有个问题, tiddly wiki 还有一个自动版本的功能,每次保存都会生成一个新后缀名的文件,这部分 LZ 是通过 github 来实现,而不作为自身的功能吗?
cmdOptionKana
2020-03-10 17:16:18 +08:00
@viperasi 对,这个不打算作为自身功能了,这个工具主要使用场景是连同项目其它文件一起 git push 的。

以后做别的工具我再考虑版本问题,而且,如果不是这种使用 git 的场景,我还打算把上传到云端的功能也做进去。
viperasi
2020-03-13 08:40:37 +08:00
能否添加分组,或者按照添加时间在 todo 之上添加一个时间的标题?
![图片]( )
cmdOptionKana
2020-03-13 11:01:13 +08:00
@viperasi 我想了一下,这个用原生 javascript 写有点麻烦,暂时想让这个项目尽量简单一些。

但你的建议非常好,有日期标题是感觉不错,以后我会重写这个项目,到时会加上这个。
viperasi
2020-03-13 16:07:30 +08:00
@cmdOptionKana github 上发了 pr, 顺便吐槽一下那个.idea, clone 了好久
cmdOptionKana
2020-03-13 18:38:07 +08:00
@viperasi 谢谢支持!已 merge !
midpoint
2020-03-25 18:58:12 +08:00
appJar 简单好用

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/651056

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX