[ゆるぼ]Drafts5からScrapboxの特定のページにテキストを追記できるアクションの作り方。javaが使えるのでtextwellと同じ手法でいけるはずなのですが・・・https://t.co/c7SQZMRTBF
— るう (@ruu_embo) 2019年5月28日
よし、じゃあ、書いてみますか。
経過は以下。
Drafts5からScrapboxに追記するAction – 考えて、生み出す技術(TAC)
まず、無料ユーザーの場合はアクションのカスタマイズができないっぽいので、以下の神アクションを導入。
Drafts5で作ろう、自作アクション入門(1) – W&R : Jazzと読書の日々
上のページにある「ActionMaker」を登録するところまでが下準備。これでDraft5に書いたコードをアクションとして登録できるようになります。一行目がタイトルとして使用されるので注意してください。
で、実際のコード。たとえば「「どうせ記事にしきれないメモたち」の供養祭 – 倉下忠憲の発想工房」に追記する場合は以下のようになります。
goScrapbox text = editor.getText(); const homeUrl = 'https://scrapbox.io/rashitamemo/%E3%80%8C%E3%81%A9%E3%81%86%E3%81%9B%E8%A8%98%E4%BA%8B%E3%81%AB%E3%81%97%E3%81%8D%E3%82%8C%E3%81%AA%E3%81%84%E3%83%A1%E3%83%A2%E3%81%9F%E3%81%A1%E3%80%8D%E3%81%AE%E4%BE%9B%E9%A4%8A%E7%A5%AD'; url = homeUrl +"?body=" + encodeURIComponent(text); app.openURL(url); editor.focus();
なので、homeUrlのところに、ご自分の追記したいページのURLをぶっこんでもらえればOKです。あと、最初のhttps:の部分をsbporter:に差し替えると、SafariではなくPorter for Scrapboxで開くので、その辺はお好みで。
で、上記だと「あらかじめ指定してあるページに追記」しかできないので、少し動作を増やしたバージョンも。
goScrapbox //プロジェクトのURLを設定。 //https:をsbporter:にすればPorter for Scrapboxでひらきます const homeUrl = 'https://scrapbox.io/rashitamemo/'; //本文に追記したい要素を(ex.[drafts],\n[drafts] 。必要なければこのままで const tag = ""; const itemList = []; itemList.push('「どうせ記事にしきれないメモたち」の供養祭');//追記したい固定ページのタイトルを入力する itemList.push('新規');//一行目をタイトルにしてページを作る itemList.push('日記');//その日の日記ページに追記(存在なければ新規作成) p = Prompt.create(); p.title = "?"; for(i=0; i < itemList.length; i++) p.addButton(itemList[i]); p.show(); s = p.buttonPressed; const now = new Date(); const year = now.getFullYear(); const month = now.getMonth()+1; const date = now.getDate(); const dateT = ["日","月","火","水","木","金","土"]; const day = dateT[now.getDay()]; const hours = now.getHours(); const minutes = now.getMinutes(); const seconds = now.getSeconds(); text = editor.getText(); lines = text.split(/\r\n|\r|\n/); if (s == itemList[0]){ url = homeUrl + encodeURIComponent(s) + "?body=" + encodeURIComponent(text); }else if (s == itemList[1]){ title = lines[0] == "" ? "無題ノート" : lines[0].trim() url = homeUrl + encodeURIComponent(title) + "?body=" + encodeURIComponent(text + tag); }else if (s == itemList[2]){ diaryTitle = year + "/" + month + "/" + date; url = homeUrl + encodeURIComponent(diaryTitle) + "?body=" + encodeURIComponent(text + tag) ; } app.openURL(url); editor.focus();
これで三種類の動作から選択できます。
上から、「指定してあるページへのつき」「一行目をタイトルにして新規ページの作成」「その日の日付をタイトルにしたページを作成」の三種類です。日付のタイトルについては、 下の方に出てくる diaryTitle = year + “/” + month + “/” + date; のところをいじってもらえば間の記号やらなんやらは変更できます。
というわけで、おおむね機能するアクションが書けたわけですが、「書き込みが終わったら、Drafts5に戻ってくる」という動作の指定方法がぜんぜんわかりませんでした。なにせアクションを書いたのはこれが初めてなのです。
なんとか、x-success というキーワードには辿り着きましたが、そこで力尽きました。
まあ、左上からDrafts5に戻れますので、とりあえずはそれで良しとしておきましょう。
▼こんなやりかたも:
Drafts 5からScrapboxの特定のページに追記 ノンプログラミング版 – #ToDo 関連のメモ ( #sorashima )
▼こんな一冊も:
売り上げランキング: 68,823
コメントを残す