Document Id
ネットを見ていたら、次のような発言を見た。
Haruhiko Okumura @h_okumura 今回のIPAのサイトリニューアルでわかったように、URLは脆弱なので、djb先生の唱えるDocument IDを使おう https://cr.yp.to/bib/documentid.html UUIDでも何でもユニークっぽい文字列をページごとに書いておいてそれをURL代わりに使えば、ググればページが見つけられる
これは良いアイディアだと思ったので、 このBlogや、その他のページでも採用しようと思った。
jekyllでは、各ドキュメントのヘッダにメタデータを書けるので、そこにDocument IDを入れようと思う。 これは記事生成スクリプトに細工をして入れる。
post:
test -n "$(title)" || read -p "Enter a title for your post: " title; \
export title_slug=`echo $${title:-Untitled} | sed -E -e 's/[^[:alnum:]]/-/g' -e 's/^-+|-+$$//g' | tr -s '-' | tr A-Z a-z`; \
export post_path=_posts/`date +%Y-%m-%d`-$$title_slug.markdown; \
export docid=`head /dev/urandom | md5sum | cut -d ' ' -f 1`; \
test -f $$post_path && { echo "Error: $$post_path already exists" ; exit 1; }; \
echo "Creating $$post_path"; \
echo "---" >> $$post_path; \
echo "layout: post" >> $$post_path; \
echo "title: \"$$title\"" >> $$post_path; \
echo "date: `date +"%Y-%m-%d %H:%M:%S %z"`" >> $$post_path; \
echo "docid: $$docid" >> $$post_path; \
echo "categories: " >> $$post_path; \
echo "---" >> $$post_path; \
mkdir -p assets/`date +%Y-%m-%d`-$$title_slug/.original; \
$(EDITOR) $$post_path
これを記事中に表示するのは、テンプレートを弄って次のSectionをページ下に入れた。
<section class="metadata">
Date of this document: {{ page.date }} <br/>
Permanent ID of this document: {{ page.docid }}
</section>
あとは、ホームページのプロジェクト一覧とか、ドキュメントサイトとかにも入れたい。
早速↓に表示されているはず。
この記事へのご意見、ご感想、コメントは、
twitter
か下のフォーム(実験的)へどうぞ。