神器 Markmap !!!

Java技术精选

共 3494字,需浏览 7分钟

 ·

2022-02-11 13:01


1

前言


Markdown 的好处是专注码字的同时还能兼顾排版,不用像 word 那样文本加个粗都需要移动下鼠标,体验非常好。


它的缺点就是可视化能力很弱,这就降低了信息的传播效率,毕竟人对于图像化内容的接收程度要强于文本。


可视化表达方面,思维导图就很不错。它作为一种图象化工具,通过层级式发散式地组织主题,帮助我们更好的记忆、学习和思考。


但在过去,这两类工具是各自独立的,也就是你写完 Markdown 文本,想要可视化地传达一些重点给读者,就需要重新录入下思维导图,因此比较繁琐,这也是我不怎么用思维导图的原因。


不过最近我发现一款很好用的工具,可以很好的解决上边的问题,在此分享给大家。




2

工具介绍


这款工具叫markmap


markmap 可以将 Markdown 语法的文本通过思维导图的方式进行可视化。以下是官网截图,markmap 这个名字来自 markdown 的前半部分 和 mindmap 的后半部分,slogan 是 Visualize your Markdown with mindmaps 。


 


3

工具使用


在线版


如果你不想安装任何东西,那可以直接浏览器(建议 chrome 浏览器)上访问 https://markmap.js.org/repl 即可仿照官网模板进行转换,如下图。左边录入 Markdown 文本,右边会实时展示出思维导图。



Markdown 语法中的链接,加粗,删除线,斜体,单行代码,代码块,数学公式,转换成思维导图都有相应的视图效果。而且支持下载生成动态化的 html 文件以及 svg 文件。


动态化效果如下图,可以折叠和打开。



离线版


如果你想拥有更好的使用体验,并且希望在断网的情况下也能够使用,那我推荐你下面这种方案。


vscode 使用插件


在 Visual Studio Code 上安装 markmap 插件,如下图。



编辑 Markdown 文本,文件名以 .mm.md 结尾即可使用,并且可以点击右下角「export」按钮导出动态的 html 文件。


vscode 使用界面



语法格式


# markmap

## Links

- <https://markmap.js.org/>
- [GitHub](https://github.com/gera2ld/markmap)

## Related

- [coc-markmap](https://github.com/gera2ld/coc-markmap)
- [gatsby-remark-markmap](https://github.com/gera2ld/gatsby-remark-markmap)

## Features

- links
- **inline** ~~text~~ *styles*
- multiline
  text
- `inline code`
-
    
```js
    console.log('code block');
    ```
- Katex - $x = {-b \pm \sqrt{b^2-4ac} \over 2a}$


就是 Markdown 语法换了种表现形式,# 表示一级标题,##表示二级标题。### 表示三级标题



导出思维图














脑图,在一些特定场合,对于思路的呈现很有帮助。

因为日常的文档,主要是使用 Markdown 的文本格式书就,这个时候会比较尴尬了:需要用专门的脑图工具,重新整理一遍;因为并非 整理思路,这个时候,就显得特别浪费时间。


MarkRemap 在这个时候就派上了用途。它能直接将 Markdown 转为脑图,不同 Markdown App 的解析结果可能不完全一样,MarkRemap 也可以直接将 HTML 文档转为脑图。



写作

一般来说,能转成脑图结构的,我们能想象到 Markdown 大概写作的格式是这样的:


## 节点 1

- list item

- list item

    - sub list item

## 节点 2

- list item again

MarkRemak 实际上对格式的宽容度很高,即使不使用 列表 的语法,也会视情况,分割出子节点,如果认为不合适分节点出去的,会作为当前节点的备注,鼠标悬浮时候显示:


## 节点 1

> 这是引用

这里内容比较多,是其它的


## 节点 2

- 采用 list

- list item2


## 节点 3

子节点 3.1

子节点 3.2


在 MarkRemap 中,我们基本不用管最终渲染效果,只要专注于内容本身就可以了。如果唯一需要注意的是,节点自动着色 的功能,MarkRemap 在渲染一个节点的时候,默认是无背景色的,假设这个节点的文本是 空格+@@ 结尾的,就会有一个节点自动着色的逻辑,实际效果不错。


导出成 HTML 文件很有用

MarkRemap 可以将整个脑图导出为 PNG 图片,但更有用的是导出为 HTML 文件。

HTML 几乎是万能的格式,而且导出的文件,没有依赖外部的静态资源,如此一来:


通过 iCoud Drive 或者 Dropbox 云端方式的同步,导出的脑图在 iPad 上也可以直接进行操作。

如果有自己网站,将 HTML 文件直接放在网站上就能访问了,比如 https://scomper.me/members-map.html

进一步扩展

MarkRemap 的绘制引擎使用的是 D3.js,并且是在 markmap 这个库上重新定制的。


这意味着,拿到最终导出的 HTML,我们还可以按照自己的需要重新控制节点上的一些默认交互。

比如下面这段代码,插入到 HTML 页面的末尾,可以默认将所有的 2 级节点收起来。



关于 MarkRemap 的由来

MarkRemap 是由 MarkEditor Pro 版 (SSPAI Store) 中的 Markdown to MindMap 插件独立而来的,它是免费的 App 。

在 ME 的插件中,其表现会和 MarkEditor 更契合,也提供了黑暗模式的对应,但 MarkEditor 中并不需要 HTML to MindMap,这个是专门为 MarkRemap 设计的。


MarkEditor 的很多功能,都依赖于一些 License 友好的第三方基础 package。MarkEditor 希望能以恰当的方式回馈于这个生态本身



在网页中导出 .html 格式和 .svg 格式



在 VS Code 内导出 .html 格式



引用链接

[1] markmap: https://markmap.js.org/

[2] markmap 插件: https://marketplace.visualstudio.com/items?itemName=gera2ld.markmap-vscode




往期推荐



MySQL 的 varchar 水真的太深了!!

Nginx配置反向代理,一篇搞定!

更快更强!微软公布 VS Code Java 2022 年路线图...

比 Xshell 还好用的 SSH 客户端神器,MobaXterm 太爱了!

别再写 main 方法测试了,太 Low!这才是专业 Java 测试方法!

还在用StringBuilder拼接字符串吗?快试试这个类~



浏览 120
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报