MilkScriptを使ってタスク名の冒頭にキーワードを付与する
公開 2023/11/20 13:29
最終更新 2023/12/11 11:24
これからタスク管理アプリ『remember the milk(以下RTMと記述)』独自のスクリプトについて、いくつか使っているコードを紹介します。

もともと事務員やってて専門のプログラマーとかではないので、見る人が見れば「クソコードw」と嘲笑の的になりそうで怖いのですが、如何せんMilkScriptに関する記事が少なすぎる。むしろ見つからない。

鬼のようなカスタマイズ性を秘めているというのに、全世界でこの魅力に気づいているのはひょっとして私だけなのでは?と不安になったので、せめてサンプルコードを残しつつ、「こういう使い方をしているよ」という発信は残しておいたほうがいいのかなと記事をしたためております。

尚、ここでのコードをコピペするなどして使ってもらっても全然構いませんが、もし何らかの不具合が発生されました場合、当方一切の責任を負いかねますのでご了承ください。

『Star』をカスタマイズして、タスク名の冒頭にキーワードを付与する #

もともと公式から提供されているサンプルに『Star』というスクリプトがあります。


https://www.rememberthemilk.com/services/milkscript/quickstarts/startasks.rtm

選択したタスクの冒頭に何もついていなければ絵文字の☆を付け、逆に☆がついていればそれを外す。といったものです。

これを応用して書いたのが以下のコード。

// 選択タスクの数が1つでないなら、エラーにして終了。そうでないなら定数『selectedTask』に選択タスクを格納
if (rtm.getSelectedTasks().length !== 1) {
  throw new Error("タスクが選択されていない、または複数タスクが選択されています");
}
const [selectedTask] = rtm.getSelectedTasks();
// 選択タスクにノートがなければエラー処理。あれば定数『note』に最近更新されたノートを格納する
if (selectedTask.getNotes().length === 0) {
  throw new Error("選択タスクにノートがありません");
}
const note = selectedTask.getNotes()
  .reduce((result, note) =>
    result == null || note.getModifiedDate() > result.getModifiedDate() ?
      note : result, null);
// 選択タスクにサブタスクがなければエラー処理。あれば定数『subTasks』に格納する
if (selectedTask.getSubtasks() === 0) {
  throw new Error("選択されたタスクにサブタスクがありません");
}
let subTasks = selectedTask.getSubtasks();

const [context] = note.getContent().split('\n');
// キーワードを抽出する
let keyword = context.match('接頭辞');
if (keyword === null){
  throw new Error("ノートに接頭辞の表記がありません");
} else {
  keyword = context.substring(4,context.length).trim() + ': ';
}

//サブタスク群の名称変更
selectedTask.getSubtasks().forEach(subTask => {
  subTask.setName(keyword + subTask.getName());
});

はたらき #

選択したタスクのサブタスクのすべてにノートで指定したキーワードを付与する。といったものです。

選択したタスクのノートの1行目に『接頭辞: キーワード』などと入力されていれば、サブタスクすべての冒頭に『キーワード: ◯◯◯◯』と付与されます。

選択タスクが0または複数の場合、選択したタスクにサブタスクとノートがない場合、エラーになります。
また、複数ノートがある場合、更新が最新のものを調査され、1行目に『接頭辞:』と入力されてない場合もエラーとなります。

用途 #

後日、別のエントリーで書きますが、RTMで完了したタスク群を一括で取得してプロジェクトのレポートを書いたり、ライフログに使ったりしています。

例えば『ブログを書く』というタスクのサブタスクに『画像を用意する』『下書きを書く』『本稿を書く』『推敲する』『公開する』とあったとして、完了したサブタスクが単一で『画像を用意する』とあっても、画像をなんのために用意していたのか、後でレポートを見ても把握できません。

そこで、キーワードを『ブログ執筆』などにしておいて、『ブログ執筆: 画像を用意する』『ブログ執筆: 下書きを書く』『ブログ執筆: 本稿を書く』『ブログ執筆: 推敲する』『ブログ執筆: 公開する』とサブタスク名を一括置き換えすると、あとでレポート作成する時にわかりやすくなります。

# スクリプト実行前 #



# スクリプト実行後 #



※アレンジ元の『Star』ではスクリプト実行毎に、☆を付けたり消したりできますが、こちらのスクリプトは実行する度、どんどん冒頭にキーワードが追加されていくだけです。
北海道在住の四十路OL主婦です。
最近の記事
WordPressから撤退
BrownDots(http://browndots.net)という名前のブログを書いていました。 しかし更新が滞ったまま数年が経ち、このたび撤退した…
2025/01/01 16:52
Excel VBAメモ: コレクションを使ってオートフィルタした値を重複なく配列に格納する方法
オートフィルタしたあとのデータから重複なく可視セルの値を配列に格納する方法のメモです。 Sub オートフィルタした値を重…
2024/05/23 15:21
自己紹介
北海道帯広在住。44歳。女。既婚。子は独立済み。 商業高校卒。中小企業の事務歴26年。2020年 働きながら放送大学卒業。…
2024/05/21 10:16
MilkScriptでプロジェクトレポートと、年次レビュー用タスクリストを取得する
MilkScriptに関する記事は、これで最後です。 今回も条件を指定してタスクリストを取得し、ウィンドウ表示させるといったもの…
2023/12/10 20:06
MilkScriptで週次レビュー用やったことリストや月次レビュー用やったことリストを表示する
引き続き、これまでに書いたMilkScriptの紹介です。 前回もそうですが、この記事も、この次の記事もずっと「完了したタスクをウ…
2023/12/05 13:07
MilkScriptで日報用やったことリストを取得し、選択タスクのノートをすべてウィンドウ表示させる
引き続きこれまでに書いたMilkScriptの紹介です。 日報用やったことリスト # とある備忘録だけ集めたリストに『ジャーナル…
2023/11/27 18:28
Milkscript ノートの内容からサブタスクを作成。サブタスクを一括削除し、内容をノートに転記す…
引き続きMilkScriptのコードを載せていきます。 ノート → サブタスク # ノートの内容からサブタスクを追加していくスクリ…
2023/11/21 13:57
MilkScriptを使ってタスク名の冒頭にキーワードを付与する
これからタスク管理アプリ『remember the milk(以下RTMと記述)』独自のスクリプトについて、いくつか使っているコードを紹介し…
2023/11/20 13:29
テストポスト
大見出し # てすとてすと。 あいうえお、かきくけこ。あいうえお、かきくけこ。あいうえお、かきくけこ。あいうえお、かきく…
2023/08/10 10:23
もっと見る
タグ
MilkScript(5)
ExcelVBA(1)
もっと見る