WDTP:一款“三合一”的写作工具和桌面版静态网站生成器

2017-02-04 23:36:24 +08:00
 SwingCoder

谢谢 Akkuman 和 CoderZh 两位朋友的介绍和推荐,让我得知了 V2EX 这个尊重原创,热爱分享与创造的好网站。我想在此和大家分享一款我刚刚开发完成的软件(目前是内测版,正在不断完善更新),如有不妥,请管理员批评指正并谅解。

WDTP 是一款“三合一”的另类写作工具与桌面 GUI 单机性质的静态网站(博客)生成器,这个项目的主页是:

http://underwaysoft.com/works/wdtp/index.html

WDTP 昨天首发于国内的凯迪论坛,我将原帖复制粘贴在此吧。


WDTP :源于凯迪论坛的又一款写作利器

2016 年年初,我在凯迪论坛看帖的时候,意外地发现了一座高楼,所讨论的话题是我前几年很感兴趣的。于是开始关注,时不时也掺和几句,然后就和几位骨干帖友混了个脸熟——其中一位是陈坪先生。有天我去拜访他的博客,浏览文章的时候突然冒出一个 idea ,可能更像是一些自我觉察,大致如下:

诸如此类。相信其他一大批小众也会有这些想法。说实话,以上这些真心不好用,尤其是学习与使用成本,还有使用时的心情,数据的随时检视、备份、管理与迁移,远程修改、调试与刷新等等。很折磨人。它们或许非常适合更广泛的一大批用户,某些情况下肯定也是非用不可,但很多时候确实不再适合我,也没必要时时动用这些怪兽级的庞然大物。

更进一步,笔记、写书、博客、网站这几件看似互相割裂的事,其实完全可以也早就应该简简单单、清清爽爽地合而为一了。而写作时,“内容与样式分离、样式与模板分离”等程序员最熟悉的理念与常规做法,这么多年以来,我为什么没有在自己的文字写作过程中更深入地理解和贯彻呢?有点不应该。

想法中还包括了其他。比如:“静态网站生成器( Static Site Generator )”,这东西近两年在喜欢尝鲜的技术类博主中很受推崇。有媒体放言:“下一批互联网大事件中,新型的静态网页及其生成将位列其中”……据我所知,这类程序目前至少上百,采用了各种各样的编程语言,它们中比较知名的有: Jeklly 、 Hugo 、 Hexo 、 Octopress 、 Pelican 、 Hyde 等等。尤其是 Jekyll ,背靠 Github 这棵大树,几乎一夜之间风靡全球。我对此做了一些肤浅的调查,一个匪夷所思的事实是:就我所接触到的“对口者”,竟无一例外——清一色的命令行程序!没有 GUI ,没有文本编辑器与可视化的 TreeView ,有的居然还要安装整个语言环境或依赖库。动辄百兆以上,太让人愤慨了。大不说,还麻烦。无论获取、安装,还是设置、使用,都不直观,也不方便,对一般人来说门槛有点高。这就势必将更广泛的用户群(比如普通的写作者)排斥在外,使他们很难享受到文本标记语法、内容 /样式分离、高自由度和灵活随意的静态博客等另类而好玩的写作 /分享模式。

既然尚无,那迟早就会有人下手,不妨等等,于是我就把这个事搁置了。此期间,我曾加入一个推广某静态生成器的国内群,也在 Stack Overflow 上转了转,四下打探一番,无果。有人曾抱怨过,但最终也是不了了之。

浏览陈坪先生的文章时,以上想法突然变得强烈起来。我琢磨了一下,这个事技术含量虽不高,但并不轻巧。脏活总是让同行包揽始终让人过意不去,干脆我自己趟一次浑水,再造个轮子吧:写一款跨平台且简洁清爽的桌面版静态网页生成器,顺便糅合上面提到的那几个功能,尽量将它们捏到一起,争取做的轻巧点、优雅点,先把基础和架子搭起来,后续事务和细化处理慢慢再捯饬。

琢磨的七七八八后,就立项动工了。关于编程语言的选择,脚本不考虑,平台相关的谢绝,数据库滚蛋。这么一来,似乎只有 Java 或 C++了。 Java 一贯不是我篮子里的菜,就 C++吧。

然后……然后就是今天 WDTP 内测版的首发,地点就在凯迪论坛的猫眼看人版块。可能有点唐突违和,请允许我解释一下:一方面这个程序的诞生确实与凯迪有直接的关系;另一方面此处风云际会、藏龙卧虎,能写、会写、喜欢写的人非常多,给这批笔友提供另一件顺手的写作工具应该是一件有意思的事。此外,似乎还没有哪位同行在这样的大杂烩论坛里做过这种类型的“主播”。这事有挑战性,风险并不小。但我想试试。

