2018年、始動

 obake   character   progress 

新年あけましておめでとうございます

Blog 用のジェネレータである HUGO を最新にしたら、細かい部分で色々変更があったため、今まで使っていたテンプレートの一部に動作不具合的なモノが散見されるようになってしまいました。

直そうとして直したのですが、一部は直らないため完璧ではないけれどこのまま使うことにしました。

今年もよろしくお願いします。

今年はパズルゲームも完成させる予定なので、ちょっと頑張ります。

まだ報告できる進捗が無いのでとりあえず HUGO についてメモを残しておきます。

HUGO について

ブログ用のサイトジェネレータですが、筆者はデスクトップに ubuntu を利用していて、HUGO のインストールは最近普及が始まった Snap を使っています。

snap を使うとインストールは簡単なのですが、snap の仕様がまだ糞というか、シンボリックリンクを使って拡張 HDD にアクセスしたら権限が足りないと出て HUGO でサイトのリビルドができません。どうも Snap はそういう仕様らしく、HUGO では色々トラブルが多かった。snap 使ってインストすると設定から外部エディタを指定してあっても実際にファイルを開こうとするとエラーが出るなど、実に細かい部分でこつこつと不都合が生じています。

新しい HUGO はプレコンパイルされたバイナリが snap で配布されているので、golang 入れて git 入れて設定かましてなど旧来のままだと面倒な部分の多くは手続きが省略可能となっていてこれには感心しました。が、使いはじめるとどうもいまいちまだ慣れない。ローカル・サーバの挙動とかもちょっと違うみたい?

こうなると気持ち的にすっきりしないというか、テーマも新しいもの使って一から作り直したいけれど、非効率なのでそれは次回のお楽しみってことにします。

まとめ

  • snap 使って HUGO をインストすると拡張HDDへのアクセスは制限される
  • 古い HUGO と最新の HUGO だと微妙に非互換性が出てくる
  • ##のあとにホワイトスペースは必ず入れる、入れないとショートコードが機能しない

以下に例を示す。

##test

test

これについてはマークダウンで記事書くのが久しぶりになったので仕様を忘れていた。

archetypes について

この部分は新旧で非互換性が色々多かった。

古い環境下からサイトを引き継いだ場合、古い環境で使っていた archetypes の default.md をそのまま使ったほうが無難。エラーが出てもエラーログ見ればだいたい原因書いてくれてあるけれども、ね。

しかしエラーログが出なかった部分については試行錯誤で直すしかなかった。

例えば archetypes の default.md は more と twitter はかならず改行して一行分の空白を保持すること。

これをやらないとショートコードで more より前の文章を記事の要約として抽出するショートコードが適切に機能しなくなっていた。古い HUGO だと問題が無かった部分。こんな微妙なもん、エラーメッセージ無しでよく直せたと思った、でも直した( 俺すごい )

pygments

この辺りは新旧で解釈が違うみたい。以下に例を示すと

<!--more-->

<div class="twitter_hateB">
<a href="http://b.hatena.ne.jp/entry/" class="hatena-bookmark-button" data-hatena-bookmark-layout="standard-balloon" data-hatena-bookmark-lang="ja" title="このエントリーをはてなブックマークに追加"><img src="https://b.st-hatena.com/images/entry-button/button-only@2x.png" alt="このエントリーをはてなブックマークに追加" width="20" height="20" style="border: none;" /></a><script type="text/javascript" src="https://b.st-hatena.com/js/bookmark_button.js" charset="utf-8" async="async"></script> <a href="https://twitter.com/share/tweet?button_hashtag=gamemaker" class="twitter-share-button" data-via="Presbyter_Johan">Tweet</a>
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
</div>

これはショートコードで twitter とハテブのリンクボタンを表示する機能。

以前はショートコードを pygments で表示する場合、ショートコードの中身まで表示しなかったと思う。けれど新しい HUGO ではショートコードを HTML にパースしてから pygments で表示してる。

どうもショートコード周りは新旧 HUGO で非互換性が出てくる。エラーログに流れてこない部分なので、試行錯誤して直すしか無かったので軽く絶望を味わえる。




次へ

前へ