Mako(tex2e)の技術系ブログです。
サイト : tex2e.github.io/blog/
使用技術:
- Framework: Jekyll
- Theme: jekyllDecent
- Markdown: kramdown
- Template: Liquid
- Syntax Highlighter: Prism
- Math Engine: KaTeX
./new.sh で新規記事を作成します。
カテゴリ名は /_posts 以下のディレクトリ名にします。
以下はPythonカテゴリに「print-helloworld.md」というMarkdownファイルを作成する例です。
./new.sh python print-hellowolrd新規作成するとページ上部のメタデータ設定用の変数が自動生成されます。 各変数の意味と書き方は以下の通りです。
cover: /assets/cover1.jpg: ヘッダー画像redirect_from: /PATH: 変更元のPATHからこのページにリダイレクトするcomments: true: Disqusによるコメント投稿を有効にするpublished: false: ページを非公開にするlatex: true: 数式レンダリングを許可するphotoswipe: true: 画像の拡大を有効にするsitemap: false: sitemap.xmlにリンクを追加しない (検索エンジンから少しだけ見つかりにくくなる)feed: false: feed.xmlにリンクを追加しない (RSSで更新情報を知らせない)
/_pages 以下にMarkdownファイルを作成します。
各固定ページのメタデータの設定で permalink: /PATH と書くことで、指定したパスにページを配置できます。
./server.sh でサーバを起動します。
Rubyを新しくインストールした際は bundle install の実行が必要です。
./server.sh上記コマンドの内部でjekyllコマンドを呼ぶ際に、以下の開発用のオプションを有効にしています:
--incremental(-I) : 差分だけをビルドするので、ビルド時間が高速化されます--livereload: ページが編集されたら自動的にブラウザも更新します (ライブリロード)--future: 公開の日付が未来になっている記事も公開します
- WSL (Ubuntu) のとき:
- Windows Subsystem for Linuxを有効化し、Ubuntuをインストール
- Ubuntuで以下コマンドを実行(※aptで必要なソフトがインストールされていないとbundle installで失敗します)
sudo apt install build-essential git ruby ruby-dev zlib1g-dev gem install bundler git clone git@github.com:tex2e/blog.git cd blog bundle install # 初回環境構築時 bundle update # バージョンアップ時
- Windows のとき:
- RubyInstallerでインストール
- 再起動(環境変数PATHにruby, gem, bundleなどのパスを追加)
- PowerShellで以下コマンドを実行
git clone git@github.com:tex2e/blog.git cd blog bundle install
エディタ起動、ブラウザ起動、Webサーバを立ち上げる処理をまとめた blog コマンドを定義しておくと、すぐに記事が書けて便利です。
alias blog="cd ~/path/to/blog; open http://localhost:4000/blog/; ./server.sh &"事前に latex + standalone の環境を構築します(参照:texlive2020(basic)のインストール on WSL)。 その上で、ImageMagickをインストールします。
sudo apt-get install imagemagickImageMagickは脆弱性への対策としてデフォルトではPDFが入力できませんが、入力PDFは自分で作成したものだけを使用するとし、ImageMagickのポリシーを変更します。 /etc/ImageMagick-6/policy.xml のポリシーを変更して、PDFをpngに変換できるようにします。
<policymap>
...
<!-- disable ghostscript format types -->
<policy domain="coder" rights="none" pattern="PS" />
<policy domain="coder" rights="none" pattern="PS2" />
<policy domain="coder" rights="none" pattern="PS3" />
<policy domain="coder" rights="none" pattern="EPS" />
<!-- <policy domain="coder" rights="none" pattern="PDF" /> この行をコメントアウト-->
<policy domain="coder" rights="none" pattern="XPS" />
</policymap>platex, standalone, ImageMagick の3つを用意することで tex から画像を生成できるようになります。 このレポジトリのトップディレクトリで以下のコマンドを叩くと、更新日時が新しい tex から png を作成できます。
make png特定のtexに対応する画像のみを生成したいときは以下のコマンドを叩きます。
cd media/post/tikz
make path/to/file.texカテゴリー別にカバー画像を変更したい場合は、grep と sed を組み合わせて一括置換します。
Linux :
grep -rl 'cover: /assets/cover1.jpg' _posts/python | xargs sed -i "" 's|/assets/cover1.jpg|/assets/cover14.jpg|g'MacOS :
grep -rl 'cover: /assets/cover1.jpg' _posts/python | xargs sed -i "" 's|/assets/cover1.jpg|/assets/cover14.jpg|g'また、新規記事作成時に使用する new.sh 内の変数 cover を引数の directory によって変える処理の追加も必要です。
リンク切れチェックに使用しているもの:
リンク切れチェックの対象外にしたい場合は、以下のHTMLコメントでリンクを囲みます。
<!-- markdown-link-check-disable -->
- [sample](https://example.com)
<!-- markdown-link-check-enable-->jekyllDecent はこのブログで使用しているテーマです。
This is a blog template for a static site generator named Jekyll based on a Ghost template named Decent.
Installation instructions, features, previews and more can be found in the GitHub generated blog. This blog is automatically generated out of the source code in the
gh-pagesbranch. If you like to see the theme in production have a look at jwillmer.de.