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 月 14 日
实现:文本编辑模式下,选中图像的文件名后可直接对其进行旋转处理(鼠标双击即可选中文件名,无需也不要选择其扩展名)。右键菜单-编辑媒体文件-向左 /右旋转 90 度。该操作可撤销。
SwingCoder
2017 年 4 月 14 日
改进:编辑模式下通过右键菜单或快捷键弹出文档大纲时,如当前文档没有大纲,则给出闪屏信息和声音提示。
SwingCoder
2017 年 4 月 14 日
改进:优化编译设置,减小 Windows 平台下 32 位和 64 位可执行程序的大小。
SwingCoder
2017 年 4 月 14 日
周末愉快! WDTP (山·湖·路) 0.9.0414 公测版发布了:)
欢迎下载试用并提出宝贵意见。

主要更新记录: 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
SwingCoder
2017 年 4 月 15 日
改进:内容编辑模式下,将当前高亮选择的文字加入智库时,对提示名称(智能匹配和自动补全的关键字)进行长度校验。如少于 1 个字符则给出提示,不予添加。
SwingCoder
2017 年 4 月 15 日
改进:内容编辑模式下,按下回车键后,如果当前有高亮选择的文字,则自动清除这些文字并换行(之前是:回车后换行但不清除所选内容)。
SwingCoder
2017 年 4 月 15 日
新增:编辑器右键菜单-插入-当前日期和时间。格式为:“年.月.日 时:分:秒”( 24 小时制,本机时间)。示例: 2017.04.14 17:10:29
SwingCoder
2017 年 4 月 15 日
系统菜单新增:打开 /添加外部资源。
项目属性设置面板新增:外部资源设置项。
SwingCoder
2017 年 4 月 15 日
实现:“项目外源”功能。详情:

日常使用 WDTP 时,计算机操作者可能需要随时运行、打开、查阅、浏览、视听一些与当前项目有直接或间接关联的程序、文档、资料、网址、各类多媒体文件与硬件资源,即:本机或远程任意机器上的任何有关数据与资源(权限许可并地址明确的前提下)。这些数据(外部资源)也可视为项目的一部分, WDTP 将其命名为“项目外源”。简介如下:

•点击工具栏“齿轮”图标,系统菜单-打开 /添加项目外源-添加。此方法可添加本机或局域网(家庭组)的任意文件(程序、文档、多媒体数据等等)。
•再次弹出系统菜单,“打开 /添加项目外源”下会出现刚刚添加的外源菜单项。点击即可打开或直接运行。如打开文档, WDTP 会自动判定其类型并调用操作系统与此关联的程序进行加载;如果是程序,则直接调动操作系统开新进程,运行该程序;如果是网址,自动用系统默认的浏览器打开……等等。
•添加项目外源后,文件树面板点击根目录(项目总节点),主界面右侧的项目设置面板-“项目外源”文本框会列出所有已添加的外源条目。每个条目一行,格式为:“条目名称 = 完整路径”。

◦条目名称即系统菜单“打开 /添加项目外源”菜单项所显示的文本,可随便命名,中英文均可。默认是该文档或程序的文件名(含扩展名)。小写等号的右侧是该文件(程序)的完整路径,可以是本机地址、网络地址、局域网某台机器上的资源地址等等。
◦小写等号左右两侧留不留空格、条目之间留不留空行均可。
◦该文本框中,删除某行即相当于删除该项目外源。删除后,系统菜单“打开 /添加项目外源“中将不再出现该外源。
◦调整行(条目)的先后顺序即相当于外源项目的排序,操作模式与编辑普通文本文档完全一致。

• WDTP 的“项目外源”功能非常强悍灵活,外源条目不仅可以是本机文档、程序或远程资源,甚至可以直接执行一长串命令和操作系统能解析的脚本代码,或者直接控制远程机并对其进行目的明确的“调遣 ”。
•还可以用来执行某些比较繁琐的操作。以 Windows 为例:可直接打开注册表编辑器并定位某个具体的注册项(子项),直接打开控制面板的某个设置界面,直接运行批处理,直接进入命令行窗口并执行一串 DOS 命令,直接进入打印机或其它任意硬件的设置界面等等…… macOS 和 Linux 等基于 Unix 内核的机器,玩法更多,技术足够的话,可以方便快速、魔术一般实现很多惊人的目的或效果……
•甚至可以将此功能作用于 WDTP 本身及其所组织并管理的任何文档……比如:调用某个格式转换器,将项目中的某个或某些文档直接转换并输出为 epub, pdf, docx 等任意类型的电子文档格式。
•某种程度上讲, WDTP 的“项目外源”完全可以取代任何现有的“启动器”、“脚本链”、“网址与资源收藏管理”之类的小程序,而且使用与管理更加简洁、直观、高效、灵活,功能也更加强悍。
SwingCoder
2017 年 4 月 15 日
“项目外源”更简单的解释: 项目所需的各类外部资源
SwingCoder
2017 年 4 月 16 日
新增:文本编辑器右键菜单添加“外部翻译所选内容”,调用系统默认浏览器加载 Google 和百度的在线翻译。所选内容为英文,自动英译汉;所选内容为中文,则自动汉译英。
SwingCoder
2017 年 4 月 16 日
改进:调整系统菜单、文件树菜单、编辑器菜单的菜单项顺序,修改部分菜单项名称。
SwingCoder
2017 年 4 月 16 日
优化:文档大纲模块的算法实现与执行效率。
SwingCoder
2017 年 4 月 16 日
改进:文本编辑器选择内容后的高亮颜色与文本颜色。
SwingCoder
2017 年 4 月 16 日
美化: Markdown 解析与渲染,图片和代码块的边角默认显示为圆角。
SwingCoder
2017 年 4 月 16 日
新增:主题编辑器(代码编辑器)添加一组快捷键: Ctrl + S (保存并刷新当前页面)。
SwingCoder
2017 年 4 月 16 日
改进:确保代码编辑器中保存修改后,页面显示预期结果。
SwingCoder
2017 年 4 月 16 日
改进:编辑某个主题文件时,使导入外部主题、重置系统默认主题等功能不可用。
SwingCoder
2017 年 4 月 16 日
实现:文本编辑器和代码编辑器简单的语法高亮(标题、星号、颜色值标识符等)。
SwingCoder
2017 年 4 月 16 日
实现:数据统计模块中分别统计项目内部图像和外部图像的数量。

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

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

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

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

© 2021 V2EX