产品的首发式上,一般都会真真假假、虚虚实实地谈谈愿景、希望什么的。我这会儿有点忐忑,不敢满口火车。现在最大的希望是:值班编辑此刻心情不错,不删改这个贴,也不打算将它转移到凯迪的其他版块里。

关于程序的授权方式和性质, GPL v3 ,开源免费。不光凯迪的网友,全世界任何个人和组织都可以随意使用、传播、解剖源码或 PR 贡献,也接受来自任何方面的捐助。这些没什么需要多解释的。该有的,《授权协议》里都提到了,不够我再加几条:)

项目开工后,中间曾停工 3 个多月。 2016 年我周围发生了几件悲伤的事,让人心碎,这几乎导致了项目的夭折。费了很大劲我才将自己振作起来,硬挺着把 WDTP 的第一个版本敲了出来。活干得如何,横竖不论,交给诸位评说。目前 Bugs 肯定一堆,代码急需规整,很多细节也亟待完善。我实在不好意思说自己是一个敲了整整 30 年代码的老一代苦逼程序员——面老色衰,人狗远之。大江东去,属于我们的时代过去了……滚出这个行业之前,尽力散发点余温吧。希望热情还在,理想还在,更希望能听到真实而有价值的反馈与意见,以及各位同行的 PR 提交、无私贡献。

可能有人对大部分开源软件的维护更新感到不放心。我在此表个态吧:未来很长一段时间内,我可能每天都要用它,而且是重度使用。无论作为设计人、开发者、项目的第一责任人,还是作为用户之一,我肯定不愿意为了它而过分难堪或郁闷,更不会让它在七歪八扭、一团乱麻的失控状态下无果而终。

关于 WDTP ,还有几个必须要感谢的人——期待未来会更多,以后有机会一定专门提及。

That's it. 谢谢所有看了此贴的人,谢谢即将成为 WDTP 用户的每一个人,谢谢陈坪先生和那个高楼长贴,以及该贴中所有让我感到温馨的人。

今日立春,使用愉快!

SwingCoder 2017.02.03 于凯迪论坛

本文已发布在凯迪论坛的猫眼看人版块: http://club.kdnet.net/dispbbs.asp?id=12102372&boardid=1


欢迎大家下载试用并提出宝贵意见!

谢谢!

SwingCoder

30810 次点击
所在节点    分享创造
651 条回复
SwingCoder
2017-02-06 18:10:45 +08:00
谢谢:)链接修复了:)
您也可以在这个地址下载: https://github.com/LegendRhine/WDTP/tree/master/Application/Release
SwingCoder
2017-02-06 20:37:23 +08:00
- 实现:内链功能。即:插入本项目内部某个文章 /目录的链接。操作流程:要插入哪个文章 /目录的链接,文件树面板中鼠标右键点击该条目,弹出的菜单中点击“ Get Path (获取路径)”。而后返回要插入该链接的文档,编辑模式下,鼠标右键单击,弹出的菜单中点击“ Insert - Internal Link (插入 - 内部链接)”。程序内部自动将该链接转换为正确的相对路径,并以 Markdown 格式的语法将链接文本插入光标所在位置。可在多个文档中重复插入该链接,每次均正确转换其相对路径。
SwingCoder
2017-02-07 00:56:23 +08:00
改进:加大文本编辑器的行间距。
修复:中英文混杂时,文本编辑器断行不正常的 Bug 。
SwingCoder
2017-02-07 01:29:39 +08:00
发布: 0.9.170207 (内测版)。下载页面: http://underwaysoft.com/works/wdtp/download.html
SwingCoder
2017-02-07 03:33:14 +08:00
编辑模式下新增三个快捷键。这三个快捷键在写作和编辑时非常有用,能大大提高效率。

Ctrl + 回车键:在当前段落之前插入一个新段落。
Ctrl + C :未选择任何文本时,复制光标所位于的整个段落。
Ctrl + X :未选择任何文本时,剪切光标所位于的整个段落。

