nDiki : HTML

HTML (HyperText Markup Language)

関連情報

Perl モジュール

  • HTML::PopupTreeSelect
    • ディレクトリツリーなどのツリー構造のノードを選択させるウィンドウをポップアップさせるためのモジュール。
  • Template Toolkit

HTML への変換

2021年1月20日 (水)

Zettlr 2日目

昨日から使い始めZettelkasten メソッドのための機能を備えた Markdown エディタの2日目。昨日の時点で使い続けるかちょっと迷ったんだけれど、もうちょっと使い方を探ってみようと今日も使ってみている。内部リンク(ノート間リンク)の活用方法がちょっと分かってきて楽しい。

内部リンクの使い勝手が良い

エディタ上で内部リンクを「command + クリック」「control + クリック」すると「リンク先のファイルを開く」と同時にその「リンク文字列での検索」が実行される。ファイルを開くと同時にいい感じに関連するファイルのリスト(実質バックリンクリスト)が表示されて便利。内部リンクを充実させたい気持ちが高まってきた。

ID を YAML front matter に埋め込む

アプリケーションに依存する Markdown ファイルを作らないという Zettlr の原則により Markdown ファイル中のどこに ID を書いてもいい仕様になっている。

自分としてはプレビュー時に文中に出ないように、昨日ひとまず ID を HTML コメントの形式で Markdown ファイルに埋め込んでみていた。 Zettlr やメインで使っている iA Writerプレビューに使っている Marked 2 が YAML front matter に対応しているのでそこの方がわかりやすいかな。 front matter に ID を書くことにした。

ID のパターンは初期設定の「%Y%M%D%h%m%s」で

日時については基本「2021-01-20-095836」という書式を使っているので Zettlr の ID のパターンも初日に「%Y-%M-%D-%h%m%s」にカスタマイズしたのだけれど「%Y%M%D%h%m%s」に戻した。過去のノートファイルに現在日時の ID を付与するというズレが心理的に気持ち悪かったので。

Also, our own experiences show that when one doesn't use easy-to-recognise IDs, one is less prone to assume stuff, making them better suited to cross-link files. Just try it yourself! — https://docs.zettlr.com/en/academic/zkn-method/

というの納得。

内部リンクは独立した行に書き、 Marked 2 で消す

内部リンクは Zettlr をナレッジベースとして使う上で便利だが、単独の Markdown ファイルをエクスポートして共有する際には不要だ。

Markdown ファイルを各種フォーマットに変換する Marked 2 に自作のカスタムプリプロセッサを通す機能があるので、 Zettlr で管理している Markdown ファイルを共有する際は Marked 2 を呼び出して

 - [[...]]

を含む行を消してしまうように設定した。ノート関係の宣言のための内部リンクは上記のように独立した行に書いておこう。

これで個人的なナレッジベースとしてノート間リンクの充実させるという要求と、一部はエクスポートして共有したいという要求を満たせそうだ。

[ 1月20日全て ]

2021年1月27日 (水)

Markdown リンク定義にリンク先ノートの ID を書く

Markdown エディタ Zettlr で内部リンク(ノート間リンク)を

 - [[yyyymmddHHMMSS]] タイトル

のように書き、エクスポートする時は Marked 2 のカスタムプリプロセッサで消す(記事)というマイルールを作った(yyyymmddHHMMSS は ID)。が Zettlr から iA Writer に戻し、ノート間リンクは自作の PopClip エクステンションで開けるようにした(記事)ので、必ずしも [[yyyymmddHHMMSS]] 形式で内部リンクを表現しなくても良くなった。であれば、最初から変換した時にドキュメントに現れない形式で Markdown ファイルに内部リンクを書いておきたい。

Markdown ファイル中に HTML コメント形式で内部リンクを書いておけば、 HTML 等に変換した時にドキュメントに出現しなくて済むのだが iA Writer だと全文検索にひっかからないので却下。

ドキュメントに出現しない表記にはもう1つ「リンク定義」があるのでこれを使うことにした。

 [yyyymmddHHMMSS]: <> "title"

