小技チョコレート

ちょっとした小技を紹介するだけのブログです。

Scrapboxにて当日の日記用ページを作るPythonスクリプト(当月・前日・翌日へのリンク付き)

Scrapboxにて当日の日記用ページ(デイリーページ)を作るPythonスクリプトを作りましたので、コードと使い方を書いておきます。


〈目次〉


機能

  • Scrapboxにおける、当日の日付をタイトルとするページを作ります。
    • タイトルとなる日付の書式は、デフォルトでは2019-09-01のようにYYYY-MM-DDという形です。書式は変更可能です。
  • 当月・前日・翌日への内部リンクが自動で記入されます。
  • 本文として自動で記入したい文字列を指定することができます。

実行例

本記事で紹介しているスクリプトを実行すると、このようなページが作成されます。

f:id:ichbin:20190901104719p:plain

2019年9月1日に実行した場合の例です。
タイトルの下に〈当月・前日・翌日への内部リンク〉が記入され、その下には、特定の文字列(この例では「#日記」というハッシュタグ)を自動で記入させることができます。

必要なもの

  • Pythonスクリプトを実行できること。
  • ウェブブラウザが使えて、そのブラウザでScrapboxにログインしていること。

設定の手順

下記のコードの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など)をタイトルとするこのようなページがブラウザで開かれます。

f:id:ichbin:20190901104719p:plain

書式やレイアウトを変更する方法

上掲のコード内にコメントとして説明を記入してありますので、それを参考に適宜書き換えれば、日付の書式やレイアウトを変更できます。

関連記事

本記事のスクリプトで行うのと同様のことを、ScrapboxUserScriptで実行することもできます。

当日や前日の日付をタイトルとするScrapboxページを「ブラウザで開くだけ」のスクリプトもあります。

Scrapboxにて〈前日の日付をタイトルとするページ〉を開くPythonスクリプト

Scrapboxにて〈前日の日付をタイトルとするページ〉をウェブブラウザで開くPythonスクリプトを作ったので、コードと使い方を書いておきます。


〈目次〉


機能

  • Scrapboxにおける、前日の日付をタイトルとするページをブラウザで開きます。
    • タイトルとなる日付の書式は、デフォルトでは2019-08-21のようにYYYY-MM-DDという形です。書式は変更可能です。

必要なもの

  • Pythonスクリプトを実行できること。
  • ウェブブラウザが使えて、そのブラウザでScrapboxにログインしていること。

設定の手順

