アイデアメモや自分用wikiに超便利なObsidian

を、使い始めました。

今まで書き残したいことは全部テキストファイルに直書き!というストロングスタイルだったのですが、当然画像や装飾は使えませんし、複数に記述が散るようなものは管理が面倒で正直あまり捗っていませんでした。
なので創作の設定資料などは自分用wikiにまとめて管理したいなぁと前々から思っており、暇な時にちょこちょこと探しておりました。そこで見つけたのがObsidianです。

まず何が良いって、導入が超簡単でお手軽なことです。
仮想サーバー立ててとか、煩雑なコード書いてとか、月額料金払ってとか、そういうのが一切いらない。そこらのテキストエディターをインストールするのと同じ感覚で導入できます。(一応有料ライセンスはあるけど機能上はほぼ問題ないはず)
起動も1クリックでぬるっと立ち上がりますし、ファイル管理もローカル&余計なファイルを増やさない仕組みなので非常に扱いやすい。丸ごとコピーして適当にバックアップ出来るのでとても助かります。

インストールしたら後はファイルを作ってどんどんページを充実させていくだけ。
Markdown記法なので普段のテキストと同じ感覚で書けますし、簡単に見出しやリンク、画像を張ることも出来ます。
さらにページ同士の繋がりを可視化するグラフビュー機能とかもあったりして、自分用の創作世界を充実させていくのがとても楽しい。記述が散り散りになって頭を抱えていたあの頃とは大違いです。

という訳でObsidian、中々に素晴らしいツールです。この気持ちを伝えるためだけに記事を書きました。
因みに私の場合は創作の設定資料+αを管理するために使っています。αはゲームのアイデアとか料理のレシピとか、そういうメモ帳要因ですね。例えば創作資料の管理方針としては…

  • カテゴリ分け(人や物、土地など)はフォルダの分類(+タグ)で表現
  • 組織→人、国→都市などの関係性はリンクを張ってグラフビューから分かるように
  • 職業や種族といった、フォルダやリンクを用意するほどではないサブ属性をタグで管理

というようにしています。
なのでキャラクターに関するファイルを書く場合は、Characterフォルダにファイルを作成、タグは「#character/human #character/warrior」のように設定、所属する団体や土地があればそこにリンク、という形を取っています。
タグに#characterを入れているのはフォルダに頼らずカテゴリ分類をする&他のカテゴリのタグと混ざらないようにするためですね。色々模索して、今は上記の管理方法で落ち着きました。

あと忘れていましたが、そのファイルに付随する画像データなどは「キャラ名_data」のフォルダを用意してそこに放り込んでいます。ただし自身はデータフォルダには突っ込まず、一つ上の階層で管理です。そうしないと付属データの有無でファイルの位置が変わっちゃいますし、ファイルを開く際にフォルダを何個も開ける羽目になって面倒なので。

以上、Obsidianがいいよって話と、自分はこう管理してるよって話でした。
テキストばかりの読みにくい記事になっていまいましたが、俺の心の中に広がる中2ワールドをwikiで管理してぇ~!という誰かに届けば幸いです。そうでなくとも普通にアイデア帳としてかなり優秀なので是非。おすすめです。

コマンドプロンプトで拡張子を一括リネームする

久々のTipsコーナー。
昨日ファイルの整理をしていたら一括で拡張子を変更したいなーってことがあったので、その方法をメモ代わりに残しておきます。ここでいう変更とはリネームであって、png→jpgのような変換では無いのであしからず。
ここではコマンドプロンプトを使います。PowerShell?…知らんな!(使い方を)

ではまずはコマンドプロンプトと、一括リネームを行いたいフォルダを開きます。
そしたらフォルダのパス(アドレス)をコピーして、コマンドプロンプトで以下のように入力して対象ディレクトリを変更します。

cd/d コピーしたパス

因みに私はおぼろげな知識でcdを使って移動しようとしてドライブをまたげずにアルェー?となりました。cd/dならドライブも変更できるので一発で移動できるはずです。

あとは拡張子のリネームを行います。
これも簡単で、例えば「.jpeg」を「.jpg」に変更したい場合は以下のように入力を行います。

ren *.jpeg *.jpg

見たら大体分かると思いますが「ren "変更前" "変更後"」という形です。*はワイルドカード。なんでもいいよ!のアレですね。
因みに私の環境だと「ren * *.jpg」で全てのファイルの拡張子を変更する結果となりました。

以上、付け焼き刃的Tipsでした。
たぶん調べたらいくらでも出てくる内容だと思いますが、書くネタもなかったし「理屈はいいからやり方だけ最短で教えてくれ!」という需要にマッチするかもしれないので残しておくことにしました。

GeneratePressテーマのカスタマイズ設定を取得する

2週間ぶりのGeneratePress記事でございます。
GeneratePressでは色や余白など様々なカスタマイズが出来る訳ですが、ここで設定した値をcssやphp側で使いたいケースがあります。「あそこで設定した色と同じものを使いたい!」というような状況ですね。
今回はこれらの値の取得方法について書いていこうと思います。