として内部リンクを書いておけばプレビューしたドキュメントには現れない。若干やぼったい感じもするがなかなかいいんじゃない。

[ ノート・日記はテキストファイルに ] [ Zettelkasten ]

[ 1月27日全て ]

2021年2月20日 (土)

八潮を散歩【日記】

image:/nDiki/2021/02/20/2021-02-20-142054-nDiki-800x1200.jpg

暖かい日ということで午後に八潮近辺を散歩してきた。歩けば体も温まるだろうと何も羽織らないで出掛けたら、さすがに運河エリアは肌寒かった。

勝島運河 → かもめ橋 → 八潮公園 → 大井ふ頭緑道公園 → 八潮橋というコース。大井ふ頭緑道公園は遊歩道がメインの細長い公園。東側の湾岸道路 & 首都高速湾岸線と南側の八潮パークタウンとに挟まれ景観・音どちらもいい訳ではないが、普段歩かない適度なアップダウンのある土の道が心地よかった。

Cloudflare で www.naney.org をプロキシ

昨日 Cloudflare を使えるようにしたので、今日 www.naney.org のプロキシを有効にしてみた。トップページの表示は体感速くなった気がする。

「とりあえず公開してサイト上で文章を見直して何度か書き直す」みたいなのはキャッシュされるのでやりにくくなるのかな?

追記

HTML ページはデフォルトではキャッシュされない仕様だった。

[ 2月20日全て ]

2021年2月26日 (金)

Obsidian 内部リンク形式を参照解決して Markdown 形式に置き換えるフィルタを書いた

Obsidian ノートとして内部リンク方言([[ファイルベース名]] や [[ファイルベース名|表示テキスト]])を書いた Markdown ファイルを HTML ファイルに変換する場合は Marked 2 から[[・]]を消す自作フィルタをプリプロセッサとして呼ぶようにしている。

単独ファイルとして HTML ファイルに変換する場合はこれで良かった。しかし最近はノート間のリンクを残しつつ変換したくなってきた。

ノートYAML front matter にそのノートURL (今だとノートGoogle ドキュメントにして共有しているので Google ドキュメントURL)を URL キーで宣言してある。内部リンク先の Markdown ファイルを探して URL が宣言されていれば [ファイルベース名](URL) あるいは [表示テキスト](URL) に書きかえるよう自作フィルタを改良した。

これでリンク元 Markdown ファイルではリンク先ノートURL を記述しておく必要がなくなり、普通に Obsidian ノートして書くだけでよくなった。めでたし。

[ Markdown で書いているノートを Google ドライブで共有する ]

[ 2月26日全て ]

2021年3月18日 (木)

Markdown 形式の Top of Mind ノートを pandoc で HTML ファイルに

Obsidian vault にある断片的なノートGoogle ドキュメント化共有をやめるのに合わせて、社内向け Top of Mind ノートの共有もやめた

しかし仕事に関する Top of Mind ノートは引き続き Obsidian で更新し、仕事用の Google Chrome のホームボタンや新規タブで表示できるようにしたい。 pandoc でさくっと HTML ファイルに変換するシェルスクリプトを作り Alfred から呼び出してさくっと更新することにした。

ちなみに個人的な Top of Mind ノートは引き続き Obsidian Publish サイト上に作って Google Chrome のホームボタンを押した時や新しいタブを開いた時に表示するように設定している

[ スタートページ ]

[ 3月18日全て ]

2021年10月8日 (金)

data-cfasync を指定して Cloudflare Rocket Loader で特定の JavaScript コードを除外する

HTML ページ中の mermaid 定義を自動的にクライアント側で SVG 変換し表示させるのが動いていないのに昨日気づいた。 initialize がうまく動いていいないっぽい。 Cloudflare の Rocket Loader をオフにしたら再び動くようになったのでそれが原因のようだ。

How can I have Rocket Loader ignore specific JavaScripts? – Cloudflare Help Center

