スムーズ移行OctopressからHugoへ
ブログの同期更新:https://keelii.github.io/2016/10/25/migrating-from-octopress-to-hugo-smoothly/
もと
新しいブログが設立されて以来、Octopressというブログフレームワークで静的な文章ページを構築してきた.きれいなデフォルトテーマ、便利なgithub pageなどの機能が私を引きつけました
しかし、最近では自宅用のMacbookのため、新版のSierriaにアップグレードされ、カップは以前にインストールされていたOctopress bundleが失効した.長い間デバッグしていた環境を構築していないうえ、OctopressのMarkdown解析器の古いエラーを発見したため、インストールの簡単なポイントを構成するブログジェネレータを交換することにしました.
このサイトの各種ジェネレータを参考にしてstaticgen、思い切ってHugoを選びました.特に理由はありませんが、ダウンロードしてインストールしてみてください.HugoはGo言語で書かれているので、公式に与えられたバイナリ実行可能ファイルをダウンロードすればいいだけで、いろいろな依存をインストールする必要はありません.それから、いろいろなソースを交換したり、振り回したりする必要はありません.この点でHugoに転入するのに十分です
テーマ
自分はOctopressのデフォルトのこのテーマが好きなので、Hugo開発ドキュメントを読んだ後、元のテーマを厳格に尊重する原則の下で一部の強化スタイルを修正し、Hugoに適したOctopressテーマを作りました.Hugo公式にはOctopressのテーマhugo-octopressがありますが、元のテーマに変更が多すぎて、私は好きではありません.
いどう
文章
Octopressが使用する記事記述ヘッダはyaml形式で、Hugoのtomlに変換する必要があり、自分で手動でNodeJSスクリプトを書いてこの仕事を完成させ、基本的には簡単に完成しました.注意:
さらにmdファイル名をツッコミ、Octopressのデフォルトは生成時間を接頭辞とし、例えば:
記事リンク
多くの文章が書かれていることを考慮して、検索エンジンはすでに収録されているので、元の文章のリンクフォーマットを維持します.Hugoプロファイルにこのセクションを追加し、ファイル名を使用して永続的なリンクを作成します.
アーカイブ
Octopressのデフォルトのアーカイブアドレスは
Octopressのデフォルトは
しかし、実際のテストでは、テンプレート内で
ページング
Octopressのデフォルトのフォーマットは
Hugoのいくつかの基本的な概念
これらの概念は主にテーマを修正する際に用いられる.
Front Matter
markdownファイルの構成説明と同様に、文章のタイトル、時間、リンク、分類などのメタ情報を構成し、テンプレート呼び出しに提供する.
Sections
contentの下の1級ディレクトリでは、通常分類の概念がありますが、フォルダ次元の物理的な分離にすぎません.
Types
記事にtype設定が指定されていない場合、記事のデフォルトは現在のセクションに属します.typeはFront Matterで指定できますが、セクションはできません.
Archetype
記事を新規作成するときのデフォルトテンプレートには、指定したFront Matterヘッダが付きます
Taxonomy
分類、ラベル、シリーズといった文章の属性を記述するものはすべてTaxonomy Termsに属する
まとめ
Hugoは確かに良いブログフレームワークで、構成が簡単で、機能が強く、多くのものが「慣例」のデフォルトで提供されています.例えば、TableOfContentsを内蔵し、ブログを書くのに十分です.
しかし、Go言語で書かれているため、このような使いやすいものがあることを知らない人が多いので、コミュニティはあまりよくありません.これがいわゆるプログラミングのギャング論かもしれない.
もと
新しいブログが設立されて以来、Octopressというブログフレームワークで静的な文章ページを構築してきた.きれいなデフォルトテーマ、便利なgithub pageなどの機能が私を引きつけました
しかし、最近では自宅用のMacbookのため、新版のSierriaにアップグレードされ、カップは以前にインストールされていたOctopress bundleが失効した.長い間デバッグしていた環境を構築していないうえ、OctopressのMarkdown解析器の古いエラーを発見したため、インストールの簡単なポイントを構成するブログジェネレータを交換することにしました.
このサイトの各種ジェネレータを参考にしてstaticgen、思い切ってHugoを選びました.特に理由はありませんが、ダウンロードしてインストールしてみてください.HugoはGo言語で書かれているので、公式に与えられたバイナリ実行可能ファイルをダウンロードすればいいだけで、いろいろな依存をインストールする必要はありません.それから、いろいろなソースを交換したり、振り回したりする必要はありません.この点でHugoに転入するのに十分です
テーマ
自分はOctopressのデフォルトのこのテーマが好きなので、Hugo開発ドキュメントを読んだ後、元のテーマを厳格に尊重する原則の下で一部の強化スタイルを修正し、Hugoに適したOctopressテーマを作りました.Hugo公式にはOctopressのテーマhugo-octopressがありますが、元のテーマに変更が多すぎて、私は好きではありません.
いどう
文章
Octopressが使用する記事記述ヘッダはyaml形式で、Hugoのtomlに変換する必要があり、自分で手動でNodeJSスクリプトを書いてこの仕事を完成させ、基本的には簡単に完成しました.注意:
content/archives
ディレクトリの下に置くことをお勧めします.そうすると、元のファイルディレクトリと新しいディレクトリは一致します.さらにmdファイル名をツッコミ、Octopressのデフォルトは生成時間を接頭辞とし、例えば:
2016-06-13-name.markdown
である.Hugo永続リンクに移行して元のファイル名フォーマットを維持するには、この接頭辞を乾かさなければなりません(name.md
)、これでソートが乱れます.さまざまなエディタやフォルダで作成順に並べ替えないと、違和感もあり不便に見えます記事リンク
多くの文章が書かれていることを考慮して、検索エンジンはすでに収録されているので、元の文章のリンクフォーマットを維持します.Hugoプロファイルにこのセクションを追加し、ファイル名を使用して永続的なリンクを作成します.
[permalinks]
archives = "/:year/:month/:day/:filename/"
アーカイブ
Octopressのデフォルトのアーカイブアドレスは
archives
です.これはHugoブログディレクトリcontentにarchivesというディレクトリを直接作成すればいいです.後で新しい文章はこのSectionに準じます.hugo new archives/your-post-name.md
RSS Octopressのデフォルトは
atom.xml
ですが、Hugoのデフォルトはindex.xml
です.しかし、Hugoで構成し、一貫性を保つことができます.RSSUri = "atom.xml"
しかし、実際のテストでは、テンプレート内で
{{ .RSSlink }}
が呼び出され、常にindex.xmlが返される.手動でテンプレートの中のRSSリンクを{{ .Site.BaseURL }}atom.xml
に変更しても有効になりますか?!これはHugoのバグと推定されています.幸い発見されました.そうしないと、新旧のRSSアドレスが違うので面倒になります.ページング
Octopressのデフォルトのフォーマットは
posts/2
で、Hugoのposts/2
も同様に構成する必要があります.paginatePath = "posts"
Hugoのいくつかの基本的な概念
これらの概念は主にテーマを修正する際に用いられる.
Front Matter
markdownファイルの構成説明と同様に、文章のタイトル、時間、リンク、分類などのメタ情報を構成し、テンプレート呼び出しに提供する.
+++
title = "post title"
description = "description."
date = "2012-04-06"
tags = [ ".vimrc", "plugins", "spf13-vim", "vim" ]
categories = [
"cat1",
"cat2"
]
+++
Sections
contentの下の1級ディレクトリでは、通常分類の概念がありますが、フォルダ次元の物理的な分離にすぎません.
Types
記事にtype設定が指定されていない場合、記事のデフォルトは現在のセクションに属します.typeはFront Matterで指定できますが、セクションはできません.
Archetype
記事を新規作成するときのデフォルトテンプレートには、指定したFront Matterヘッダが付きます
Taxonomy
分類、ラベル、シリーズといった文章の属性を記述するものはすべてTaxonomy Termsに属する
まとめ
Hugoは確かに良いブログフレームワークで、構成が簡単で、機能が強く、多くのものが「慣例」のデフォルトで提供されています.例えば、TableOfContentsを内蔵し、ブログを書くのに十分です.
しかし、Go言語で書かれているため、このような使いやすいものがあることを知らない人が多いので、コミュニティはあまりよくありません.これがいわゆるプログラミングのギャング論かもしれない.