Scrapboxにて当日の日記用ページ(デイリーページ)を作るPythonスクリプトを作りましたので、コードと使い方を書いておきます。
〈目次〉
機能
- Scrapboxにおける、当日の日付をタイトルとするページを作ります。
- タイトルとなる日付の書式は、デフォルトでは
2019-09-01
のようにYYYY-MM-DD
という形です。書式は変更可能です。
- タイトルとなる日付の書式は、デフォルトでは
- 当月・前日・翌日への内部リンクが自動で記入されます。
- 本文として自動で記入したい文字列を指定することができます。
実行例
本記事で紹介しているスクリプトを実行すると、このようなページが作成されます。
2019年9月1日に実行した場合の例です。
タイトルの下に〈当月・前日・翌日への内部リンク〉が記入され、その下には、特定の文字列(この例では「#日記」というハッシュタグ)を自動で記入させることができます。
必要なもの
設定の手順
下記のコードの6行目のYOUR_PROJECT_URL
のところを、書き込みたいScrapboxのプロジェクトURL(https://scrapbox.io/○○○/
の○○○の部分)に書き換え、ファイル名をtoday.py
などのように拡張子を.py
として保存。
import datetime import urllib.request import webbrowser ###プロジェクトURL### project_url='YOUR_PROJECT_URL' now=datetime.datetime.today() #当日の日付を取得 yesterday=now - datetime.timedelta(days=1) #当日から1日マイナス=前日 tomorrow=now + datetime.timedelta(days=1) #当日に1日プラス=翌日 ###日付の書式### #デフォルトではYYYY-MM-DD #年・月・日の区切り方や並び順を変えたり、 #「0埋め」をしないよう変更したいときなどは、 #この下の4行の各行末の、丸カッコ内を書き換える。 #例:("%Y年%m月%d日") とか ("%Y/%m/%d") など title = datetime.datetime.today().strftime("%Y-%m-%d") #当日かつページタイトル month=datetime.datetime.today().strftime("%Y-%m") #当月 y=yesterday.strftime("%Y-%m-%d") #前日 t=tomorrow.strftime("%Y-%m-%d") #翌日 ###〈当月・前日・翌日へのリンク〉の書式### #デフォルトの並び順は、当月→改行→翌日→当日の日付→翌日。 #不要なものは除去可能。 #全体が不要ならばdates=''とだけ書いておく。 dates='['+month+']\n['+y+'] | '+title+' | ['+t+']' ###本文に自動で記入する文字列### #〈当月・前日・翌日へのリンク〉とは別に、 #自動で記入したい文字列があれば、 #contents=''のクォーテーションの間に書く。 #改行は\nと記入。Scrapbox記法も記入可。 #ただし、パスワードや個人情報などの「他人に見られると困る情報」は記入しないことを推奨します。 contents='#日記' dates_encode=urllib.parse.quote(dates) contents_encode=urllib.parse.quote(contents) ###ページのレイアウト### #'?body='より後ろの3つの変数は、 #左から順に、〈当月・前日・翌日へのリンク〉→〈改行2回〉→〈本文に自動で記入する文字列〉 #という順番になっており、これらの順番を変えれば、 #各々の記入される位置が変わる(左側にあるものが上になる)。 #改行したいところはurllib.parse.quote('\n')と書く。 webbrowser.open('https://scrapbox.io/' + project_url + '/' + title + '?body=' + dates_encode + urllib.parse.quote('\n\n') + contents_encode)
使い方
PCのコマンドプロンプトにてpython today.py
と実行。
すると、その日の日付(2019-09-01
など)をタイトルとするこのようなページがブラウザで開かれます。
書式やレイアウトを変更する方法
上掲のコード内にコメントとして説明を記入してありますので、それを参考に適宜書き換えれば、日付の書式やレイアウトを変更できます。
関連記事
本記事のスクリプトで行うのと同様のことを、ScrapboxのUserScriptで実行することもできます。