によると

 <script data-cfasync="false" src="/javascript.js"></script>      

のように data-cfasync を指定するとそのスクリプトの読み込みを最適化から除外するらしい。

今回は HTML ファイル中に直接 script 要素で埋め込んだコードが動かなくなったので

 <script data-cfasync="false" type="text/javascript">
 ... // Rocket Loader オンで動かなくなったコード
 </script>

のように追加してみたところ Rocket Loader をオンにしても動くようになった。高速化のため、できれば Rocket Loader をオンにしておきたかったので良かった良かった。

[ 10月8日全て ]

2021年12月2日 (木)

Cloudflare で HTML ページのキャッシュを有効にしてみる

2月に Cloudflare で www.naney.org をプロキシするように設定した。デフォルトの設定では HTML ページはキャッシュされない。

www.naney.org ではほとんどのページを動的に生成しているがパーソナライズしていないので、 Cloudflare で全てキャッシュされるようにしてみた。

ページ ルール(Free プランでは3つまで)として以下を追加。

 www.naney.org/*
 キャッシュ レベル: Cache Everything, エッジ キャッシュ TTL: 2時間

ページを1回閲覧したあとに再読み込みしてもページフッタに出力しているプロセスタイムが変わらないのようになったので、ちゃんとキャッシュされるようになったっぽい。

しかし PV を考えると TTL 2時間ではキャッシュヒット率がかなり低いかもしれないな。保険的に有効にしておく感じだ。

[ 12月2日全て ]

2022年1月26日 (水)

今日のさえずり: 70:20:10 モデルのソース調査

[ 1月26日全て ]

2022年2月19日 (土)

今日のさえずり: Obsidian Publish に Hide page title オプションが追加された

  • 08:03 Good morning! Tokyu Plaza Omotesando Harajuku #photography RICOH GR IIIx #GR #GRIIIx #GR3x https://t.co/VAi4my5Aak
  • 08:22 @blue12yyy おはようございまーす。
  • 14:49 Obsidian v0.13.25 で Obsidian Publish に Hide page title オプションが追加され、ノートタイトル(ファイル名)をページタイトルとして表示するのをオフにできるようになった。
  • 14:50 使えない文字 (\/:) 回避で本来とは異なる表記ノートタイトルにしているページも、きちんと見出しがつけられるようになって嬉しい。 グラフビューでのテキストや HTML タイトルを、YAML front matter で指定できるようになるともっと嬉しい。
  • 14:57 Obsidian Publish の Hide page title オプションをオンにした。 公開しているノートMarkdown ファイルに全部 # レベル1見出しを追加して publish。
  • 16:32 @isoco6 「えっ? 朝の表参道になぜどん兵衛が?」と一瞬思考停止するシチュエーションでした。
  • 18:41 修理に出していたスーベレーン M400 が帰ってきた。嬉しい!
  • 25:00 2022年2月19日(土) やったこと - 食材買い出し - Obsidian Publish の Hide page title オプションをオンに - 万年筆の次のインク選び
[ 2月19日全て ]

2022年3月18日 (金)

Obsidian Excalidraw プラグインを使い始める

image:/nDiki/2022/03/18/2022-03-18-Excalidraw.png

ちょっとした図を書くのに Excalidraw を使ってみることにした。

Obsidian 上で Excalidraw ファイルを編集・管理できて便利な Obsidian Excalidraw プラグインを使う。

図を更新すると自動的に対応する SVG 形式ファイルや PNG 形式ファイルにエクスポートし更新してくれる機能が入っているのが入っているのがめちゃくちゃ嬉しい。

マインドマップツール iThoughtsHD (現 iThoughts) がマインドマップを更新・同期するたびに PDFPNG + HTML にエクスポートしてくれてとても便利だったんですよ。更新するたびに自動的にスタンダードな形式でエクスポートしてくれる機能すごく良いんだけれど、実装されているアプリケーションほとんど無いんだよね。

[ 3月18日全て ]

About

Process Time: 0.138542s / load averages: 0.52, 0.43, 0.51