インストール直後には localhost:4000 で動作確認をする…と,あるが 面倒くさいし,最終的にWebで公開するのが目的なので,まず先にそれを 確認したい.なので,とりあえずInternet reachableな場所(URL)で ブログとして閲覧できるように設定をする.
以下のWebページを参照しつつ,作業を進める Hexo Setuphttps://hexo.io/docs/setup
このWebページによると,コマンドを3つ実行する必要があると書いてある
hexoをinstallするディレクトリを決める.(今回は”myMemo”とした) 自分のHomeディレクトリ配下にこのディレクトリを作成し, そこにHexoのインストールをする.このディレクトリがHexoでの執筆・作業環境となる.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 $ mkdir myMemo $ hexo init myMemo INFO Cloning hexo-starter https://github.com/hexojs/hexo-starter.git Cloning into '/home/zetaka/myMemo'... remote: Enumerating objects: 30, done. remote: Counting objects: 100% (30/30), done. remote: Compressing objects: 100% (24/24), done. remote: Total 161 (delta 12), reused 12 (delta 4), pack-reused 131 Receiving objects: 100% (161/161), 31.79 KiB | 346.00 KiB/s, done. Resolving deltas: 100% (74/74), done. Submodule 'themes/landscape' (https://github.com/hexojs/hexo-theme-landscape.git) registered for path 'themes/landscape' ... 大量のWARNが表示される... ... npm WARN enoent SKIPPING OPTIONAL DEPENDENCY: ENOENT: no such file or directory, rename '/home/zetaka/myMemo/node_modules/nunjucks/node_modules/fsevents/node_modules/yallist' -> '/home/zetaka/myMemo/node_modules/nunjucks/node_modules/fsevents/node_modules/.yallist.DELETE' added 367 packages from 473 contributors and audited 2613 packages in 12.045s 5 packages are looking for funding run `npm fund` for details found 0 vulnerabilities INFO Start blogging with Hexo!
で,Setup処理は終わったようだ. ((大量のWARNは無視する…))
残りの2つのコマンドは以下の通り
1 2 3 4 5 6 7 8 9 10 11 12 13 $ cd myMemo $ npm install npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@2.1.2 (node_modules/fsevents): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.1.2: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"}) npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.11 (node_modules/nunjucks/node_modules/fsevents): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.11: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"}) audited 2613 packages in 3.583s 4 packages are looking for funding run `npm fund` for details found 0 vulnerabilities
で,とりあえず終わったみたい ((やはり,WARNは無視する…))
インストールされたものを確認する
1 2 3 4 $ cd $ ls myMemo ./ _config.yml node_modules/ package-lock.json source/ ../ .gitignore package.json scaffolds/ themes/
と,作業環境である”myMemo”ディレクトリ内に,色々とインストールされたようだ.
で,このままではWebの公開領域に何も生成物を置いていないので, 当然ブログとして見られるコンテンツは何もないままである. Hexoは,Static Site Generator(静的サイト生成) なので,Hexo内の環境で コンテンツを生成し,それをWebの公開領域にコピーしてコンテンツを公開する. という処理になる.なので,以下の対応が必要になる.
Hexoでコンテンツの生成
Web公開領域へコンテンツをコピー(コンテンツ設置)
$ hexo server
を実行して,まずlocalhost環境で動かして見ましょう, とあるが,私はせっかちなので,少しでも早く「公開Webサイト」でどういう ふうにページが見られるのかを確認したかった.なので,その対応方法を書く. この時に必要なのは,Hexoで作るブログをどういうURLで公開するか? という情報が必要になる.自分は以下のようなURLで公開することにした
想定URL: http://<yoursite.com>/blog /
このときのURLにおけるPATH情報がHexoの設定に必要となる. ((上の場合, “/blog “が該当) これを_config.ymlの”root”欄に設定しないと,CSSが適用されていない, のっぺりとしたBlogページが表示されてしまうので注意
1 2 3 4 # URL ## If your site is put in a subdirectory, set url as 'http://yoursite.com/child' and root as '/child/' url: http://<yoursite.com> root: /_blog_ (<= ここを環境に合わせて修正)
Hexoで公開用データを生成する
1 2 3 4 5 6 $ cd $ cd mymemo $ hexo g (<= Hexoで公開用データを生成) $ ls ./ _config.yml .gitignore package.json public/ source/ ../ db.json node_modules/ package-lock.json scaffolds/ themes/
この作業により,db.json
というファイルやpublic/
というディレクトリが増える. このpublic/ディレクトリ内のファイル群をWeb公開領域に設置(コピー)すれば Internet reachableなURLでHexoで作成したブログが見られるようになる.
Hexoで生成したコンテンツをWebサーバで公開する
1 2 3 4 5 6 7 $ cd $ cd mymemo $ ls public ./ ../ 2020/ archives/ css/ fancybox/ index.html js/ $ cp -rf public/* /<RootDirectory>/_blog_/ $ ls /<RootDirectory>/_blog_$ ls ./ ../ 2020/ archives/ css/ fancybox/ index.html js/
publicディレクトリ内のファイル群がHexoで生成されたコンテンツなので,これを公開領域にコピーするだけ.これで,生成されたブログコンテンツがWeb上に公開されたことになる.あとはWebブラウザで,自分で決めたURLにアクセスすればHexoで生成したブログが見られるはずである.
注意: 上の例は,Hexoの執筆環境とWebサーバの公開領域が同一計算機内にある想定です. なので,コンテンツの公開作業が,単なるファイル群のコピーになっている. コンテンツの公開方法については,環境に応じて色々な方法がありうる. 事例としては,以下のWebを見るのが良いかと思う.
Hexo One-Command Deploymenthttps://hexo.io/docs/one-command-deployment
((公開作業自体は,Hexoのdeploy機能にとらわれる必要はないかと思う))
— ends here