PCのTerminal(端末)からScrapboxに新しいページを作るPythonスクリプトを作ったので、コードと使い方を書いておきます。
〈目次〉
機能
- 新しく作るページのタイトルを入力できる。
- タイトルを空白にすると、日付(YYYY/MM/DD)がタイトルになる。
- タイトルを付けずにページを作ることもできる。
- 本文を1行のみ入力できる。
必要なもの
利用上の注意点
上掲のとおり、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")
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_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 >>
と表示されるので、ページの本文として書き込みたい内容を入力します。改行はできません。
(タイトルに「hoge」、本文に「ほげほげ #test」と入力した例)
そしてEnterキーを押すと、ウェブブラウザが開かれ、ページが作成されます。
(日付をタイトルにした場合)
(タイトルに「new」、本文に「ほげほげ」と入力した場合)
Tips
追記の機能について
このスクリプトはhttps://scrapbox.io/プロジェクトURL/タイトル?body=本文
という形式のURLをブラウザで開くことによってページの作成を行っているわけですが、このURLの「タイトル」の部分が既存のページタイトルと同一であれば、その既存のページの末尾に「本文」部分が追記されます。*1*2
例えば「hoge」というタイトルのページが既に存在しているときにhttps://scrapbox.io/プロジェクトURL/hoge?body=本文
というURLを開く(すなわち、このスクリプトでtitle >>
のところにはhoge
と書く)と、既存の「hoge」ページに追記されます。
(「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)
tag='\n#'+today
tag_encode=urllib.parse.quote(tag)
url='https://scrapbox.io/' + project_url + '/' + title +'?body=' + content_encode + tag_encode
webbrowser.open(url)
(当日のハッシュタグ付きの例)