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

2017 年 2 月 4 日
 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

35283 次点击
所在节点    分享创造
651 条回复
SwingCoder
2017 年 4 月 7 日
@izgnod 朋友,能否提供一下这几篇文章的标题内容?仅仅看这个图,无法发现更多端倪,不好判断原因并尽快找到需要修补的代码。谢谢。
SwingCoder
2017 年 4 月 7 日
SwingCoder
2017 年 4 月 7 日
WDTP (山·湖·路)发布 0.9.0407 公测版

欢迎下载试用并提出宝贵意见。

主要更新记录: http://underwaysoft.com/works/wdtp/updateList.html
简介及下载: http://underwaysoft.com/works/wdtp/download.html

示例及文本标记语法: http://underwaysoft.com/works/wdtp/syntaxMark.html
常见问题及解决方案: http://underwaysoft.com/works/wdtp/faq.html
快速上手: http://underwaysoft.com/works/wdtp/gettingStarted.html
izgnod
2017 年 4 月 7 日
@SwingCoder 二级标题会自动缩进,如何强制二级标题不缩进呢?我找了一下文档,没有发现解决的方法。
SwingCoder
2017 年 4 月 7 日
@izgnod 朋友,前端这一块,以 WDTP 为例,文本内容解析后的结果,渲染到模板文件,模板文件有了解析后的结果,就是一个完整的网页,网页中几乎所有元素的具体呈现(视觉效果)通常由 CSS 样式表来控制和细化处理。

Markdown 的二级标题, WDTP 解析为 html 规范中的<h2/>。大多数 html 标记, WDTP 是通过项目的全局样式表来控制和修饰的。

点击系统菜单-修改当前主题-全局样式表,主界面右侧将自动切换为主题编辑模式并加载全局样式表供修改或另存(目前也是基于纯文本的,还比较简陋,下一步如有时间和精力,我会慢慢捯饬一下)。找到这一行:

```
h1, h2, h3, h4, h5, h6 { text-indent: 24pt; line-height: 1.0; }
```
这就是一行很简单的 css 代码,其中 text-indent 负责处理 h1~h6 的缩进。您随意修改它的值,而后鼠右菜单-保存并应用,看看会发生什么?

依此类推,可以随意自定义任意 css class 的样式,还可以随意修改模板文件……您可以另存到 themes 下的一个新目录里面,做一套自己的个性化主题。很方便,这一切都可以在 WDTP 内部完成:)
DaCong
2017 年 4 月 7 日
非常感谢楼主的辛勤付出!
很少在 V2 看到这么认真地更新自己的作品的人了。
另外,提一个小小的要求,其实现在 Linux 桌面环境下还是比较缺少这类完善的笔记软件的,不知楼主有没有心思去释出 Linux 版本?(如果说因为工程量太大,无法顾及,我也能够立即)
最后,再次感谢楼主不计回报地付出!
SwingCoder
2017 年 4 月 7 日
@DaCong 朋友,谢谢您的鼓励与垂询。 WDTP 在其它平台下的版本慢慢都会陆续发布,这件事从设计的第一天就记到备忘里了:)已经有不少朋友提出 Linux 版本的明确需求。但是我想先缓一缓,有一些原因,最主要的是我目前一个人的时间和精力实在不够,同步维护三个平台下的版本有点吃力。技术方面的障碍不大,本身 WDTP 的代码在设计和编写时就考虑到了五大主流平台下的通用性。介绍我来这里的 Akkuman 兄就曾经编译了一个 Linux 下的版本,代码基本未改动就跑起来了:) WDTP 目前还处在快速发展和完善阶段,我的想法是先在 macOS 和 Windows 这两个平台下把架子搭起来,尽量搭完整些,搞扎实,等稍微稳定后再逐步向其它平台下移植。第三个支持的平台可能是 iOS 。作为普通用户,我很喜欢这个系统,但是作为开发者,又很不爽 Apple 在某些方面的理念和政策……所以现在还不好确定……

