Hugo : Page Bundlesルールでの「index.md」以外のマークダウンファイルの扱い

Hugo の Page Bundles のルールでは、記事となる index.md と同じ階層に置かれた index.md 以外のマークダウンファイルはどう扱われるのか?

よく Page Bundles の説明では「配置された index.md 以外のマークダウンファイルは、あくまで Branch Bundles または Leaf Bundle 内のリソースファイルとして扱われる。」と書いてあります。実際のところはどうなのでしょうか?

続きを読む

Ubuntu:ルーチン化した日々のコマンドを実行するシェルスクリプト

新規ターミナルから任意のコマンドを複数タブで連続実行するシェルスクリプト

気がつけば、PCを起動・再起動するたびに複数のサーバを起動したりして、何か作業する際に必ずいつも同じコマンドを新規のターミナルとか新規タブとか開いて叩いています。もっと便利なやりかたはないのでしょうか?

ということで、シェルスクリプトからまず新規ターミナルを開き、そのターミナル上で任意のコマンドを複数タブで自動的に連続実行させる方法を考えてみました。

続きを読む

HugoサイトのデータをJavaScriptから利用できるように書き出す

Hugoで構築したサイトのデータをJavaScriptから利用できるように、JSON形式で書き出す。例えばサイトやページ、タグといった情報をJSON形式で読めるように書き出せたら、JavaScriptから利用できます。

こういうのはいろんな方がやっておられて、ネットの情報は参考になります。それぞれやり方書き方が少しづつ違ったりしますが、自分の目的に合った 良いとこ取りの方法を考えました。特殊な記事ファイルやレイアウトファイルを用意するのが一般的ですが、気を付けた点を書くと、

続きを読む

Hugoでの記事ファイルの配置と画像管理

Hugoでの記事ファイルの配置と記事に貼り付ける画像の管理方法について書きます。 この記事を含めて、やってみて分かった的な Hugo 関連の内容をしばらく続けます。

公式サイトではおそらく推奨されないようなやり方も含んでいますので、あくまで参考程度で。

続きを読む

Markdown Preview Enhanced の目次生成機能についての妙な発見

Markdown Preview Enhanced の目次生成機能

コマンドで実行

VSCodeMarkdown Preview Enhanced(以下MPE)で記事を書いています。 MPEには目次を自動生成する機能があります。

記事中の目次を生成したい位置(たいていは文頭?)にカーソルを置いて、コマンドパレット(F1 または Ctrl + Shift + P)を開き、「Markdown Preview Enhanced: Create TOC」を実行。すると次のようなコードが挿入されます。

<!-- @import "[TOC]" {cmd="toc" depthFrom=1 depthTo=6 orderedList=false} -->

あとは記事中の見出しを自動的に見て勝手に目次を作ってくれます。

続きを読む

Formクラスのモジュール

基本的な使い方

forms.pyでの定義

Djangoが用意しているフォーム関連の親クラスを継承して、カスタムフォームクラスの定義をする。Djangoの基本的なフォームクラスはdjango.forms.Formとなっている。

アプリのDIR直下にforms.pyというファイルを作る。例えばdjango_appプロジェクトのhelloアプリならば、django_app/hello/forms.py。その先頭でfrom django import formsとしてDjangoの基本的なフォームクラスをインポートし、作りたいカスタムフォームクラスの引数にforms.Formを渡す。

続きを読む

Djangoのフォーム機能

Formクラス

Djangoにはフォームをもっとスマートに書くための Formクラスがある。Formクラスは、フォームの内容をPythonのクラスとして定義するもの。Formクラスでフォームの内容を定義し、テンプレートに変数として渡すことで、クラスの内容をもとにフォームが自動生成される。

続きを読む

テンプレートの利用

INSTALLED_APPSへのアプリの登録

Django のテンプレートシステムから自作のアプリを検索できるように、django_app/settings.pyにアプリを登録する必要がある。

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'hello',
]
続きを読む

URLによるデータの受け渡し

クエリパラメータを使う

helloアプリ内views.pyindex関数を書き換える。

def index(request):
  msg = request.GET['msg']
  return HttpResponse('you typed: "' + msg + '".')

http://localhost:8000/hello/?msg=helloにアクセスすると,

you typed: "hello".

と表示される。

続きを読む

はてなブログのソースコードに行番号を表示する

他の Syntax Highlight の記法は使えない

Javascriptで処理してCSScounter-incrementを使って、はてなブログソースコードに行番号を表示させます。あくまでMarkdown記法が前提です。

普段 Hugo の Markdown で記事を書いているので、そのSyntax Highlightの書き方と同じ記法で行番号を表示させたいですが無理です。根本的な問題はSyntax Highlightのコード色付けそのものが効かなくなることです。これでは意味がありません。

続きを読む