\ 最大7.5%ポイントアップ! /

読書ログ改造・読書回数編

当ページのリンクには広告が含まれています。

先日、自分で作り上げたNotion読書ログの作り方を紹介しました。

毎日何かしらの内容でNotionを触ってはいるのですが、プログラミングも含めて初心者丸出しのため、日々最適化をするために色々変更しています。

所持している本は基本的に電子書籍なんですが、冊数だけはそれなりにあるので(漫画、画集、レシピ本など含め4000冊ちょっと)何度も読み返す本は少ないです。

それでも何度も読むたびに読了日がリセットされる、もしくは最初の読了日のまま放ったらかし状態というのがなんとなく気になったので、まずは読んだ回数のカウント、2回目以降の読み終わった日を簡単にログとして残す方法を考えました。

ということで、前回に引き続き今使っているNotion製の自作読書ログを改造していきます。

この記事でわかる事

Notionのプロパティ内で改行する方法と、読書ログで読んだ日付をリスト化して残す方法

目次
スポンサーリンク

やりたい事と、やったこと

さて、まずは何を実現したかったのかについて。

これは冒頭にも書いた通りですが、「複数回読んだログを、日付付きで残したかった」んです。

機能を最小限にするなら必要はないのですが、私の場合は年間の読書数を記録していくつもりでページを作っているため、年間ページへの登録作業などを簡略化する目的で、複数の年に渡って記録をつけられる仕様にしたかったというのがあります。

そのため、まずは日付のログをできるだけ少ない工程で出力できる方法を探しました。

スポンサーリンク

どういう試行錯誤か

先日、別の項目をいじっている時に気がついたのですが、ページを変更していくには基本的に「プロパティ」を使う方がやりやすい、という事。

いや、多分Notion使ってる方々は「基本のキじゃろ」と呆れるに違いない事なんですが…今まで私は下側のページ部分にボタンを入れて使ってたんですね。結構な頻度で更新するのに、それなりの数作って。

なのでもっと簡略化しよう!となり、複数あるボタンをまとめることから始めました。

そこで初めて把握したことが一つ。

プロパティ側に作ったボタンでは、ページの下側にテキストブロックを挿入していくのは(私の知識と技術力じゃ)不可能!!

あやめ

まじか、それで簡単に日付ログ出しておけるやん?って思ってた私、乙。とりあえず下側のページエリア?を使っていくのは一旦アキラメロン…

とはいえ、そんなにログができるほど頻繁に読み直す本があるわけでもなし。

なら、プロパティ側に出力していけばいいんじゃない?からの、プロパティの改行方法と、ログを上書きせずに残す方法についての試行錯誤が始まりました。

やった内容と詳細について

結果として、いくつかプロパティの数を増やす事になりましたが、今回の趣旨である複数回読んだ日付をログとして残す事はできるようになりました。

その中で行った事のひとつは、各ページに設置しているボタンの数を減らすこと。
まず、「積読」「読書中」「読了」といったその本の状態を表すステータスプロパティを、ボタンプロパティでループさせる事で1つにまとめることができました。

その次に、「読了」になる時ついでに読了日を入れられる仕様も入れる事。
これは最初タイミングがずれたために少し考える必要がありましたが、特にかんすうを調べる必要もなく実装できました。

そしてその読了日をどこかにログとして書き出す事。
これ自体はそこまで難しくなく、すぐにできました。

が、複数行あると何回読んだかも気になってきてしまい、ログの頭に番号をつける仕様を考えついてしまい、これにより結構な苦戦と、プロパティの数を増やす結果になってしまいました。

ぶっちゃけあまりおすすめはしません、プロパティ数増えるので。
ですが、私と同じように「何回読んだかもカウントしたいのわかるぅ、一目でわかりたい」という奇特な方に向けたロマン機能として考えて頂ければ幸いです。

1つのボタンでステータスなどをループさせる方法

これはボタンプロパティで、カスタム関数を使用しました。

まず左の画像、これは無くても大丈夫ですが、「変数を定義」というアクションを使っています。

これでよく使う部分(ここでは「このページ」.「じょうたい」のプロパティを連続で入力する部分)をあらかじめ用意しておくことで、表示などを簡略化することができるので、私がわかりやすいように使いました。

今回は左の画像にある「このページ.じょうたい=状態」という変数にして使っています。
多分もっといい使い方はあるんだろうけど、今の私ではこれが限界です。

次に、右の画像。
アクションは「ページを編集」>「このページ」、プロパティを「じょうたい」(ステータス)、テキストではなく関数として編集します。

関数を多少使ったことのある方は馴染みのあるだろう「if」ですが、ここではそれを1つで複数使える(と私は認識している)「ifs」を使っています。

ifsは、左から順番に、ifs(条件1、条件1がTRUEの場合、条件2、条件2がTRUEの場合…)と続いていきます。

あやめ

私が知ってる限りではありますが、多分FALSEの場合を入れたいなら、ふつうのifを使うことになるかと思います

私が書いた内容は
①ステータス(じょうたいプロパティ)が「積読」なら「読書中」に変える
②ステータスが「読書中」なら「読了に変える
③ステータスが「読了」なら「挫折」に変える
④ステータスが「挫折」なら「積読」に変える
という内容。

