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

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

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

    谢谢 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
        1
    SwingCoder  
    OP
       2017-02-04 23:42:40 +08:00
    # WDTP-主要更新记录

    - 2017.02.04
    - 编辑器右键菜单,插入,新增“插入图注 /表注”
    - 插入图片或表格时一并插入图注和表注行
    - Markdown 解析新增语法:图注和表注,语法格式“^^ 注解文字”

    - 2017.02.03
    - 发布 macOS 和 Windows 两个平台下的内测版( 0.9.170201 )
    SwingCoder
        2
    SwingCoder  
    OP
       2017-02-04 23:47:04 +08:00
    WDTP 这个软件是严格遵循 GPL v3 协议的开源免费程序,不是收费的商业软件。

    希望管理员和版主高抬贵手,不要当成广告删掉了。

    如有不妥,敬请批评或编辑!

    谢谢!
    Akkuman
        3
    Akkuman  
       2017-02-04 23:49:29 +08:00 via Android
    希望尽快上 github😁
    SwingCoder
        4
    SwingCoder  
    OP
       2017-02-04 23:56:29 +08:00
    谢谢 Akkuman 兄的鼓励和建议,这个项目目前的 github 地址是:
    https://github.com/LegendRhine/WDTP

    我现在还没想好,可能过一段时间将它单独拉出来,或者放在另一个账户下,或者拉到国内,这样方便大家访问和 PR 。
    我最近会尽快规整代码,完善注释和开发文档,便于各位同行、老师审阅代码并无私贡献。
    SwingCoder
        5
    SwingCoder  
    OP
       2017-02-05 02:08:00 +08:00
    • 系统菜单新增:重置 /修复系统默认的模板及样式表
    SwingCoder
        6
    SwingCoder  
    OP
       2017-02-05 06:42:56 +08:00
    • 实现:项目数据的打包与解包
    SwingCoder
        7
    SwingCoder  
    OP
       2017-02-05 11:57:13 +08:00
    文档内搜索所选内容添加快捷键。 F3 :下一个, Shift + F3 :上一个
    Akkuman
        8
    Akkuman  
       2017-02-05 11:57:25 +08:00 via Android
    可以写个接口文档,让别人比较好开发静态博客的主题模板
    Akkuman
        9
    Akkuman  
       2017-02-05 12:01:24 +08:00 via Android
    还有,这个好像没有文章的分类和标签,我觉得可以借鉴小书匠的那种模式
    SwingCoder
        10
    SwingCoder  
    OP
       2017-02-05 12:05:31 +08:00
    好的。谢谢 Akkuman 兄的建议。目前可用的模板标签还不多,开发文档(目前可能只相当于一个备注)也比较简略,里面给出了可用的模板标签。直接将标签写在 html 文件中,该文件即可成为模板。很简单,不需要调用接口。还可以参考系统自带的模板文件,位于 themes 文件夹下。

    文档:
    https://github.com/LegendRhine/WDTP/blob/master/Source/memo.md
    SwingCoder
        11
    SwingCoder  
    OP
       2017-02-05 12:09:59 +08:00
    Akkuman 兄,文章分类标签的应用场景和效果能简单说一下吗?


    目前的{{blogList}}和{{bookList}}是智能化的,哪个目录的 index 调用它,它就自动生成哪个目录下的 list (递归算法,含其下所有子目录及所有子目录所包含的文档)
    Akkuman
        12
    Akkuman  
       2017-02-06 00:50:14 +08:00 via Android
    文章分类和标签可以作为博客的标签归档和分类归档,效果可以在博客上显示标签云啊之类的。就类似于 hugo 里面的
    -----
    tilte : xxx
    categories : [xxx,xxx]
    tags : [xxx,xxx]
    -----
    这是 toml 格式的
    还有 yaml 格式比如
    -----
    title : xxx
    categories :
    - xxx
    - xxx
    tags :
    -xxx
    -xxx
    -----
    类似于这样,可以设置为模板,当文档被创建直接按格式生成,然后叫用户自己改,类似于 Hugo 的方式
    然后这就可以用来生成博客更多样化了
    Akkuman
        13
    Akkuman  
       2017-02-06 00:52:05 +08:00 via Android   ❤️ 1
    我才发现我上面发的那段没有格式,反正我表达的就是这种目录和标签定义的方式,当然,如果你用目录来作为分类也一样,不过我觉得标签还是是个可以加上的功能
    SwingCoder
        14
    SwingCoder  
    OP
       2017-02-06 02:15:20 +08:00
    谢谢 Akkuman 兄,我基本明白了:)我尝试解释一下:

    WDTP 没有采用这种形式的“标签”(网页项)定义和提取方式,或者说思路与理念与目前的静态生成器不一样。

    一是我认为应该最大限度保证原始 MD 文档的简洁性与可读性,不增加任何冗余信息。

    二是原始文档所对应的网页,其 head 区等等里面的网页项( meta ),在 WDTP 的属性面板中体现和设置(包括目录的。目录对应 index )。其中,标题(默认原始文档的第一行)、描述(默认原始文档的非空第二段),关键字,作者,页面标题等等信息,都是自动提取的,用户也可以手工 pickup 、输入或编辑修改等等。预览文档或目录时,软件实时生成对应的 html ,该 html 由三者构成:原始文档的内容与 md 标记(有无均可),属性面板中的设置信息,模板文件。

    也就是说,每个 item 的属性信息记录在项目文档中(.wdtp ),这些信息与原始文档是完全分离的。
    SwingCoder
        15
    SwingCoder  
    OP
       2017-02-06 02:22:41 +08:00
    传统的博客 tags , WDTP 没有考虑。“关键字”这个设置项,对应该网页 meta 中的 Keywords. 这个目前也并没有作为 WDTP 文档生成、检索和分类的依据。

    按正规的学术文章,每篇文章都应该有关键字、简述、索引和引用。每个领域的关键字有严格规定和使用范围的。引用这一块,可以用内链或外链的思路解决,很简单(此处的引用,不同于 MD 标记中的引用)。关键字这一块,我有更多的思考,下一步可能体现在具体的功能里。我认为目前博客、网站、网络文章等等,用 tags (关键字)作为主要分类依据,是不科学的,也低效,很混乱。随意性太大,不够规范,也极易导致混淆。
    SwingCoder
        16
    SwingCoder  
    OP
       2017-02-06 04:29:08 +08:00
    WDTP 2 月 6 日更新:

    - 改进:将所选目录(含其下所有文档及所有子目录的文档)导出为一个独立的 HTML 文件,以供格式转换、生成各种类型的电子文档、外部浏览器中打印、打印预览或在其他外部编辑器中进行更精细的处理(比如进行出版印刷前的专业排版)。此功能非常适合作家、剧作家写作完成后的“章节集成”、“全书集成”,也非常适合使用 WDTP 做笔记的用户(可定期将全部笔记或某个分类下的所有笔记“装订成册”),也适合于将个人博客或网站的内容(全部或某个分类)集中“装订成册”。
    - 文档内容在该 HTML 中出现的顺序依照当前文件树的排序。
    - 所导出的 HTML ,默认使用本项目当前所用的样式表。
    SwingCoder
        17
    SwingCoder  
    OP
       2017-02-06 06:50:16 +08:00
    • 实现:网站数据打包。不仅可将整站数据打包,还可将任意目录的网站数据进行打包。打包结果为 zip 压缩文档。此功能既可用于网站备份(注意,不是项目文档数据的备份),也可用来传播或分享网站数据,还可大大提高发布效率(比如:某些 FTP 服务器允许用户远程解压上传后的 zip ,或者提供网页版的在线文件管理界面,可在此界面中上传并解压 zip 文档。这样比在 FTP 软件中上传大量的零星文件要快得多)。高级用户,还可利用此功能实现:同一套数据、应用不同的模板后,多站点同时发布。

    ◦ 数据打包之前,无需重新生成网页。程序会自动生成所选目录(或整站)所有需要重新生成的网站数据。没有改动或未受影响者保持不变,从而最大限度提高程序的运行效率并节约用户的等待时间。
    SwingCoder
        18
    SwingCoder  
    OP
       2017-02-06 08:11:33 +08:00
    改进:预览模式下的滚屏行为(同一文档切换编辑 /预览模式后,不再每次都滚到最顶部,而是记忆并保持切换前的位置)。
    SwingCoder
        19
    SwingCoder  
    OP
       2017-02-06 09:59:00 +08:00
    实现:左侧的文件树面板中双击某个条目后,如果该条目是项目的根条目,则创建新文件夹;如果该条目是文件夹,则在该文件夹下创建新文档;如果该条目是文档,则可重命名之。
    loser
        20
    loser  
       2017-02-06 14:48:57 +08:00   ❤️ 1
    感觉很赞的样子,对了 mac 版下载链接失效啦
    这个: http://www.underwaysoft.com/works/wdtp/wdtp-osx.zip
    SwingCoder
        21
    SwingCoder  
    OP
       2017-02-06 18:10:45 +08:00
    谢谢:)链接修复了:)
    您也可以在这个地址下载: https://github.com/LegendRhine/WDTP/tree/master/Application/Release
    SwingCoder
        22
    SwingCoder  
    OP
       2017-02-06 20:37:23 +08:00
    - 实现:内链功能。即:插入本项目内部某个文章 /目录的链接。操作流程:要插入哪个文章 /目录的链接,文件树面板中鼠标右键点击该条目,弹出的菜单中点击“ Get Path (获取路径)”。而后返回要插入该链接的文档,编辑模式下,鼠标右键单击,弹出的菜单中点击“ Insert - Internal Link (插入 - 内部链接)”。程序内部自动将该链接转换为正确的相对路径,并以 Markdown 格式的语法将链接文本插入光标所在位置。可在多个文档中重复插入该链接,每次均正确转换其相对路径。
    SwingCoder
        23
    SwingCoder  
    OP
       2017-02-07 00:56:23 +08:00
    改进:加大文本编辑器的行间距。
    修复:中英文混杂时,文本编辑器断行不正常的 Bug 。
    SwingCoder
        24
    SwingCoder  
    OP
       2017-02-07 01:29:39 +08:00
    发布: 0.9.170207 (内测版)。下载页面: http://underwaysoft.com/works/wdtp/download.html
    SwingCoder
        25
    SwingCoder  
    OP
       2017-02-07 03:33:14 +08:00
    编辑模式下新增三个快捷键。这三个快捷键在写作和编辑时非常有用,能大大提高效率。

    Ctrl + 回车键:在当前段落之前插入一个新段落。
    Ctrl + C :未选择任何文本时,复制光标所位于的整个段落。
    Ctrl + X :未选择任何文本时,剪切光标所位于的整个段落。

    注: Windows 下的 Ctrl 相当于 macOS 下的 cmd 花键。
    SwingCoder
        26
    SwingCoder  
    OP
       2017-02-07 04:19:12 +08:00
    更新了《 WDTP 快速上手》。请点此浏览:
    http://underwaysoft.com/works/wdtp/gettingStarted.html
    SwingCoder
        27
    SwingCoder  
    OP
       2017-02-07 09:09:12 +08:00
    为方便各位朋友和老师及时反馈宝贵意见,我弄了个简单的留言板(使用了“友言”评论系统)。敬请访问、留言。
    http://underwaysoft.com/guestBook.html
    SwingCoder
        28
    SwingCoder  
    OP
       2017-02-07 13:35:56 +08:00
    • 实现:网站菜单的排序。 WDTP 中, 2 级以内的任意子目录和文档均可设置为网站菜单。位于根目录下的一级子目录或文档为“主菜单”, 2 级则为鼠标指向主菜单时自动弹出的下拉列表(菜单项,对应磁盘目录与文档的包含结构)。主菜单和菜单项均可点击。排序规则为:同级目录的 index.html 与文档对应的 html 相比,目录在前;同级目录之间和同级文档之间相比,创建时间早的在前。
    xvx
        29
    xvx  
       2017-02-07 15:57:09 +08:00 via iPhone   ❤️ 1
    收藏。已下载试用,很不错,一直想找这样的 UI 工具都没找到,竟然在 V2 撞上了。
    单文件便携版本好评。 UI 颜值也 OK 。
    目前来说还稍显简陋,相信 LZ 会做得更好的~~
    SwingCoder
        30
    SwingCoder  
    OP
       2017-02-07 20:24:33 +08:00
    @xvx 谢谢下载试用。欢迎多提宝贵意见:)
    SwingCoder
        31
    SwingCoder  
    OP
       2017-02-08 00:11:09 +08:00
    WDTP 已被小众软件网收纳和推荐,谢谢他们:)
    https://faxian.appinn.com/4208
    SwingCoder
        32
    SwingCoder  
    OP
       2017-02-08 06:02:07 +08:00
    • 改进:整个项目或某个目录进行网站数据压缩打包时,可指定要打包的数据类型。比如:仅打包所有网页文件,或者仅打包媒体数据,或者打包所有数据。该功能可进一步提高工作效率(很多时候,编辑修改网页,或者新增了不含媒体数据的网页后,无需重复打包并发布已有的媒体数据)。
    TheKiteRunner
        33
    TheKiteRunner  
       2017-02-08 14:49:18 +08:00   ❤️ 1
    感谢!
    TheKiteRunner
        34
    TheKiteRunner  
       2017-02-08 15:00:16 +08:00
    0.9.170207 (内测版)在 win8.1 64 位系统使用 bug ,无法新建项目。准确地说是,最后一步“保存”无法点击。
    SwingCoder
        35
    SwingCoder  
    OP
       2017-02-08 15:10:27 +08:00   ❤️ 1
    @TheKiteRunner 感谢反馈宝贵意见:)

    我刚才试了一下,没办法重现这个问题,新建项目每次都是成功的。我的 Windows 系统是 10 ,现在手头上没有 8 。我已经发给了使用 Win 8 的朋友,请他们测试一下。

    是保存文件对话框中的 [保存] 按钮无法点击吗?您看一下,是否有磁盘或目录的写权限?
    文件名命名,如果有非法字符,比如路径字符等等, [保存] 按钮也会暗显。

    用操作系统的文件浏览器,能在磁盘的某个位置新建目录吗?而后 WDTP 新建项目时,保存到这个目录下试试:)
    如果问题依然没有解决,有时间的话,欢迎加我的 QQ , 843775 。 QQ 可以截图或发送屏幕录像,这样很方便确定问题的原因:)
    TheKiteRunner
        36
    TheKiteRunner  
       2017-02-08 15:18:02 +08:00
    @SwingCoder 感谢及时回复。

    1 是保存按钮无法点击,磁盘和目录读写权限都没问题,切换文件夹也不行。
    2 文件夹名称没有问题,纯字母都不行
    3 可以新建目录,保存依然实效。
    4 QQ 已加。
    SwingCoder
        37
    SwingCoder  
    OP
       2017-02-08 17:04:45 +08:00   ❤️ 1
    • 改进:使用操作系统默认的文件打开 /保存对话框。一是使不同平台下的用户有更熟悉的使用体验,二是解决某些 Windows 版本下新建项目时 [保存] 按钮可能暗显的问题。
    SwingCoder
        38
    SwingCoder  
    OP
       2017-02-08 19:03:27 +08:00   ❤️ 1
    增加:博客模板 index 页的文档列表项中增加最后修改日期。此修改将影响所有用户。解决方案:升级本程序后,执行系统菜单下的“重置 /修复系统模板”,而后重新生成整站。
    SwingCoder
        39
    SwingCoder  
    OP
       2017-02-09 01:12:41 +08:00   ❤️ 1
    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 :插入作者和当前日期
    以上快捷键,可在编辑器右键菜单对应的菜单项中看到。我们不建议用户专门记忆这些快捷键,用多了自然就记住了:)
    SwingCoder
        40
    SwingCoder  
    OP
       2017-02-09 01:15:16 +08:00
    - 截至目前, WDTP 共有三种输入 Markdown 标记的方式:
    - 直接输入 MD 标记的文本
    - 使用编辑器的右键菜单
    - 使用快捷键(**注**:这些快捷键并未涵盖 WDTP 所支持的所有 MD 标记)
    SwingCoder
        41
    SwingCoder  
    OP
       2017-02-09 04:47:58 +08:00
    - 新增:模板标签{{contentDesc}}。模板制作者可利用此提取文档或目录的描述,默认为 html 的引用格式。
    - 更新:默认的 blog 模板。此更新将影响所有使用 blog 默认模板的用户。解决方案:升级本程序后,执行系统菜单下的“重置 /修复系统模板”,而后重新生成整站。
    SwingCoder
        42
    SwingCoder  
    OP
       2017-02-09 05:09:28 +08:00
    • 改进:项目数据打包备份时, zip 文件名中给出备份的时间戳信息。
    SwingCoder
        43
    SwingCoder  
    OP
       2017-02-09 07:07:41 +08:00
    新增:文本高亮的 Markdown 语法( WDTP 所自定义)。格式“~~需要高亮突出的文本~~,显示效果:需要高亮突出的文本。快捷键: Ctrl + U 。编辑器右键菜单中也有对应的菜单项。

    注:传统 Markdown 语法中的“~~”为文字删除线标记——就我个人的体验来说,阅读网络文章时遇到一段文本被划上删除线总是感觉很诡异,不清楚这段文字到底还有没有阅读价值,或者揣摩作者来这么一手究竟何意(好在这种情况极少)。如果作者将该文作为多次修改、甚至数易其稿的写作艰辛之痛苦展示,可能目的达到了,但是这对读者来说肯定不是良好的阅读体验,也不公平。

    删除线有时也有用,比如:原价 xxxx 元,现价 xxx 元……或者还有其他一些必须使用的场景,此时可使用 html 标签中的< s />
    SwingCoder
        44
    SwingCoder  
    OP
       2017-02-09 07:12:01 +08:00
    勘个误:“~~”删除线格式并非 Markdown 的“正统”语法,属于 MD “方言”的一种。
    TheKiteRunner
        45
    TheKiteRunner  
       2017-02-09 09:31:48 +08:00   ❤️ 1
    说到使用快捷键,似乎有个比较尴尬的问题。许多笔记软件所支持的快捷键是不同的,比如 ctrl+K ,在印象笔记和 typora 中是插入链接,在此是插入代码块,不过 markdown pad 与您的软件一致。不知道开发者在设计快捷键的时候是否会考虑同类软件的快捷键布置,以减小软件迁移成本。
    SwingCoder
        46
    SwingCoder  
    OP
       2017-02-09 11:30:25 +08:00   ❤️ 1
    Kite 先生,您好。快捷键这些,基本都是随意定义的:)确保不与软件中已有的发生冲突,能 F 就 F ,能首字母就尽量首字母,能字母就不数字,能 cmd 就不 shift ,能两个一组就不搞三个……大概就是这个原则吧:)字母键一共就那么三排,除了约定俗成的那几个,剩下的,翻来覆去,肯定会和其他软件定义的一致,或者完全不一致,呵呵。

    可以搞一个对话框,罗列所有的快捷键,除了没必要更改的之外,其他允许用户编辑、自定义、启动时自动加载、导入导出等等……大伙如果需要,我就加上这个功能吧:)不过, WDTP 就越来越庞杂,越来越让用户“用软件、玩电脑”,而不是“出活、享受生活”了,并且有些脱离它的核心操作理念和开发初衷:)

    Markdown 等文本编辑,包括大多数内容样式分离这种文字处理和编辑方式,大量使用格式的场景很少……印刷和出版级的专业性要求, Markdown 和 Html 都不能胜任。它们的目的和应用场景不是这个方面:)
    SwingCoder
        47
    SwingCoder  
    OP
       2017-02-09 11:56:36 +08:00   ❤️ 1
    另外,我个人的肤浅之见,除了格式,一份文档的最终呈现,样式这个方面更加重要。 Markdown 借助于 html ,配合强大的 css (静态)、 js (动态),基本可以做到接近完美。

    样式方面,我曾考虑过为 WDTP 写一个可视化的 css 编辑器和模板制作 /修改器(或者单独执行的通用型 CSS 编辑 /生成器),采用所设即所得这个模式。由于太费时间,精力不够,就搁置了:)
    TheKiteRunner
        48
    TheKiteRunner  
       2017-02-09 13:56:49 +08:00
    嗯,理解并支持。
    hezhile
        49
    hezhile  
       2017-02-09 14:13:15 +08:00   ❤️ 1
    已经下载试用了,果然很强大。

    貌似发现一个小 bug :
    在修改 UI color 之后,再选择恢复到默认的颜色,程序会有几分钟的没有响应。
    系统是 win 10 pro 64 位
    TheKiteRunner
        50
    TheKiteRunner  
       2017-02-09 15:43:52 +08:00
    # WDTP 使用反馈

    **编辑**

    - 选中内容,希望键入` ,\*,\*\* 等键将对应内容自动包围
    - tab 键
    - 选中内容, tab 键增加缩进,避免手打缩进
    - 此时如果上级内容为段落编号, tab 键产生下一层级
    - 特殊符号没有自动去掉\,如\*等
    - enter 键自动延续段落编号
    - 链接
    - 插入链接前若剪贴板有内容,剪贴板内容进入小括号
    - 插入链接前若选中文字,文字进入方括号
    - 插入[长链接]( https://zh.wikipedia.org/w/index.php?title=Help:%E6%95%B0%E5%AD%A6%E5%85%AC%E5%BC%8F&oldid=34379459)这种情况,为节约书写空间,可否考虑隐藏长链接部分(或以省略号形式实现)?
    - 编辑时可否 *一定程度* 上 **突出各部分** ,如 **加粗**、*斜体*和 [长链接]( https://zh.wikipedia.org/w/index.php?title=Help:%E6%95%B0%E5%AD%A6%E5%85%AC%E5%BC%8F&oldid=34379459)?

    ![](D:\Git_Repository\ScreenShots\WDTP\sublime-MarkdownEditing 效果.png)
    ^^ 上图:风景照片(本行是自动插入的图注)

    其它:

    - 新打开程序,没有自动出现在当前窗口前面,而是后台
    - ctrl + c 复制时常失效,右键点选正常
    - 存在这样的情况,光标在预览视图激活时,无法 ctrl+s 切换到编辑视图,光标在工具栏激活后,才正常
    TheKiteRunner
        51
    TheKiteRunner  
       2017-02-09 15:44:27 +08:00
    上面的图注没有修改。
    anyforever
        52
    anyforever  
       2017-02-09 16:01:46 +08:00   ❤️ 1
    很快就能扔掉 WP 了。:)
    arens
        53
    arens  
       2017-02-09 16:47:23 +08:00   ❤️ 1
    好东西,支持楼主已 Star
    SwingCoder
        54
    SwingCoder  
    OP
       2017-02-09 21:01:14 +08:00
    @hezhile 谢谢您的宝贵意见。稍后我仔细跟一下,解决后及时列出更新记录:)这个功能的代码:
    https://github.com/LegendRhine/WDTP/blob/master/Source/TopToolBar.cpp
    Line 666~685
    该函数执行后,会回调本类的 paint()方法。都发生在主线程上。
    SwingCoder
        55
    SwingCoder  
    OP
       2017-02-09 21:15:45 +08:00
    @TheKiteRunner 谢谢您的宝贵意见。 Markdown 字符转义,上一个工作日补上去了,可能还有遗漏,稍后全面测试这一块的时候再完善一下吧:
    https://github.com/LegendRhine/WDTP/commit/1c3f9fbbadd88df715a7612e06ee769dd6418abf

    编辑器的智能判断和“人性化”方面,这个是一个很细微的琐碎活,程序的主要功能完成并稳定后,我会一点点加进去。

    启动后没有位于最前,一般和操作系统的当前状态有关系,似乎 Windows 10 之前的系统,经常出现这个问题。可以强制程序最前,但是这个做法有点“太霸道”了:)稍后我跟一下代码,应该有更好的思路。主要是这个问题在我的本地机上很难重现。

    Ctrl + C 复制,还没有发现过这个问题,稍后我仔细试一下。

    Windows 平台下,预览模块调用的系统浏览器内核,默认使用 IE 11 。 Windows 这方面很霸道,用了它的东西后,它就会吃掉用户的键盘事件,而后自己消化了。这个目前没有很好的解决办法,一个比较 Ugly 的做法是专门针对 Windows 写一段代码……或者用户将焦点转移到程序的其他地方,或者触摸 /点击“大眼睛”,等等。
    SwingCoder
        56
    SwingCoder  
    OP
       2017-02-09 21:16:59 +08:00
    @anyforever @arens 谢谢二位的支持和鼓励:)
    SwingCoder
        57
    SwingCoder  
    OP
       2017-02-09 21:20:54 +08:00
    V2EX 的回复,最新的在最下面,各个回复之间区别也不太明显,浏览起来有点不顺手,我还需要进一步习惯:)
    大家有问题或 bug 提交,也可以到 github 上,直接针对具体的代码问题更欢迎:)

    目前 WDTP 已开放 PR 提交和问题讨论:)项目地址:
    https://github.com/LegendRhine/WDTP

    谢谢关注!
    SwingCoder
        58
    SwingCoder  
    OP
       2017-02-09 22:47:36 +08:00   ❤️ 1
    关于 TheKiteRunner 先生提出的编辑器的智能判断和“人性化”等方面的建议,我刚才考虑了一下。还有一个比较“传统”的思路是使用“配置机制”,类似微软 VS 的做法,可以设置、编辑、导入和导出自定义的配置和操作习惯——因为各个平台下的用户习惯都不一样,有些熟悉了某些编辑工具的用户,也会有比较本能的思维定式和操作习惯。采用某种固定的配置,强制意味太浓,也可能会让一大批用户感到困惑或感觉功能冗余。

    使用“配置机制”最大的问题是又回到了主程序不断弹出对话框或小窗口这个烂泥潭中,窗口套窗口,使用体验很差。而且会让一款主打简洁的开源软件变得很“商业”,这一点与 Markdown 的核心原则也是冲突的,会让整个程序显得风格不统一,设计思想混乱。

    另一个比较常规的做法就是用户根据已有代码,自行 HACK 或写出适合自己的配置模式。这一点也是开源软件最鼓励的。

    比较先进的做法,目前来说是采用基于某些相对成熟的 AI 算法中的“机器学习、策略选择”。也就是:让软件学习并适应用户的习惯,而后在不同的场景和情况下,自动选择最合适的策略。这个方面,我也正在不断学习和领会,之前做的一些商业项目中也有应用,如有可能,希望尽快转化为开源项目的生产力吧:)

    关于编辑器“人性化”方面的问题,有时间我再仔细考虑一下。欢迎大家讨论交流,批评指正。
    SwingCoder
        59
    SwingCoder  
    OP
       2017-02-09 23:51:29 +08:00
    @hezhile 朋友,刚才我逐行调试并仔细测试了 UI color 设置及恢复默认这两处,也委托两三位朋友做了黑盒测试,均正常,无法重现您的问题。

    您能详细告知该问题出现的“上下文”或“背景情况”吗?或者您再试试看?
    SwingCoder
        60
    SwingCoder  
    OP
       2017-02-10 00:05:29 +08:00
    - 改进:确保 Windows 平台下本程序启动后显示在桌面上并位于最前(强占焦点)。
    SwingCoder
        61
    SwingCoder  
    OP
       2017-02-10 01:06:11 +08:00
    @TheKiteRunner 先生, Ctrl + C ,无论是复制所选内容,还是不选任何文本状态下复制当前整个段落,我这里测试都正常,无法重现您说的问题。能详细告知该问题出现的“上下文”或“背景情况”吗?或者您再试试看?

    预览模式下,如果预览区获取或霸占了键盘焦点, Ctrl + S 快捷键切换模式失效的问题,上面做了回复,不再赘言:)
    SwingCoder
        62
    SwingCoder  
    OP
       2017-02-10 02:20:42 +08:00   ❤️ 1
    • 实现: Markdown 标记输入时的自动包裹功能。详解:
    ◦ 如果当前选择了文本,则输入*,`,~等 Markdown 标记之后,该标记成对出现并自动包裹所选文本。
    ◦ 输入一个~即可实现双~包裹
    ◦ 输入`和~之后,插字符光标自动位于结束标记之后,便于用户继续输入
    ◦ 第一次输入*之后,自动选择原有文本,等待用户输入第二个*。第二个*输入之后,插字符光标自动位于结束标记之后,便于用户继续输入
    SwingCoder
        63
    SwingCoder  
    OP
       2017-02-10 04:25:56 +08:00   ❤️ 1
    • 实现:编辑模式,按下 tab 键后缩进所有已选择的文本(四个空格,以段落为单位集体缩进)。如果此时未选择任何文本,并且上一行是一级列表,则按下 tab 键之后,自动给出同类型二级列表的 Markdown 标记(注意,以上一行为判断依据,而非上一段)。

    • 实现:编辑模式,按下 Shift+tab 后,如果未选择任何文本并且当前行有缩进(无论是否 4 个空格),均取消当前行的缩进(注意:此时以插字符所在行为判断依据,而非本段)。按下 Shift + tab 后,如果当前有所选文本,则取消所有已选择文本的缩进(无论是否 4 个空格)。此时,以段落为单位集体“反缩进”。以上情况,如缩进大于 4 个空格,则最多反缩进 4 个空格(正常写作而非展示代码的情况下, 5 个空格以上的缩进应该极罕见,在 Markdown 中也没什么意义)。

    • 注:当前有所选内容并且按下 tab 或 Shift +tab 后,完成上述功能的同时,取消选择任何文本。
    SwingCoder
        64
    SwingCoder  
    OP
       2017-02-10 05:48:17 +08:00
    改进:上一段是一级列表时,下一段按 TAB 键之后,是否自动给出同类型二级列表的判断标准由行改为段
    SwingCoder
        65
    SwingCoder  
    OP
       2017-02-10 06:39:14 +08:00   ❤️ 1
    • 实现:编辑模式下回车键的多功能。如果当前段落是一级或二级列表,按下回车键之后,插字符开启下一段,该段落自动成为与上一段平级的列表。此时如果不输入任何内容,再次按下回车键,则该段落自动成为二级列表(如果上一段是一级列表的话)。如还是不输入任何内容,第三次按下回车键,则清除本段的列表标记,插字符自动开启并进入下一段。更详细的解释:

    ◦ 某一段是一级列表,如果下一段也是一级列表,直接回车。
    ◦ 某一段是一级列表,如果要在它下面增加二级列表,本段输入完成后,连续两次回车。
    ◦ 某一段是二级列表,如果下一段也是二级列表,直接回车。
    ◦ 某一段是二级列表,如果取消列表输入,开启正常段落,不输入任何内容,直接回车。
    SwingCoder
        66
    SwingCoder  
    OP
       2017-02-10 06:51:46 +08:00   ❤️ 1
    补充:回车键的行为,不仅作用于段尾,也适用于断行操作。回车断行后,插字符后面的内容成为下一段,该段自动继承上一段的列表级别。不仅如此,再次回车,可将该段降级(如果是一级列表的话)。再次回车(或先前已是二级列表,此时就无需第三次回车了),则使其成为正常段落。
    hezhile
        67
    hezhile  
       2017-02-10 09:21:32 +08:00
    @SwingCoder 你好,我刚才试了好多次,再也没有出现程序没有响应的情况,可能是昨天下午还有别的软件同时运行造成的影响。
    TheKiteRunner
        68
    TheKiteRunner  
       2017-02-10 09:51:15 +08:00
    @SwingCoder sublimetext 有 default setting 和 user setting , user setting 默认为空,用户修改后差异部分以用户为准。

    工作效率真高,而且还能在其中梳理出思路,并且流利表达,赞一个。

    预览视图界面太窄,浏览时效果不好;写作窗口建议设置全屏无干扰模式;文章目录功能有无必要考虑?
    SwingCoder
        69
    SwingCoder  
    OP
       2017-02-10 10:42:45 +08:00   ❤️ 1
    •实现:智能粘贴(使用快捷键 Ctrl + V 时)。详情:

    ◦如果系统剪贴板中的数据是项目内部链接(文件树-右键菜单-Get Path 所获取的),则插入该文档或目录 Markdown 格式的内部链接
    ◦如果系统剪贴板中的数据是一个合法的 http/https 网址,则插入此网址 Markdown 格式的链接。此时,如果未选择任何文本,则给出“ Click here (点此访问)”的链接文字,并自动选择之,以便用户输入改写。如果插入网址前选择了文本,则所选文本成为链接文字。
    ◦如果系统剪贴板中的数据是网络图片的地址,则插入显示此图片的 Markdown 格式(此图片不拉回本地)。
    ◦以上粘贴,仅适用于快捷键 Ctrl + V 。如使用右键菜单中的“ Paste ”菜单命令,则不做任何处理(某些时候需要“原始粘贴”)。
    SwingCoder
        70
    SwingCoder  
    OP
       2017-02-10 11:34:11 +08:00
    @hezhile 谢谢反馈情况。祝您使用愉快:)
    SwingCoder
        71
    SwingCoder  
    OP
       2017-02-10 11:59:46 +08:00
    @TheKiteRunner 先生,我没有用过 sublimetext 这个软件,不清楚它的设置机制和操作模式。如果是编辑器配置方面的,我又考虑了一下,采用 VS 那种机制,或者窗口套窗口那种做法,让用户玩软件,而不是享受工具的便利,不行。主要是理念、技术和实现方式都太老了。比较先进和理想的做法还是机器学习与策略选择,我打算慢慢给 WDTP 加入一些这方面的东西。已经开始了:)

    可以分别调整文件树、编辑 /预览区、设置区这三块的宽度,每个之间都是用 layoutBar 隔开的。触摸的话可能有点不方便(过段时间可能调整一下),鼠标容易调整。预览区的“页宽”,是 css 控制的,可以自行修改。欢迎各位朋友制作并分享模板:)做好后,直接导出即可(系统菜单-导出当前模板集)。

    可以加一个功能:自动熟悉并记忆用户所调整的窗口大小、位置、三个主要工作区的宽度,等等。稍后我琢磨一下:)

    全屏后的写作模式( WDTP 中是安静模式),如果用户的计算机屏幕是宽屏横放的,体验不太好,行太长了。有一篇较新的 GUI 设计和人机工程方面的论文给出过一个理论,大致是:计算机写作 /阅读,比较合适且科学的做法(大屏横放为例):屏幕一半的 70~80%区域,竖直页面, 4:3 或 5:3 比例。页面位于计算机桌面上,最喜爱的静态桌面背景,无其他窗口或元素干扰。职业作家或技术作家,或者需要不时查阅资料,或者有需要再开一个文档做笔记、备注的用户,可另开一个大小基本一致的程序窗口。二者并列。任何时候,不要同时看到或操作 3 个以上的窗口。

    WDTP 允许多个实例同时运行,也就是:同时打开两个项目进行编辑处理。分别进入安静模式,左右并列(横屏的前提下)。

    您说的“文章目录功能”指的是什么?能否具体告知?

    谢谢!
    SwingCoder
        72
    SwingCoder  
    OP
       2017-02-10 12:30:25 +08:00
    补:彻底无干扰的安静模式,在 macOS 下可以很方便地做到,有一点小技巧,算是 WDTP 隐含的一个小 cake 吧:)

    启动软件后,最大化,在系统新开的独立桌面上跑,而后 cmd + D 或点击顶部工具栏的“双向箭头”图标……:)
    TheKiteRunner
        73
    TheKiteRunner  
       2017-02-10 13:44:29 +08:00   ❤️ 1
    1 get√
    2 文章目录是指 TOC ,即一片长文的标题链接集。
    dimlau
        74
    dimlau  
       2017-02-10 14:10:01 +08:00
    大约是上世纪,有个 java 程序,全平台,静态内容生成器, ftp 发布……
    SwingCoder
        75
    SwingCoder  
    OP
       2017-02-10 14:25:51 +08:00
    @TheKiteRunner 先生在 50 楼所提出的建议中,能解决的全部解决了。有些实现可能还不够完美,有些也可能有 bug ,欢迎各位同行和老师审阅、调试并纠错:)

    50 楼的建议中,有两个不是无法实现或不想实现,而是不能实现、不敢实现:)这两个问题是: WDTP 的文本编辑器中,将一段文本或部分文本隐藏、缩略,以及编辑器中实现文字外观、样式的不统一或单独设置。如果按这个思路, WDTP 就又跳到 WYSIWYG 这个烂坑里了,整个 WDTP 的设计、架构、开发与维护,完告失败,动机和目的也变得可疑与不纯粹了…… Markdown 的发明人要是知道,肯定会骂我:)

    还有技术方面的原因,要将目前的纯文本编辑器改成基本可用的 WYSIWYG 编辑器,如果不使用其他基于 GPL 或 MIT 的跨平台开源库,整个底层得全部改写,代码量将百倍以上。压缩后的二进制发布文件也将超过经典的 1.44M …… WYSIWYG 这一块,可能全球最顶尖的开源者凑到一块,也未必能干过微软搞 Word 的那帮人……

    这事目前不敢想……:)先搁置,好不好?:)

    再次感谢!
    SwingCoder
        76
    SwingCoder  
    OP
       2017-02-10 14:29:18 +08:00
    @TheKiteRunner 好主意!我就知道您一定会提出这个:)

    这个事已经在 memo list 中了,我再往前拉它一把,很快就会轮到它:)
    SwingCoder
        77
    SwingCoder  
    OP
       2017-02-10 14:40:05 +08:00
    @dimlau 是的。以前和目前都有很多基于静态的网页制作器、生成器,大部分都有 FTP 功能。未来也会有更多出色的同类产品:)到时候,人们的选择会更丰富:)

    我前几年还在用一款很老的建站软件, iw 这个项目的英文站点就是用它做的(很丑陋:)):
    http://www.underwaysoft.com/en/index-en.html

    这个软件的名字叫 Freeway ,当年 mac 下很火的一款静态建站器,我感觉比很久之前 Windows 平台下微软的 FrontPage 好用。它们的功能都很强大,很多到最后我也没完全搞明白:)用了 Freeway 很久之后,我想买一份 pro 版的,去访问它的官网。然后……然后就没有然后了,这个公司倒闭了……
    TheKiteRunner
        78
    TheKiteRunner  
       2017-02-10 15:21:44 +08:00 via Android
    @SwingCoder 您按既定计划来,不着急,我这种爱折腾工具的人不够纯粹,不能代表目标用户群,可能还是得回归写作内容本身。
    SwingCoder
        79
    SwingCoder  
    OP
       2017-02-10 15:53:03 +08:00   ❤️ 1
    @TheKiteRunner 不,您的建议十足珍贵和及时,从产品方来说,遇到了非常有价值的黄金用户。我感到很幸运:)

    我刚才一直琢磨如何用最简洁的办法,不用所见所得来实现您的需求(长链接缩略,不影响写作体验。确实,很长的链接看起来很头疼,非常影响编辑时的页面观感)。

    我一定把这个事给您解决了,请放心:)
    SwingCoder
        80
    SwingCoder  
    OP
       2017-02-10 16:50:53 +08:00   ❤️ 1
    这个工作日又干了 18.5 个小时了,实在撑不住了。下去眯一会。
    稍后上来继续玩命:)
    dimlau
        81
    dimlau  
       2017-02-10 18:19:29 +08:00
    @SwingCoder 我说的这个和你说的 freeway 或者 frontpage 之类的可视化网页编辑软件不一样,而是,基本上就和你现在在做的事情一样的一种存在。

    我 07 年写过一篇介绍:
    http://kaix.in/daddy/old/blog/2007/02/thingamablog.html
    dimlau
        82
    dimlau  
       2017-02-10 18:23:08 +08:00
    当然,新的创造会更先进,加入了更先进的特性,但是大概老物身上也有值得借鉴之处。
    祝好!

    另,感觉介绍文章里界面展示基本是缺失的,看上去有些枯燥
    TheKiteRunner
        83
    TheKiteRunner  
       2017-02-10 19:55:27 +08:00
    @SwingCoder 注意休息和运动。***加粗并斜体***,个人需求,不知道是否有价值;另外,渲染上,感觉删除线和高亮且加粗还是可以支持一下的,图片见 QQ 。
    TheKiteRunner
        84
    TheKiteRunner  
       2017-02-10 21:15:30 +08:00
    @TheKiteRunner @SwingCoder

    - 发现是支持的。但 html 标记毕竟较长,建议快捷触发,比如说输入 u+tab 就产生<u></u>,如果已有选中内容,将其包裹。不过这一部分我是可以用我的 PhraseExpress 来快捷出发的,所以不考虑也没关系。

    - 脚注是不是不支持啊。
    SwingCoder
        85
    SwingCoder  
    OP
       2017-02-10 23:47:02 +08:00
    @dimlau 先生,谢谢您的推荐和文章:)我仔细地看了。我没有用过 thingamablog 这个软件,但相信一定非常优秀:)
    更难得的是,一款优秀的软件被优秀的用户所发现、使用并向更多有需求的人们推荐介绍。这是一段佳话。

    我想, thingamablog 的开发者非常幸运,能得到您的青睐和撰文。对一款产品的设计、开发和维护者来说,这是最高的荣誉。我很羡慕他(们):)
    SwingCoder
        86
    SwingCoder  
    OP
       2017-02-10 23:57:49 +08:00
    @TheKiteRunner 先生,好的。您的建议总是很及时:)我昨天刚刚把脚注这个事加到 todo list 中:)

    加粗同时斜体,当时写 Markdown 解析这个模块时考虑了。我个人觉得不是非常必要,页面中有这种样式的文字,看起来怪怪的,显得过分突出,不搭调。而且也不是“正统” Markdown 所定义的标准,于是就没有写这个标记的解析。实际上说来说去,还是 Markdown 这种标记语法的目的、应用场景与核心思路的问题。它不是追求专业级排版格式和样式的文本标记语言,在方便和简约的同时,肯定会牺牲并放弃一些这样那样的需求。也就是说,有些需求的解决方案,不能依赖于 Markdown 本身……

    WDTP 的文本编辑器中可以直接输入 html 、 css 和 js ,能实现很丰富的效果。有些不常用但有需要的应用场景,可以用这三者解决,可以做到基本逼近完美:)
    SwingCoder
        87
    SwingCoder  
    OP
       2017-02-11 03:25:08 +08:00
    - 改进: Ctrl + 回车在当前段落之前插入新段落,不再自动添加隔行,而是紧邻当前段落。即: Ctrl + 回车相当于正常回车键的反功能。正常回车是在下面插入新行,而 Ctrl + 回车则在上面插入新行。所不同的: Ctrl + 回车是以当前段落为单位,在段落之前插入新行,而不是在当前行之前插入新行。
    SwingCoder
        88
    SwingCoder  
    OP
       2017-02-11 03:33:10 +08:00
    • 实现:每个项目都可以记忆用户调好的窗口大小及屏幕位置并自动使用之。 WDTP 允许操作系统同时运行多个程序实例,这样可以同时打开并处理多个项目,每个项目都可以有自己的大小和位置。如果同时打开的项目较多, WDTP 会智能调整每个实例,在使用其自身所记忆的位置的同时,如可能有完全重叠或覆盖,则自动微调。微调结果并不影响该项目已经熟悉并记忆的原有窗口大小及位置。

    以上这些都是程序内部运作的,用户无需设置或进行任何这方面的操作。甚至完全可以不知道有此功能。
    SwingCoder
        89
    SwingCoder  
    OP
       2017-02-11 04:13:00 +08:00
    • 新增:非标准 Markdown 语法标记:加粗同时斜体。语法格式:***要加粗并倾斜的文字***,效果:要加粗并倾斜的文字。因该格式不常用,故编辑器中没有定义其快捷键,也没有定义其智能化输入模式(比如选定文本后按三下*号完成自动包裹这个功能)。使用方法:可手工输入,也可利用编辑器右键菜单中的“ Format (格式)”菜单项来完成(当前有选择的文本时,该文本自动被三星包裹;如没有选择任何文本,则给出六个星,插字符光标自动定位到需要输入文本的六个星的最中间)。
    SwingCoder
        90
    SwingCoder  
    OP
       2017-02-11 07:50:38 +08:00
    实现:缩略语功能。详解如下:

    编辑文档时,部分内容可能太“碍眼”,不想时时看到;或者无需经常改动(防止误编辑);或者由于非阅读性字符太多、太难看而破坏编辑时版面的美感(比如包含非标字符的 UTF-8 转义或复杂参数的较长网址、代码等等),此时可用一个自定义的短语来代替这部分内容。

    文档属性面板,“ Abbrev (缩略语)”专司其职。格式为:“缩略语(空格)所代表的原始内容”。一行一个,行与行之间可使用空行隔开,以便区别。
    设置好缩略语之后,编辑模式下,可将要缩略显示的内容删掉,代之以刚刚自定义的缩略语。

    原始内容虽然在编辑模式下看不到了(看到的是缩略语),但预览时会出现。即:原始的文档中虽然已经找不到这些内容,但预览并生成网页时,这些内容还是会出现(此时网页中不出现这些内容的缩略语)。

    也可以用这个思路理解:编辑模式下,缩略语用来替代它所代表的原始内容;而预览并生成的网页中,原始内容反过来再替代它所对应的缩略语。
    可在文档属性面板的“ Abbrev (缩略语)”中增删改已有的缩略语,即改即生效(预览模式下按 F5 刷新当前页面即可)。

    注 1 :如果某个文档定义的缩略语太多,可能会出现缩略语重复的情况(此时它们所代表的原始内容有可能一致,也可能不一致)。此时,软件不进行校验、提醒或干扰,以第一个为准。

    注 2 :一个文档中,同一个缩略语可多次出现。所有出现的地方,在预览或生成网页时全部替换为该缩略语所代表的原始内容。

    注 3 :所定义的缩略语,请不要和文档中已有的语句或短语相同,否则,这些内容也将成为缩略语(原因见注 2 )。此外,为了便于阅读、编辑和理解,可使用自己习惯的前缀和后缀来包裹缩略语。比如:“_长链 01_”、“@该处不宜改动 @”、“ AbbrevOfSomeFunnyThings ”……等等。

    注 4 :缩略语所代表的原始内容中可包含 Markdown 或任意 html 、 css 、 js 等标记 /代码。这些标记和代码在预览或生成网页时和普通内容一样,将被正确识别和处理。这一点在编辑高级功能的文档时非常实用(比如动态网页或格式与样式非常丰富的个性化 /专业性文档 /网页,编辑时不破坏版面的可读性与美观度)。还可以用该功能实现 Code snippets 展示……玩法很多,敬请摸索:)

    注 5 :采用缩略语后,无论整个项目的搜索替换,还是当前文档的搜索替换,都无法再针对缩略前的原始内容进行。这一点我稍后将予以改进。

    注 6 :下一步有可能拓展缩略语功能。目前先把大体的架构与功能拿出来。欢迎提供宝贵意见和建议。
    SwingCoder
        91
    SwingCoder  
    OP
       2017-02-11 07:53:39 +08:00
    @TheKiteRunner 先生,长链接碍眼的问题解决了:)可能思路和模式还不够理想,有点笨拙。欢迎提出宝贵意见和建议:)
    SwingCoder
        92
    SwingCoder  
    OP
       2017-02-11 08:26:33 +08:00
    发布: WDTP 0.9.170211 (内测版)

    主要更新记录: http://underwaysoft.com/works/wdtp/updateList.html
    下载页: http://underwaysoft.com/works/wdtp/download.html
    TheKiteRunner
        93
    TheKiteRunner  
       2017-02-11 08:50:48 +08:00 via Android
    效率好高,加油,希望注意多运动。
    TheKiteRunner
        94
    TheKiteRunner  
       2017-02-11 10:53:50 +08:00
    1 首行缩进两个字符其实有点问题。首先,这只是中文正文段落里的一种格式,不宜用于英文,也不应该用在所有的正文和标题上。

    2 链接渲染之后,没有突出显示,比如“ Windows 下载”不仔细看都找不到。

    3 功能逐渐完善之后,界面可以考虑优化一下,比如考虑几个模板选项。如果担心会增大文件体积,可以考虑另置模板下载链接,需要的话从中下载。我将 typora 的 css 文件及字体文件复制进来,显示效果有优化,只是跟侧边栏的配合不太好。可以考虑参考其它优秀界面的模板。
    SwingCoder
        95
    SwingCoder  
    OP
       2017-02-11 10:56:22 +08:00
    发布: 0.9.170211 Windows 32 位版本

    使用 32 位 Windows 操作系统的用户请确保本机已安装了 IE 11 浏览器和微软雅黑字体。
    SwingCoder
        96
    SwingCoder  
    OP
       2017-02-11 11:20:33 +08:00   ❤️ 1
    @TheKiteRunner 先生,网页渲染结果,也就是格式和样式,是通过 css 和模板来完成的,这个和程序本身没有关系。 css 中的 text indent 属性,很难兼顾中英混排或纯中 /纯英这种网页格式的文档需求。我对前端技术不是非常了解,但一个传统的解决思路是判断字符集属性,而后调用不同的 css 。您可以根据自己的需要来改。

    网页前端这一块,我的想法是和目前流行的其他控制台静态生成器程序保持一致,交给用户和贡献者来负责。我个人非常希望能有更多的网页设计师、前端工程师和行业高手参与进来。按照 html 5 标准中新增的东西,包括这个标准以后肯定会不断丰富的拓展与规范,加上 js 和 css ,前端这一块可以实现很惊人的功能和效果,甚至完全可以写一个功能更强大的网页版 WDTP ,或其他各种类型的 app ,帮助人们更好的工作、学习、生活、娱乐。

    说实话,这一块也确实不是程序母体维护者能做到的。太多专业领域,太多专业需求了,没办法兼顾。很多领域的专业常识我也不具备,没办法把握客户的真正所需。

    WDTP 的模板制作和应用非常简单,这个模块是完全开放的。模板中可调用的标签,可在开发文档中找到。这个肯定不够,如有需要,请告诉我,我觉得可行或想法不错,就一定及时定义新的 Tag ,写出这部分代码,而后加到开发文档中供更多人使用。

    开发文档:
    https://github.com/LegendRhine/WDTP/blob/master/Source/memo.md

    WDTP 开发的初衷有四大核心需求。基本功能和架构完善后,我想拿第一大块开刀:面向职业文艺家、小说家、剧作家和技术类作家的新一代创作利器。这个我本人也有强烈需求,平时也要用到。希望一切顺利:)
    SwingCoder
        97
    SwingCoder  
    OP
       2017-02-11 22:15:45 +08:00
    • 修复: Markdown 行内代码解析与`转义方面的一个 bug
    SwingCoder
        98
    SwingCoder  
    OP
       2017-02-11 22:29:02 +08:00
    • 智能包裹标记添加两个快捷键: Ctrl + 8 (等同于 Shift + 8 ), Ctrl + `(等同于 Shift + `)。这个快捷键用于解决编辑器处于非“自然状态”下的键盘快捷键输入不被识别与认可的问题(比如处于中文输入状态时)
    ◦ 注: cmd + `在 macOS 安装了某些特定中文输入法的前提下不可用
    SwingCoder
        99
    SwingCoder  
    OP
       2017-02-12 02:47:46 +08:00
    - 更新:软件自带模板的样式表。如打算用之,请先导出或备份您当前所修改并使用的样式表,而后点击系统菜单中的“ Reset/Repair Default Templates (重置 /修复系统模板)”。
    - 本次更新的样式表,主要是对页面正文区的文字链接添加下虚线,使之醒目,起到引导用户去点击的作用。该样式对使用 WDTP 建站或建博客的用户可能有用。
    TheKiteRunner
        100
    TheKiteRunner  
       2017-02-12 06:13:23 +08:00 via Android
    @SwingCoder 加油
    1  2  3  4  5  6  7  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3426 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 00:52 · PVG 08:52 · LAX 16:52 · JFK 19:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.