Skip to content

localtags: 一个本地文件备份系统 + 正确设计的标签系统

License

Notifications You must be signed in to change notification settings

ahui2016/localtags

Repository files navigation

localtags 本地文件备份工具

重要更新

  • 2021-11-23 (improve: 为了方便与其他本地程序互动,改成了允许跨域访问)
  • 2021-10-28 (improve: 改进了文件校验及修复了相关bug) changelog.md
  • 2021-05-25 (add: 标签预览) Wiki: Tag Preview
  • 2021-05-18 (add: 替换文件) Wiki: 同名文件(例子三)
  • 2021-05-14 (add: 快速创建 markdown 笔记) changelog.md
  • 2021-05-12 (add: 通过网页修改配置) 详见本页后文 "端口等的设置"
  • 2021-05-10 (add: 单个文件体积上限) details.md
  • 2021-05-09 (add: 本地 markdown 图库) details.md
  • 2021-05-08 (fix: 备份仓库文件校验) changelog.md

主要功能

  1. 文件备份
  2. 定期查错(确保文件完整性)
  3. 标签管理
  4. 文件历史版本
  5. 本地 markdown 图库

截图

本软件的界面截图请看 screenshots 文件夹。

安装运行

直接下载可执行文件

由于 Windows 编译有点麻烦 (涉及 cgo, 需要 gcc), 因此我做了 Windows 的可执行文件方便大家试用。Mac 和 Linux 编译应该很方便,就不提供二进制文件了。

下载地址 => https://github.com/ahui2016/localtags/releases

(注意: 需要另外安装 ffmpeg 才能给视频文件生成缩略图)

手动编译

  • 要求先正确安装 git 和 Go 语言、ffmpeg。
  • 其中,ffmpeg 不是必须的,其作用只是给视频文件生成缩略图,不安装 ffmpeg 也不妨碍软件正常运行。
  • 由于采用了 go-sqlite3, 因此如果在 Windows 里编译, 需要先安装 TDM-GCC Compiler
$ cd ~
$ git clone https://github.com/ahui2016/localtags.git
$ cd localtags
$ go build
$ ./localtags

然后用浏览器访问 http://127.0.0.1:53549 即可。本软件采用了网页来做 GUI 界面,但它本质上是一个本地软件,不是网站。

端口等的设置

  • 第一次运行程序后, 会自动生成 config.json 文件, 端口及其他设置可直接修改该文件, 保存后重启程序生效.
  • (2021-05-12更新) 可以在程序首页点击 "Config" 进入修改配置页面,在这里修改配置比直接编辑 config.json 文件更方便(但还是需要手动重启程序)。
  • 每个设置项目的具体含义详见 config.go 文件.
  • 启动程序时默认在当前目录寻找 config.json, 也可以手动指定 $ ./localtags.exe -config /path/to/config.json

前端采用 MJ.js

mj.js 只是在 jquery 的基础上增加了两个函数,因此对于会用 jquery 的人来说,学习成本接近零。但与一般使用 jquery 的方式不同, mj.js 完全不写 HTML, 一切都是 js, 因此非常轻松实现组件化,并且实际效果非常好,组件可以相互交流、可以嵌套、可以复用。

关于 mj.js 的更多信息请看 https://github.com/ahui2016/mj.js

反直觉设计

本软件有些地方会不符合直觉,不符合主流的使用习惯。

看起来像个网站,但操作起来不像网站

比如,虽然用网页来做 GUI 界面,但不能通过网页上传文件,而是让用户把想要上传的文件放进一个本地文件夹中,然后手动刷新网页获取文件列表。

这样做是为了减少代码量,说白了就是偷懒,可以少写很多代码,而减少代码有利于减少 bug, 维护起来也轻松一些, 用户审查代码或个性化修改代码时也轻松一些.

需要使用网页控制台

有一些功能用户要按 F12 进入浏览器控制台,输入命令来操作。这样做有两个目的:1.让操作界面尽量简洁,按钮能少一个是一个,不常用的命令就让用户麻烦一点点了。2.还是为了偷懒,减少代码量。

独特的标签系统

另一个可能让用户不习惯的地方是纯标签管理,完全没有文件夹,要求用户给每个文件设置至少 2 个标签。这个设定是经过深思熟虑的,配合本软件特有的 “标签组” 功能,会让文件分类变得井井有条。

了解更多

更多细节及带截图的说明请看 Wiki https://github.com/ahui2016/localtags/wiki