とはいえGeneratePressの設定項目は多岐にわたるので、どこにどんな設定項目があるのかは「generatepress/inc/defaults.php」にて確認をお願いします。こちらのファイルに各種設定の初期値が書いてありますので…(有料ライセンス、GP Premiumのファイルについては最後にまとめます)

それでは設定項目の値を取得する方法について。
まずはロゴ設定や文字色など、基本的な設定を取得するコードが以下になります。

$generate_settings = wp_parse_args(
	get_option('generate_settings', array()),
	generate_get_defaults());

$color = $generate_settings['link_color'];

1つ目の引数、get_optionで設定を配列で取得しています。
2つ目の引数、generate_get_defaultsで設定の初期値を同じく配列で取得しています。これは先ほど紹介したdefaults.phpで定義されている関数ですね。
最後にwp_parse_argsで結合します。あとは普通の配列と同じようにデータ名を指定して取り出すだけですね。

このような流れで、他の設定項目の値も取得することが出来ます。
ただし、get_optionの引数と初期値取得の関数が変わるので気を付けましょう。
以下は各設定の取得をまとめたものです。GP Premiumの機能についてはファイル箇所も併記しています。

// Colors
$color_settings = wp_parse_args(
	get_option('generate_settings', array()),
	generate_get_color_defaults());

// Typography
$font_settings = wp_parse_args(
	get_option('generate_settings', array()),
	generate_get_default_fonts());

// Padding
$spacing_settings = wp_parse_args(
	get_option('generate_spacing_settings', array()),
	generate_spacing_get_defaults());

// Blog (gp-premium/blog/functions/defaults.php)
$generate_blog_settings = wp_parse_args(
	get_option('generate_blog_settings', array()),
	generate_blog_get_defaults());

// Secondary Navigation (gp-premium/secondary-nav/functions/functions.php)
$generate_secondary_nav_settings = wp_parse_args(
	get_option('generate_secondary_nav_settings', array()),
	generate_secondary_nav_get_defaults());

// Sticky Navigation (gp-premium/menu-plus/functions/generate-menu-plus.php)
$generate_menu_plus_settings = wp_parse_args(
	get_option('generate_menu_plus_settings', array()),
	generate_menu_plus_get_defaults());

// Copyright
$copyright = get_theme_mod('generate_copyright');

コピーライトのように他と違う取得方法のものが混ざっているようなので、恐らく網羅できていないと思いますが…
ここに目当ての設定が見つからない場合は、GeneratePressとGP Premium全体をそれっぽいワードで検索すればいいと思います。そうすればいかにこの記事がソースコードから丸コピしてるか分かりますので…!

少々長くなりましたが今回はこれで以上となります。
次回はまたサイトに手を加えて書くことが出来た時にでも。それではまた。

GeneratePressでページ送りをカスタマイズする

GeneratePress記事4つ目でございます。
今回はタイトル通りページ送りのカスタマイズする方法です。
装飾についてお好みでCSSを設定して頂くとして、本記事ではページの表示数やテキストの変更方法を紹介します。

まず、ページ送りの表示項目数を変更するコードです。
これは実際には「1, 2, 3, 4, ... 7」の2~4の部分をいくつか表示するか、という設定です。
初期だと1で「1, 2, ... 7」と表示数が少ないので変更しておくといいかもしれません。

add_filter('generate_pagination_mid_size', function()
{
	return 4;
});

例によってフィルターが用意されているのでこれを利用します。
今回の場合だと「1, 2, 3, 4, 5, ... 7」という表示になります。お好みの数字でどうぞ。

次に、ページ送りの「戻る」や「進む」のテキストを変更するコードになります。

add_filter('generate_previous_link_text', function()
{
	return '<- Prev';
});
add_filter('generate_next_link_text', function()
{
	return 'Next ->';
});

こちらもフィルターを使います。お好きなテキストを入力してください。
因みに初期状態でも「← 前へ」「次へ →」と翻訳して表示されるので、変更必須という感じでは無いですね。

簡単なコード2つだけでちょっと物足りないですが、特にネタも無いので今回は以上となります。
次回はまた何かカスタマイズした時にでも。それではまた。

GeneratePressで検索結果を全文表示にする

GeneratePressのメモ書き3つ目。今回はタイトル通り検索結果の記事を全文表示にする方法です。
デフォルトでは設定に関わらず検索結果は抜粋表示になるようで、これを変更するカスタマイズ項目も現時点ではありません。
しかし、例によって公式がフィルターを用意してくれているのでこれを利用することで変更が可能です。

add_filter('generate_show_excerpt', function($show_excerpt)
{
	if (is_search())
	{
		return false;
	}
	return $show_excerpt;
});

以上、検索結果なら抜粋を止めるだけの簡単な処理になります。工夫すれば一部の記事だけを全文表示にしてレイアウトすることも出来ますね。公式にも使用例があるので参考にしてみるといいかもしれません。
公式ドキュメント → https://docs.generatepress.com/article/generate_show_excerpt/

ひとまず自分が行ったカスタマイズは全て書いたので、GeneratePress記事は今回で一段落です。
また何か手を加えた時には記事にしようと思います。それではまた。