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

37087 次点击
所在节点    分享创造
651 条回复
SwingCoder
2017 年 4 月 25 日
更新:统一 Windows 和 macOS 两个平台下的默认字体(统一为“微软雅黑”)。一并更新系统默认的样式表。
SwingCoder
2017 年 4 月 25 日
更新: macOS 平台下,部分菜单项中的花键标记统一为“ cmd ”字样。
SwingCoder
2017 年 4 月 25 日
改进: macOS 平台下,使用文档大纲菜单跳转时确保预览页定位准确。
SwingCoder
2017 年 4 月 25 日
改进: macOS 平台下, MP3 编码器的下载与安装自动完成,不再需要用户双击解压。
SwingCoder
2017 年 4 月 25 日
更新:当有新版本时,“系统菜单-下载新版本”菜单项绿色醒目显示。
SwingCoder
2017 年 4 月 28 日
周末愉快! WDTP (山湖录) 0.9.0428 公测版发布了:)

更新记录: http://underwaysoft.com/works/wdtp/updateList.html
介绍及下载: http://underwaysoft.com/works/wdtp/download.html
SwingCoder
2017 年 4 月 29 日
更新:Windows 平台下,预览模块恢复使用 IE 11 内核。此更新将影响所有 Windows 7 用户。解决方案:请自行升级浏览器内核至 11.0 以上版本。
SwingCoder
2017 年 4 月 30 日
完善:文章归档模式下,编辑器禁用拖拽式移动 /复制所选内容等功能。
SwingCoder
2017 年 4 月 30 日
搭个顺风车:)

“小隐本记( My Biography )” 1.1 版本发布了( Windows 10 x64 以上和 macOS 10.9 以上。iOS、Android 和 Linux 等平台下的版本自 1.0 之后暂停更新)。

项目简介:

小隐本记( My Biography )是一款集中了文字、录音、影像、管理各类网址与本地文件,具有到期提醒等多种功能为一体的私人日记、备忘录和多媒体笔记本程序。操作简便,高效简洁,安全性较高,极具亲和力。所有主流平台下皆可运行(计算机、智能手机及平板电脑),界面与操作完全一致,所有平台下的数据无缝同步。

本软件尤其适合注重个人隐私,对生活品质和时间管理有较高要求,日常频繁在各类设备间来回切换,紧张忙碌之余渴望片刻深沉与宁静的高质量人群。除了文字之外,这批人往往还希望利用影像、录音等多媒体技术随时随地、全方位、多角度地快速记录和见证各类精彩瞬间、心得体会及点点滴滴,事后则可以方便地整理、总结与思考,并且重要事务可得到及时提醒,防止错过或延误,从而不必时刻挂在心头,徒增压力。他们专注于事情的本质,善于抓住精彩瞬间和稍纵即逝的奇思妙想,能够不断体察、反思并见证自我,使用工具则对其便利性与实用性追求极致,而又无需繁杂的界面和操作,亦无需华而不实、可有可无的各类冗余。

如果您是这样的人,并且正在寻找这样一款方便实用、简单可靠、可以录音、管理图文、自动提醒并高度注重隐私的多媒体日记本程序,小隐本记绝对是您的最佳选择…

项目主页:
http://underwaysoft.com/works/myBio/index.html

GitHub 主页:
https://github.com/LegendRhine/MyBio
SwingCoder
2017 年 4 月 30 日
忘了一条重要的信息。

小隐本记也是小巧玲珑、功能强大的“纯绿色”软件,开源免费:)
SwingCoder
2017 年 5 月 1 日
改进:编辑模式下,如当前选择了一些文本,Ctrl + G 或右键菜单“提示与替换”将弹出其智库提示。如果所选内容不是智库的索引词,则给出消息。
SwingCoder
2017 年 5 月 1 日
实现:新建项目时一并创建本项目的智库文档。
SwingCoder
2017 年 5 月 1 日
实现:基于智库架构的插入内部链接。详情:

◦之前,要插入项目内部某个目录或文档的链接有两个办法:手工直接输入或者文件树面板右键菜单“获取路径”,而后返回切换前的文档的编辑状态下 Ctrl + V (或编辑器右键菜单-插入-粘贴内部链接)。某些应用场景下,这两个办法不太方便。基于此,增加了第三种插入内部链接的操作模式:与编辑模式下的智能提示与自动补全融为一体。即:编辑模式下,输入某个目录或文档的标题后(仅需两个字符就可以)将触发弹出智能提示和自动补全菜单。菜单项除了“正常的”智库条目外,还将出现对应的目录或文档的 html 路径(这部分菜单项的最左侧显示一个“@”,用以和普通的智库条目做区别)。上下光标键选中后回车(如果只有一条,直接回车即可),回车后将自动输入 Markdown 格式的内部链接。

◦也就是说,项目内的所有目录与文档(文件结构)将自动由项目智库所感知并获取。但是,智库文档( site/tips )中并不出现这些内容。

◦项目即使未创建 site/tips 智库文档,也同样有一个系统级的隐藏“智库”,该智库囊括了本项目的全部文件结构及相关信息。这些数据的构建与增删改,系统内部自动完成,用户在使用 WDTP 的全过程中无需做任何关注与操作。

◦如果不打算输入内部链接(忽略弹出的智能提示菜单),继续输入新内容即可。如果后续输入不被智库感知,则智能提示菜单将自动消失。也可按[ESC]键强制隐藏提示菜单。
SwingCoder
2017 年 5 月 1 日
几处小的性能优化(字符串判断与处理方面)。
SwingCoder
2017 年 5 月 1 日
WDTP 小技巧:隐藏左侧的文件树面板之后,重新生成整站将提高执行效率。原因:重新生成整站时,会有大量复杂的内部处理,一部分时间损耗将用在 GUI 界面的刷新与重绘等方面,特别是文件树中每个条目生成前后的可视状态的变化。隐藏文件树面板后,这方面的处理量相对减少,从而将会加快生成速度。
SwingCoder
2017 年 5 月 1 日
改进:编辑模式下,空格不作为触发智库的判断字符。
SwingCoder
2017 年 5 月 2 日
实现:弹出智能提示菜单并持续输入内容时渐进式精准匹配。
SwingCoder
2017 年 5 月 2 日
改进:弹出智能提示菜单并自动完成后,替换插字符之前所有匹配该条目的字符。
SwingCoder
2017 年 5 月 3 日
实现:编辑模式下,鼠标双击中文内容,自动选择当前短句(以任意标点符号为断句依据,包括 ASCII 标点符号及中文标点符号)。鼠标双击选择 ASCII 单词、三击选择当前段落、四击全选等默认模式保持不变。
SwingCoder
2017 年 5 月 3 日
新增:3 个文本标记,用于设置文字大小、文字颜色和字体。语法格式与显示效果请参见:
http://underwaysoft.com/works/wdtp/updateList.html

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

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

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

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

© 2021 V2EX