此外还有其它一些原因,比如:我这两三年很少用 Linux 的系统。 WDTP 的开发初衷就是我个人和少数几个朋友用着玩的又一个小工具,似乎几个老顽童都对 Linux 不太有兴致了:)这个系统的发行版很多,以用户较多的 Ubuntu 为例,它下一步要换回 Gnome ,这个事我觉得也需要观望一下:)
DaCong
2017 年 4 月 7 日
@SwingCoder 多谢了,我先自己编译玩玩吧,楼主加油啊。
另外,我想冒昧问一下,楼主将很多精力都放在了开发这个软件上,不知是否有稳定的经济来源?没有别的意思,只是我认为,只有您有了一个稳定的收入,才能够在未来的很长时间内保证该软件的更新。
SwingCoder
2017 年 4 月 8 日
@DaCong 朋友,谢谢您的支持:)

我有稳定的经济来源:)虽然不是世俗意义上的富人或“成功人士”。我对金钱没有太高的追求,但普通的一日三餐、基本的衣食住行等等都没有问题:)我是素食者,在某些方面有异于常人的精神信仰与道德约束,对物质的需求量和消耗量极低,对环境和他人的要求也很低。基本上每天我都觉得很快乐:)特别是做自己喜欢做的事,同时能为他人带来一些益处和方便。可以说,目前的大部分时候,就是我多年前的理想:)

唯一不利的因素是我的健康状况不太乐观。我一直用最大的毅力和不屈对抗着这些不利的东西,效果还不错:)

一切都会越来越好,也希望每个人都会越来越好:)
izgnod
2017 年 4 月 8 日
@SwingCoder 提醒功能是否可以在提醒的时候上一级目录也能够高亮,因为我每次都要打开一级一级的目录之后才能够看到高亮的文章。
SwingCoder
2017 年 4 月 8 日
@izgnod 朋友,谢谢您的建议。稍后我考虑一下,看看有没有更好的提醒办法,或者直接实现您的需求:)
SwingCoder
2017 年 4 月 8 日
实现:文件树面板中,如果某个目录(含其所有子目录)有设置了提醒日期的文档,则该目录添加小括号括住的数字后缀,样式为:“(3/5)”。 3 的意思是该目录下有 3 个设置了提醒日期的文档已经到期, 5 的意思是该目录下一共有 5 个文档设置了提醒日期。鼠标右键点击该目录,弹出文件树菜单,点击菜单项“高亮选择到期文档”后将自动展开该目录并高亮选择所有已到期的文档。
SwingCoder
2017 年 4 月 8 日
@izgnod 朋友,您的需求实现了。请参见 471 楼的更新记录。
izgnod
2017 年 4 月 8 日
楼主好高效啊。
SwingCoder
2017 年 4 月 8 日
重构:选择文本后输入~, *, `等 Markdown 标记后的自动包裹功能。
SwingCoder
2017 年 4 月 8 日
更新: macOS 平台下,文本编辑时插入超链接的快捷键由“ cmd + H ”更改为“ Ctrl + H ”。
SwingCoder
2017 年 4 月 9 日
重构:文本编辑器标点匹配、自动包裹、智能提示与自动补全等功能模块。
SwingCoder
2017 年 4 月 9 日
修复: macOS 平台下使用某些“比较特殊的”中文输入法后匹配、包裹、提示与补全等功能失效的问题。
SwingCoder
2017 年 4 月 9 日
新增: Windows 下 Ctrl + Q 退出本程序。( macOS 下依然是 cmd + Q ,这个是系统级快捷键)。
SwingCoder
2017 年 4 月 9 日
新增:系统菜单-查看当前页的 HTML 源码。点击后右侧的属性面板切换为代码编辑模式并加载当前页的 HTML 源码。此功能在修改或制作主题时比较有用,可查看并获取页面元素的 css 类、应用新的模板后所生成的详细结果等等。

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

https://study.congcong.us/t/338138

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

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

© 2021 V2EX