Drafts5で作ろう、自作アクション入門(2)

draftを使ってみよう。


ActionMaker

HTMLプレビューも取り込みました。スクリプト内に draft.content が使われるとプレビュー用のステップを追加。draft.content の文字列を内蔵ブラウザで表示します。

ActionMakerをインポート → http://tinyurl.com/y9euku3p


今回のミッション

Markdownまわりを見てみます。


Markdownプレビュー

本文をプレビューします。実質、一行で済みます。

Review
draft.content = editor.getText();

本文を内蔵ブラウザで表示。Drafts5はデフォルトでMarkdownに対応しているから、何も考えなくて大丈夫。draft.content に渡すだけでHTML変換してプレビューします。


スタイルを追加

そのままだと味気ないので、見た目を整えます。

Review
style = "body{font-family:Hiragino Mincho ProN;word-wrap:break-word;} h1,h2,h3,h4,h5,h6{color:darkblue;font-family:Hiragino Sans;padding:10px 0 0;border-bottom:1px #eee solid;} blockquote{font-family:Hiragino Sans;margin:0px;border-left:20px #fff groove;} pre{background:whitesmoke;padding:10px} strong{color:red;} em{background:lime;} img{max-width:340px;}";
draft.content = "<style>"+style+"</style>"+editor.getText();

変数styleでCSSスタイルを定義し、draft.contentに追加します。ブログに投稿する場合はご自分のブログのスタイルに合わせておくと良いでしょう。


HTML変換

MarkdownのテクストをHTML変換して保存します。pタグが付くので、replace() を組み合わせて、使いやすいように加工したほうが良いかもしれません。

Markdown
text = editor.getText();
d = Draft.create();
md = MultiMarkdown.create();
d.content = md.render(text);
d.update();

Draft.create() が下書きの作成で、そのcontentを埋めてから update() すると新規作成になります。個人的には、プレビューしながらHTMLをクリップボードに保管するアクションに改造しています。最後の d.update() を app.setClipboard(d.content) に替えるだけ。


まとめ

Markdownプレビューが内蔵されているので、表示に待たされないのが流石です。ただ、そのためのアクションを作ろうとすると「ステップ」を考えなければいけなくなる。今回は単純に draft を表示する方法でしたが、さらに凝ったものとなると無料のままでは難しい。