目錄

廣告 AD

用 Markdown 打造心智圖: 讓你的筆記更有條理

Markdown + Mindmap = Markmap

廣告 AD

Markmap - Homepage

Mindmap 是一款可以透過心智圖 (Mindmap) 來視覺化你的 Markdown,而我則是把它當作使用 Markdown 產生心智圖的 library。


如果是單純要自己使用的話可以使用 Vsocde 的 extension markmap-vscode

或是在網頁上使用也是一個不錯的選擇,以下我們介紹使用 CDN 的方法,如果要使用 npm 安裝的可以到官網去查看。


首先我們使用 markmap-lib,使用 window.markmap.Transformer 建立一個 markdown 的轉換器,然後將 markdown 的字串輸入進去,我們可以得到轉換後的 root 和 asset。

html

<script src="https://cdn.jsdelivr.net/npm/markmap-lib"></script>
<script>
    const markdown = "# Test  \n## Test II  \n## Test III";
    // transform Markdown
    const Markmap = window.markmap;
    const transformer = new Markmap.Transformer();
    const { root, features } = transformer.transform(markdown);
    // get assets
    const assets = transformer.getAssets();
</script>

接著我們可以透過 markmap-view 來建立互動的元件,底層因為使用 d3 的套件,因此我們也要引入 d3。最後透過 windows.Markmap.Markmap.create 將元件建立到 id 為 markmap 的 svg 元素底下。

html

<div id="container">
    <svg id="markmap" style="width: 100vw; height: 100vh;"></svg>
</div>

<script src="https://cdn.jsdelivr.net/npm/d3@7"></script>
<script src="https://cdn.jsdelivr.net/npm/markmap-view"></script>
<script>
    const { loadCSS, loadJS } = Markmap;

    if (assets.styles) loadCSS(assets.styles);
    if (assets.scripts) loadJS(assets.scripts, { getMarkmap: () => Markmap });
    let mm = Markmap.Markmap.create('#markmap', undefined, root);
</script>

最後我們可以加上 tool 來方便跟元件互動,一樣先引入 markmap-toolbar 和它的 css,接著使用 Markmap.Toolbar.create 創立一個 tool 元件,設定位置為右下方,接著與顯示的 view 放在一起即可。

html

<script src="https://cdn.jsdelivr.net/npm/markmap-toolbar"></script>
  <link href="https://cdn.jsdelivr.net/npm/markmap-toolbar/dist/style.min.css" rel="stylesheet">
  
<script>
    const { el } = Markmap.Toolbar.create(mm);
    el.style.position = 'absolute';
    el.style.bottom = '0.5rem';
    el.style.right = '0.5rem';

    const container = document.getElementById("container");
    container.append(el);
</script>

如果要使用深色介面的話,可以在 html tag 上面加上 markmap-dark 的 class,像下面這樣。

html

<html class="markmap-dark">

如果大家要試玩的話可以到官網的這個連結 Link,或是在下方測試。



廣告 AD