13
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

この記事誰得? 私しか得しないニッチな技術で記事投稿!

MarpでMermaidを利用している場合のVS Codeでプレビューする方法・marp-cliで変換する方法

Posted at

はじめに

プレゼン資料などを作成するときにMarpを利用することがあると思う。Marp自体はマークダウンで記述するので、図やグラフなどは画像などにして張り付けることが必要になるが、Mermaidを利用すると、Marpの資料に図を簡単に入れ込むことができる。

 今回は、MarpでMermaidを利用している場合に、VS Codeでプレビューする方法をみていきたい思う。また、VS CodeからMarpをPDFやPPTXにエクスポートするのではなく、marp-cliを利用して、エディターに依存せずMarpからPDFやPPTXを作成する方法も見ていく。

VS CodeでMermaidを利用したMarpのプレビューをする方法

  • VS Code の.vscode/settings.jsonに以下を追記
{
    ...
   "markdown.marp.enableHtml": true
}
  • Marp for VS Codeを追加する

  • Ctrl + Shift + P で Markdown: Change Preview Security Settings を検索し、Disabledを設定する
    image.png

以上で完了になる。後は、以下のようなマークダウンを作成して、VS Codeでプレビューして図が描かれればOK。

---
marp: true
style: div.mermaid { all: unset; }
---
<div class="mermaid">
gantt    
    title A Gantt Diagram
    dateFormat  YYYY-MM-DD
    section Section
    A task           :a1, 2014-01-01, 30d
    Another task     :after a1  , 20d
    section Another
    Task in sec      :2015-01-12  , 12d
    another task      : 24d
</div>

<script type="module">
import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@10.0.0/dist/mermaid.esm.min.mjs';
mermaid.initialize({ startOnLoad: true });
window.addEventListener('vscode.markdown.updateContent', function() { mermaid.init() });
</script>

image.png

- 参考:https://github.com/marp-team/marp-core/issues/139
- 参考:Enable HTML in Marp Markdown
- 参考:Markdown preview security
 

marp-cliでMermaidを利用したMarpからPDFやPPTXを生成する方法

marp-cliを利用する事で、VS Codeなどを利用せずともコマンドラインでMarpからPDFやPPTXなどを作成できるようになる。ただ、Mermaidを利用している場合、以下のようなコマンドでMarp→PPTXを作成しても、scriptやHTMLのタグがそのままになってしまい期待通りの出力ならない。

$ docker run --rm -v $PWD:/home/marp/app/ -e LANG=$LANG -e MARP_USER="$(id -u):$(id -g)" marpteam/marp-cli --pptx report.md --allow-local-files

image.png

これを解決するには、--htmlオプションも一緒に利用する必要がある。つまり、以下のようなコマンドにすると、HTMLに変換してそれをPPTXとして出力してくれるので、期待通りの出力結果になる。

$ docker run --rm -v $PWD:/home/marp/app/ -e LANG=$LANG -e MARP_USER="$(id -u):$(id -g)" marpteam/marp-cli --pptx report.md --html --allow-local-files

image.png

13
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?