16
16

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 5 years have passed since last update.

Electron でマークダウンからHTMLへの変換ソフトを自作してみた

Last updated at Posted at 2016-08-13

SeaPig is converter from markdown to html with marked.js and highlight.js.

似たようなネタ、みんな投稿してるし、今更な感じですが、以下の理由から、あえて SeaPig という名前で自作してみました。

  • Shiba など素晴らしいソフトが多いのですが、みんなプレビュー止まり。
  • 変換結果を静的 HTML で保存できる奴が欲しかった。(pandoc 使う手もあるのですが…)
  • 環境によらず、PDF で出力できる奴が欲しかった。
  • vim キーバインドを使いたい。

筆者の環境

開発方針

  • ユーザー自身でインターネットへの参照を記述しない限り、インターネット接続不要とする。
  • javascript を使用(CoffeeScript や TypeScript などコンパイルが必要なものを使用しない)
  • gulp や bower などのビルドツールは使用しない。
  • できるだけ GitHub フレーバーで出力
  • 出力する HTML が javascript に依存しないようにする
  • ユーザーが好きなキーバインドを使用可能にする(windows/emacs/vim/sublime)

各環境向けバイナリファイル

バージョン 0.9.1に各環境向けのバイナリファイルをアップロードしています。

現在の所、Windows と Linux 向けのみです。(動作、不動作の連絡、お待ちしております。)

ソースからの起動方法

git および node.js が使える環境で以下を実行してください。

$ git clone https://github.com/yasumichi/seapig.git
$ cd seapig
$ git submodule update -i
$ npm install
$ npm build-dep
$ npm start

スクリーンショット

seapig.png

  • ツールバー部分は次項で説明します。
  • 左側のペインがエディタ、右側のペインが HTML でのプレビューです。

ツールバーの使い方

seapig-toolbar.png

ツールバーでのボタンの順番で説明します。

  • キーボードアイコンの隣にあるドロップダウンリストでキーバインドを変更します。(default/emacs/vim/sublime)次回起動時には、最後に選択していたキーバインドで起動します。
  • 白紙アイコンのボタンでファイルを新規作成します。(新しいウィンドウを開く。)
  • フォルダアイコンのボタンでファイルを開きます。
  • フロッピーアイコンのボタンでファイルを上書保存します。(新規ファイルのみ名前を付けて保存になる。)
  • 変換結果を HTML ファイルとして保存します。この際、使用しているスタイルシート(github.css)を同一フォルダに出力します。
  • プリンタアイコンのボタンで変換結果を PDF ファイルとして保存します。
  • <アイコンでエディタを非表示にします。(エディタが最大化している場合は、通常の大きさに戻します。)
  • >アイコンでプリビューを非表示にします。(プリビューが最大化している場合、通常の大きさに戻します。)
  • 強制的にプリビューを更新します。(Mithril.js のおかげでほぼリアルタイムでプレビューが更新されるのであまり押す機会はないかもしれません。)

viz.js サポート(v0.3.0にて)


```graphviz
digraph g { a -> b; }
```

の様にコードブロックを記述すると viz.js を使用して下の画像のようなグラフを SVG で埋め込めます。(下の画像は出力結果を png に変換したものです。GitHub からうまく svg 画像を表示できないため。)

記述方法の詳細は、@rubytomato@github さんのGraphvizとdot言語でグラフを描く方法のまとめ - Qiitaなどを参考にしてください。

uiflow サポート(v0.5.0にて)


```uiflow
[トップページ]
ユーザー名
パスワード
--
ログイン
==>マイページ

[マイページ]
お気に入り

```

の様にコードブロックを記述すると uiflow :arrow_right: viz.js を使用して下の画像のような UI フロー図を SVG で埋め込めます。(下の画像は出力結果を png に変換したものです。GitHub からうまく svg 画像を表示できないため。)

記述方法の詳細は、uiflow を参照してください。

mermaid サポート(v0.7.0にて)


```mermaid
sequenceDiagram
    participant main
    participant renderer
    participant previewer
    main->>renderer: Open file
    renderer->>previewer: Refresh preview
```

の様に書くと以下のようなシーケンス図を SVG で埋め込めます。

フローチャート、シーケンス図、ガントチャート、円グラフは、いい感じで使えますが、クラス図、Git グラフの対応はいまいちです。(調査中)

MathJax サポート(v0.9.0にて)


```math
E=mc^2
```

のように書くと以下のような数式を SVG で埋め込めます。

使用したライブラリ等

競合するアプリケーションを見つけました

Moeditor、しかもデザインが今風です :sweat_smile:

参考リンク

16
16
2

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
16
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?