All Projects → Gk0Wk → TW5-CodeMirror-Enhanced

Gk0Wk / TW5-CodeMirror-Enhanced

Licence: MIT license
An enhanced for CodeMirror framework in TiddlyWiki, including TW5 highlight, WikiLink auto-completion, expandable hint, snippets, etc.

Programming Languages

typescript
32286 projects
javascript
184084 projects - #8 most used programming language
python
139335 projects - #7 most used programming language
HTML
75241 projects
CSS
56736 projects

Projects that are alternatives of or similar to TW5-CodeMirror-Enhanced

CodeMirror-Mode-TiddlyWiki5
Adds Syntax Highlighting & Hint for TiddlyWiki5 tiddlers (text/vnd.tiddlywiki) to the CodeMirror.
Stars: ✭ 19 (-20.83%)
Mutual labels:  tiddlywiki5, tiddlywiki-plugin, codemirror-mode
clojure-mode
Clojure/Script mode for CodeMirror 6
Stars: ✭ 105 (+337.5%)
Mutual labels:  codemirror, codemirror-editor
tw5-locator
TiddlyWiki plugin: Discover and search by context, related tags
Stars: ✭ 38 (+58.33%)
Mutual labels:  tiddlywiki5, tiddlywiki-plugin
tw5-markdown
Comprehensive Markdown plugin for TiddlyWiki
Stars: ✭ 26 (+8.33%)
Mutual labels:  tiddlywiki5, tiddlywiki-plugin
TW5-codemirror-plus
An attempt to make a better writing experience for TW using codemirror.
Stars: ✭ 26 (+8.33%)
Mutual labels:  codemirror, codemirror-mode
codemirror-promql
PromQL support for the CodeMirror code editor
Stars: ✭ 35 (+45.83%)
Mutual labels:  codemirror, codemirror-mode
twsr
Standalone Spaced Repetition System for TiddlyWiki
Stars: ✭ 15 (-37.5%)
Mutual labels:  tiddlywiki5, tiddlywiki-plugin
tw-echarts
An All-in-one Visualization Framework for TiddlyWiki5 based on ECharts
Stars: ✭ 17 (-29.17%)
Mutual labels:  tiddlywiki5, tiddlywiki-plugin
Vue Codemirror
⌨️ @codemirror component for @vuejs
Stars: ✭ 2,115 (+8712.5%)
Mutual labels:  codemirror, codemirror-editor
ink
The flexible TypeScript Markdown editor that powers https://octo.app
Stars: ✭ 82 (+241.67%)
Mutual labels:  codemirror
Bilibili-Column-Helper
bilibili专栏助手,已Archive,后续可能port到vscode插件。
Stars: ✭ 26 (+8.33%)
Mutual labels:  codemirror
codemirror-mode-elixir
A CodeMirror mode for the Elixir language
Stars: ✭ 16 (-33.33%)
Mutual labels:  codemirror-mode
codemirror-blocks
A library for building language-specific, CodeMirror-friendly editors that are a11y-friendly.
Stars: ✭ 22 (-8.33%)
Mutual labels:  codemirror
react-code-preview
Code edit preview for React.
Stars: ✭ 52 (+116.67%)
Mutual labels:  codemirror
tw5-checklist
Simple checklist widget for TiddlyWiki5:
Stars: ✭ 47 (+95.83%)
Mutual labels:  tiddlywiki5
ClearWriter
A silent notepad.
Stars: ✭ 25 (+4.17%)
Mutual labels:  codemirror
phpPgAdmin6
PHP7+ Based administration tool for PostgreSQL 9.3+
Stars: ✭ 45 (+87.5%)
Mutual labels:  codemirror
fongshen-editor
A highly customizable code-inserting editor for markdown or other languages
Stars: ✭ 35 (+45.83%)
Mutual labels:  codemirror
tiddlywiki-remotestorage
a syncadaptor plugin that saves tiddlers on custom remoteStorage directories
Stars: ✭ 20 (-16.67%)
Mutual labels:  tiddlywiki5
tiddlywiki-ipfs
IPFS with TiddlyWiki
Stars: ✭ 50 (+108.33%)
Mutual labels:  tiddlywiki-plugin

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 框架。目前支持的功能有:

  • 对 TiddlyWiki5 语法高亮的支持,所有 MIME 类型留空或者为text/vnd.tiddlywiki的 tiddler 都会有高亮(效果见下文)。
  • 支持像主流 IDE 那样在打字时实时进行代码补全的功能(不需要Ctrl+Space激活),并提供与 TiddlyWiki5 相关内容的补全,并提供丰富的扩展能力,此能力可以进行自定义扩展:
    • 目前支持在输入 WikiLink 时进行 tiddler 名称补全,以及同时提供 tiddler 内容预览(效果见下文)。
  • 鼠标点击 url 或 WikiLink 会打开/跳转至对应的 网页/tiddler(效果见下文),此能力可以进行自定义扩展。

插件还在开发中,如有任何建议或者 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

Ayu-Dark: ayu-dark

TiddlyWiki: tiddlywiki

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

WikiLink实时补全提示+预览

wikilink-hint

在预览打开的情况下:

hint-preview

可点击的链接

wikilink-hint

  • 对于 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

  • 代码块内的语法高亮与缩进。
  • LaTeX 公式高亮与缩进。
  • 自动补全内部链接的 tiddler 名称。
  • 可点击的 URL 与 WikiLink。
  • 补全提示的预览框。
  • 编写 API 文档。
  • 使用 Lezer 重新编写 TiddlyWiki5 的语法解析程序。
  • 使用重写的语法解析程序重写语法高亮与缩进。
  • 其他代码提示。
  • 代码错误检查。
  • 鼠标悬在 LaTeX 代码上方能够进行公式预览。
  • 所见即所得编辑器。
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].