谢谢 Akkuman 和 CoderZh 两位朋友的介绍和推荐,让我得知了 V2EX 这个尊重原创,热爱分享与创造的好网站。我想在此和大家分享一款我刚刚开发完成的软件(目前是内测版,正在不断完善更新),如有不妥,请管理员批评指正并谅解。
WDTP 是一款“三合一”的另类写作工具与桌面 GUI 单机性质的静态网站(博客)生成器,这个项目的主页是:
http://underwaysoft.com/works/wdtp/index.html
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
上述网址自WDTP第一个内测版发布后陆续做了修改,部分已失效。目前最新的有效网址是:
欢迎下载试用并提出宝贵建议,欢迎反馈意见及BUG(包括网站BUG)。所有BUG一经确认,我将放下手头上一切事务,以最高优先级去解决。
101
SwingCoder OP 新增:非标准 Markdown 语法标记:“[TOC]”(目录)。可手工输入该标记,也可编辑器右键菜单插入。注:仅提取当前文档中的二级和三级标题。
一并更新了默认的样式表。 |
102
SwingCoder OP @TheKiteRunner 谢谢您:)
|
103
SwingCoder OP 完善:目录提取与生成时包含一级标题。单独生成文档目录时,目录中不含本文标题(默认为本文档第一行的一级标题)。但是,整个项目或某个目录下的文档集中输出为一个大的 html 时(文档集成),则自动提取每个文档的标题作为一级目录,每个文档中的二级和三级标题自动提取为二级和三级目录。此时,该文档原有的目录将不再单独提取并生成。
|
104
SwingCoder OP 修复:文档集成时首篇标题没有被正确解析,未提取为一级目录的 bug 。
|
105
SwingCoder OP 实现:将所选文档导出为一个本地文本文件。可利用这一点,将 WDTP 作为一款方便的文本编辑器、 Markdown 编辑器来使用(特别在 macOS 平台下)。
|
106
SwingCoder OP 新增:快捷键“ Ctrl + F ”:激活文档搜索输入框。激活后,直接输入要搜索的关键字而后回车即可。
|
107
SwingCoder OP • 新增 Markdown 语法:插入尾注(语法格式: [^注释内容] )。所插入的尾注自动编号,注释内容以列表的形式显示在本文档的最后[1]。可连续插入并列尾注。
◦ 注 1 :整个项目或某个目录下的文档集成输出时,所有文档的尾注统一编号,注释内容位于集成后的文档最后。这一点,对技术作家和文学评论家、文艺批评家来说非常方便(比如一章作为一个目录,这样可以按章输出,每一章的最后是本章的参考文献、正文注释、索引等)。 ◦ 注 2 :根据 html 网页文档的特点, WDTP 使用“尾注”的同时舍弃了“脚注”这一标准。按行业规范,尾注有“温哥华体系(顺序编码)”与“哈弗体系(作者、译著、出版年制)”, WDTP 采用了前者(这种体系相对自由和随意一些,而后者主要用于列举参考文献,其格式比较严格)。 ◦ 注 3 :尾注内容支持 Markdown 标记语法,但尾注中不可再嵌套尾注。 |
108
TheKiteRunner 2017-02-13 11:33:40 +08:00
1 当 enter 键产生下一段落符号,按 tab 键应该直接变为下级编号。目前的情况是,要选中该段落再 tab 才可以。
2 空格, tab ,回车等符号可选显示。 |
109
SwingCoder OP • 实现:批量导入本地磁盘中的文档( UTF-8 格式的文本文档或网页文件)。
|
110
SwingCoder OP @TheKiteRunner 先生。如果当前段落是有序列表或无序列表,第一次回车,下一段自动是平级列表,再次回车,变成次级列表。也等于是:连续按两下回车,下一段就是次级列表。不输入内容,第三次回车,取消列表标记,直接输入下一个正文段落。这不是更简单吗?:)
第二个问题 QQ 中已交流,此处不再重复了。谢谢:) |
111
SwingCoder OP 实现:本地磁盘中的一个或多个文件用鼠标或手势拖放到文件树面板之后,自动导入所拖放文件中所有文本格式的文档。文档导入的具体位置(所在目录)将随着鼠标或手势的上下移动而实时提示。
|
112
TheKiteRunner 2017-02-13 17:01:48 +08:00
查找功能不知道是否会考虑加强,目前查不全,没有高亮查到的项目。
|
113
SwingCoder OP @TheKiteRunner 先生,目前除了 Abbreviation 部分不能采用常规办法搜索之外,其余文档内容都可以通过两个搜索框和两组快捷键来搜索( F3 和 Shift + F3 是搜索选区内容,文档内)。搜索算法都是很成熟的古老技术了,应该不会有任何遗漏。
每个搜到的关键词,自动虚下划线醒目提示。全局搜索的第一处,默认不高亮,这个有特殊考虑,也防止键盘或手势误触,删改了高亮选择的部分。一般,全局搜索,很少改写(改写可通过替换实现),首次或更换文档搜到,第一处最好不要加高亮。以后的搜索,因为大脑已经有了警觉性记忆,而且首个已经找到,为防止眼睛遗漏,从本文档内第二个搜到的关键字开始加亮,同样,还是给出醒目的下划线。更换文档,重复以上。 网页 meta 属性这部分内容,也不在常规搜索之列,我觉得没必要搜索这部分内容,也不好展示搜索结果。 meta 的来源应该全部从文档中提取。文档修改后,重新提取或手工增删改。 网站本身的搜索功能,这个可以用 js 技术来实现,比如按 Doxygen 那种。 Doxygen 这个项目也是开源的,可以参考它这一块的算法。用模板,或者干脆用 WDTP 来写都行。事实上, WDTP 就是一个很方便的用于前端开发的简易版 IDE …… |
114
TheKiteRunner 2017-02-13 19:25:22 +08:00
@SwingCoder
感谢回复。 1 虚线很不明显,几乎看不到。截图见 QQ 。 2 搜索框应该是全局搜索,但似乎默认只找到文件里的第一次出现的内容。同一文档中, f3 倒是很有效。左侧边栏全局搜索框和右侧边栏的文档内搜索框没有提示。 3 WDTP “多个文档的集中组织与结构化管理”,如果不能匹配查找,统计查找次数,替换,是不是有点遗憾? 4 对我个人而言,并没有最终放到网站的需求。只是组织和管理多个文档的写作内容,导出为 html ,最终放到印象笔记或者 kindle 里面。写作过程中,有跨文档的查找需求。您最后的解释,似乎并没有完全包含以下两条的内容。 “多年以来,在写稍微正规一点的东西时, Pages 或 Word 之类的巨无霸实在让人心累,可能也不是太必要。即便这些巨无霸,对多个文档的集中组织与结构化管理也不好使,更别说那些纯文本的编辑器和网页端基于各类脚本写就的编辑器; 平时读书、学习或做笔记时,除了我个人开发的一款同类软件, Evernote 等臃肿不堪的云笔记已经很难让我有愉悦的使用体验;” 5 当然,这个软件的开发肯定是为了实现您自身的构想,这可能还是得回到您最初的 idea 上去了。 |
115
SwingCoder OP @TheKiteRunner 先生,第一个问题已经做了修正。
第二个问题: WDTP 的搜索是三种类型不同的搜索,这一点与常规软件不同。这三种各有适应的场景,但是核心思想都是效率和简洁。第一种是全局搜索,以文档为单位(如果首个找到后不切换为文档搜索的话)。第二种是文档内常规搜索。第三种是写作或编辑时文档内搜索选区。 The next: 搜索方面进行统计,我觉得不是很必要,属于功能冗余。它不能从本质上提高生产力和生产效率,只是让用户将更多时间花在软件操作上。项目中的数据是随时变化的,没必要时刻掌握某个关键字的出现频率。也就是,我希望用户更多将精力用于内容的生产与管理,而不是对内容本身的统计。这个看其他用户的需求吧,如果大多数人都需要,我可能会加上这个功能。 一些特殊目的的统计和分析,以及基于分析而给出的宏观提示或智能建议,这个功能我正在考虑。现在还没有特别好的想法。算法实现方面,也需要仔细斟酌。实际上,主要还是专业领域侧重点方面的问题没有想好。 4. WDTP 侧重于本机管理和备份数据。远程备份、数据同步、历史记录和版本管理等方面,我建议使用 git 或个人专属的 FTP 服务器。尤其是 git ,它的功能和便利处更强大。如此一来,如果不是非常特殊的目的,或者不走所见所得这个计算机数字化文本处理的“路子”, WDTP 完全可以取代其他云笔记——至少对我来说是这样。 |
116
SwingCoder OP |
117
SwingCoder OP 补充两点吧:)
1. 用 git 进行备份和同步,还可很方便的实现数据回滚。 2. WDTP 的替换,也与“传统的”替换不一样。也是三种类型。基于文档、某个目录下的所有文档(含子目录及其文档)、整个项目。这一块,下一步需要完善的是:撤销替换。虽然没有撤销功能也无不可(再替换回来),但是可能有些用户会提出这个需求…… |
118
SwingCoder OP • 实现:本地磁盘中的一个或多个图片拖拽到编辑器之后,自动将所拖拽的图片导入项目中并在编辑器的插字符光标处插入这些图片的 Markdown 标记文本(每一幅都包含图注标记)。
|
119
SwingCoder OP 修复:编辑状态下提取标题、关键字和描述后,文档设置面板没有及时刷新的 bug 。
|
120
SwingCoder OP 新增文档: WDTP 所支持的文本标记语法
http://underwaysoft.com/works/wdtp/syntaxMark.html |
121
SwingCoder OP • 新增:对中文小括号内的文本(临时注释)进行 span 定义,其 class 值为 cnBracket 。此功能可让用户自定义文档渲染后中文小括号括住的临时注释的格式与样式,比如用指定的字体显示这部分内容。软件自带的默认样式表,将这部分内容的字体属性定义为楷体。
|
122
SwingCoder OP - 改进:提取文档描述时自动解析其中的 Markdown 标记语法。最直接的影响: index 页中每篇文档的描述将可以包含更丰富的格式与样式。
|
123
SwingCoder OP 改进:属性面板中,使文档和目录的最后修改时间不可设置。
修复:删除刚刚创建的文档时程序有可能锁死或崩溃的 bug 。 |
124
SwingCoder OP • 改进:预览区点击文档内的链接,如果该链接非项目内部的文档或目录,一律在新窗口中打开。此举可避免一些潜在的混淆和困惑。
|
125
SwingCoder OP • 完善:当前文档被外部编辑器修改后,自动加载并渲染更改后的最新内容。
|
126
SwingCoder OP 取消:在新窗口中加载站外链接。是否弹出新的浏览器窗口,取决于链接的 target 属性,不再强制。
|
127
SwingCoder OP • 改进:预览区点击 index 分页链接后,文件树面板中的目录依旧保持选择状态。
|
128
miao 2017-02-15 16:11:15 +08:00
win 7 64 位. 打不开, 提示丢失 MSVCP140.DLL,需要安装什么先? .net4?
|
129
SwingCoder OP @miao 朋友,谢谢您下载试用 WDTP 。
看到您的回复后,我改了一下 Windows 平台的编译设置,临时编译了一个版本。您试试看,能否跑起来? https://github.com/LegendRhine/WDTP/raw/master/Application/Release/wdtp-x64-temp.zip |
130
SwingCoder OP • 新增:文本标记语法“标识符( Identifier )”,语法格式:某行顶格至少 6 个连续星号(“*”)。该标记在解析时将被整行丢弃。其作用主要是:文本编辑器中对某些重要或眼睛不易定位的行做醒目标记。比如在二级标题、三级标题或某些重要的段落下方添加此标记。
◦ 使用该标记,可一定程度上弥补纯文本编辑器“版面字体”太单调、眼睛容易疲劳、不易视觉定位等固有缺陷。 |
131
SwingCoder OP • 实现:编辑状态下输入某些需要成对出现的标点符号后,自动完成匹配。
◦ 如果当前选择了文本,成对匹配的标点符号自动包裹所选内容。 ◦ 如果没有选择任何文本,成对匹配后,插字符光标自动位于两个标点符号之间,便于输入内容。 ◦ 中英文均可自动识别并完成匹配。 ◦ 中文双引号和单引号,不分左右。 |
132
miao 2017-02-16 13:46:09 +08:00
@SwingCoder 对不起,还是不行, 是不是需要安装什么环境?
|
133
SwingCoder OP @miao 朋友,谢谢您的意见反馈。 WDTP 不需要安装任何环境,拉回来就能用。它是跨平台的,所有平台下的代码都一致。现在最大的问题是,我手上没有 Win 7 的机器,没办法在这个平台下编译和调试,也不太想安装、配置微软 V14 以下的老 Toolset 。
稍后我再搞搞。这个问题一定给您解决了,请放心。或者 Windows 平台干脆向下兼容到 xp 32 位……这几天还真的有使用 xp 的网友提出了要求…… |
134
miao 2017-02-16 14:15:20 +08:00
@SwingCoder 谢谢您, 您的态度太真诚了.
|
135
SwingCoder OP 新增:新建项目或重置 /修复系统模板时,网站根目录下生成默认的 favicon 图标。
|
136
SwingCoder OP • 更新:软件自带的默认样式表
• 更改: Windows 平台下默认的系统浏览器内核改为 IE 10 |
137
SwingCoder OP 发布: 0.9.170217 (内测版)。
欢迎下载试用: http://underwaysoft.com/works/wdtp/download.html |
138
SwingCoder OP @miao 朋友,能否麻烦您再次试试看?希望这次能在您的机器上顺利跑起来:)
|
139
miao 2017-02-17 13:15:53 +08:00
@SwingCoder win32 报毒 HEUR/QVM10.1.3DA5.Malware.Gen
win64 还是不行, 我电脑安装的一些东西 供参考 https://ooo.0o0.ooo/2017/02/17/58a686da00e7e.jpg |
140
miao 2017-02-17 13:27:43 +08:00
把杀毒软件关了后 win32 版本可以打开了,
新建的项目显示: 无法显示此页 •确保 Web 地址 正确。 •使用搜索引擎查找页面。 •请过几分钟后刷新页面。 |
141
miao 2017-02-17 13:28:44 +08:00
搜索好像并不能用
|
142
miao 2017-02-17 13:33:35 +08:00
对不起, 首页模板没选对, 所有打不开. 现在可以了.
|
143
SwingCoder OP @miao 朋友,谢谢您的下载试用。
杀毒软件是误报,不要理会它的警告:) WDTP 的所有源代码都在这里: https://github.com/LegendRhine/WDTP/tree/master/Source 您也可以 clone 后自行编译和分析,如有问题,敬请询问。欢迎提交 PR 。 搜索功能是可以使用的。 WDTP 和常规的软件不太一样,它有三种搜索模式。 |
144
SwingCoder OP 改进:网站二级菜单按时间倒序排列
|
145
miao 2017-02-17 16:26:09 +08:00
谢谢. 很不错的软件. 对于自己创建的新模板, html+css+js, 如何导入到软件. 我还没找到导入的办法
|
146
miao 2017-02-17 16:30:48 +08:00
@miao 只能手工修改 /site/add-in/ , 然后重新生成全站,又没了, 或者请问怎么修改 wptl 文件,然后导入
另外, 有个小 bug, 放置于 ``` 代码区里的 html 语言, 会被解析, 然而我不希望他被解析成 html |
147
miao 2017-02-17 16:35:51 +08:00
还有,可否增加一个功能, 把剪贴板里的图片, 使用 ctrl+v 自动复制并保存到 \site\media, 然后在光标处,自动生成图片链接.
或许加一个 ftp 功能, 直接把项目下的 site 文件自动上传到 ftp 里. 岂不妙哉! 搜索功能, 并不是很会用. wdtp 是一个感觉很不错的软件, 可以记笔记, 可以做网站. 希望越做越好. |
148
miao 2017-02-17 16:57:01 +08:00
原谅我搜索, 知道怎么用了.
还有, 能否增加一个新功能, 全局复制粘贴功能, 这样方便记笔记, 比如说, 设置快捷键 ctrl+Q, 选中 某个网页的文本和图片,甚至视频, 使用该快捷键后, 自动保存到 WDTP 里的某一个项目的某一个文件夹下. 这样非常方便. |
149
miao 2017-02-17 19:19:21 +08:00
模板知道怎么改了, wptl 文件后缀名改成 zip, 解压后修改,然后再压缩过来就行了.
|
150
SwingCoder OP @miao 朋友,谢谢您的使用。我尝试回答一下您的问题,如有不妥,请指正。
1. 制作模板时修改“项目 /site/add-in ”样式表后,刷新网页就可以见到效果了。无需重新生成任何网页。即便重新生成,您的修改也会保留,不会有任何重新生成的文件覆盖到 add-in 这个目录。 如制作了新的 themes 或已修改现有的模板文件,则需要重新生成。同样不会覆盖 add-in 目录下的任何文件。 模板制作完成后,可点击系统菜单中的“导出当前模板集”,将您的成果备份下来,或者共享给更多朋友使用。 如使用已经导出的模板集,点击系统菜单的“导入外部的模板集”即可。无需手工打开这个文件。 2. 代码块中的部分 html 标记被解析,确认有这个问题,稍后我就解决。 3. 针对各类数据的智能粘贴,目前还比较简单。有时间我会酌情添加一些功能。您也可以从 GitHub 上 clone 或拉回整个 WDTP 项目,找到这部分源码,自己添加所需的功能。 4. FTP 等网络数据传输功能,我之前在此回复过网友,请参阅:) 谢谢。 |
151
SwingCoder OP • 完善:代码块对 html 标记进行转义,防止其被浏览器解析而无法显示
|
152
SwingCoder OP 改进:所生成的每一个页面的 title ,均附带项目标题(网站名称)后缀
|
153
SwingCoder OP •新增: Markdown 文字型链接,网址最后添加空格和一个小写减号,可在新窗口(标签页)中加载该链接。示例:
◦[点此访问]( http://underwaySoft.com) 该链接在当前页加载。 ◦[点此访问]( http://underwaySoft.com -) 新窗口(新标签页)加载。 |
154
SwingCoder OP •改进:获取项目内部某个文档或目录的链接地址后( Get Path 功能),不再弹窗提醒。
|
155
SwingCoder OP •完善:替换后给出提示(替换了几处、几个文件,或者没找到要替换的内容)。
|
156
SwingCoder OP •改进:文档内搜索选区与工具栏搜索关键字,高亮颜色显示区别。
◦工具栏的两处搜索,找到的关键字不自动选择,仅高亮显示 |
157
SwingCoder OP - 修复: Markdown 文字链接解析时的一个小 bug 。
|
158
miao 2017-02-20 19:28:20 +08:00
好样的, 缩略语请问怎么用, 官方文档看来半天没看到语法, 比如 正文里 放入 _我是缩略语_
那么缩略语那右下角的 小方块里, 需要填上什么? 举例, 是不是这样写, 就可以在正文替换了? _我是缩略语_:我是缩略语代表这是一句很长很长很长很长很长很长很长很长的话 |
159
SwingCoder OP @miao 朋友,谢谢您的使用和咨询。缩略语的介绍请参阅:
http://underwaysoft.com/works/wdtp/gettingStarted.html#缩略语功能详解 该功能最核心的代码( Line 455~493 ): https://github.com/LegendRhine/WDTP/blob/master/Source/HtmlProcessor.cpp 您给出的例子中,把冒号换成空格就可以了:)您把替换后的这个例子复制粘贴到某个文档属性面板中的“缩略语”文本框中,而后在文本编辑器中输入或粘贴“_我是缩略语_”。 Ctrl + S 预览一下……相信您会有真相大白、原来如此的感觉:) 某个文档可设置任意多个缩略语。一段一个,可使用空行隔开以示区分。 对使用 C 、 C++等编译型计算机语言的程序员来说,这个功能更便于理解的解释是:宏定义。 缩略语是我写 WDTP 这个软件的过程中比较满意的一个设计和实现。它目前的功能还很单纯、简朴。以后我肯定会在这个方面做做文章,届时可能会实现不少惊人的功能:) 该功能起源于 TheKiteRunner 先生的需求和建议,就在这个帖子里:)您可以翻看找到。在此,请允许我再次向他表示衷心的谢意! |
160
SwingCoder OP 有用户询问如何在 WDTP 中实现复杂的数学公式。其实非常简单,我在示例页面中添加了这方面的演示和说明。请参阅:
http://underwaysoft.com/works/wdtp/mdDemo.html#数学公式 |
161
SwingCoder OP •新增:一个内置的 blog 模板。默认的 article 模板中给出 cc 2.5 通用共享协议(位于文章末尾)。如文章末尾不打算显示本文的共享协议,则可使用新增的 article-p 模板。
|
162
SwingCoder OP •新增:模板 tag :{{siteLink}}。该 tag 可给出网站首页的文字型链接,文字内容为网站首页的标题(项目标题)。
|
163
TheKiteRunner 2017-02-21 15:50:43 +08:00 1
建议标题默认与文档名称一致。作此需求是因为我的文档标题一般就是文档名,对于比较长的书名,打起来很累。右侧栏文档名称暗显不可复制;左侧栏左键修改名称, ctrl+V 又不起作用,需要点两次右键。
|
164
TheKiteRunner 2017-02-21 15:56:46 +08:00
@SwingCoder 缩略语跟 sublime text 的 snippet 比较像,可以参考 http://docs.sublimetext.info/en/latest/extensibility/snippets.html 。右侧栏其实可以考虑成为一个配置文件,而不一定要显示在旁边,这样更像一个标准的文档管理界面。
|
165
TheKiteRunner 2017-02-21 16:40:50 +08:00
不知道可否考虑通过关键字快速筛选出多个文件夹下的同主题文档,从而形成一种跨文件夹多维视图结构。
|
166
SwingCoder OP @TheKiteRunner 先生,谢谢您的回复和建议。第一个问题做了修改,新建文档时,文档标题默认为文件名。
文本编辑状态,右键菜单,也可将选中的内容作为(添加为)标题、描述和关键字。属性设置面板中文档名称暗显,是防止用户轻易修改。如果项目用于网上传播或建站,修改文档名后会带来很多麻烦(比如死链接、冗余数据等等)。左侧文件树,右键菜单可对所选目录 /文档重命名。弹出的改名对话框中可复制或粘贴任意合法字符, Ctrl + c , x , v , a 等快捷键均可用。 计算机文件系统的文件名、该文件实际内容的标题、网页 meta 中的 title 字段、网页中显示的文本名称等等,这些都是(也应该是)各自独立的。 WDTP 出于简化和高效等方面考虑,对后三者做了关联性统一。这已经很“强制”了,并不是好的软件设计思想,也不太像开源软件的做法。 如果建站、分享、传播您的文字型作品,或者多个操作系统下的文档交换(特别是 Unix 平台和所有纯粹的英文操作系统下),我个人强烈不推荐使用非标字符作为文件名,特别是 CJK 字符。 缩略语可以扩充出很多强大的功能,它是一种处理问题和解决问题的思想,而不是具体的模式——并不仅仅相当于编译型计算机语言的宏定义。宏思想(包括复用)可能是计算机提高人类生产效率的最强大武器之一,如果您熟悉 C 和 C++,肯定对宏不陌生。宏的功能并不仅仅限于代换…… WDTP 下一步有可能向前端开发、编码、调试等简易 IDE 方面拓展。届时,缩略语功能在此方面也会有很大用途。 筛选、弹窗列表或醒目提示包含某个或某些关键字的条目,这个实现起来很简单。但是,我不太理解这么做的目的。人类处理问题,特别是编辑处理文档,基本是线性模式,做不到计算机处理问题时的那种多进程 /多线程并发。强制分心,害大于利。很多传统的文档编辑软件的某些功能或信息反馈,其实非常不科学,甚至反人类,并不能提高人们利用工具完成工作的效率,甚至降低效率。如果为了宏观了解项目的具体情况,或者特殊用途的数据统计、概率分析与趋势预测,这个可以用其它思路或工具来完成。 WDTP 在这些方面,我还没想好侧重点与具体的实现模式。以后如有时间,我会在这方面多思考一下。欢迎大家提供好的想法和算法。 谢谢。 |
167
SwingCoder OP 抱歉,刚才的回复中漏掉了您的一个建议。右侧属性面板中设置每个目录 /文档的各项属性或“附加值”,这种模式比较直观和简洁,也比较传统。大多数用户操作起来,比编辑额外保存的配置文件要高效和安全。
项目中所有目录和文档的额外属性,集中保存在项目文档中,与原始文档本身是分离的。 界面布局与设计方面,如果去掉右侧的面板,正常模式下,编辑和预览区会太宽,并不利于编辑或预览文档。安静模式下,两侧的面板都不显示,主界面大致是 43 比例。这个之前解释了:) 还可以手工调整主窗口的宽度。宽度小于某个值,右侧的属性面板自动隐藏。继续减少宽度,左侧的文件树面板也会自动隐藏。 |
168
SwingCoder OP •修复:批量替换时 ASCII 字母大小写校验方面的一个 bug 。
|
169
SwingCoder OP 更改:编辑器右键菜单-插入,原“插入作者及日期”变更为仅“插入作者”。快捷键不变: Ctrl + O 。该变更的原因:默认的 blog 模板已包含了文档的创建日期与最后修改日期。
|
170
TheKiteRunner 2017-02-22 09:46:03 +08:00
@SwingCoder 感谢回复!举例来说,如果多篇文章,同时包含`wdtp`这个关键字,就希望能够在管理器内像博客里面一样,点击标签`wdtp`就看到与之对应的所有文章。
另外,预览界面可否考虑文本界面最大,即过滤掉重复出现的网页信息( logo ,背景等)。 |
171
SwingCoder OP •改进:表格最左侧的单元格内容自动靠右。更新默认的样式表。
|
172
SwingCoder OP @TheKiteRunner 先生,谢谢您的建议。
第一个问题,看到所有包含某个关键字的文章,明确的目的是什么?编辑?替换?数据统计和概率分析? 第二个问题,可自定义或修改模板,去掉不想参与渲染的 tags 即可。 |
173
TheKiteRunner 2017-02-22 15:08:37 +08:00
@SwingCoder 1 不是这个意思。相当于筛选多个文档中的几个,集中来阅读或者编辑。比如我有多文件夹管理文档,但若干文档有同样的属性,就想用关键字来标识这一属性,实现跨文件夹筛选。
2 我试试吧。 |
174
SwingCoder OP @TheKiteRunner 先生,谢谢您的建议。 WDTP 是多文档管理、单文档视图类型的软件。目前不支持将编辑区或预览区分割为多个子区。
文档集成可文件树右键菜单:批量集成。如果针对某个目录集成,则要集成的文档需位于该目录下。 |
175
SwingCoder OP •改进:数据统计的显示结果(项目本身不再给出目录名)。
|
176
SwingCoder OP 新增:文本编辑模式下,标准 ASCII 标点符号‘<’的自动匹配
|
177
SwingCoder OP - 改进:提取或修改文档的标题 /描述后,该文档的所有父级目录同步标记为需要重新生成。
|
178
SwingCoder OP - 改进:批量替换功能
- 自动获取系统剪贴板中的数据并设置为要替换的原始内容 - 键盘焦点自动位于“替换为”文本框 - 调整 TAB 键转移焦点的顺序 - “替换为”文本框输入内容后按回车键,直接触发 [替换] 操作 |
179
SwingCoder OP - 改进:启动程序后,文件树面板自动滚屏,确保上次退出时的条目在本面板中可视。
|
180
SwingCoder OP - 修复:无法自动打开操作系统文件浏览器来查看所选条目的 bug 。
|
181
SwingCoder OP - 改进:新建目录和文档时,如果出现重名,自动添加的数字后缀不再使用括号包裹,改成下划线连接。
|
182
SwingCoder OP - 改进:大幅度减少项目文件的大小。
|
183
SwingCoder OP - 提升:文档预览时的渲染效率
|
184
SwingCoder OP - 改进:重新生成整站时,工具栏底部出现天蓝色的进度指示。
|
185
Akkuman 2017-02-25 17:02:47 +08:00 via Android
有个建议,建议加一个是否公开为博客的选项,我并没有找到这个功能,个人认为的话,既然笔记也是这个软件的功能之一,那我觉得总会有一些笔记是私人的,所以在文章右键上加一个是否公开为博客的选项比较好,这样就更好的体现了博客笔记一体
以上都是个人拙见。希望能考虑一下😁 |
186
SwingCoder OP @Akkuman 兄,谢谢您的宝贵建议。我在 QQ 上已回复:)
|
187
SwingCoder OP 发布: 0.9.0225 (内测版)。下载页:
http://underwaysoft.com/works/wdtp/download.html 主要更新记录: http://underwaysoft.com/works/wdtp/updateList.html |
188
SwingCoder OP 从这个版本开始, WDTP 改进了项目文件保存与读取的算法实现。
改进后,项目文件的尺寸大幅度减少,磁盘空间占用更少。项目文件本身的数据用操作系统中的其它程序打开后,完全不可读。并且提高了内部自动保存数据的稳定性与容错性。 但是,任何功能的实现都有代价。目前已知的: - 可能与老版本的项目文件不兼容。我们已经尽力做了处理,但不保证所有情况下都转换可靠。 - 如果项目较大,加载时会多消耗一些时间(约 5%左右)。项目管理的文档数超过 5000 ,这个现象会明显感觉出来。 |
189
SwingCoder OP •改进:新建文档时自动给出文件名(当前日期)。此举有利于在灵感突发而至时,快速新建文档并将其记录下来。 WDTP 新建文档有两种方式:
◦文件树面板中,双击某个目录。或者: ◦文件树面板中,鼠右单击某个目录。弹出的菜单中点击“新建文档...”。 |
190
Nott 2017-02-26 10:56:50 +08:00 1
一直在使用类似软件,但都略显臃肿,不方便坚果同步,真正碰上了小而精的 WDTP ,大爱!!!
|
191
SwingCoder OP •实现:底层基础功能:数据分析。文件树面板中鼠右单击项目、目录或文档后,弹出菜单,点击“数据统计”。 0.9.0225 版本之前,点击后弹出一个模态消息窗,给出一些基本的统计信息。目前改为:
◦不再弹出模态消息窗,而是浮动式面板(类似目前的“批量替换”面板)。 ◦除基本的统计信息外,面板中新增了“关键字”文本框和 [分析] 按钮。 ◦给出关键字后点击 [分析] 按钮,将显示该关键字的使用情况。 ◦如果当前所选的是文档,则自动切换到编辑状态,高亮该文档内所有匹配的文本。 ◦如果当前所选的是项目或目录,则文件树面板中,本项目(本目录)下所有包含该关键字的文档均自动高亮。 ◦关键字文本框有一定的智能。启动软件后第一次执行分析,默认是操作系统剪贴板中的文本数据。以后再次执行分析,则默认是上次的关键字。 ◦目前已经实现的分析功能还比较初级,但已经很实用了。特别是创作小说、剧本等文艺作品时,可利用此功能分析主角、配角的“戏份”与出场频次(以避免业余写手经常犯的“配角抢戏”等问题),还可分析某个场景或道具的出现次数、所在的剧集(章节)、整个树形结构中所出现(存在)的位置……等等。 ◦将 WDTP 作为个人知识管理和笔记类软件,此功能也非常实用。 ◦该功能的底层架构基本已经打好,今后可随时进行更丰富的扩展。您也可以下载源码后自行添加个人所需的功能( StatisComp 类)。 |
192
SwingCoder OP @Nott 朋友,谢谢您的下载试用。欢迎提出宝贵意见和建议:)
|
193
Nott 2017-02-26 17:14:54 +08:00
@SwingCoder 用了半天时间,把笔记全部都挪了进来,提点建议吧:
1 ;不是每个人同时需要“三合一”模式,个人理想用法是,首先是本地笔记、写作软件,使用过程中无关生成 HTML 的选项功能,只需要编辑、浏览模式,单纯的作为一个本地软件来用,仍在坚果里随写随存。期待把生成静态网站功能放到一个[生成]的类似菜单里,是导出 pdf 还是静态网站,需要使用的时候才去操作选择那套模版,如果再增加 ftp 和 git 发布就更好了。 2 ;模版机制,在建议 1 的前提下,编辑和预览模式使用一段 CSS 渲染,这段 CSS 并可自定义。使用生成静态网站的时候,才去调用关于模版方面的功能选项,模版的标签也应丰富一些。 3 ;预览模式,文字渲染如同 IE ,在 win10 下发虚的厉害, mactype 也不能渲染软件的预览模式。 4 ;最小化到托盘图标。 5 ;一个美好的中文名。 最后,希望 WDTP 一天比一天好。 |
194
SwingCoder OP @Nott 朋友,谢谢您的宝贵建议。我尝试交流如下。如有不妥,请批评指正:)
1. 1 WDTP 目前的纯文本编辑与带有格式和样式的预览,是捆在一起的。文本的格式用 Markdown 和扩展后一些标记来控制(这个由我来负责),用自定义的 style.css 和模板文件来承担渲染“画布”和呈现的样式(这个由用户根据自己的所需及要求来负责。修改系统默认的或自定义全新的都可以)。如果没有模板, html 的解析结果无处展现。实际上,如果不是发布并传播, WDTP 不存在专门的“生成”这道工序。正常编辑和预览就可以满足很多应用场景。 1.2 关于 WDTP 的网络数据传输功能,我印象中在这里回复过网友的咨询。也可能是另一个网站上,我实在记不太清了:)最开始的时候, WDTP 有 FTP 这个模块,不仅可以上传下载,还可以直接对远程 FTP 上的文件 /目录增删改移。这个模块的底层使用的是 cURL 开源库。第一个内测版发布前,我再三考虑后,去掉了这个模块。也就是:暂不打算给 WDTP 增加网络方面的功能。 这一块,一是已有很多更先进、强力的工具可用, WDTP 不可能超越它们,也不太想去模仿任何现有程序的已有模式。但是, WDTP 是开源的,如果有同行老师、朋友添加这个模块,我个人也不反对:)仅仅只是加上去并跑起来的话,工作量并不大。 二是一旦有了网络功能,未知因素几何级增加,这一块非常缠手,将给程序的后期维护和用户技术支持等方面带来巨大的负担(虽然它是开源的,但这里是中国……)。我现在是一个人拖着病躯靠一口气撑着这个项目,人手太缺,精力不够。 三是我想让 WDTP 更纯粹、更安全一些:)我现在经常想起没有互联网的时候,静静地鼓捣计算机、敲点东西那种安静的体验……用户如果需要发布、传播自己的作品,可以在自我负责的基础上自行选择其他工具。比如,我目前维护 UnderwaySoft 网站,就直接使用该 FTP 提供的网页端上传和 zip 在线解压,就这两个功能,已经完全满足我的需要了。项目的数据备份,我放在了 Github 上,用它的桌面版 GitHub 来完成此事,非常方便。 2.1 可以在文档编辑时直接敲 css 、 html 、 js 等代码。 WDTP 本身就是一个简易版的前端开发与预览工具。这一块,下一步可能会拓展功能,具体的侧重点和需要突出的特色我现在还没想好。 文本编辑时的代码,位于 html 的 body 区。还可以在文档属性面板的 js 区输入或粘贴已有的脚本代码(这里的代码将位于 html 的 head 区)。 Windows 平台下, WDTP 最初仅仅是 Windows 10 64 位的,这个系统默认 IE 11 内核,对 js 的支持更好。但是,有很多朋友目前还是 Win 7 系统,甚至 32 位的 xp ……这方面我不得不妥协了一下,使用 IE 10 。这样一来,有些 js 在预览时会弹窗报错……希望绝大多数人都尽快升级系统吧:) 2.2 模板标签,这个可以有无数种,可以实现无穷的惊人功能——只要想象力足够:)目前 WDTP 只是给出的了最基本的一些,但是底层架子基本搭起来了,随时可以添加新的。您具体需要什么,或者明确的目的与用途是什么,欢迎随时告诉我。只要可行并且想法不错,我一定会及时加进去。请放心。 3. Windows 平台下的预览使用的是操作系统的 IE 10 内核。 Windows 的字体渲染技术比较落伍,它使用了 hint 和 ClearType 等自家的技术,(仅)在特定缩放比例下,文字看起来纤细、锐利,小字体的可读性更好。如果您感到字体发虚,可能是系统在这些方面的设置有问题。或者您抓一个 WDTP 的预览截图发到我信箱里,我看后再具体回复您。 [email protected] 4. 托盘图标,这个是 Windows 的典型特色。它可能适合于一些长时间后台运行、偶尔打开看一下,或者程序时不时冒个泡、给点消息这样的程序。我觉得不适合 WDTP 。而且,系统托盘在 macOS 和 Linux 下都没有一致的对应模式。 WDTP 有一个与众不同的原则是:跨平台, 5 大平台都可以跑起来,所有平台下一套代码,除底层和应用层少部分必要的桥接与平台宏包裹,所有代码无任何差别,无需任何额外的调整,程序运行后的操作模式、外观界面等等,完全一致。如有不可调和的差异,宁肯牺牲功能或不发布,也不妥协。因为 UnderwaySoft 在业界立足的根本就是真正的跨平台开发,这一点我一直以来非常重视。所以,这个功能我个人不太想加进去。请谅解。 5. 是的。 WDTP 目前还没有一个正式的中文名字,确实很遗憾。欢迎大家集思广益:) 再次感谢您的宝贵建议,祝您使用愉快! |
195
SwingCoder OP - 改进:进入 /退出安静模式时,加大默认的主界面宽高。
|
196
TheKiteRunner 2017-02-27 09:52:46 +08:00
@SwingCoder 用到现在,几乎没有 bug 。您为什么要这么赶进度呢?软件在功能上已经很不错了,很多进一步的工作都是打磨细节吧,慢慢来不就行了。
本来简书这个名字挺好,可惜已经用了。插一句,简书的社交属性导致不那么纯粹和简洁。 wdtp , word typing place ,加上您这软件灰色调,叫冷笔怎么样。还有一个说法是冷笔与热笔相对,反映深思熟虑之后的写作。 QQ 删除了好友,因为我聊天比较少,请不要见怪。 |
197
SwingCoder OP •文档属性新增 showing keywords or not (预览页面中是否显示关键词)。该属性为下一步的一系列功能埋一个伏笔。
|
198
SwingCoder OP @TheKiteRunner 先生,由于刚刚发布,这段时间确实很玩命:)下一步会逐渐正常起来,按开发计划一点点向前推进。
目前 WDTP 只是个大概的框架和轮廓,只是为下一步的扩充打一个基础(也考虑到用户的习惯,给他们一些适应过程)。很多特色,以及长期以来我在计算机文字书写、创作、发布、分享等领域的一些思考结果、看法与打算,会慢慢融进去,希望大家支持、接受:)更希望能突破、颠覆、改变一些东西…… |
199
SwingCoder OP •实现:预览页面(网页)中可显示关键词(位于标题之下, html 引用样式,默认字体楷体)。解释如下:
◦按世界出版业通行的规范和中国国家标准( gb/t 3179-1992 和 gb/t 3860-1995 ),正规文章及论文,摘要后面需给出本文关键词。 ◦关键词由叙词和自由词两部分构成(叙词为主),其标引需遵循《文献叙词标引规则》,可参照正规词表和工具书。 ◦未被词表收录的重要叙词、版权人自行发明或定义的术语、对文章索引有不可替代作用的非标叙词以及人名、地名、物品名等也可作为关键词标出。这种情况,按自由词处理。 ◦目前网络上的绝大部分文章(内容型网页、技术型博客等),其作者均未严格遵循关键词的使用标准,非常混乱与随心所欲。长期以来,我本人对这一点深恶痛绝。我希望能借 WDTP 这款软件对关键词的使用与规范化做一点绵薄的贡献。 ◦默认, WDTP 的预览页面(网页)中不显示关键词。可在文档属性设置面板中开启之。 |
200
SwingCoder OP - 实现:重建本项目的所有关键词(系统菜单-重建关键词表)。
|