LoginSignup
3
2

More than 5 years have passed since last update.

SeaPig 開発中の困ったメモ

Last updated at Posted at 2016-08-22

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

  • SeaPig v0.6.0で引数としてファイルを指定することで起動時にファイルを開くことができるようになりました。(複数指定した場合、有効なファイルの数だけウィンドウが立ち上がります。あまり推奨しませんが。将来的にバッチモードみたいなのを導入しようと考えています。)

SeaPig の使い方を日本語で読みたい場合は、Electron でマークダウンからHTMLへの変換ソフトを自作してみたを参照してください。

筆者の環境

Commander.js を使おうとしたが挫折

オプションパーサー系で比較的、使い方が分かりやすそうだった Commander.js を当初、導入して使用しておりました。

Electron でアプリケーションを起動していた際は、これでオプションの追加も楽になるな、と喜んでいたのですが、リリース直前になって、パッケージ化した際に引数なしでまともに起動しないという事象に遭遇しました。

原因は、コマンドの実際の引数の開始位置が変わってしまうこと。分かりにくいので具体的に書きます。

Electron で起動する場合

$ electron . 引数...

パッケージで起動する場合

$ seapig 引数

暫定対処

検索してもこれだという解決策を見つけられず、引数の解釈は、独自に行うことにしました。

Electron で起動されているかどうかを調べて、process.argv から、slice で渡す位置を変更し、受け取った配列を foreach() で回して引数を検査しています。

余談ですが、その後、Moeditor では、process.argv.filter() でコールバック関数に処理させていることが分かりました。個人的には、面白い方法だと思ったのですが、結構、使われてたりするんでしょうか。

デベロッパーツールの操作の違い

デベロッパーツールは、以下のメソッドで操作可能であるが、webview では、toggleDevTool が用意されていない。(大して困らないけど)

  • contents.openDevTools()
  • contents.toggleDevTools()
  • contents.closeDevTools()

テストを導入してみようとして困った

v0.7.0リリースまでにテストを少しでも導入しようと思いました。

当初、jasmine で構築してみようと思いましたが、ES2015 とかに素だと対応してないみたいで断念。

以下の記事を参考に mocha + power-assert + babel-register + babel-preset-power-assert + babel-preset-es2015 でテスト環境を構築しました。

一応の mermaid サポート

一応の mermaid サポートを追加しました。ですが、プレビューを更新する度に svg に付与する id が増加していきます。同じセッションで同じ id で mermaidAPI.render 呼び出すと svg が壊れるので。リセットする方法がないか、いずれ調べたいと思います。

3
2
1

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
3
2