VuePressを構築する

Category:
Tags:
Last Updated: 2021/12/13 12:40:54

はてなブログで立ち上げたブログをVuepressに移行しようとしたのだが、マニュアルと格闘の末、4回作り直す羽目になったので、やり方をまとめておく。

Vuepressをブログとして活用したい場合、おそらくデフォルトの状態から色々変更が必要なのだが、とりあえずここではVuepressの基本的な構築までとする。

ちなみに失敗した3回は下記の理由によるものである。

  • yarn をあまり使いたくなくて npm でゴリ押ししようとして失敗。
  • vitepressを入れたものの、プラグインに対応していないことに後から気がついてvuepressに変更。
  • WordPressのようなカテゴリ、タグページを作ろうとして、丸一日、格闘の末、諦める。(ソースがぐちゃぐちゃになってしまったので、一旦、作り直し。。)

横着しないで、ちゃんとドキュメント読まないとダメだね((*つ∀`))テヘッ

# まずはVuepressをインストール

これは下記のコマンドで対応できる。

$ yarn create vuepress-site press
$ cd press/docs/
$ yarn install 
$ yarn dev
1
2
3
4

最初はVitepressで入れようとしたのだが、前述の通り、プラグインが非対応だったり、その他にも色々と制約があってVuepressで入れることにした。

# config.js (設定ファイル)修正

とりあえずドキュメントを参考に修正していく。
下記、初期値から変更した箇所のみ書いていく。

module.exports = {
	title: 'Web Ninja Press',
	description: 'WEB最適化のための技術的な情報発信をしています。',
	base: '/press/', // ドキュメントルート直下なら省略可能
	lang: 'ja-JP', // 日本語ならこれでOKのはず。

	head: [
		// metaタグなどhead内に入れる内容を記載していく。
		// このあたり、yarn devではソースコード内に反映されず、動的にDOM追加されていたが、
		// yarn buildでビルドしたファイルを確認したらきちんとHTMLファイルに書き出されていた。
		['meta', { name: 'theme-color', content: '#3eaf7c' }],
	],
	themeConfig: {
		logo: '/logo.png',
		nav: [
			{
				text: 'Home',
				link: '/',
			},
		],
		sidebar: 'auto', 
		footer: "Copyright © 合同会社ups-and-downs All Rights Reserved.",
	}, 
	markdown: {
		// マークダウンでの行数表示
		lineNumbers: true,

		// マークダウン拡張(https://vuepress.vuejs.org/plugin/option-api.html#extendmarkdown)
		extendMarkdown: (md) => {
			md.set({ breaks: true }); // 行数に意味をもたせるかどうか
			// md.use(require("markdown-it-mark"));
		},
	},
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34

上記の themeConfig.logo ではロゴファイルを logo.png と記載しているが、基本的に静的ファイルは .vuepress/public/ 以下に設置すればそのままルート以下に書き出される。

# index.md(トップページ)を修正

docs/index.md がトップページになるのでこちらを修正。

---
home: true
heroImage: /logo.png
heroAlt: Logo image
heroText: Hero Title
tagline: Hero subtitle
actionText: Get Started
actionLink: /guide/
features:
- title: Simplicity First
	details: Minimal setup with markdown-centered project structure helps you focus on writing.
- title: Vue-Powered
	details: Enjoy the dev experience of Vue + webpack, use Vue components in markdown, and develop custom themes with Vue.
- title: Performant
	details: VitePress generates pre-rendered static HTML for each page, and runs as an SPA once a page is loaded.
footer: MIT Licensed | Copyright © 2019-present Evan You
---
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

heroImage に指定するロゴ画像のURLはルートディレクトリからのパスとなるので、.vuepress/public/ 直下に logo.png を配置した場合、/logo.png とすればよい。

なお、Vitepressで試したときは、ドキュメントを読む限り、/docs/.vitepress/ 以下に /public/ ディレクトリを作成し、そこにロゴ画像をおいておけばよいように書いてあったが、実際に試してみたところ、それではうまくいかず、/docs/public/ にしたところ、うまくいった。

ちなみにいろいろ試してみたところ、この部分はただ config.jsに指定したbase(当サイトでは/press/)とこの部分に指定されているパスをつなげているだけっぽい。

# ビルド

これで yarn dev した上で http://localhost:8080/ にアクセスすればテスト環境を確認できる。

$ yarn dev
1

これで問題なければ yarn build してサーバーにアップして確認する。

$ yarn build && rsync ...
1

これでアップしたURLで正常にみることができれば構築完了になります。

Category:
Tags:
Last Updated: 2021/12/13 12:40:54
Copyright © Web Ninja All Rights Reserved.