下記のコードのYOUR_PROJECT_URLのところを、書き込みたいScrapboxのプロジェクトURL(https://scrapbox.io/○○○/の○○○の部分)に書き換え、ファイル名をyesterday.pyなどのように拡張子を.pyとして保存。

import datetime
import webbrowser

project_url = 'YOUR_PROJECT_URL'
now = datetime.datetime.today()
yesterday = now - datetime.timedelta(days=1)    # days=1 のところの数値を2にすれば一昨日、3にすれば3日前の日付で開かれるようになります。
y = yesterday.strftime("%Y-%m-%d")    #年・月・日の区切り方や並び順を変えたり、「0埋め」をしない形に変えたいときは、この行を書き換えます。
webbrowser.open('https://scrapbox.io/' + project_url +'/' +  y)

使い方

PCのコマンドプロンプトにてpython yesterday.pyと実行。

すると、その日の前日の日付(2019-08-21など)をタイトルとするページがブラウザで開かれます。

関連記事

Scrapboxにて〈当日の日付をタイトルとするページ〉を開くPythonスクリプト

Scrapboxにて〈当日の日付をタイトルとするページ〉をウェブブラウザで開くPythonスクリプトを作ったので、コードと使い方を書いておきます。


〈目次〉


機能

  • Scrapboxにおける、当日の日付をタイトルとするページをブラウザで開きます。
    • タイトルとなる日付の書式は、デフォルトでは2019-08-21のようにYYYY-MM-DDという形です。書式は変更可能です。

必要なもの

  • Pythonスクリプトを実行できること。
  • ウェブブラウザが使えて、そのブラウザでScrapboxにログインしていること。

設定の手順

下記のコードのYOUR_PROJECT_URLのところを、書き込みたいScrapboxのプロジェクトURL(https://scrapbox.io/○○○/の○○○の部分)に書き換え、ファイル名をopen.pyなどのように拡張子を.pyとして保存。

import datetime
import webbrowser

project_url='YOUR_PROJECT_URL'
title = datetime.datetime.today().strftime("%Y-%m-%d")  #年・月・日の区切り方や並び順を変えたり、「0埋め」をしない形に変えたいときは、この行を書き換える。
webbrowser.open('https://scrapbox.io/' + project_url + '/' + title)

使い方

PCのコマンドプロンプトにてpython open.pyと実行。

すると、その日の日付(2019-08-21など)をタイトルとするページがブラウザで開かれます。

関連記事

PCのTerminal(端末)からScrapboxに新しいページを作るPythonスクリプト

PCのTerminal(端末)からScrapboxに新しいページを作るPythonスクリプトを作ったので、コードと使い方を書いておきます。


〈目次〉


機能

  • 新しく作るページのタイトルを入力できる。
    • タイトルを空白にすると、日付(YYYY/MM/DD)がタイトルになる。
    • タイトルを付けずにページを作ることもできる。
  • 本文を1行のみ入力できる。

必要なもの

  • Pythonスクリプトを実行できること。
  • ウェブブラウザが使えて、そのブラウザでScrapboxにログインしていること。

利用上の注意点

上掲のとおり、Scrapboxで作るページのタイトルと本文を入力できますが、パスワードや個人情報などの「他人に見られると困る情報」をそこに入力するのはおすすめしません。

設定の手順

下記のコードのYOUR_PROJECT_URLのところを、書き込みたいScrapboxのプロジェクトURL(https://scrapbox.io/○○○/の○○○の部分)に書き換え、ファイル名をscrapbox.pyなどのように拡張子を.pyとして保存。

import urllib.request
import webbrowser
import datetime

project_url='YOUR_PROJECT_URL'
today = datetime.datetime.today().strftime("%Y/%m/%d")  #年月日の区切り方を変えたり、月と日の「0埋め」が不要なときは、この行を書き換える。

title=input('title >>')
if title=='':
    title=today
else:
    title_encode=urllib.parse.quote(title)

content=input("content >>")
content_encode=urllib.parse.quote(content)

#本文の末尾に自動で付けたいハッシュタグなどがあればtag=''のクォーテーションの間に書く。
#改行が必要な箇所には\nと書く。
#パスワードや個人情報などの「他人に見られたくない情報」はここにも記入しないことを推奨します。
tag='\n'

tag_encode=urllib.parse.quote(tag)

url='https://scrapbox.io/' + project_url + '/' + title +'?body=' + content_encode + tag_encode
webbrowser.open(url)

使い方

Terminalにて、上掲のスクリプトを保存したフォルダに移動し、python scrapbox.pyと実行。
title >>と表示されるので、次のいずれかを入力します。

  • ページに任意のタイトルを付けたいときは、それを入力。
  • 日付をページのタイトルにしたいときは、ここには何も入力しない。
  • タイトルを付けずに(=タイトルを空白にして)ページを作りたいときは、newと入力。

そしてEnterキーを押すと、その下の行にcontent >>と表示されるので、ページの本文として書き込みたい内容を入力します。改行はできません。

f:id:ichbin:20190808134109p:plain
(タイトルに「hoge」、本文に「ほげほげ #test」と入力した例)

そしてEnterキーを押すと、ウェブブラウザが開かれ、ページが作成されます。

f:id:ichbin:20190808125213p:plain

f:id:ichbin:20190808125329p:plain
(日付をタイトルにした場合)

f:id:ichbin:20190820230425p:plain
(タイトルに「new」、本文に「ほげほげ」と入力した場合)

Tips

追記の機能について

このスクリプトhttps://scrapbox.io/プロジェクトURL/タイトル?body=本文という形式のURLをブラウザで開くことによってページの作成を行っているわけですが、このURLの「タイトル」の部分が既存のページタイトルと同一であれば、その既存のページの末尾に「本文」部分が追記されます。*1*2

例えば「hoge」というタイトルのページが既に存在しているときにhttps://scrapbox.io/プロジェクトURL/hoge?body=本文というURLを開く(すなわち、このスクリプトtitle >>のところにはhogeと書く)と、既存の「hoge」ページに追記されます。

f:id:ichbin:20190808130300p:plain
(「pukupuku」の部分が、追記されたもの)

日時のハッシュタグを自動で付ける

ページを作成したり追記した際に、それをした日/月/年のハッシュタグ(例:#2019/08/08, #2019/08, #2019 など)を自動で付けるようにしておくと、使いようによっては便利かもしれません。それができるようにしたコードもこちらに置いておきます。

import urllib.request
import webbrowser
import datetime

project_name='YOUR_PROJECT_URL'
today = datetime.datetime.today().strftime("%Y/%m/%d")  #当日の日付
month=datetime.datetime.today().strftime("%Y/%m")  #当月
year=datetime.datetime.today().strftime("%Y")  #当年

title=input('title >>')
if title=='':
    title=today
else:
    title_encode=urllib.parse.quote(title)

content=input("content >>")
content_encode=urllib.parse.quote(content)

#当日をハッシュタグとして末尾に書き込む(例:#2019/08/08)。
#当月または当年に変えたいときは、todayのところをmonthまたはyearに書き換える。
#当日・当月・当年を全て書きたければtag='\n#'+today+'\n#'+month+'\n#'+yearなどとする(\nで改行1回)。
tag='\n#'+today
tag_encode=urllib.parse.quote(tag)

url='https://scrapbox.io/' + project_url + '/' + title +'?body=' + content_encode + tag_encode
webbrowser.open(url)

f:id:ichbin:20190808134252p:plain
(当日のハッシュタグ付きの例)

*1:ただしページタイトルを「new」とした場合は例外で、追記はされず別々のページとなります。

*2:このあたりの仕様についてはScrapboxのヘルプに解説があります。