WDTP, 一款笔记,写作,博客三位一体的软件,同时也是个静态网站生成器

本贴最后更新于 2849 天前,其中的信息可能已经沧海桑田

** 首先声明作者不是我,是一位朋友 SwingCoder,文章首发与凯迪,然后发布到 v2ex,我帮他转过来的**

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

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

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

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

多年以来,在写稍微正规一点的东西时, Pages 或 Word 之类的巨无霸实在让人心累,可能也不是太必要。即便这些巨无霸,对多个文档的集中组织与结构化管理也不好使,更别说那些纯文本的编辑器和网页端基于各类脚本写就的编辑器;
平时读书、学习或做笔记时,除了我个人开发的一款同类软件, Evernote 等臃肿不堪的云笔记已经很难让我有愉悦的使用体验;
写博客时,我可能并不需要 WordPress 等服务器端运行的脚本 + 数据库,更别说现成的各类博客平台……

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

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

想法中还包括了其他。比如:“静态网站生成器( 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

WDTP 简介: http://underwaysoft.com/works/wdtp/introduce.html

授权协议(免责声明与使用许可): http://underwaysoft.com/works/wdtp/license.html
下载、安装及运行: http://underwaysoft.com/works/wdtp/download.html
WDTP 原生支持的 Markdown 语法及默认的渲染效果: http://underwaysoft.com/works/wdtp/mdDemo.html
快速上手: http://underwaysoft.com/works/wdtp/gettingStarted.html
常见问题及解决方案: http://underwaysoft.com/works/wdtp/QA.html
主要更新记录: http://underwaysoft.com/works/wdtp/updateList.html
Memo list: http://underwaysoft.com/works/wdtp/memoList.html

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

谢谢!

WDTP-主要更新记录

  • 2017.02.04

  • 编辑器右键菜单,插入,新增“插入图注 /表注”

  • 插入图片或表格时一并插入图注和表注行

  • Markdown 解析新增语法:图注和表注,语法格式“^^ 注解文字”

  • 2017.02.03

  • 发布 macOS 和 Windows 两个平台下的内测版( 0.9.170201 )

  • 系统菜单新增:重置 /修复系统默认的模板及样式表

  • 实现:项目数据的打包与解包

  • 文档内搜索所选内容添加快捷键。 F3 :下一个, Shift + F3 :上一个

这个项目目前的 github 地址是:
https://github.com/LegendRhine/WDTP

我现在还没想好,可能过一段时间将它单独拉出来,或者放在另一个账户下,或者拉到国内,这样方便大家访问和 PR 。
我最近会尽快规整代码,完善注释和开发文档,便于各位同行、老师审阅代码并无私贡献。

  • WDTP
    2 引用 • 96 回帖
  • C++

    C++ 是在 C 语言的基础上开发的一种通用编程语言,应用广泛。C++ 支持多种编程范式,面向对象编程、泛型编程和过程化编程。

    107 引用 • 153 回帖 • 4 关注
  • 笔记

    好记性不如烂笔头。

    308 引用 • 793 回帖
  • 博客

    记录并分享人生的经历。

    273 引用 • 2388 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • SwingCoder

    新增:文本编辑模式下,标准 ASCII 标点符号‘<’的自动匹配

  • 其他回帖
  • SwingCoder
    • 新增 Markdown 语法:插入尾注(语法格式:\[^注释内容\])。所插入的尾注自动编号,注释内容以列表的形式显示在本文档的最后[^ 尾注内容支持 Markdown 标记,但尾注中不可嵌套尾注]。可连续插入并列尾注。
      • 注 1:整个项目或某个目录下的文档集成输出时,所有文档的尾注统一编号,注释内容位于集成后的文档最后。这一点,对技术作家和文学评论家、文艺批评家来说非常方便(比如一章作为一个目录,这样可以按章输出,每一章的最后是本章的参考文献、正文注释、索引等)。
      • 注 2:根据 html 网页文档的特点,WDTP 使用“尾注”的同时舍弃了“脚注”这一标准。按行业规范,尾注有“温哥华体系(顺序编码)”与“哈弗体系(作者、译著、出版年制)”,WDTP 采用了前者(这种体系相对自由和随意一些,而后者主要用于列举参考文献,其格式比较严格)。
      • 注 3:尾注内容支持 Markdown 标记语法,但尾注中不可再嵌套尾注。
  • SwingCoder

    您好,R 朋友。感谢您的宝贵建议。这些功能都可以实现,也都有替代的解决方案(或许不是最佳)。我尝试解释和说明一下,也作为和更多朋友在技术方面的交流和探讨吧。如有不妥或不清楚处,敬请谅解。

    第一个的关键点是 html 到 Markdown 的反向解析,这个比 MD->html 要麻烦一些,也无法做到很理想,毕竟一大批 HTML 格式不是 Markdown 现有的标准能逐一对应的。二者的目标和应用场景也不一致。此外,HTML 5 尚未完全普及,而且今后这个标准肯定还会拓展或更改。这样就给 WDTP 的后期维护与更新带来了很多不确定的问题,维护成本也大了很多。我不敢贸然下手。可能其他做开源的资深同行或老师也很少有人愿意涉入这个泥潭中。

    不包含 HTML 格式的网页内容,可以直接复制粘贴到 WDTP 的 Markdown 编辑器中(它的实质就是一个字体渲染优化过的、跨平台的纯文本编辑器)。等 WDTP 稳定版出来之后,我再抽时间想一下这个问题,看看有没有更好的思路。

    第二个问题比较简单,WDTP 恢复网络数据传输这个模块后,给出具体的网址就可以拉回来。比如判断编辑器中有非项目内部的资源,无论是否远程,都可以自动将该资源拉到项目内部(media 文件夹下,就类似目前的插入本地图片)。内测版发布之前,WDTP 有网络传输这个模块,用的 cUrl 开源库。该模块后来砍了,这样,WDTP 就没有任何与外部通讯的能力。我再三考虑,还是想让它保持一款桌面单机程序应有的单纯性和简洁性,一些不必要的功能都砍掉,把精力集中在其他方面。这么做牺牲最大的就是用户不能时刻收到版本更新的提示,但也最大限度保证了用户使用软件时的清净、不被干扰。此外,这些功能,都可以通过其他第三方软件或技术来方便地实现,无需再造轮子。毕竟,开源软件的开发原则与商用软件有质的不同。

    砍掉数据传输这个模块还有一个原因,我的另一款开源软件,有多客户端数据实时同步(电脑、平板、手机等等)、上传下载等功能,我不想两者在功能上重叠或“撞车”:)

    第三个问题没有考虑过,我对国内这些第三方存储技术和服务不了解,从来没用过,也不敢将 WDTP 的某些功能托付给他们。虽然,他们肯定都是一些极优秀的公司和团队开发的产品:)

  • SwingCoder
    • 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:插入作者和当前日期
      • 以上快捷键,可在编辑器右键菜单对应的菜单项中看到。我们不建议用户专门记忆这些快捷键,用多了自然就记住了:)
    • 截至目前,WDTP 共有三种输入 Markdown 标记的方式:

      • 直接输入 MD 标记的文本
      • 使用编辑器的右键菜单
      • 使用快捷键(:这些快捷键并未涵盖 WDTP 所支持的所有 MD 标记)
  • 查看全部回帖
