V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
SwingCoder
V2EX  ›  分享创造

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

  •  3
     
  •   SwingCoder · 2017-02-04 23:36:24 +08:00 · 29478 次点击
    这是一个创建于 2608 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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


    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


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

    谢谢!

    SwingCoder

    第 1 条附言  ·  2017-04-05 06:20:09 +08:00

    上述网址自WDTP第一个内测版发布后陆续做了修改,部分已失效。目前最新的有效网址是:

    欢迎下载试用并提出宝贵建议,欢迎反馈意见及BUG(包括网站BUG)。所有BUG一经确认,我将放下手头上一切事务,以最高优先级去解决。

    651 条回复    2018-08-02 10:59:34 +08:00
    1  2  3  4  5  6  7  
    SwingCoder
        301
    SwingCoder  
    OP
       2017-03-09 23:06:08 +08:00
    •实现:自定义 index 页功能。即:可将某个文档设置为所在目录或整个网站的 index 页。详情:

    ◦新建文档时将其命名为 index 。也可将已有的某个文档重命名为 index 。
    ◦该文档位于某个子目录下,则为该目录的 index 页。
    ◦该文档位于项目根目录下,则为整个网站的首页。
    TheKiteRunner
        302
    TheKiteRunner  
       2017-03-09 23:52:35 +08:00 via Android
    突然想到,写下,发布。又有录音功能特色,叫妙笔知音如何呢😄
    SwingCoder
        303
    SwingCoder  
    OP
       2017-03-10 00:33:40 +08:00
    有用户询问如何插入锚链接和图片链接。

    锚链接:各种类型的链接,网址最后加一个#号,后接锚点文本即可。锚点文本为该网页(文档)中的二级或三级标题的文本。

    图片链接:先插入一个文字型链接,而后将此链接所显示的文本(中括号内的文本)替换为插入图片的文本标记。语法:
    [![](../../media/app.jpg)](../../works/index.html) 此为项目内的链接,使用了相对路径
    [![]( http://aSite.com/app.jpg)]( http://aSite.com/app.html) 此为外部链接,使用了绝对路径
    SwingCoder
        304
    SwingCoder  
    OP
       2017-03-10 00:37:20 +08:00   ❤️ 1
    如需在新窗口(新标签页)中打开链接,使用 WDTP 的新窗加载语法即可。网址最后、右小括号之前,空格加一个小写的减号。格式:

    [点此访问]( http://underwaySoft.com -)
    SwingCoder
        305
    SwingCoder  
    OP
       2017-03-10 00:44:31 +08:00   ❤️ 1
    @TheKiteRunner 先生,不错的中文名字。谢谢您的宝贵建议。

    WDTP 这个名字比较“简朴”和通用。也省得为每一个语种起一个不同的名字了:)这个软件最大和最有价值的用户群不在中国。下一步如有时间,我会考虑一下如何海外推广的事。希望它能造福全球:)
    SwingCoder
        306
    SwingCoder  
    OP
       2017-03-10 06:12:18 +08:00   ❤️ 1
    •新增:扩展文本标记:[latestPublish]。作用:提取当前文档所在目录下最新创作的前 5 篇文章。

    ◦提取后的结果为无序列表,文本链接。
    ◦将该标记用于项目根目录下的某个文档中,可提取整站的前 5 篇最新文章(包括所有子目录)。
    ◦将该标记用于某个子目录下的某个文档中,可提取该子目录的前 5 篇最新文章(包括其下的所有子目录)。
    ◦该标记在制作网站首页或某个目录的 index 页时比较有用。
    SwingCoder
        307
    SwingCoder  
    OP
       2017-03-10 08:11:55 +08:00   ❤️ 1
    新增:扩展文本标记[latestModify]。作用:提取当前文档所在目录下最新修改的前 5 篇文章。

    - 提取后的结果为无序列表,文本链接。
    - 将该标记用于项目根目录下的某个文档中,可提取整站前 5 篇最新修改的文章(包括所有子目录)。
    - 将该标记用于某个子目录下的某个文档中,可提取该子目录下前 5 篇最新修改的文章(包括其下的所有子目录)。
    - 所提取的最新修改文章中不包含最新创作(发布)的文章(防止二者同时使用时某些文章将重复显示)。
    - 该标记在制作网站首页或某个目录的 index 页时比较有用。
    SwingCoder
        308
    SwingCoder  
    OP
       2017-03-10 10:15:08 +08:00   ❤️ 1
    - 新增:模板文件 blog/page-ad.html 。该模板不显示页面底部的广告图片,其余同 page 模板。
    TheKiteRunner
        309
    TheKiteRunner  
       2017-03-10 10:42:40 +08:00 via Android
    刚上厕所看了土豆的上的五分钟视频之后,我收回海句不好上手的不负责任的说法。软件逻辑很清楚,只是快速使用文档不够清爽,缺乏图示和视频链接。自动分句和合并功能太好了。
    SwingCoder
        310
    SwingCoder  
    OP
       2017-03-10 10:44:18 +08:00   ❤️ 1
    本日新增的两个扩展标记的默认显示效果可参见 UnderwaySoft 官网首页:
    http://underwaysoft.com/index.html
    TheKiteRunner
        311
    TheKiteRunner  
       2017-03-10 17:00:20 +08:00
    您好,很多软件有 copy as picture 的功能,有时候写作过程中也会截图作为内容,请问有没有可能将图片以这种方式插入,即在编辑窗口右键粘贴,此时 wdtp 自动在默认某一文件夹内生成图片,并且在编辑框口中输入![]()这样的代码,感谢。

    用海句听自己手头上的 mp3 ,=, space, enter 之类的小细节真是好。

    对了,我是不是在您官网上留言更好,感觉这儿可能会干扰别人看您的更新部分。
    SwingCoder
        312
    SwingCoder  
    OP
       2017-03-10 20:01:03 +08:00   ❤️ 2
    @TheKiteRunner 先生,谢谢您对海句的肯定与真实体验后的客观评价。这个软件的操作界面也是简约型的设计风格,但内部很复杂,实际功能非常强悍,使用方式也比较灵活。这样能最大限度适合各个层次、各个习得阶段、采用各种外语学习法的用户所需。

    海句的自动切分语句功能是我个人发明并已经申报了专利的一种新型算法,它基于并模拟了人脑对自然语言的切分运作原理。优势很多,但代价也不小,对 CPU 的压力很大。多次改进并优化后,目前的执行效率还算尚可吧(精确性方面有一些损失)。

    抓图后立即粘贴到比较正规的文档中,这个功能看似方便,实际上低效。因为很难一次性抓图满意,或者需要更多处理,比如添加说明、图示、更改图片格式或大小等等。我个人建议用户提前抓图并确保无误后再插入 WDTP 中。

    还有一个思路是给 WDTP 添加必要的图像处理功能,这样就可以考虑更多的插图模式,比如让它本身就具有截图、针对图像的各类常规处理、添加文字、图示等等功能。这方面的工作量并不大,算法方面也有很多成熟的技术可资借鉴、利用。目前我还没有仔细考虑这一块。其他软件都有的此类功能我也不想模仿并添加进来。因为这是一个开源软件,崇尚超前、创新、引领、开放、独具特色与“人无我有”,而不是面面俱到、(功能)多多益善、四平八稳的商业软件。
    SwingCoder
        313
    SwingCoder  
    OP
       2017-03-10 20:58:20 +08:00   ❤️ 1
    V2EX 等网站,我这段时间以来一直保留在浏览器中,相当于在这些网站做“开发直播”了:)这事有挑战性,本身也是一个新鲜的“玩法”。您有问题,可以随时在此回复, UnderwaySoft 网站留言板、 Email 、 GitHub 等等都可以,这些都能保证我及时看到所有人的反馈、讨论、交流,并在第一时间尽快处理。对我来说,这本身也是一个学习与思考的宝贵机会。

    V2EX 的发言采取扣分的策略,可能等我的分数用完之后,就无法再继续发言了。

    说到这里,我得再次感谢您和其他两位朋友对 WDTP 及我个人的大力支持与鼓励。你们的感谢,不但是精神上的支持,更直接增加了我在 V2EX 的分数,这保证了我能多发一些“直播”,多和网友进行几次讨论交流。
    SwingCoder
        314
    SwingCoder  
    OP
       2017-03-10 20:58:43 +08:00   ❤️ 1
    关于本日新增的两个扩展标记(提取最新创作和最新修改的文章),这个功能在常规的 CMS/博客程序中必备,不算新鲜。但是在 WDTP 中,意义不同。主要是:

    1. 使用扩展标记的形式,简化了用户的操作,完全不必和模板打交道。直接在文档中给出该标记,不但可以供访客浏览,更可以自己在本地随时获取最新信息(作为创作时的一种另类的调试技巧)。非常方便。

    2. 配合指定任意文档作为 index 功能,可以直接用撰写文档的常规办法设计出满足需求的网站首页或目录 index 页。甚至可以把这两个标记嵌到表格里,而表格又是采用方便简单的 Markdown 扩展标记。

    等等。
    SwingCoder
        315
    SwingCoder  
    OP
       2017-03-10 23:17:47 +08:00
    关于[keywords], [lastestPublish]等扩展文本标记,另外两个深层次的考虑与意图是:

    1. 对绝大多数作家和创作者来说,稍具篇幅的作品,我个人强烈推荐使用一种更简单、更先进的创作理念。它源自软件工程领域。说是先进,其实在工程领域早就是老生常谈了。这个理念就是:分而治之、自顶向下、多重关联、并发处理。这么做的优势非常明显,更会大幅度提升生产效率并减少差错率。

    体现在 WDTP 中,就是我开发这个软件的核心初衷之一:分章节撰写、编辑、组织、管理、集成您的作品。也就是:将一个大部头作品,按任意您给出的标准或需求进行拆分,而后可以按任意所需进行排列组合。比如:将每一节作为一个独立的文档,以创建时间为整合时的排序标准,等等。这方面, WDTP 做了很大的努力,已经实现了一大批与此直接相关的功能。

    采取“分而治之、并发处理”等方式之后,作者对整个项目的宏观把握与掌控将变得更加高级、抽象和灵活,但同时也增加了一些困难(特别是不熟悉工程理念、抽象思维有所欠缺的人)。此时,有必要用一种更强大自由、更简单直观的方式进行强化(或者说弥补)。再三考虑后,我决定用文本标记这种方式来实现。

    该方式,其实也是编译型计算机语言最强大的一个理念和工具之一:“宏代换”。只不过,这种宏的内部运作更加复杂与精准。说到这里,我得再次感谢 V2EX 上热心网友 TheKiteRunner 先生的需求与建议。他的需求直接催生出 WDTP 的“缩略语”功能(其实就是“宏”思维在应用层面的实现之一)。而最近添加的这几个扩展标记,其实都是“缩略语(宏)”思维方式的变体和具体应用。

    2. 传统的 Markdown 等文本标记语言,只是将初衷与目的锁定(局限)在某一篇独立的文档中。没有任何标记能体现或实现文档之间(跨文档)的联系与正相关性。这种孤立的表达法,我个人并不赞成。世界本来就是多元与互相关联的,更何况文档(特别是出自于同一位作者的所有作品,而不仅仅是一部作品。扩展开来,甚至可以囊括全世界所有健在或离去的作者——如果 WDTP 下一步实现基于云处理的大数据分析和更先进的拓扑协作等功能与模式,这一点将变得极端重要)。

    用什么方式来实现跨文档的关联颇让我费了一番心思。基于 WDTP 的特点,再三斟酌后,我决定:文本标记本身的问题,就用它本身来解决。这种架构模式,我觉得可行。

    用简单直观、方便易用的扩展标记来实现创作与写作等方面更宏大的构思与狂想,不但可行,而且必要。这可能会成为此方面的未来趋势之一(如果引领得当)。目前 WDTP 所给出的,只是最初级的实现(或者说示范)。如果您在此方面有更多好的想法或点子,欢迎不吝指教并提供。
    SwingCoder
        316
    SwingCoder  
    OP
       2017-03-11 05:49:10 +08:00
    •新增:扩展文本标记:[featuredArticle]。作用:提取当前文档所在目录下最新修改的前 5 篇精华文章。
    SwingCoder
        317
    SwingCoder  
    OP
       2017-03-11 08:53:36 +08:00
    •新增:扩展文本标记:[randomArticle]。作用:从整个项目中随机提取 5 篇文章。
    SwingCoder
        318
    SwingCoder  
    OP
       2017-03-11 12:50:50 +08:00
    •新增:扩展文本标记:[allPublish]。作用:提取整个项目的所有文档。
    ◦提取后的结果为无序列表,文本链接,后缀为该文章的创建日期。
    ◦该标记适合于制作“发布记录”页面(类似于 WordPress 等博客程序的“归档”页)。
    SwingCoder
        319
    SwingCoder  
    OP
       2017-03-11 13:40:55 +08:00
    •新增:扩展文本标记:[allModify]。作用:提取整个项目的所有文档(以最后修改日期为排序基准)。
    ◦提取后的结果为无序列表,文本链接,后缀为该文章的最后修改日期。
    ◦该标记适合于制作“更新记录”页面。
    SwingCoder
        320
    SwingCoder  
    OP
       2017-03-11 13:57:36 +08:00
    最近添加的这批跨文档的扩展文本标记,不仅可用于制作页面,更可以在本机写作 /创作时供“调试”所用,可临时性的获取整个项目、某个目录和创作进程中的相关重要信息,一定程度上有助于写作和创作时的宏观把握和整体推进。
    SwingCoder
        321
    SwingCoder  
    OP
       2017-03-12 02:39:47 +08:00
    •小幅度优化生成网页时的执行效率。
    SwingCoder
        322
    SwingCoder  
    OP
       2017-03-12 09:17:38 +08:00
    •改进:文件树中切换文档或目录时确保自动保存当前正在编辑的属性。
    SwingCoder
        323
    SwingCoder  
    OP
       2017-03-12 11:25:00 +08:00
    •改进:确保提取关键词时不出现重复项。
    SwingCoder
        324
    SwingCoder  
    OP
       2017-03-12 12:00:10 +08:00
    •实现:目录与其 index 文档在生成方面的一致性关联。
    SwingCoder
        325
    SwingCoder  
    OP
       2017-03-12 19:08:08 +08:00
    实现:中文字符“#”可作为 Markdown 标题的文本标记。几个“#”代表几级标题。与英文井号作为标题标记的规则一致,中文“#”最后也需要接一个空格,而后是标题文本。
    SwingCoder
        326
    SwingCoder  
    OP
       2017-03-12 21:48:45 +08:00   ❤️ 1
    •改进:程序启动或加载项目后主界面自动最大化。取消每个项目记忆自身主界面的大小及位置的功能。
    SwingCoder
        327
    SwingCoder  
    OP
       2017-03-13 00:23:49 +08:00
    - macOS 平台下,程序界面字体和编辑器默认字体改为“兰亭黑体”。
    SwingCoder
        328
    SwingCoder  
    OP
       2017-03-13 01:01:08 +08:00
    修复:当前项目的所有文档和目录皆没有关键词时,使用[keywords]标记导致程序崩溃的 bug 。
    SwingCoder
        329
    SwingCoder  
    OP
       2017-03-13 01:48:15 +08:00
    如本机尚未安装音频压缩编码器,则启动程序后自动下载并安装。
    macOS 平台下,程序会提示用户双击下载后的编码器文件。双击后就地解压即完成安装。
    SwingCoder
        330
    SwingCoder  
    OP
       2017-03-13 02:44:32 +08:00
    •改进:属性设置后的内部流程,使该功能更加健壮与易用。
    SwingCoder
        331
    SwingCoder  
    OP
       2017-03-13 06:10:13 +08:00
    •修复: macOS 下新建文档、编辑并首次预览时自动跳转到所在目录的 bug 。
    •改进:确保页面跳转后文件树自动选择所对应的文档 /目录。
    •调整: macOS 下各控件的字体大小。
    SwingCoder
        333
    SwingCoder  
    OP
       2017-03-13 11:38:05 +08:00   ❤️ 1
    •实现:文档的“隐身模式”。详情:

    ◦文档属性面板中新增“隐身模式”设置项。
    ◦某篇文档设置为“隐身模式”后,整个网站都看不到该文章的链接。列表页不出现,不参与索引统计,不会成为其它文章的“姊妹”篇(上 /下一篇),不出现在发布记录、更新记录、随机文章、精华文章、全站索引中,不会成为网站菜单项(即使设置为“菜单”也不行)……网站的所有页面中都找不到它。
    ◦隐身文档不参与目录或整个项目的集成输出。
    ◦但是,除了上述之外,隐身文档和正常文档一样,也生成网页(否则就没办法预览了);能够被单独导出( txt 文本文件);能够打到网站数据包中;参与本地的项目备份与数据统计;能够本机搜索,等等。
    ◦如果将隐身文档所生成的网页传到服务器上,和其他网页一样,它可能也会被搜索引擎抓取、收录。如果用户直接输入它的网址,也可以被正常访问(除非服务器端做了不许访问的设置,或者将其放在游客无权访问的目录下)。
    ◦隐身文档可用来制作网站 404 页;临时网页;仅供一小部分人私下访问、同时又不太保密的网页;提前放上去、随时准备公开发布的网页……等等。
    ◦随时可将任意文档设置为“隐身模式”,也随时可以取消该设置。
    SwingCoder
        334
    SwingCoder  
    OP
       2017-03-14 01:14:20 +08:00   ❤️ 1
    文档设置为“隐身模式”后,文件树中该文档的标记为圆圈。
    SwingCoder
        335
    SwingCoder  
    OP
       2017-03-14 02:27:56 +08:00   ❤️ 1
    •修复:跨项目粘贴后标题属性变为文件名的 bug (应该是所复制条目的标题)。
    SwingCoder
        336
    SwingCoder  
    OP
       2017-03-14 06:36:28 +08:00   ❤️ 1
    •取消:双击文件树中的某个文档后,弹出重命名对话框。双击项目新建目录,双击目录新建文档等功能则不变。
    SwingCoder
        337
    SwingCoder  
    OP
       2017-03-14 09:23:11 +08:00
    •改进:切换并选择文档后编辑器滚屏到最顶部,插字符光标位于最开头处。
    SwingCoder
        338
    SwingCoder  
    OP
       2017-03-14 13:42:01 +08:00   ❤️ 1
    •实现:文档大纲及同步跳转功能。详情:

    ◦文档大纲由该文档中的所有二级标题和三级标题组成。
    ◦文件树面板中,鼠标左键单击某个处于选中状态的文档之后,如果该文档有大纲结构,则自动弹出大纲菜单,菜单项为该文档的所有二级标题和三级标题。
    ◦大纲菜单中除二级标题和三级标题之外,另有两个菜单项:“文章开头”和“文章末尾”。
    ◦点击大纲菜单中的菜单项,编辑区和预览区将自动跳转到菜单项所对应的位置(编辑区和预览区同步跳转)。
    ◦如果该文档没有二级标题和三级标题,则点击后不会弹出大纲菜单。
    TheKiteRunner
        339
    TheKiteRunner  
       2017-03-14 15:43:35 +08:00   ❤️ 1
    您工作起来简直是一个 AI ,请注意休息。现在 wdtp 的功能已经非常好了。
    SwingCoder
        340
    SwingCoder  
    OP
       2017-03-14 20:42:05 +08:00   ❤️ 1
    @TheKiteRunner 先生,谢谢您的关心和提醒:)
    SwingCoder
        341
    SwingCoder  
    OP
       2017-03-14 21:23:20 +08:00   ❤️ 1
    •系统菜单中新增“帮助”子菜单,其下增加了“ WDTP 文本标记语法”、“常见问题”等菜单项。
    SwingCoder
        342
    SwingCoder  
    OP
       2017-03-14 22:21:47 +08:00   ❤️ 1
    •将所有消息窗替换为闪屏信息。详情:

    ◦传统的消息窗为临时弹出的模态小窗口,显示一些文本信息。有一个[确定]按钮,点击后关闭。
    ◦闪屏则是一小块半透明黑色区域,显示一些文本信息。 3 秒钟后自动消失。
    ◦如果等不及,可在屏幕的任意位置点一下鼠标。点击后,闪屏立即消失。
    SwingCoder
        343
    SwingCoder  
    OP
       2017-03-15 01:15:56 +08:00   ❤️ 1
    •重构并优化文档大纲功能。不仅文件树面板中点击已选中文档可弹出大纲菜单,还可在编辑模式下,使用右键菜单或快捷键“ Ctrl + J ”来弹出。
    SwingCoder
        344
    SwingCoder  
    OP
       2017-03-15 01:35:46 +08:00   ❤️ 1
    •改进:关闭项目或未加载任何项目时,禁止某些功能和快捷键,以防止有可能导致的程序崩溃。
    SwingCoder
        345
    SwingCoder  
    OP
       2017-03-15 03:41:32 +08:00   ❤️ 1
    •完善:编辑模式下使用选区搜索功能后,如修改了搜索结果,确保可以继续搜索原内容。
    SwingCoder
        346
    SwingCoder  
    OP
       2017-03-15 09:17:07 +08:00   ❤️ 1
    实现:表格对齐方式的扩展文本标记(以列为单位)。详情:
    ◦列对齐方式仅需在表头所在行进行设置。即:表头的某一列设置了对齐方式后,将影响整个表格的该列。
    ◦对齐标记:“(>)”为右对齐,“(^)”为居中,无对齐标记则默认左对齐。
    ◦对齐标记与其后的表头单元格内容之间留不留空格均可,但与其左侧的“|”之间必需留空格。
    ◦第一列要设置对齐方式,在表头行的最左侧(行开头)给出对齐标记。
    ◦其它列要设置对齐方式,在“ | ”后面给出对齐标记。

    比如某个表格的表头行内容为:(>)第一列 | (^)第二列 | 第三列 | (>)第四列
    渲染后的结果:该表格第一列的所有单元格全部右对齐;第二列居中;第三列左对齐(无对齐标记则默认为左对齐);第四列右对齐。
    SwingCoder
        347
    SwingCoder  
    OP
       2017-03-15 12:10:15 +08:00
    实现:表格样式功能(扩展文本标记)。表格样式通过表格文本标记的第二行内容来设置。 WDTP 默认的表格样式为:

    ◦第一行设置表头,可在本行设置任意列的对齐方式。
    ◦第二行内容为“------”(至少 6 个小写减号)代表普通样式,带边框和框线,表头行颜色稍深一些。
    ◦第二行内容为“======”(至少 6 个小写等号)代表隔行换色样式,无边框和框线。
    ◦第二行内容为“//////”(至少 6 个斜杠)代表无样式,无边框和框线,无任何背景色。

    用户可自定义或修改默认的表格样式(项目 /site/add-in/style.css , table 区)。样式表中与表格有关的 class 有:

    • normalTable :普通样式
    • interlacedTable :隔行换色
    • interlacedEven :隔行换色的偶数行
    • noBorderTable :无样式
    SwingCoder
        348
    SwingCoder  
    OP
       2017-03-15 14:10:19 +08:00   ❤️ 1
    WDTP 三种表格的默认渲染与显示效果请参见:
    http://underwaysoft.com/works/wdtp/mdDemo.html
    SwingCoder
        349
    SwingCoder  
    OP
       2017-03-16 03:06:11 +08:00
    •更新: WDTP 默认的配色方案,主界面配色改为黑底白字,文本编辑器配色改为绿底黑字。新用户无需任何设置,下载并启动 WDTP 后,自动使用新的配色方案。老用户请执行:

    ◦点击工具栏“齿轮”图标,系统菜单-界面颜色-重置为默认。
    ◦文本编辑器,右键菜单-编辑器外观设置-重置为默认。
    SwingCoder
        350
    SwingCoder  
    OP
       2017-03-16 04:31:06 +08:00
    •修复:批量替换后有可能出现的消息提示不准确的 bug (实际已经替换,却显示没找到内容等等)。
    SwingCoder
        351
    SwingCoder  
    OP
       2017-03-16 05:09:41 +08:00
    更新:两个 WDTP 扩展文本标记,详情:

    ◦文本(段落)居中由原来的“>|<”改为“(^)”。
    ◦文本(段落)右对齐由原来的“>>>”改为“(>)”。
    ◦新的居中和右对齐标记,全部为小写符号。
    ◦正文中如需对某段文本进行居中和右对齐设置,使用上述标记时,标记之后需预留一个空格,而后是需要设置对齐格式的文本。
    ◦表格中的表头行可设置任意列的对齐方式,标记与上述一致。唯一不同处:表头中给出这两个标记时,后面留不留空格均可。而正文中使用这两个标记,后面必需预留空格。

    此更新将影响所有老用户已有文档中的对齐标记。解决办法:文件树面板中选中项目(根条目),右键菜单-批量替换。将原来的“>|<”替换为"(^)";将原来的“>>>”替换为“(>)”,而后重新生成所有已改变的文档(系统菜单下点击对应的菜单项即可。快捷键: F6 )。
    SwingCoder
        352
    SwingCoder  
    OP
       2017-03-16 07:06:50 +08:00
    •文本编辑器右键菜单新增两个插入项:隔行换色表格,无边框表格。
    SwingCoder
        353
    SwingCoder  
    OP
       2017-03-16 08:32:34 +08:00
    •文本编辑器右键菜单新增插入扩展标记,可插入“最近更新”、“最新发布”、“全站精华”、“随机推荐”、“整站索引”等多个扩展标记。
    SwingCoder
        354
    SwingCoder  
    OP
       2017-03-16 09:35:08 +08:00
    改进:确保提取到足够的随机文章(如果整个项目的文章数量不少于 5 个)。
    SwingCoder
        355
    SwingCoder  
    OP
       2017-03-16 11:48:34 +08:00
    •重构:编辑器模块的两个插入方法,参数统一使用 MenuIndex 枚举值。
    SwingCoder
        356
    SwingCoder  
    OP
       2017-03-16 16:33:01 +08:00   ❤️ 1
    烦了,走人。
    Akkuman
        357
    Akkuman  
       2017-03-16 20:50:23 +08:00 via Android
    @SwingCoder 感觉大家对这个好像都不怎么来评论,可能受众不一样
    TheKiteRunner
        358
    TheKiteRunner  
       2017-03-18 11:43:08 +08:00 via Android
    我有记录的习惯,回头反思一下,心态和表述的确有一些问题。在 V2EX 上回复下面的内容,绝对不是为了泄一时之快,只是尽量忠实地记录事件始末,也希望看到的朋友引以为鉴。

    一个多月前听朋友介绍这个软件,有目录结构,可以同步生成 HTML ,非常符合自己的 markdown 使用需求。开发者从一开始对用户的问题便事无巨细地耐心回复,并且优先实现了我个人提出的一些小需求,让我非常感激。

    在互动过程中,开发者还结合自身二语习得经验给我讲解了可能存在的学习误区,虽然暂时不能理解,但能在如此忙碌的情况下帮助回答用户不想干的问题,的确是一件不容易的事情。与此同时,意识到我的讨论可能会干扰到开发者的直播,于一周前向开发者咨询是否去留言板提建议是否更合适。

    这里不得不提一下:去留言板用的 qq 注册小号,因此名称变成了 2333 。交流的过程中也没有提到自己是从 V2EX 转过去的用户,当时也没多想,现在觉得这样做既给开发者添加了答疑的难度,多少也不光明磊落。

    然后就出现了交流的问题。

    >
    2333
    你好。

    1. 今天打开文档,发现有三个文档的文档名变成了红色。在这个问题发现前,打开 wdtp 报错,"wdtp.exe[7776]中发生了未经处理地 win32 异常。对此异常地实时调试失败,错误为: visual studio 实时调试器:安装的调试器都没有启用实时调试,在 visual studio 中,可以从工具-选项-调试-实时中启用实时调试,有关详细信息,请参见文档索引中地实时调试,错误。"

    2. 项目内部地图片不能拖到文档中,原因是什么呢。

    3. 看到更新记录里有表格格式控制,太感谢您了。为甚么创建了两个新的符号呢,使用>|>>存在问题吗?

    4. 您觉得正则替换有没有必要引入呢,不过感觉 wdtp 在高效编辑上是不可能比上 sublimetext 这种软件地,倒也不必要非得加,反正能用外部编辑器打开。

    5. 看到文档结构图功能支持了,非常期待。

    再次感谢!
    3 月 15 日回复顶转发举报删除

    -(ノ=Д=)ノ┻━┻以此作为分隔符算了

    2333
    问题 1 的补充信息,非常奇怪,我用了一个类似于`autohotkey`的快速启动软件,[phraseexpress]( http://www.phraseexpress.com/)来启动 wdtp 程序,之前没遇过什么问题,今天似乎每次从这里启动都会报错。对了,从系统的“运行”命令运行也没有报错,但运行其它程序都没有问题的。
    20 小时前回复顶转发举报删除
    (ノ=Д=)ノ┻━┻

    2333
    希望段落或者句子支持拖拽移动到其他位置。
    3 月 15 日回复顶转发举报删除
    (ノ=Д=)ノ┻━┻

    SwingCoder
    233 朋友,谢谢您的支持和建议。

    WDTP 找不到所管理的文档或目录时,文件树中对应的条目会变红提醒。任何情况下,不建议用户在 WDTP 之外管理或修改项目文档和目录。程序无法启动或启动后出错,可在编译源码的时候, Debug 模式下查看堆栈调用,不能依赖 Windows 系统的自作主张。发布的二进制程序都是 Release 模式的, Windows 还没有进化到能直接反编译或调试 Release 代码这个阶段。

    项目内部的数据不允许再次加入,为了防止冗余数据和不必要的重命名、重定位等问题。内部使用已有的数据,给出相对路径即可。这一点类似 C 和 C++领域中对资源“使用引用,而不是每次都 new 或深度复制”等常规策略。

    不同类型,或者同类型但“年龄”相差悬殊的软件之间相互比较是没有任何意义的,特别是以 A 之长去攻击或嘲讽 B 之短,诸如此类,很容易引发矛盾和误会,更容易激怒开发者和产品的忠实用户。这不是用户向开发者反馈意见或建议的良好做法。如果您是该软件的作者,这么提问或反馈显然带有挑衅的意味,实则愚蠢。如果是拥趸,完全没必要在这里为其它软件张目或宣传,甚至以此打压 WDTP 或彰显自己的见多识广。很多用户觉得新鲜的东西,对一个从业 30 年,一直走在业内最前沿,各类专业级程序做过一大批的开发者来说,根本引不起任何兴趣。 WDTP 就是 WDTP ,它不是也不模仿世界上任何已有的同类程序。您觉得文本编辑方面 WDTP 不如 A 、 B 或 C ,大可以直接删掉 WDTP ,继续使用 A 、 B 、 C 。或者提交 PR ,给出您的、超越世界上所有同类功能的代码。无论如何,您不会有任何损失。

    衡量一个工具的生产效率,不是过程中的某种便捷或顺手,而是需要综合评价,比如一个项目从立项、动工到最后完成,所用的耗时、所产生的各类成本、结果的品质、维护更新的便捷程度与成本、全过程中用户对项目的把握、理解与控制程度……等等。

    简单的正则搜索 /替换等功能,在我的 todo-list 中。复杂而全面的正则,可能短时间不会去实现。主要的应用场景、用户群和开发方向不同。面对职业程序员,复杂的文本编辑、 IDE 或代码编辑调试,甚至直接编译等等方面,不是也不应该是 WDTP 的主要发展方向。

    正则本身,在我看来,是传统计算机领域内出现的最奇葩和丑陋的技术。没有之一。最典型和有代表性的例子: WDTP 的 Markdown 解析模块,在依托 JUCE 类库的字符串等类的基础上,基本从零打造,没有使用任何正则技术,全部代码不到 1 千行。事实上,还可以精炼。下一步开始代码优化时,这个模块我至少还可以减掉 1/5 的行数。

    拖拽式移动或复制所选文本,这项技术没难度。但是效率并不高。此外,我要兼顾触摸屏和平板用户,包括下一步可能会有的向 iOS 、 Android 等平台下的移植,这方面要统一起来,给出一致的接口和模式,不容易。

    使用第三方工具启动 WDTP 失败,我认为您应该调查并咨询该工具及其开发者。我对此一无所知,无法给出任何意见。

    再次感谢您的建议和支持。
    10 小时前回复顶转发举报

    (ノ=Д=)ノ┻━┻
    听到说我挑衅和愚蠢→_→,虽然的确后半句对了,还是忍不住怼回去了,现在想想挺幼稚的。
    (ノ=Д=)ノ┻━┻

    2333
    感谢您的回复,我是听朋友介绍使用的普通用户,也对 wdtp 的能量和您勤勉的更新非常佩服,如果我先前和以下的措辞有什么不当的地方,希望海涵。不过不得不为自己辩解一下,因为您很明显是被触碰到了自尊心,所以对我的每一条回复都参杂了非常强烈而不客气的感性成分。

    1. 的确,我之前没有仔细看说明,误以为要在文件所在目录下建立图片文件夹之类。 wdtp 不仅仅是面对程序员吧,我只是一个有一点编程需求的 markdown 用户而已,感觉您在用软件工程师的视角打磨这款工具时,可能也要思考一下普通文字书写者的接受程度。

    2. 项目内部图片的问题同上,我后来仔细看文档明白了。

    3. 关于两个软件比较的问题,是我的第 4 个问题,可能也是激发您这位原创者怒气的地方。我挺委屈的,因为很明显我主要想说的是正则等编辑功能是否考虑加入,而不是说 sublimetext 比 wdtp 强。此外,从这一点您就能上升到拥蹙和攻击,我只能说您有点过分了。另外,我非常同意您 wdtp 是什么而不是什么的观点。

    4. 正则和拖拽功能只是附加功能,咨询一下,感谢您的耐心解释。

    5. 您没有回答关于表格对齐控制和文本对齐控制不一致的问题,但我在更新记录中发现您对文本控制标记作出了调整,如果因为我对表格对齐控制的建议带来了一些不便,请见谅。

    6. 启动 wdtp 失败,首先咨询您是因为先前启动 wdtp ,和至今启动其它程序一直没有问题,然后是发现 wdtp 中出现了红色文档,通过现象推测可能是 wdtp 的问题,这里解释一下。

    您先后解决了我关于”文档结构图“和”表格对齐控制“两个小建议,始终对我的问题悉心回复,我最后再次表示真诚的谢意。祝愿 wdtp 越来越好。
    3 小时前回复顶转发举报删除

    (ノ=Д=)ノ┻━┻
    这里的话,虽然我有些生气,但应该不是无脑喷子才对吧。
    (ノ=Д=)ノ┻━┻

    SwingCoder
    233 朋友,原来的居中和靠右标记的设计并不合理。因为当时没有想到加上标点匹配这个功能。特别是居中,用户至少要敲四下键盘。如果是 macOS 用户,还要麻烦,因为苹果键盘没有向右删除的 delete 键。

    文档大纲、表格的对齐与样式等功能,一直都在 todo-list 中,大大小小,这个列表很长,可能还会不断添加细小的方面。 WDTP 目前所实现的功能,还不到设计目标的五分之一。有些需要处理的事务,如果恰好有用户提出来,我斟酌后会把它前移并尽快实现(如果不会对其它方面产生不好预计与把握的坏影响的话)。

    设计表格列的对齐时,纠正了原来的居中与靠右设计不合理的问题。但是,一个人的时间与精力始终有限,先前的标记更新,只能放在这个工作日去完成。还要先解决开机就收到的一堆用户反馈 email 和相对紧急的问题。

    WDTP 目前的下载量已超过 3000 (保守值),远远超出了我的预计。这只是一个开源软件,它严格遵循开源的本质与精神。它的诞生,初衷是写给我自己和陈坪先生,不面对任何其他人。我不懂也没有想过宣传推广,也没有想过别人使用会如何如何。对我来说,多一个人使用多一份麻烦和负担,超过 10 个人,我完全没有能力掌控。

    同样,任何用户以商业软件、大众软件的思维定式和要求来看待 WDTP ,都是我绝对不能接受的。这其中肯定也包括所有 PR 用户。实际上, GitHub 已经有程序员朋友提交了一个,只不过我实在没办法去采纳。

    我不希望有太多的用户使用 UnderwaySoft 的所有软件产品,无论出于什么目的,无论通过什么渠道,无论需要付费注册的,还是开源免费的。这是冷静而理性的心里话,没有任何感情色彩。包括我在网上就这个软件所发布的绝大部分言论与回复,这本身就是工程师的思维与交流方式,而软件工程师正是我目前的职业之一,虽然并不唯一。也因此,我的很多想法和做法,可能和其他大部分程序员或软工完全迥异。

    以上,请所有人周知。谢谢。
    2 小时前回复顶转发举报

    (ノ=Д=)ノ┻━┻
    我有点不服气,当初明明欢迎来着,然后现在说自己不靠这个赚钱不会去迎合用户。我从头到尾没有提钱啊。虽然我穷,也象征性地赞赏了 5 元啊。

    现在想想也没太大问题,别人开发软件给你用你应该感激,不给你用也不用 bibi 。但当时有点受不住,决定终止话题,但语气压不住地有些“讽刺”的意味。
    (ノ=Д=)ノ┻━┻

    2333

    非常遗憾,不过感谢您的坦白。我觉得您对 wdtp 的态度是矛盾的,一方面在凯迪,天涯, ve2x ,和知乎上推广,另一方面在最后留言处说”多一个人多一份负担“。我并没有用其他软件的眼光来看待 wdtp ,只是从一个单纯的用户角度来说出需求,也从来没有要求您一定要回复。您这里写着"发现、分享、交流、问道",并没有说“已满 10 人请勿打扰”,我的回复自认为没有出离这四条标准之处,但的确能够理解您一人开发兼回复 3000 用户的压力。

    事实上,您开发这款耳目一新正中需求的文字工具,抱着如此诚信和勤勉的态度,还百忙之中对用户(尽管是不速之客)的回复,我一直是非常佩服和感激的。

    抱歉一直以来不自觉对您的打扰。希望您最终能够完成 wdtp 的所有目标功能,实现对自己的承诺。
    2 小时前回复顶转发举报删除
    (ノ=Д=)ノ┻━┻

    后来发现开发者很生气,倒数第三楼说了离开 V2EX ,当时还给他点赞,这是发自内心的支持。真心的。

    次日发现网站关了,我有点懵逼,出言不逊不会对伤害到他了吧,心里暗暗自责——从来不想伤害任何人,更何况是他这样努力,而且帮助过我的人。

    于是我准备加 QQ 表示歉意,拒绝。然后看到 github 还在熬夜更新,知道他还在工作说明身体心情都无大碍,心里的石头落地。出于好奇,后来特意到凯迪论坛瞄了一眼
    (ノ=Д=)ノ┻━┻
    我心塞啊,真没这么想。
    (ノ=Д=)ノ┻━┻

    回复 | 引用 | 举报
    回帖人: SwingCoder_2017 | 只看此人 | 不看此人 | 2017/3/17 2:34:21 跟帖回复: 第 315 楼
    有人不知出于什么目的或打算,嘲讽并指责我写一款破软件,还要在凯迪论坛等地方大肆“宣传推广”,打算借此打压 UnderwaySoft 和 WDTP 。我感到可笑。违法,还是犯罪?偷了你,还是抢了你?

    WDTP 本身就是源自凯迪,在这里做开发直播,天经地义!

    (ノ=Д=)ノ┻━┻
    突然感觉自己参演的剧情很狗血。然后网站基本恢复了,这是个好事情。只是,我又被怼了😑😑😑😑😑😑😑😑😑
    (ノ=Д=)ノ┻━┻

    ·可能有些普通用户感到困惑或愤怒,似乎我有排斥
    和拒绝他们的意味。这种观点自私、狭隘而短视。
    WDTP 不是世界上任何一款其它程序,它应该有自
    己的核心理念与独一无二的价值观。和我的所有作
    一样,我只打造精英客户群,绝不无原则地扩大
    作品的受众范围,绝不降低民智,也不打算被低民
    智所影响和绑架。哪怕没有任何人受益或参与,至
    少还有我自己一一这就完全足够。贪婪不应该是每
    一个人的生命核心,后工业时代的纷繁芜杂和群氓
    汹汹已经给人类带来了太多的灾难与混乱。请记
    住,并不是每个人都想做商人,并不是每个人都应
    该把商人的行为理念与人生追求无条件地贯穿到整
    个生命的所有方面。我希望所有人三思!
    ·参与到 WDTP 一线圈子的成员,我希望他们日后都
    成为某些领域及行业的翘楚与引领者,他们一定会
    把通过 WDTP 而领悟到的更先进、更文明的理念
    技术、产品和价值观带向千家万户。当然,也欢迎
    任何用户直接和我联系,时间、精力和病情允许的
    情况下,所有咨询或建议,我一定认真思考并详尽
    答复。唯一的条件,请不要抬杠或阴损,或者站在
    自以为是的真理立场不断产生不恰当的言论与行
    为,而后为了这种不恰当而极力辩解或掩饰,甚或
    迁怒。我个人非常讨厌几乎所有国人的这些与生俱
    来的固有素质,非常讨厌。这个东西,带来的结果
    只有破坏和毁灭,没有任何积极性和创造性。

    以上内容来自: http://underwaysoft.com/works/wdtp/download.html#反馈 bug 、意见和建议

    (ノ=Д=)ノ┻━┻
    宝宝心里苦。
    (ノ=Д=)ノ┻━┻

    总结一下吧:

    1. 互联网交流尽量就事论事,越简单越好,不要下道德或者问题以外的是非判断。
    2. 不要逞一时之快。
    3. 对开发者依然是非常感谢,祝身体健康,软件实现预期。
    SwingCoder
        359
    SwingCoder  
    OP
       2017-03-20 21:57:10 +08:00
    瞅这架势,还要把我拽回来。人走茶不凉, TheKiteRunner 先生这高尚的道德令人钦佩。得~继续玩会。

    这回换个身份。网上混了这么多年,凯迪那大杂烩熏出来的玩意,国安公安挂着号的人物,说话自然戾气,虽极少针对某人,特别是无名之辈,但今天破例屈尊。诸位觉得不适,请自备眼药水。

    网站与访客,开发者与用户,呵,这关系很微妙。都说投鼠忌器,其实想多一层,对 UnderwaySoft 和我来说,所谓的“传统”根本就是个伪命题。时间仓促,水平有限,加上 Kite 先生多次顶贴送钱,丫自己对此义举也是反复强调、高声吟诵,这让我不看僧面看佛面,怎么也得给 V2EX 和 Akkuman 兄面子。这么吧,言简意赅,暂无论据和细节,直接给论点,句句对人,不对事。不管你信不信,有人信——至少 Kite 先生。

    Kite 先生,你是一个具有以下鲜明特点和属性的大天朝汉族人:

    + 相当自以为是,实则浅薄、自卑。
    + 相当不诚实。
    + 相当懒惰、涣散,非常辱没你的母校。尤其对不住你的师宗刘道玉先生。
    + 英文水平,以前和保守来说至少未来 10 年之内都很烂。而中文,与此相当有一拼。甚至不如。
    + 相当自私和虚荣。
    + 太敏感,不像站着尿尿的。
    + 相当有心计,可惜太底层和市井。这绝对与出身和血统有关。
    + 没多少建设和创造能力,但毁灭力和破坏力相当惊人,特别在一个集体、单位和团队中。
    + 严重缺乏现代公民意识和基本的道德观。
    + 确实很穷——至少精神层面。
    + 相当没见过世面。
    + 奉行“没有委屈,创造委屈也要委屈”的可怜虫。
    + 你以为自己是某软件的作者,把愚蠢的帽子戴起来。可惜你不是,即:你离愚蠢至少还有两万千米的距离。

    以上。你无需荣幸。但在你今后的人生之路遇到第一个大麻烦时,希望你能记起 SwingCoder 这个人今日此地曾经代表你的父母做了他们该做而始终没有做到的事:一针见血地警告并训诫过你的整个人生。

    不谢。

    想寻仇也简单。我就在那里,如无重大意外和阻力,我活一天, UnderwaySoft 就在一天。你完全不必担心找不着北——不管你站在阳光下,还是躲在阴影里。

    话留三分,看透笑透不说透,说透不朋友。我将酌情继续配合你的演出、欣赏你的苦涩,或就此了事、任人评说。你若继续装知识分子,那就别停下,你丫绝不可能比我装得更像。我是祖传,有秘方。

    此回复若有违 V2EX 的有关协议与精神,请管理员删帖。

    - 关于 UnderwaySoft 只能最大限度顾及和负责少部分用户的解释,请参见:
    http://underwaysoft.com/writing/blog/aboutGuestBook.html

    - 关于 TheKiteRunner 向 WDTP 捐助一事,看来我做得不够。兹决定如下:我将在该软件的下一个版本中,大张旗鼓或永久性地表彰一下该先生。如果 Kite 先生有勇气掏出实名和具体的单位,而不是再穿一件破马甲,我一定署上。马甲也无妨,只要你觉得体面、合身。表彰方式可能有点另类,但不管咋说,也算创新。敬请期待。该软件的下载地址见下,**欢迎访问**:
    http://underwaysoft.com/works/wdtp/download.html

    谢谢所有读了此帖的网友,浪费您的宝贵时间了,实在不值。深感抱歉。
    TheKiteRunner
        360
    TheKiteRunner  
       2017-03-20 23:06:11 +08:00 via Android
    看了以上回复,您所指出的问题我都承认,浅薄,自卑,虚伪和涣散的问题也一直希望改掉。这件事的发展距离我的初衷越来越远,无论您信不信,在此真诚道歉,从此消失。
    SwingCoder
        361
    SwingCoder  
    OP
       2017-03-21 01:36:24 +08:00
    行了,哪说哪了。我也是金盆洗手,黄土已经埋到头顶的人了。犯不着跟谁死磕。

    但是,还是那句话, Whose mum 都别把自己当根葱。苦逼程序员,不是谁都可以吆五喝六、低头俯视的。我今天掐你,不为我自己。为了这里所有的同行,特别是所有拿命做开源的同行。

    QQ 拒绝你,原因你应该比所有人都清楚,还有脸拿出来晒委屈?知乎网站,我到现在都没注册过账号,何来去彼处推广一说?现在砸人流行拿知乎说事了?

    世道确实变了。
    SwingCoder
        362
    SwingCoder  
    OP
       2017-04-05 03:33:48 +08:00   ❤️ 2
    善始善终吧。既然在这里开了贴,不管如何,还是尽力把事情做到底——至少将开发直播进行到铜板置零的那一刻,希望能撑到 WDTP 1.0 正式版发布。另一个原因:希望尽快将这一页翻过去。

    开始刷屏,这段时间以来的主要更新记录逐条复制如下。
    SwingCoder
        363
    SwingCoder  
    OP
       2017-04-05 03:34:33 +08:00   ❤️ 1
    实现:设置图片的宽度,语法格式:![图片标题](图片地址 = 500)(图片标题可选)。详情请参见:
    http://underwaysoft.com/works/wdtp/faq.html#如何指定图片的宽度?
    SwingCoder
        364
    SwingCoder  
    OP
       2017-04-05 03:35:36 +08:00   ❤️ 1
    实现:图文混排( Hybrid Layout )。该功能非常强大,可实现任意列数和行数、任意图、文的混合排版。可以很轻松地制作出 Portfolio 、照片墙、作品集、产品墙、九宫格日记、报刊版面、双栏多栏、图文环绕、图文并列、棋盘交错等版面样式。默认渲染效果请参见《 WDTP-示例页面》。语法格式:三个小写的波浪号成对匹配,包裹文本区域:

    ```
    ~~~5 ( 5 表示每个区块的间距,值范围: 0~9 。不指定默认为 0 )
    第一行的第一列(内容可为文本,也可为插入的图片或图片链接。下同)
    第一行的第二列
    第一行的第三列
    (空行表示换行)
    第二行的第一列
    第二行的第二列
    第二行的第三列
    ...
    ~~~
    ```
    SwingCoder
        365
    SwingCoder  
    OP
       2017-04-05 03:35:57 +08:00   ❤️ 1
    新增:两个文本标记:(-) 本段文本取消缩进 (+) 本段文本强制缩进。
    SwingCoder
        366
    SwingCoder  
    OP
       2017-04-05 03:36:23 +08:00   ❤️ 1
    新增:注释文本标记。语法格式:至少 6 个斜杠“/”,成对匹配(多了不限),包裹要注释的文本区域。示例:

    ////////////////////
    要注释的文本
    123abc
    这些文本都将注释掉
    ///////////////////

    要注释的内容可以是大段的文本块,也可以是行内的某些文本。

    WDTP 注释与普通 html 注释的差别:
    html 注释内容虽然网页上不显示,但 html 源码文件中能看到。
    WDTP 注释则根本不参与渲染,解析时全部丢弃,所生成的网页中看不到注释内容。
    WDTP 注释写法更简单,文本编辑状态下也“更好看”。
    SwingCoder
        367
    SwingCoder  
    OP
       2017-04-05 03:36:41 +08:00   ❤️ 1
    文本编辑器右键菜单“格式”子菜单下新增“图文混排”、“反缩进”、“强制缩进”、“注释”四个菜单项。
    SwingCoder
        368
    SwingCoder  
    OP
       2017-04-05 03:37:06 +08:00   ❤️ 1
    发布: 0.9.0317 内测版
    SwingCoder
        369
    SwingCoder  
    OP
       2017-04-05 03:37:20 +08:00   ❤️ 1
    简化:插入(拖入)媒体文件的操作。插入图片和插入音频合二为一,系统内部将自动识别并给出相应的文本标记。
    SwingCoder
        370
    SwingCoder  
    OP
       2017-04-05 03:37:36 +08:00   ❤️ 1
    集中审校并更新了 WDTP 的中文文档,目前已近 7 万字。
    SwingCoder
        371
    SwingCoder  
    OP
       2017-04-05 04:39:01 +08:00   ❤️ 1
    改进:清理冗余媒体文件时一并清理 docs 和 site 两套目录下的冗余媒体。
    SwingCoder
        372
    SwingCoder  
    OP
       2017-04-05 04:39:22 +08:00   ❤️ 1
    优化:小幅度提升整站生成的执行效率。
    SwingCoder
        373
    SwingCoder  
    OP
       2017-04-05 04:40:19 +08:00   ❤️ 1
    新增:插入视频的文本标记。语法格式:@[](MP4 视频文件的地址 = 680)。

    - 680 为视频的宽度,可任意指定。宽度指定后,视频画面将自动保持原始宽高比。
    - WDTP 将插入图片、音频和视频这三项功能合而为一了。 Ctrl + M ,或者编辑器右键菜单-插入-图片 /音频 /视频,或者将操作系统文件浏览器中所选择的一到多个文件直接拖入 WDTP 的文本编辑器,系统内部将自动识别并给出每个文件所对应的文本标记。
    - Ctrl + V 智能粘贴时,如果是远程或本地 MP4 文件,将自动识别并插入该视频的文本标记。
    - 鉴于 Safari 、 Chrome 和 IE 这三大主流浏览器对 html 5 视频规范的支持现状,所插入的视频请使用 MP4 压缩编码格式。
    - 默认效果请参见《 WDTP-示例页面·插入视频》
    SwingCoder
        374
    SwingCoder  
    OP
       2017-04-05 04:40:54 +08:00   ❤️ 1
    WDTP 授权协议由 GPL v3 改为 GPL v2
    SwingCoder
        375
    SwingCoder  
    OP
       2017-04-05 04:41:23 +08:00   ❤️ 1
    重构并实现:主界面布局功能。详情:

    - 点击工具栏“<->”图标后不再直接切换“安静 /完整”模式,而是弹出主界面布局菜单。
    - 主界面布局菜单包含三个菜单项:(隐 /现)文件树面板,(隐 /现)属性面板,(切换)安静 /完整模式。
    - 切换安静 /完整模式的快捷键不变,依然是“ Ctrl + D ”。
    - 切换为安静模式后,默认高度为屏幕高度(高度不变),宽度为 710 像素,自动位于屏幕中央。
    - 隐现文件树和属性面板只能在完整模式下进行。隐现后,主界面大小保持不变,屏幕元素自动调整布局。
    SwingCoder
        376
    SwingCoder  
    OP
       2017-04-05 04:41:49 +08:00   ❤️ 1
    重构并优化:搜索功能。工具栏原有的两个搜索框合二为一,功能不变。关联工具栏搜索与文本编辑器内的搜索。
    SwingCoder
        377
    SwingCoder  
    OP
       2017-04-05 04:42:22 +08:00   ❤️ 1
    实现:录音完成后的剪辑功能。详情请参见:
    http://underwaysoft.com/works/wdtp/faq.html
    SwingCoder
        378
    SwingCoder  
    OP
       2017-04-05 04:42:44 +08:00   ❤️ 1
    改进:切换编辑 /预览模式后,确保属性面板区不出现“残影重叠”现象。
    SwingCoder
        379
    SwingCoder  
    OP
       2017-04-05 04:42:58 +08:00   ❤️ 1
    修复:关闭项目或尚未加载任何项目时执行搜索功能导致的程序崩溃。
    SwingCoder
        380
    SwingCoder  
    OP
       2017-04-05 05:19:32 +08:00   ❤️ 1
    新增:返回页顶的文本标记。语法格式:[TOP]。也可在编辑器中通过右键菜单插入。该标记的默认解析结果为一个文本按钮,右对齐,点击后将跳回页顶。显示效果请参见本页每个二级标题的上一行。
    SwingCoder
        381
    SwingCoder  
    OP
       2017-04-05 05:19:55 +08:00   ❤️ 1
    改进:关闭项目或尚未加载任何项目时,使布局菜单中隐现侧边面板的两个菜单项不可用。
    SwingCoder
        382
    SwingCoder  
    OP
       2017-04-05 05:20:12 +08:00   ❤️ 2
    改进:创建项目时,不再直接创建项目文件,而是在所选的磁盘位置创建目录(目录名为给出的名称)并在该目录下自动创建并加载项目文件(文件名同给出的目录名)。
    SwingCoder
        383
    SwingCoder  
    OP
       2017-04-05 05:20:42 +08:00   ❤️ 1
    改进:如果项目中的文档或目录已损坏或在 WDTP 之外删除,确保预览时显示文件 /目录不存在的提示。
    SwingCoder
        384
    SwingCoder  
    OP
       2017-04-05 05:20:58 +08:00   ❤️ 1
    发布: 0.9.0324 内测版
    SwingCoder
        385
    SwingCoder  
    OP
       2017-04-05 05:21:31 +08:00   ❤️ 1
    改进:小幅度提升静页生成的执行效率。
    SwingCoder
        386
    SwingCoder  
    OP
       2017-04-05 05:21:48 +08:00   ❤️ 1
    改进:网站数据打包时确保首先生成所有需要重新生成的文档和目录。
    SwingCoder
        387
    SwingCoder  
    OP
       2017-04-05 05:22:07 +08:00   ❤️ 1
    改进:切换界面语言后确保工具栏按钮的 Tooltip 文字一并改变。
    SwingCoder
        388
    SwingCoder  
    OP
       2017-04-05 05:22:23 +08:00   ❤️ 1
    更新:默认的 book 主题。
    SwingCoder
        389
    SwingCoder  
    OP
       2017-04-05 06:06:09 +08:00   ❤️ 1
    修复:无法拖拽式移动目录(含其下的所有子目录及文档)的 bug 。
    SwingCoder
        390
    SwingCoder  
    OP
       2017-04-05 06:06:24 +08:00   ❤️ 1
    实现:记忆并恢复上次退出或关闭前的文件树缩展状态。
    SwingCoder
        391
    SwingCoder  
    OP
       2017-04-05 06:06:39 +08:00   ❤️ 1
    修复:文件树面板中未选择任何条目时,工具栏搜索有可能崩溃的 bug 。
    SwingCoder
        392
    SwingCoder  
    OP
       2017-04-05 06:06:56 +08:00   ❤️ 1
    改进:小幅度提升内部跳转后一系列处理的执行效率。
    SwingCoder
        393
    SwingCoder  
    OP
       2017-04-05 06:07:21 +08:00   ❤️ 1
    实现:编辑模式下,可使用 Google 、 Bing 、 Wikipedia 搜索所选内容。详情:

    - 调用操作系统默认的浏览器搜索所选内容。
    - 如 WDTP 为英文界面,维基百科自动搜索所选内容的英文解释。如中文界面,则维基百科自动搜索所选内容的中文解释。
    SwingCoder
        394
    SwingCoder  
    OP
       2017-04-05 06:07:35 +08:00   ❤️ 1
    更新:默认样式表。二级有序列表的序号采用英文小写字母(一级有序列表的序号依然是阿拉伯数字)
    SwingCoder
        395
    SwingCoder  
    OP
       2017-04-05 06:07:49 +08:00   ❤️ 1
    改进:代码块支持指定语言名称(兼容传统的 Markdown 代码块标记)。 WDTP 默认会自动检测代码语言并给出最佳的渲染及高亮效果,因此,写不写语言名称都可以。
    SwingCoder
        396
    SwingCoder  
    OP
       2017-04-05 06:08:18 +08:00   ❤️ 1
    实现:批量导入文本文件时,自动识别、解析并处理带有 TOML 和 YAML 格式的文档头( Front Matter )。此功能非常适合批量导入 Hugo 、 Hexo 等其它静页生成器的文档数据。

    WDTP 的批量导入(文件树右键菜单-导入外部数据)有一定的智能,普通的文本文件、带有 TOML 、 YAML 等文档头的文本文件,可以自动识别、转换并处理。用户无需任何额外操作。

    TOML 和 YAML 文档头中的标题、关键词、描述和创建日期将自动转换为 WDTP 中该文档的属性(出现在右侧的属性面板中)。

    转换后的文档内容中将不再包含原有的 Front Matter 。
    SwingCoder
        397
    SwingCoder  
    OP
       2017-04-05 06:08:50 +08:00   ❤️ 1
    新增:文本标记语法:批注。详情请参见:
    http://underwaysoft.com/works/wdtp/syntaxMark.html#批注
    SwingCoder
        398
    SwingCoder  
    OP
       2017-04-05 08:53:38 +08:00
    改进: Markdown 二级标题和三级标题的解析,以适应标题作为文字型链接的应用场景。
    SwingCoder
        399
    SwingCoder  
    OP
       2017-04-05 08:54:51 +08:00
    改进:文档大纲功能,以适应标题作为文字型链接的应用场景。
    SwingCoder
        400
    SwingCoder  
    OP
       2017-04-05 08:55:32 +08:00
    修复: Windows 平台下,导入某些文本文档后显示乱码的 bug 。
    1  2  3  4  5  6  7  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3137 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 39ms · UTC 12:41 · PVG 20:41 · LAX 05:41 · JFK 08:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.