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

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

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

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

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

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

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

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

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

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

强烈推荐 appJar!

结论

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