Akkuman
python与二次元爱好者,开车司机 荆州

推荐标签 标签

  • Linux

    Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 Unix 的多用户、多任务、支持多线程和多 CPU 的操作系统。它能运行主要的 Unix 工具软件、应用程序和网络协议,并支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

    944 引用 • 943 回帖
  • 七牛云

    七牛云是国内领先的企业级公有云服务商,致力于打造以数据为核心的场景化 PaaS 服务。围绕富媒体场景,七牛先后推出了对象存储,融合 CDN 加速,数据通用处理,内容反垃圾服务,以及直播云服务等。

    27 引用 • 225 回帖 • 168 关注
  • 链书

    链书(Chainbook)是 B3log 开源社区提供的区块链纸质书交易平台,通过 B3T 实现共享激励与价值链。可将你的闲置书籍上架到链书,我们共同构建这个全新的交易平台,让闲置书籍继续发挥它的价值。

    链书社

    链书目前已经下线,也许以后还有计划重制上线。

    14 引用 • 257 回帖 • 1 关注
  • 锤子科技

    锤子科技(Smartisan)成立于 2012 年 5 月,是一家制造移动互联网终端设备的公司,公司的使命是用完美主义的工匠精神,打造用户体验一流的数码消费类产品(智能手机为主),改善人们的生活质量。

    4 引用 • 31 回帖 • 2 关注
  • golang

    Go 语言是 Google 推出的一种全新的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性。谷歌首席软件工程师罗布派克(Rob Pike)说:我们之所以开发 Go,是因为过去 10 多年间软件开发的难度令人沮丧。Go 是谷歌 2009 发布的第二款编程语言。

    497 引用 • 1387 回帖 • 284 关注
  • 以太坊

    以太坊(Ethereum)并不是一个机构,而是一款能够在区块链上实现智能合约、开源的底层系统。以太坊是一个平台和一种编程语言 Solidity,使开发人员能够建立和发布下一代去中心化应用。 以太坊可以用来编程、分散、担保和交易任何事物:投票、域名、金融交易所、众筹、公司管理、合同和知识产权等等。

    34 引用 • 367 回帖 • 1 关注
  • 博客

    记录并分享人生的经历。

    273 引用 • 2388 回帖
  • 正则表达式

    正则表达式(Regular Expression)使用单个字符串来描述、匹配一系列遵循某个句法规则的字符串。

    31 引用 • 94 回帖 • 1 关注
  • Scala

    Scala 是一门多范式的编程语言,集成面向对象编程和函数式编程的各种特性。

    13 引用 • 11 回帖 • 134 关注
  • flomo

    flomo 是新一代 「卡片笔记」 ,专注在碎片化时代,促进你的记录,帮你积累更多知识资产。

    5 引用 • 107 回帖
  • 微软

    微软是一家美国跨国科技公司,也是世界 PC 软件开发的先导,由比尔·盖茨与保罗·艾伦创办于 1975 年,公司总部设立在华盛顿州的雷德蒙德(Redmond,邻近西雅图)。以研发、制造、授权和提供广泛的电脑软件服务业务为主。

    8 引用 • 44 回帖
  • Pipe

    Pipe 是一款小而美的开源博客平台。Pipe 有着非常活跃的社区,可将文章作为帖子推送到社区,来自社区的回帖将作为博客评论进行联动(具体细节请浏览 B3log 构思 - 分布式社区网络)。

    这是一种全新的网络社区体验,让热爱记录和分享的你不再感到孤单!

    132 引用 • 1114 回帖 • 125 关注
  • RIP

    愿逝者安息!

    8 引用 • 92 回帖 • 351 关注
  • Redis

    Redis 是一个开源的使用 ANSI C 语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API。从 2010 年 3 月 15 日起,Redis 的开发工作由 VMware 主持。从 2013 年 5 月开始,Redis 的开发由 Pivotal 赞助。

    286 引用 • 248 回帖 • 62 关注
  • HTML

    HTML5 是 HTML 下一个的主要修订版本,现在仍处于发展阶段。广义论及 HTML5 时,实际指的是包括 HTML、CSS 和 JavaScript 在内的一套技术组合。

    107 引用 • 295 回帖 • 1 关注
  • OAuth

    OAuth 协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是 oAuth 的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此 oAuth 是安全的。oAuth 是 Open Authorization 的简写。

    36 引用 • 103 回帖 • 10 关注
  • HBase

    HBase 是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的 Google 论文 “Bigtable:一个结构化数据的分布式存储系统”。就像 Bigtable 利用了 Google 文件系统所提供的分布式数据存储一样,HBase 在 Hadoop 之上提供了类似于 Bigtable 的能力。

    17 引用 • 6 回帖 • 75 关注
  • WebComponents

    Web Components 是 W3C 定义的标准,它给了前端开发者扩展浏览器标签的能力,可以方便地定制可复用组件,更好的进行模块化开发,解放了前端开发者的生产力。

    1 引用 • 2 关注
  • 域名

    域名(Domain Name),简称域名、网域,是由一串用点分隔的名字组成的 Internet 上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置)。

    43 引用 • 208 回帖 • 1 关注
  • OpenStack

    OpenStack 是一个云操作系统,通过数据中心可控制大型的计算、存储、网络等资源池。所有的管理通过前端界面管理员就可以完成,同样也可以通过 Web 接口让最终用户部署资源。

    10 引用 • 5 关注
  • OpenResty

    OpenResty 是一个基于 NGINX 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。

    17 引用 • 41 关注
  • 创造

    你创造的作品可能会帮助到很多人,如果是开源项目的话就更赞了!

    179 引用 • 995 回帖 • 1 关注
  • Sphinx

    Sphinx 是一个基于 SQL 的全文检索引擎,可以结合 MySQL、PostgreSQL 做全文搜索,它可以提供比数据库本身更专业的搜索功能,使得应用程序更容易实现专业化的全文检索。

    1 引用 • 214 关注
  • Spring

    Spring 是一个开源框架,是于 2003 年兴起的一个轻量级的 Java 开发框架,由 Rod Johnson 在其著作《Expert One-On-One J2EE Development and Design》中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 JavaEE 应用程序开发提供集成的框架。

    944 引用 • 1459 回帖 • 16 关注
  • React

    React 是 Facebook 开源的一个用于构建 UI 的 JavaScript 库。

    192 引用 • 291 回帖 • 384 关注
  • TGIF

    Thank God It's Friday! 感谢老天,总算到星期五啦!

    287 引用 • 4484 回帖 • 669 关注
  • frp

    frp 是一个可用于内网穿透的高性能的反向代理应用,支持 TCP、UDP、 HTTP 和 HTTPS 协议。

    20 引用 • 7 回帖