Gk0Wk / TW5-CodeMirror-Enhanced

An enhanced for CodeMirror framework in TiddlyWiki, including TW5 highlight, WikiLink auto-completion, expandable hint, snippets, etc.
https://gk0wk.github.io/TW5-CodeMirror-Enhanced/
MIT License
35 stars 4 forks source link
codemirror codemirror-editor codemirror-mode tiddlywiki-plugin tiddlywiki5

TW5-CodeMirror-Enhanced

示例 | demo

Implement a swift and rich extension framework for TiddlyWiki5's CodeMirror editor, including TiddlyWiki5 (text/vnd.tiddlywiki) syntax highlighting, Wiki link auto-completion, clickable links, Tiddler preview, and more. More features ( syntax tree, syntax completion , WYSIWYG mode , quick template input , etc. ) is under development . This framework is open source framework , anyone is welcome to join the development , the documentation is being written .

为 TiddlyWiki5 的 CodeMirror 编辑器实现一个灵活而丰富的扩展框架,包括 TiddlyWiki5(text/vnd.tiddlywiki)语法高亮、Wiki 链接自动补全、可点击链接、Tiddler 预览等功能。更多功能(语法树、语法补全、所见即所得模式、快捷模板输入等)正在开发中。本框架是开源框架,欢迎任何人加入开发,框架文档正在编写中。

> English Readme <


说明

本插件为 TiddlyWiki5 的 CodeMirror 编辑器提供了一个便于扩展的框架,原始项目CodeMirror-Mode-TiddlyWiki5已停止开发。本框架继承原始项目的所有功能,并对整个框架进行重构,变成一个可扩展的模块化 CodeMirror 框架。目前支持的功能有:

插件还在开发中,如有任何建议或者 bug 请直接提 Issue。本框架欢迎所有人参与优化核心或者提交自己的插件。未来计划请见下文TODO List一节。

安装 & 编译

安装

请首先安装最新版CodeMirror主插件和CodeMirror Autocomplete子插件(不然会报错)。

如果你是单文件 TiddlyWiki5 用户或者NodeJS版 TiddlyWiki5 用户,直接去Release下载TW5-CodeMirror-Enhanced-X.X.X.json,然后将其拖拽到你的 TiddlyWiki 中,或者在 TiddlyWiki 中导入之。

如果插件报错了,不必惊慌,因为插件不会对 TiddlyWiki 本体内容做修改,所以只需要卸载就能够消除问题,但保险起见还是建议先备份再安装

如果你使用的是NodeJS版本的 TiddlyWiki5 项目并希望将插件安装至项目,可以下载Release中的 TW5-CodeMirror-Enhanced-X.X.X.zip 文件,解压后放置到项目的 plugins 文件夹下,并在tiddlywiki.info文件中使用该插件。

编译

由于当前项目涉及 TypeScript 子项目的编译与打包,所以编译步骤较为繁琐,如你有更好的方案,欢迎提出意见!

首先安装 python3nodenpm,并在项目根目录安装一些必要的包(yarn 同理):

npm install

随后进行编译工作:

npm run build

功能介绍

高亮TiddlyWiki5语法,支持内嵌代码块和LaTeX的语法高亮 Default: ![default](media/mode-default.jpg) Ayu-Dark: ![ayu-dark](media/mode-ayu-dark.jpg) TiddlyWiki: ![tiddlywiki](media/mode-tiddlywiki.jpg)

注意:这些主题有些是我自己装的,如感兴趣换主题,请阅读 TiddlyWiki 的 CodeMirror 的 README。

WikiLink实时补全提示+预览 ![wikilink-hint](media/wikilink-hint.gif) 在预览打开的情况下: ![hint-preview](media/hint-preview.jpg)
可点击的链接 ![wikilink-hint](media/clickable-link.gif) - 对于 macOS 用户,cmd + 鼠标左键 可以打开 tiddler 或者外部 url。 - 对于非 macOS 用户,ctrl + 鼠标左键 可以打开 tiddler 或者外部 url。

其他功能正在开发中。

开发者

Wiki(咕咕咕)

开发感想 & 致谢

在使用 TiddlyWiki 之后,一直苦于 TiddlyWiki5 语法没有高亮支持,写作体验不是很好。之前有也在网上找到一些相关的解决办法,例如在Google Group上面有人建议用 TiddlyWiki2 的语法进行 Hack,但是这种方法并不完美。

也有人编写了一个可用的 CodeMirror 的扩展版本TW5-CodeMirror-Plus,虽然是可用的,但是有两个问题:一个是语法高亮的内容有限,另一个是该插件直接基于 theme 而非 mode 进行开发,这就导致如果想要用 TW5 的高亮就必须舍弃其他语法高亮,并且无法自定义主题。所以最终还是打算自己写一个 :D

本插件一开始也是基于TW5-CodeMirror-Plus开发的,只不过魔改了很多,现在基本上是两个不同的插件了,在此感谢TW5-CodeMirror-Plus的作者adithya-badidey,以及src/mode/tiddlywiki5.js的原始作者PMario

TODO List