-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
b6446f6
commit a816203
Showing
32 changed files
with
150 additions
and
68 deletions.
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
<!doctype html><html lang=ja><head><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge"><meta name=viewport content="width=device-width,initial-scale=1"><meta property="og:site_name" content="ひつまぶし食べたい"><meta property="og:type" content="article"><meta property="og:image" content="https://www.hitsumabushi.org//img/home-bg-jeep.jpg"><meta property="twitter:image" content="https://www.hitsumabushi.org//img/home-bg-jeep.jpg"><meta name=title content="このブログをPelicanからHugoに載せ替えた"><meta property="og:title" content="このブログをPelicanからHugoに載せ替えた"><meta property="twitter:title" content="このブログをPelicanからHugoに載せ替えた"><meta name=description content="Topic around SRE, Management, Cloud, Infrastructure Engineering, Software Engineering, Programming"><meta property="og:description" content="Topic around SRE, Management, Cloud, Infrastructure Engineering, Software Engineering, Programming"><meta property="twitter:description" content="Topic around SRE, Management, Cloud, Infrastructure Engineering, Software Engineering, Programming"><meta property="twitter:card" content="summary"><meta name=keyword content="hitsumabushi,SRE,Management,Cloud,Infrastructure,Software,Programming,Engineering"><link rel="shortcut icon" href=/img/favicon.ico><title>このブログをPelicanからHugoに載せ替えた | ひつまぶし食べたい</title> | ||
<link rel=canonical href=/blog/2024/12/15/%E3%81%93%E3%81%AE%E3%83%96%E3%83%AD%E3%82%B0%E3%82%92pelican%E3%81%8B%E3%82%89hugo%E3%81%AB%E8%BC%89%E3%81%9B%E6%9B%BF%E3%81%88%E3%81%9F/><link rel=stylesheet href=/css/bootstrap.min.css><link rel=stylesheet href=/css/hugo-theme-cleanwhite.min.css><link rel=stylesheet href=/css/zanshang.css><link rel=stylesheet href=/css/font-awesome.all.min.css><link rel=stylesheet href=https://www.hitsumabushi.org/css/hugo-theme-clearnwhite/custom-font.css><link rel=stylesheet href=https://www.hitsumabushi.org/css/hugo-theme-clearnwhite/main.css><script src=/js/jquery.min.js></script><script src=/js/bootstrap.min.js></script><script src=/js/hux-blog.min.js></script><script src=/js/lazysizes.min.js></script></head><script async src="https://www.googletagmanager.com/gtag/js?id=G-JPYFS3RY30"></script><script>var dnt,doNotTrack=!1;if(!1&&(dnt=navigator.doNotTrack||window.doNotTrack||navigator.msDoNotTrack,doNotTrack=dnt=="1"||dnt=="yes"),!doNotTrack){window.dataLayer=window.dataLayer||[];function gtag(){dataLayer.push(arguments)}gtag("js",new Date),gtag("config","G-JPYFS3RY30")}</script><nav class="navbar navbar-default navbar-custom navbar-fixed-top"><div class=container-fluid><div class="navbar-header page-scroll"><button type=button class=navbar-toggle> | ||
<span class=sr-only>Toggle navigation</span> | ||
<span class=icon-bar></span> | ||
<span class=icon-bar></span> | ||
<span class=icon-bar></span> | ||
</button> | ||
<a class=navbar-brand href=/>ひつまぶし食べたい</a></div><div id=huxblog_navbar><div class=navbar-collapse><ul class="nav navbar-nav navbar-right"><li><a href=/>All Posts</a></li><li><a href=/search><i class="fa fa-search"></i></a></li></ul></div></div></div></nav><script>var $body=document.body,$toggle=document.querySelector(".navbar-toggle"),$navbar=document.querySelector("#huxblog_navbar"),$collapse=document.querySelector(".navbar-collapse");$toggle.addEventListener("click",handleMagic);function handleMagic(){$navbar.className.indexOf("in")>0?($navbar.className=" ",setTimeout(function(){$navbar.className.indexOf("in")<0&&($collapse.style.height="0px")},400)):($collapse.style.height="auto",$navbar.className+=" in")}</script><style type=text/css>header.intro-header{background-image:url(/img/home-bg-jeep.jpg)}</style><header class=intro-header><div class=container><div class=row><div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1"><div class=post-heading><div class=tags><a class=tag href=/tags/hugo title=hugo>hugo | ||
</a><a class=tag href=/tags/pelican title=pelican>pelican</a></div><h1>このブログをPelicanからHugoに載せ替えた</h1><h2 class=subheading></h2><span class=meta>Posted by | ||
hitsumabushi | ||
on | ||
Sunday, December 15, 2024</span></div></div></div></div></header><article><div class=container><div class=row><div class="col-lg-8 col-lg-offset-2 | ||
col-md-10 col-md-offset-1 | ||
post-container"><h2 id=なぜ変更したか>なぜ変更したか?</h2><p><a href=https://www.hitsumabushi.org/blog/2014/12/15/2300/>Pelicanは2014年から使っていたよう</a>で、そこまで文句があったわけではないが、やはり速度が気になっていた。それに加えて、どうしてもたまにバージョンアップして互換性が壊れたりして、たまに時間を取られていた。今回少し修正したいことがあったのだが、これを機に載せ替えるか、と載せ替えることにした。</p><p>載せ替え先の候補としては色々あったが、そこまで時間を使いたいわけではないので、利用者が多く、かつ、何かあったら自分がクイックに調べられる言語のものということで、Hugoを選択した。</p><h2 id=やったこと>やったこと</h2><p><a href=https://gam0022.net/blog/2016/09/25/migrated-from-octopress-to-hugo/#hugo%E8%A8%98%E4%BA%8B%E3%81%B8%E8%A8%98%E4%BA%8B%E3%81%AE%E7%A7%BB%E8%A1%8C%E3%81%99%E3%82%8B>OctopressからHugoへ移行する方法</a> のブログを主に参考にさせてもらった。 | ||
上記の記事は、Octpresssなので若干違っているが、stepとしてはPelicanでも近いことをやれば良い。</p><p>もともとのmarkdownから、<code>Title</code> を <code>title</code> に書き換えたりをsedでやりつつ、置き換えていけば大抵問題ない。</p><h2 id=パーマリンクについて>パーマリンクについて</h2><p>一方で、パーマリンクを同じにするところは非常に悩ましかった。</p><p>これまでの形式は、 <code>{base_url}/blog/{yyyy}/{mm}/{dd}/{HHMM}.html</code> という形式だった。 デフォルトのHugoのURLは <code>{base_url}/blog/about/</code> のようなpretty形式で、これを変更するには <a href=https://gohugo.io/content-management/urls/#appearance>uglyURLs を trueにすれば良い</a>。sectionごとに有効かもできるため、古い記事だけ有効化しても良かった。</p><p>ただ、色々な種類のURLを1つのサイトに混ぜたくはないし、pretty-styleのURLのほうが、ugly-styleのURLよりも、URL文字列としてわかりやすい(し、わかりやすくなるように書かれることが多い)、という主張もわかる。 | ||
せっかく業務ではないので、これまでのURL形式を捨てて、</p><ul><li>新しいコンテンツはpretty</li><li>古いコンテンツはugly-styleのアクセスも許す | ||
ということにした。</li></ul><p>これを達成するために、まずは、新しいpostは <code>/blog/:year/:month/:day/:slug/</code> という形式にすることにした。これは、configで以下のような設定になる。</p><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-toml data-lang=toml><span style=display:flex><span>[permalinks] | ||
</span></span><span style=display:flex><span> post = <span style=color:#f1fa8c>"/blog/:year/:month/:day/:slug/"</span> | ||
</span></span></code></pre></div><p>ここで、slugを明示的に指定しない場合には適当なものが使われる。しかし、古いものは、 <code>HHMM.html</code> が入ってほしい。そこで、既存のコンテンツファイルに、そのdateを見て、slugを書く。(19:33の例)</p><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-markdown data-lang=markdown><span style=display:flex><span>--- | ||
</span></span><span style=display:flex><span>... | ||
</span></span><span style=display:flex><span>slug: '1933' | ||
</span></span><span style=display:flex><span>... | ||
</span></span><span style=display:flex><span>--- | ||
</span></span></code></pre></div><p>ここまででは、 <code>/blog/:year/:month/:day/:slug/</code> の形式にアクセスできるようになっただけで、 <code>/blog/{yyyy}/{mm}/{dd}/{HHMM}.html</code> という形式ではアクセスできない。 | ||
そのために <a href=https://gohugo.io/content-management/urls/>aliasesを使う</a>。</p><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-markdown data-lang=markdown><span style=display:flex><span>--- | ||
</span></span><span style=display:flex><span>... | ||
</span></span><span style=display:flex><span>slug: '1933' | ||
</span></span><span style=display:flex><span>aliases: | ||
</span></span><span style=display:flex><span> <span style=color:#ff79c6>-</span> 1933.html | ||
</span></span><span style=display:flex><span>... | ||
</span></span><span style=display:flex><span>--- | ||
</span></span></code></pre></div><p>こうすることで、<code>/blog/{yyyy}/{mm}/{dd}/{HHMM}.html</code> にアクセスすると、 <code>/blog/{yyyy}/{mm}/{dd}/{HHMM}/</code>にリダイレクトされるようになり、既存のURLでひとまずアクセスは可能になる。 | ||
uglyにした場合に、URLのリンクだけでも一貫したURLの形式にしたい、などあれば、もしかしたらaliasesでできるかもしれない。</p><h2 id=その他>その他</h2><p>検索機能のために、algoliaまわりの設定もしたのだが、もう少し変更したいところがあるので、まだ思い通りにはなっていないため割愛。 | ||
searchはそんなに容量がデカくないのもあってpelicanの事前生成ファイル+js方式でも困っていなかったが、使っているテーマ(<a href=https://github.com/zhaohuabing/hugo-theme-cleanwhite>https://github.com/zhaohuabing/hugo-theme-cleanwhite</a>) 的にはalgoliaを使うのが楽そうだったので利用している。</p><hr><ul class=pager><li class=previous><a href=/blog/2024/12/14/0200/ data-toggle=tooltip data-placement=top title="マネジメント1年目振り返り on 2024-12">← | ||
Previous Post</a></li></ul><div id=disqus-comment></div><div id=disqus_thread></div><script>window.disqus_config=function(){},function(){if(["localhost","127.0.0.1"].indexOf(window.location.hostname)!=-1){document.getElementById("disqus_thread").innerHTML="Disqus comments not available by default when the website is previewed locally.";return}var t=document,e=t.createElement("script");e.async=!0,e.src="//hitsumabushi.disqus.com/embed.js",e.setAttribute("data-timestamp",+new Date),(t.head||t.body).appendChild(e)}()</script><noscript>Please enable JavaScript to view the <a href=https://disqus.com/?ref_noscript>comments powered by Disqus.</a></noscript><a href=https://disqus.com class=dsq-brlink>comments powered by <span class=logo-disqus>Disqus</span></a></div><div class="col-lg-2 col-lg-offset-0 | ||
visible-lg-block | ||
sidebar-container | ||
catalog-container"><div class=side-catalog><hr class="hidden-sm hidden-xs"><h5><a class=catalog-toggle href=#>CATALOG</a></h5><ul class=catalog-body></ul></div></div><div class="col-lg-8 col-lg-offset-2 | ||
col-md-10 col-md-offset-1 | ||
sidebar-container"><section><hr class="hidden-sm hidden-xs"><h5><a href=/tags/>FEATURED TAGS</a></h5><div class=tags><a href=/tags/debian title=debian>debian | ||
</a><a href=/tags/vcp title=vcp>vcp | ||
</a><a href=/tags/vmware title=vmware>vmware</a></div></section></div></div></div></article><footer><div class=container><div class=row><div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1"><ul class="list-inline text-center"><li><a href=https://x.com/_hitsumabushi_><span class="fa-stack fa-lg"><i class="fas fa-circle fa-stack-2x"></i> | ||
<i class="fab fa-twitter fa-stack-1x fa-inverse"></i></span></a></li><li><a target=_blank href=https://github.com/hitsumabushi><span class="fa-stack fa-lg"><i class="fas fa-circle fa-stack-2x"></i> | ||
<i class="fab fa-github fa-stack-1x fa-inverse"></i></span></a></li><li><a href rel=alternate type=application/rss+xml title=ひつまぶし食べたい><span class="fa-stack fa-lg"><i class="fas fa-circle fa-stack-2x"></i> | ||
<i class="fas fa-rss fa-stack-1x fa-inverse"></i></span></a></li></ul><p class="copyright text-muted">Copyright © ひつまぶし食べたい 2024</p></div></div></div></footer><script>function loadAsync(e,t){var s=document,o="script",n=s.createElement(o),i=s.getElementsByTagName(o)[0];n.src=e,t&&n.addEventListener("load",function(e){t(null,e)},!1),i.parentNode.insertBefore(n,i)}</script><script>$("#tag_cloud").length!==0&&loadAsync("/js/jquery.tagcloud.js",function(){$.fn.tagcloud.defaults={color:{start:"#bbbbee",end:"#0085a1"}},$("#tag_cloud a").tagcloud()})</script><script>loadAsync("https://cdn.jsdelivr.net/npm/fastclick@1.0.6/lib/fastclick.min.js",function(){var e=document.querySelector("nav");e&&FastClick.attach(e)})</script><script type=text/javascript>function generateCatalog(e){_containerSelector="div.post-container";var t,n,s,o,i,a=$(_containerSelector),r=a.find("h1,h2,h3,h4,h5,h6");return $(e).html(""),r.each(function(){t=$(this).prop("tagName").toLowerCase(),o="#"+$(this).prop("id"),n=$(this).text(),i=$('<a href="'+o+'" rel="nofollow">'+n+"</a>"),s=$('<li class="'+t+'_nav"></li>').append(i),$(e).append(s)}),!0}generateCatalog(".catalog-body"),$(".catalog-toggle").click(function(e){e.preventDefault(),$(".side-catalog").toggleClass("fold")}),loadAsync("/js/jquery.nav.js",function(){$(".catalog-body").onePageNav({currentClass:"active",changeHash:!1,easing:"swing",filter:"",scrollSpeed:700,scrollOffset:0,scrollThreshold:.2,begin:null,end:null,scrollChange:null,padding:80})})</script></body></html> |
Oops, something went wrong.