Hexo
Hexoで"Module version mismatch"のエラーが出た場合の対応
Hexo

Hexoで’Error: Module version mismatch’のエラーが出る

こんな感じです。

[Error: Module version mismatch. Expected 46, got 14.]
{ [Error: Cannot find module './build/default/DTraceProviderBindings'] code: 'MODULE_NOT_FOUND' }
{ [Error: Cannot find module './build/Debug/DTraceProviderBindings'] code: 'MODULE_NOT_FOUND' }

エラーの対応

GitHubのIssuesによりますと

$ sudo npm install hexo --no-optional

で対応できました。パッケージ依存によるようですね。

Hexo
Hexoのブログ記事の修正をしました
Hexo

はじめに

こんにちは。インフラエンジニアレベル1のf_prgです。
ブログの記事が壊れていると聞いて、Hexoの修正を行いましたので方法を共有します。

壊れていた記事を確認しました。

該当の記事はこちらでした。
/2015/04/05/intel_edison_how_to_update_latast_image/
すでに直したるのでキャプチャ画像をとりました。
pic1.png
となります。
よーく見ると画像バイナリっぽいのが見られますね。

サイトの生成を確認します。

いつも、デプロイをGrunt.jsを使ってますが
静的サイトの生成のところ失敗しているのではないかと思いました。

[f_prg@hexo-blog] $ hexo generate

とやると

[update] Generated: 2015/03/23/jawsdays_2015_gallery/gallery-8.jpg (5ms)
[update] Generated: 2015/03/23/jawsdays_2015_gallery/gallery-9.jpg (4ms)
[update] Generated: 2015/04/05/intel_edison_how_to_setup_wifi/pic1.png (4ms)
[create] Generated: 2015/04/05/intel_edison_how_to_update_latast_image/G (13ms)
[create] Generated: 2015/04/22/broken-hexo-blog-post/pic1.png (6ms)
[info] 260 files generated in 9.570s

Gという画像が作成される

hexo generateで生成している、publicフォルダを見てみましたら
pic2.png
pic3.png

過去の記事の画像がなぜか生成されているという不思議な現象をみました。

リカバリー作業

http://hexo.io/docs/commands.html#clean
を参考にしまして、下記のコマンドにて修復しました。

[f_prg@hexo-blog] $ hexo clean
[info] Deleted cache file
[info] Deleted public directory
[f_prg@hexo-blog] $ hexo generate

で直りました。db.jsonはキャッシュだったようですね。
前からなんかできてるなーと思ってましたが、初めて知りました。

まとめ

個人のブログなので原因を追求はしてないですが修復できたのでよかったです。

補足、おまけ

私は最初db.jsonを削除しましたがコマンドがやるのがよいと思います。
一応、検証するためにバックアップを取っていたのでどうもずれが生まれているようでした。

[f_prg@hexo-blog] $ ls -al *db.json
-rw-r--r--  1 f_prg  staff  800764  4 17 14:45 _db.json
-rw-r--r--  1 f_prg  staff  837620  4 22 21:41 db.json

参考資料・リンク

http://hexo.io/docs/commands.html#clean

Hexo
HexoにGoogle Adsenseをセットアップする
Hexo

HexoにGoogle Adsenseをセットアップする

はじめに

こんにちは。インフラエンジニアレベル1のf_prgです。
Hexoに、Google Adsenseを設定して広告をつけようと思います。

HexoにGoogle Adsenseをセットアップする

Google Adsenseの広告設定は済ませている前提で進めていきます。
HTMLのコードは取得できる状態ということです。

組み込む方法は?

EJSテンプレートエンジンを使っていますのでテーマに
テンプレートを追加します。

テンプレートに新規のフォルダを作ります。

後で管理しやすいように、新規のフォルダにして
customと名前をつけておきます。

themes/landscape/layout/_custom_ad/google_adsense.ejs

ad.ejsの中身には、Google AdsenseのHTMLのコードだけです。

layout.ejsを編集する

themes/landscape/layout/layout.ejs

<%- partial('_partial/head') %>
<body>
  <div id="container">
    <div id="wrap">
      <%- partial('_partial/header', null, {cache: !config.relative_link}) %>
      <!-- ad start -->
      <%- partial('_custom_ad/google_adsense') %>
      <!-- ad end -->
      <div class="outer">
        <section id="main"><%- body %></section>
        <% if (theme.sidebar && theme.sidebar !== 'bottom'){ %>
          <%- partial('_partial/sidebar', null, {cache: !config.relative_link}) %>
        <% } %>
      </div>
      <%- partial('_partial/footer', null, {cache: !config.relative_link}) %>
    </div>
    <%- partial('_partial/mobile-nav', null, {cache: !config.relative_link}) %>
    <%- partial('_partial/after-footer') %>
  </div>
</body>
</html>

これでおしまいです。

まとめ

広告をはると、ブログっぽくなりますね。
今回紹介した方法が、ページに自由度が生まれて活用できそうです。

補足、おまけ

今回は、ありません。

参考資料・リンク

http://www.embeddedjs.com/