ブログをWordPressからVuePressに変更したので導入の備忘録

投稿日:2019年09月09日

Tags: VuePress vue メモ

ブログを完全にMarkdownで書きたかったのと、アイキャッチ作るのが面倒くさくなったので、WordPressからVuePressにブログシステムを変更しました。

自分が作ったデザインも猛烈にダサかったので、記事を載せるだけならシンプルなデザインでいいやという思いもありました。

今回はVuePressの導入でハマった箇所や設定についてメモしていきます。

VuePressとは

Vue.js製の静的サイトジェネレータです。

有名所だと React.jsをベースにしたGatsbyや、Node.js製のHexoがあります。

私は Vue.js しかまともに触ったこと無いのでVuePressを選択しました。

恐らく普通にググると v0系のVuePressのドキュメントがヒットしますが、私はv1系を使うことにしました。

構築環境

私の開発環境は下記です。

  • Node.js
    • v8.10.0
  • Yarn
    • v1.17.3
  • VuePress
    • v1.0.3

ちなみに、VuePressは Node.jsのv8.6以上 で動きます。

FontAwesome

アイコンフォントはブログで使いたい場合が多いと思ったのでインストールしました。

また、Markdownで使うには markdown-it-fontawesome というパッケージも必要なので併せてインストールします。

# フリー版の Font Awesome と markdown-it-fontawesome をインストール
$ yarn add --dev @fortawesome/fontawesome-free markdown-it-fontawesome
1
2

設定

markdown-it-fontawesome.vuepress/config.jsextendMarkdown に設定を追加します。

module.exports = {
  extendMarkdown: md => {
    md.use(require('markdown-it-fontawesome'))
  },
}
1
2
3
4
5

続いて、FontAwesomeは .vuepress/enhanceApp.js に importします。

import '@fortawesome/fontawesome-free/css/all.css'

export default ({Vue, options, router, siteData}) => {
  // とりあえず今はここに何も書かなくて良い
}
1
2
3
4
5

使い方

フリー版では恐らく Brands Style (fab)Solid Style (fas) の二種類が使えます。
※全部調べたわけではないがたぶん合ってます

書き方は下記のような感じでMarkdownに書いていきます。

  • :fab-twitter:
  • :fab-facebook-f:
  • :fas-cat:

Google Analytics

正直、Google Analyticsのダッシュボードを見に行くことなんてほとんどないですが、WordPress時代でも導入していたので一応…。

公式プラグインが提供されているのでそちらを使います。

$ yarn add -D @vuepress/plugin-google-analytics@next
1

設定

.vuepress/config.js の plugins に追加します。

module.exports = {
  plugins: [
    [
      '@vuepress/google-analytics',
      {
        'ga': '' // UA-00000000-0
      }
    ]
  ]
}
1
2
3
4
5
6
7
8
9
10

sitemap.xml

WordPressのときはそれっぽいプラグイン(忘れた)で自動で作成していてくれたはずですが、VuePressでもビルド時に自動で吐き出してくれるプラグインがあるのでそちらを使います。

$ yarn add vuepress-plugin-sitemap
1

設定

.vuepress/config.js の plugins に追加します。

module.exports = {
  plugins: [
    [
      'vuepress-plugin-sitemap',
      {
        hostname: 'https://example.com' // ここにサイトのURLを設定する
      }
    ]
  ]
}
1
2
3
4
5
6
7
8
9
10

Google AdSense

AdSenseの導入が一番ハマりました。

まずは Vue Google AdsenseVueScript2 という2つのライブラリを導入します。

$ yarn add vue-script2 vue-google-adsense
1

何個か参考サイトをググったのですが、載っていた方法だとビルド時にwindowオブジェクトでエラー吐いたので困りに困ってTwitterで呟いたところ @tacckさんに方法を教えていただきました、本当にありがとうございました。

enhanceApp.js

vue-script2vue-google-adsense を下記のように enhanceApp.js へ追加するとビルドが正常に走りました。

export default ({ Vue, options, router, siteData }) => {
  if (typeof window !== 'undefined') {
    import('vue-google-adsense').then(module => {
      const Ads = module.default
      Vue.use(require('vue-script2'))
      Vue.use(Ads.Adsense)
      Vue.use(Ads.InArticleAdsense)
      Vue.use(Ads.InFeedAdsense)
    })
    .catch(e => {
      console.log(e)
    })
  }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14

VuePressにしてみた感想

表示がめっちゃ早いです。

管理画面にログインせずに投稿できるのも素晴らしいです。

前々からやろうやろうと思っていたけど、やっていなかったのが悔やまれるほどです。

以上です。

  • シェア:
Last Updated: 2019-9-9 21:37:59