ローカルでメモの保存用に使ってみてるサイトジェネレータを、 Pelican から Hugo にしてみた。
150 post を越えて、速度がかなり問題だと思うようになったから。 Pelicanが遅いわけではないので、別ディレクトリに分ければよいのだが、 どうせ分けるなら、別のジェネレータでも試してみるか、ということ。
選んだのは Hugo 。
速度に関する評価が高いみたいで、 しかも emacs との連携が ox-hugo を使うと便利みたいだから。 (感謝)
hugo の 設定
Hugo 自体の設定は、いっぱい情報があるから省略。というか、細かい設定なんかは、私の理解の外。 html にして表示できれば満足だから。ただ、テーマは、
を試して、Mainroad にしてみた。
emacsでの使い方
ox-hugo をインストしただけで、これ自体の 設定は得にしてない。 こいつを使えば、org-modeで編集したものを、 org-modeの特徴を活かしつつ、 hugo の為に export をしてくれるという。 org-mode(oxとか)が使えていることが前提だが。
基本的な使い方は、公式ドキュメントや先人方の情報のおかげで、なんとかなる。あとは、 hugo用のorgファイルと、org-capture の設定を自分用に用意する。
結局以下のようにして、一応動いているようだ。
解説をちゃんと読めばよいのだが、私には十分かも、と思っている。
hugo用のorgファイル(0730up)
#-*- mode: org -*- #+CATEGORY: blogger_hugo #+STARTUP: contents align shrink #+OPTIONS: AUTHOR:nil #+HUGO_BASE_DIR: ~/Documents/mup/blogg-hugo #+HUGO_AUTO_SET_LASTMOD: t #+HUGO_SECTION: posts * build [2019-07-11] 追加 #+BEGIN_SRC shell cd ~/Documents/mup/blog_hugo hugo #+END_SRC * Posts ** DONE posting test 1 :@hugo:setup: CLOSED: [2019-07-05 金 10:40] :PROPERTIES: :EXPORT_FILE_NAME: 20190705_1st-post :EXPORT_HUGO_FRONT_MATTER_FORMAT: toml :EXPORT_HUGO_SECTION: posts :EXPORT_HUGO_CUSTOM_FRONT_MATTER: :archives 2019/07 :EXPORT_HUGO_CUSTOM_FRONT_MATTER+: :series [debian hugo setup] :EXPORT_HUGO_CUSTOM_FRONT_MATTER+: :toc 2 :num t :END: ここは、アブストラクトとして、記事リストに表示される部分。 <!--more--> これ以降が、本文という位置付けだが、アブストラクト部分も本体に表示されるので、 そのような構成にする必要がある。 exportすると、posts ディレクトリに出力される。
- HUGO_BASE_DIR で、hugoのディレクトリを指定。
- HUGO_SECTION の default は ox-hugo の設定や、 orgファイルの先頭部分でも指定できる。 hugo_base_dirに無ければ、作成してくれる。
- post する時のファイル名は、タイムスタンプと名前でorg-captureで作成。
- org-mode のタグは、 @ 付きが category、他がtag。
- :toc 2 は、2レベルの目次
:num t で番号付きにできるようだが、私の環境では、記事での設定は、NG. ox-hugo の設定で指定すればOK。
(setq org-hugo-export-with-section-numbers t)
TODO なら ドラフト。DONE にすると公開。
list や weblink は普通に使える。
画像ファイルの指定は注意が必要。
同一ディレクトリに画像ファイルがあれば、 ‘static/ox-hugo’ にexport時にコピーしてくれる。
[[./rimg3576.jpg]] file:rimg3576.jpg
サブディレクトリに画像ファイルを置く場合は、自分でコピーする必要があるようだ。例えば、src=“./imgs/rimg3576.jpg” にするなら、以下。
[[file:./imgs/rimg3576.jpg]] file:./imgs/rimg3576.jpg
追記: ひとつのファイルにまとめようとすると、結構多きくなるのに今更気付いた。 で、org-refile のターゲットに新しいファイルを追加することにする。
org-captureの設定(0730up)
公式ドキュメントの方法を使うべきなんだろうが、理解できないので、こんな風になった。
(defun my/generate-post-name () (setq my-org-note--name (read-string "Name: ")) (setq my-org-note--dtime (format-time-string "%Y%m%d-%H%M")) (format "%s_%s.md" my-org-note--dtime my-org-note--name)) ;; ... (setq org-capture-templates '( ... ... ("ph" "hugo new post" entry (file+olp "blog_hugo.org" "Posts") "** TODO %? \t:@debian:\n:PROPERTIES:\n\ :EXPORT_FILE_NAME: %(my/generate-post-name)\n\ :EXPORT_HUGO_FRONT_MATTER_FORMAT: toml\n\ :EXPORT_HUGO_CUSTOM_FRONT_MATTER: :archives %<%Y\/%m>\n\ :EXPORT_HUGO_CUSTOM_FRONT_MATTER+: :series hugo\n\ :EXPORT_HUGO_CUSTOM_FRONT_MATTER+: :toc 2 :num t :END:\n\n\n\nl<!--more-->\n") ... ;; (0730) archives の年月を自動、 del `+` ... )) ...
- Posts配下に作成
- 名前だけは入力するようにした。
- tag や archives なんかはデフォを指定しているだけ。
- series はhugo側で別途設定が必要みたい。
- toc をデフォで有にしおく。
- テーマによって使えなかったり使えたりがある。
一応動いているようだ。
markdown や reStructuredText を直接書いたり、
exportしてからのコピペが不要になるので、かなり楽になると思う。
あとは、使える/使えないを経験しながらでよういだろう。
とりあえず、これで良しとしよう。
0 件のコメント:
コメントを投稿