注: Windows 下的 Ctrl 相当于 macOS 下的 cmd 花键。
SwingCoder
2017-02-07 04:19:12 +08:00
更新了《 WDTP 快速上手》。请点此浏览:
http://underwaysoft.com/works/wdtp/gettingStarted.html
SwingCoder
2017-02-07 09:09:12 +08:00
为方便各位朋友和老师及时反馈宝贵意见,我弄了个简单的留言板(使用了“友言”评论系统)。敬请访问、留言。
http://underwaysoft.com/guestBook.html
SwingCoder
2017-02-07 13:35:56 +08:00
• 实现:网站菜单的排序。 WDTP 中, 2 级以内的任意子目录和文档均可设置为网站菜单。位于根目录下的一级子目录或文档为“主菜单”, 2 级则为鼠标指向主菜单时自动弹出的下拉列表(菜单项,对应磁盘目录与文档的包含结构)。主菜单和菜单项均可点击。排序规则为:同级目录的 index.html 与文档对应的 html 相比,目录在前;同级目录之间和同级文档之间相比,创建时间早的在前。
xvx
2017-02-07 15:57:09 +08:00
收藏。已下载试用,很不错,一直想找这样的 UI 工具都没找到,竟然在 V2 撞上了。
单文件便携版本好评。 UI 颜值也 OK 。
目前来说还稍显简陋,相信 LZ 会做得更好的~~
SwingCoder
2017-02-07 20:24:33 +08:00
@xvx 谢谢下载试用。欢迎多提宝贵意见:)
SwingCoder
2017-02-08 00:11:09 +08:00
WDTP 已被小众软件网收纳和推荐,谢谢他们:)
https://faxian.appinn.com/4208
SwingCoder
2017-02-08 06:02:07 +08:00
• 改进:整个项目或某个目录进行网站数据压缩打包时,可指定要打包的数据类型。比如:仅打包所有网页文件,或者仅打包媒体数据,或者打包所有数据。该功能可进一步提高工作效率(很多时候,编辑修改网页,或者新增了不含媒体数据的网页后,无需重复打包并发布已有的媒体数据)。
TheKiteRunner
2017-02-08 14:49:18 +08:00
感谢!
TheKiteRunner
2017-02-08 15:00:16 +08:00
0.9.170207 (内测版)在 win8.1 64 位系统使用 bug ,无法新建项目。准确地说是,最后一步“保存”无法点击。
SwingCoder
2017-02-08 15:10:27 +08:00
@TheKiteRunner 感谢反馈宝贵意见:)

我刚才试了一下,没办法重现这个问题,新建项目每次都是成功的。我的 Windows 系统是 10 ,现在手头上没有 8 。我已经发给了使用 Win 8 的朋友,请他们测试一下。

是保存文件对话框中的 [保存] 按钮无法点击吗?您看一下,是否有磁盘或目录的写权限?
文件名命名,如果有非法字符,比如路径字符等等, [保存] 按钮也会暗显。

用操作系统的文件浏览器,能在磁盘的某个位置新建目录吗?而后 WDTP 新建项目时,保存到这个目录下试试:)
如果问题依然没有解决,有时间的话,欢迎加我的 QQ , 843775 。 QQ 可以截图或发送屏幕录像,这样很方便确定问题的原因:)
TheKiteRunner
2017-02-08 15:18:02 +08:00
@SwingCoder 感谢及时回复。

1 是保存按钮无法点击,磁盘和目录读写权限都没问题,切换文件夹也不行。
2 文件夹名称没有问题,纯字母都不行
3 可以新建目录,保存依然实效。
4 QQ 已加。
SwingCoder
2017-02-08 17:04:45 +08:00
• 改进:使用操作系统默认的文件打开 /保存对话框。一是使不同平台下的用户有更熟悉的使用体验,二是解决某些 Windows 版本下新建项目时 [保存] 按钮可能暗显的问题。
SwingCoder
2017-02-08 19:03:27 +08:00
增加:博客模板 index 页的文档列表项中增加最后修改日期。此修改将影响所有用户。解决方案:升级本程序后,执行系统菜单下的“重置 /修复系统模板”,而后重新生成整站。
SwingCoder
2017-02-09 01:12:41 +08:00
Markdown 编辑器中增加了一批快捷键,可提高 MD 标记输入的效率:
Ctrl + B :加粗。当前是否选择文本都可以输入该格式化标记。有些用户可能习惯于先输入标记,而后再输入文本。比如我:)如果当前选择了文本,则直接对所选文本应用加粗标记;如果当前未选择任何文本,则软件给出加粗标记后,自动将插字符光标定位到两个星号之间,以便于用户直接输入要加粗的文本内容(省掉按两下键盘或点击鼠标了)。
Ctrl + I :斜体。解释同上
Ctrl + L :行内代码。解释同上
Ctrl + K :代码块
Ctrl + M :插入图片(注: WDTP 支持一次性插入多幅所选的图片)
Ctrl + H :插入超链接
Ctrl + T :插入表格(插入表格时一并自动插入“表注“)
Ctrl + N :本行居中
Ctrl + R :本行靠右
Ctrl + P :插入图注或表注
Ctrl + O :插入作者和当前日期
以上快捷键,可在编辑器右键菜单对应的菜单项中看到。我们不建议用户专门记忆这些快捷键,用多了自然就记住了:)
SwingCoder
2017-02-09 01:15:16 +08:00
- 截至目前, WDTP 共有三种输入 Markdown 标记的方式:
- 直接输入 MD 标记的文本
- 使用编辑器的右键菜单
- 使用快捷键(**注**:这些快捷键并未涵盖 WDTP 所支持的所有 MD 标记)

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

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

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

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

© 2021 V2EX