珍しく朝から胃腸の調子(だけ)が壊滅的だった(体調記録)。昨日の時点で半休にすることは決めていたが,滅多にないことなので急遽全休に切り替えた。ギリギリのところで休養不足を解消したとも言える。自分をしっかり休ませる丁度良い動機が出来たので,早く寝支度をした。最近の課題だった入眠時間の遅さがこれで解消すれば怪我の功名だ。
映画などを観ながらのんびりデライト宣伝と軽い開発作業をしたが,思いのほか収穫も多かった。
従来の見出し未満の区切り線記法に,見出し階層を越えられる「階層区切り線」を加える。以下のように,唯一通常の区切り線と区別出来る見出し記号 #
(全角 #
も可)を使う。
* 第1階層
** 第2階層
#========================#
第1階層段落。
#------------------------#
第2階層段落。
#- - - - - - - - - - - - #
第3階層段落。
#. . . . . . . . . . . . #
第4階層段落。
##
第1階層段落(# の数でも調整出来る)。
従来の区切り線記法は,HTML において対応する <hr>
の性質上,見出し未満の区切りにしか使えなかった。
見出し階層を作った後で描写全体に対するフッター的なものを書こうとすると第1階層見出しを作る必要があるが,しばしば大袈裟に感じられることがある。
今回の検討当初は,「空見出し」という概念を主に考えていた。区切り線の長さは任意であるべきなので,どう弄っても自然な形で階層を調整出来そうになかった。その点,見出し内容を空に出来れば手っ取り早い。
しかし,等号も星号も区切り線に使う予定なので,==
のように第2階層以降で内容を空にすると衝突することになる。
区切り線の方を見直しても,--
が区切り線なら ==
はやはり二重の区切り線であってほしい。直感性,下線形見出しとの整合性を考えるとこれは捨て難い。星号による区切り線はそれに比べればまだ転用の余地があったが,その代わり *
を使う Markdown の区切り線記法との互換性が損われる。
そもそも,「空見出し」という概念にも無理がある。文字を書くから見出しなのだし,実質的に区切り線なのだから,直感的とは言い難い。
ここで,唯一区切り線記法と被らない見出し記号である番号記号を思い出した。
番号記号による見出しは,ハッシュタグや駒手記法との衝突を避けつつ atx 式見出しとある程度互換性を持たせるため,##
のように2個以上を条件に対応していた。個人的に好きな記法ではなかったこともあり,おまけのような扱いで,ここまで気付かなかった。
すでに「空見出し」に難を感じていて,区切り線記法での対応に立ち返っていたことで,この ##
が特殊な区切り線とみなせる特徴を持っていることに気付いた。記号を2個以上繰り返す,区切り線に見える記法で,実際,普文の枠線的な装飾に使われることが多い記号でもある。
特に,区切り線記法としての統一感・直感性を保てる2個で第1階層を表せるということは決定的に重要な点で,見出し記号の個数と階層関係が一致しないとどうしてもちぐはぐに見えてしまう。これは,衝突を回避したとしても等号・星号では解決出来ない問題だ。区切り線記号としての最短形が見出し記号としての第1階層に対応しうる唯一の記号が番号記号だった。
ただし,通常の区切り線記号と異なり,個数が階層に対応するため,普文の装飾を兼ねられないという問題があった。上位階層の区切り線を普文上で目立つように書けない。
これは,最新の区切り線記法と下線形見出し記法の検討(9日17歩,19歩)を踏まえ,見出し階層に対応する4種の区切り線と組み合わせる形で解決することにした。つまり,第1階層から順に最短形で #==#
,#--#
,#- -#
,#. .#
というように区切り線と組み合わせることが出来るようにする。これがまた都合が良いことに,よくある装飾に見える。
9日15歩以後,見出しの下線と区切り線は長さで区別出来るようになっているため,区切り線の装体にはある程度多様性を持たせて問題ない。一方,見出しの下線は階層を表す装体になっているため,一定の制限が必要になる。この点でもぴったり噛み合った。
別に2個以上で良いだろうと実装した区切り線記法,おまけ感覚で付けた番号記号による見出し記法,最近の拡張方針……何気ない全てがパズルの要素だったかのように思える神秘的な閃きだった。
この階層区切り線の考案を機に,番号記号による見出しは常に2個を最上位階層とすることにした。つまり,*
,=
と ##
で始まる見出しはともに最上位階層を表す。
これまで,異なる見出し記号を併用することは特に想定しておらず,実際使われていないはずなので,記号の個数は単純に計算していた。見出し階層は相対的な個数で決まるため,*
で始まる見出しがあると ##
は第2階層になる。これは階層区切り線と整合しない。
特に仕様として決めていたことではないため,ここで厳密化することにした。
HTML と CSS の機能的には,可接性を保ちつつ見出し要素を隠すことは造作もないが,SEO 上の懸念が多少ある。今の検索演心の評価理積みはそこまで単純ではないだろうが,伝統的に見出し要素は隠すべきではないとされてきただけに,どこまで不利になるか分からない。出来るだけ行儀の良い実装方法を見つけたい。
そもそも見出し要素を空にしてはいけないのか,<section>
あたりを使って上手く誤魔化せないか,など色々考えてみたが,どれも多かれ少なかれ怪しさが残る。
見出しの無い階層区切りというのは HTML の想定外だったのだろう。
直書き URL(<a.URI>
)を font-size: 0.9em
の等幅フォントにした(URL 装体調整前後)。字間無しは昨年6月30日の開発からだが維持する。
直書き URL のある描写が読みにくい問題はずっと以前から感じていて,何度か調整しているが,一昨日の開発中にふと,「文字サイズを小さくしていない」ことに気付いた。
昨年6月30日の開発で字間無しにしているが,等幅フォントにして変に目立ち過ぎるという理由で戻したりもしている。この時になぜ文字サイズを小さくするという発想がなかったのか不思議だ。他にも問題が山積していて思考時間が割けず,灯台の下まで目が行かなかったか。
今回は <kbd>
や <code>
の装体について考えていたところだったので,その関連で気付けたのだろう。
文字サイズはやはり0.9emが丁度良い。0.8emにすると長い URL はともかく短い URL を提示する時に今度は目立たな過ぎる。
これにより,十分凝縮されメリハリが付いたので,予てから検討していた長い URL の省略については保留とすることにした。
長い URL の省略は,簡単なようでいざ導入しようとすると意外と難しい問題がある。
まず,デライト上の文書の傾向からいっても,「ちょっと長い」程度の URL は省略したくない。URL の全体が情報として有用な場合がしばしばある。このあたりはマイクロブログなどとは事情が異なる。
では,どこで省略すべきかという問題になるが,長い URL を許容すればするほど比較的短い URL の読みにくさが解消されないというジレンマがあった。これは装体の調整で解決した。
そもそも輪結記法([ ... ]
)もあるので,現状維持で特に困ることはないだろう。そのうち https://example.com/abc ... xyx
のような省略記法を導入してもいい。
ただ,パーセント符号化の復号はしたい。これは昨年3月22日2歩で決めていたことだが,少し面倒臭い部分がありいまだに実現していない。