こうすることで、ボタンひとつでの項目ループが出来上がるはずです。

ステータス「読了」時に日付も入れる

とりあえず、先に入れてある「ページを編集する」アクションに、読了日プロパティも追加して編集します。

関数として編集をするうえで、今回使っている変数の「読んだ日」は、「このページ.読了日」プロパティの事です。

今回も「ifs」をメインに条件によって分岐させましょう。

内容は
①条件「じょうたい」ステータスが「読書中」
①TRUE…もし「読了日」が空白じゃなかったら(読了済で日付が入っている場合を指す)
→TRUE(日付ありの時)…「読了日」には「読了日」の日付を入れておく
→FALSE(空白の時)…「読了日」には今日の日時を入れる
②条件「じょうたい」ステータスが「読書中」以外のとき
①TRUE…「読了日」には「読了日」の日付を入れておく
となっています。

この先、ログは残すけど読了日を更新していけるようにしたいので、次に大きく編集するのはこの部分になるはず。

条件付けの補足

他の部分にも言える事ですが、この時なぜ条件が「読了」ではなく「読書中」なのかについて解説です。

私の設定では「積読」→「読書中」→「読了」→「挫折」の並びでループする設定にしてあります。

この状態で「読了」であるときに日付を入れると条件を設定すると、ステータスが「読了」に変わる時=まだステータスは「読書中」となります。
なので「読了」になったタイミングで日付は入らず、「挫折」に変わるタイミングで日付が入ってしまうという事態が起こってしまい、気をつけるポイントとして覚えておきたいと思いました。

プロパティ内で改行する

これは案外難しくはなく、関数で改行したい位置に「"\n"」(ダブルクォーテーション・バックスラッシュ・エヌダブルクォーテーション)をいれる、というものでした。

"たとえばこんな感じ" + "\n" + "へのへのもへじ"

これをNotionの関数として打ち込むと、表示が以下のようになる。

たとえばこんな感じ
へのへのもへじ

お試しあれ。

読了日を一覧として出力する

やっぱり一番苦労したのはこのポイント。
単純に日付をログとして出力していくだけならば、正直すぐ終わりました。
(※左画像。この時はまだ変数用意してなかった)

ですが私がやりたかった理想は、右の画像の状態。

あやめ

そう、ログの最初に何回目ってわかる数字を付けたかったんよ…
無駄に凝るからこうなるぅ…

ここは最初、「1:」は付けられるし「2:」までもちゃんと動くけど、そのあとうまく数字が加算されず、「2:」がずっと続いていく感じになって困りました。
変数を用意したり、単純に数字を入れたりした結果、他の変数も用意されるに至ってます。

その結果、私の技術ではそのまま関数のみで実装するのがむずかしかったので、改めて読了回数をカウントするプロパティを用意(読了回数、数字プロパティ)。

それを頭にくっつける形で実装し、なんとか思い描いていた形になりました。

中身はこんな感じ。

読了回数カウントの中身

プロパティは「数値」、初期値は何も入れません。
おなじみのifで条件付け。

if①「じょうたい」ステータスが「読書中」のとき
①TRUE、if②「読了日」が空ではないとき
→②TRUE、if③「読了回数」が空のとき
→→③TRUE「読了回数」に2を足す
→→③FALSE(読了回数に数値が入っているとき)「読了回数」に1を足す
→②FALSE(「読了日」が空のとき)「読了回数」に1を足す
①FALSE(「じょうたい」ステータスが「読書中」以外)現在の「読了回数」をいれる

じょうけんだらけでややこしいですが、これで既読のもので読了回数が空白の時は2からカウント、最初なら1からができるようになりました。

読了日時ログの書き出し

ログを書き出す先のプロパティは「テキスト」にしています。
もちろん初期値は何も入れず。

if①「じょうたい」ステータスが「読書中」のとき
①TRUE、if②「読了回数」が空白のとき
→②TRUE、if③「読了日」が空白ではないとき
→→③TRUE…1:「読了日」(改行)「読了回数」に2を足す、今の日時を入れる(改行)
→→③FALSE…(「読了日」が空白のとき)1:今の日時(改行)
→②FALSE(「読了回数」が空白ではないとき)現在の「読了日時ログ」を入れて、「読了回数」に1を足し、今の日時(改行)
①FALSE(「じょうたい」ステータスが「読書中」以外)「読了日時ログ」を入れる

これでなんとか、以下のような事ができるようになりました。

スポンサーリンク

まとめ

今回、読書ログのページを最適化していく中で、複数回読んだ本の読了日ログを書き出したいと思い至ったところから改造が始まりました。

結果、現在は読了になる時に、
①読了回数に1加算(ただし既に読了の場合は最初2加算)
②読書回数ログに「回数:読了日」を出力
という工程を繰り返せるようになり、一旦は満足しています。

これを今度、読了日を書き換える使用にしていけたらと思っているので、またよろしければお付き合いください。
ありがとうございました。

追記

Screenshot

「読了日」を更新しつつ、ログに出力していく方法があまりにもすんなりといったので、追記で済まそうと思います。

2つ目に置いていたif文を消して、「now()」もしくは「today()」でOK。

スポンサーリンク
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次