{希哲16年3月22日の開発}{希哲16年3月22日の進捗}{タブ式}{#BBEEBB}{使わずに}{縦に並べる}{下見表示}{目障りにならない}{右端}{最小限の変更}...=}(76)

{希哲16年3月22日9歩 K#F85E/E74C-3F9D}

{用者}{希哲16年3月12日の開発}{希哲16年3月12日の進捗}{`}{解釈出来る}{完了させた}{中途半端な実装}{使用経験}{書き換えずに済む}{意図の明示}...=}(133)

{希哲16年3月12日7歩 K#F85E/E74C-8A2F}

交度記法改良

以下の作業終えたため,ここでいったん終了

これにより,デラング記法例示洗練された

```txt
これまでのデラング記法の例示
```

``dlng
これからのデラング記法の例示
``

交度部区記法開始記号終了記号については,これまで ``` 固定だったため,交度部区記法内で交度部区記法について例示出来ないという問題があった

行内交度記法逆括点の数を調整出来るようにして1月17日15歩から,この方式統一することを考えていた

これを機に逆括点の数は2個でもとした。区切り線記法最初から Markdown などで一般的な3個以上ではなく2個以上-導入したが,交度部区記法では確信が持てなかった

交度部区記法実装からちょうど一年経ち3個以上でなければならない理由はない,と使用経験から判断したなんなら1個でも解釈上問題はないはずだが,目印としての機能考える2個限度だろう。他の記法との統一感もある。


これまで外部ライブラリhighlight.js任せだった交度部区記法言語名自主的に管理する第一歩として,取り急ぎデラングνS対応した

デラングdelangdlngdlntxt に,cuucppに,νsvsjs に,それぞれ Dex 側で変換するとりあえず大文字小文字区別しない

これまではデラングtxt などと書いていたが,意図の明示という観点から問題があった。これなら今後構文ハイライト対応した時に書き換えずに済む

言語名対応関係については実装委ねるべきかとも考えたが,将来的に混乱の元になりそうな部分なので,対応関係言語仕様規定し,構文ハイライトなどは任意実装とすることにした。

また,用者未定義言語名使用出来るように,例えば ```newlang(oldlang) のように代替言語名指定出来る記法検討開始している


1月17日15歩で,外側逆括点の数を調整出来る仕様にしたが,`` `a` `` のように外側より少ない個数でないと上手く解釈出来ないなど中途半端な実装だったことを思い出し実装完了させた

これで ` ``a`` ` でも `` `a` `` でも `` `a`` でも,対応する逆括点さえ判別出来れば問題なく解釈出来るようになった。


全て手定め出振るい済み

=}
{希哲館事業}{デラング}{進捗記録}{希哲16年2月22日}{希哲16年2月22日の開発}{希哲16年2月22日の進捗}{担わせる}{4ja}{有名無実化}{意識しない}...=}(159)

{希哲16年2月22日9歩 K#F85E/E74C-BABF}

進捗時限記録中略

kitetu.comサブドメイン設計についての検討終了

今後デラングのように独立して参照出来るべき献典には積極的にサブドメイン与えていくことにした(例:dlng.kitetu.com


デラング的転回同時にデラング文書dlng.kitetu.com与えることを決めたが,これを機に知番SLFS 等々の公式文書にもサブドメイン与えることを考え始めた

これまでサブドメイン追加には消極的で,例えば技術系献典tech.kitetu.com集約することを考えていた。ただ,この手の URL 設計は,運営者にとっても閲覧者にとっても直感的でなく情報過多になりやすい上,階層的な整理難しいことも多々あり,変更に弱く参照可能性の低い URL が出来がちであるという問題があった。

こういう場合対策として,経験上最短原則」が最善であることは分かっていて,最近駒手にせよ各種識別子にせよ知名最短知名原則にせよ最短化する流れにある。サブドメインについてもこれに従うことにした。希哲館事業要素全て kitetu.com階層下にある,ということだけは確かだ。もちろん,これとは別に,階層的な情報源もあった方がいいので,そこは tech.kitetu.com などに担わせる

献典ドメインとしての独立性統一感同時に持たせられるのだから,むしろ,ここからがドメイン名統一本領発揮になりそうだ。

2文字サブドメイン問題解決

サブドメイン活用していく上で,一つ,「2文字サブドメイン問題」とでもいうべき問題があった

例えば,サブドメイン与えるなら cu.kitetu.com とするのが自然だが,CUキューバ国家符号だ。

ドメイン名統一によって ccTLD使わなくなっているため,将来的に地域別ドメイン欲しくなった時にはサブドメイン使うことになる。2文字サブドメイン使用避けるべきかもしれない,と考えていたキット*メーネmn.kitetu.comモンゴルMN被っているのが少し気になってはいた

ただ,その懸念も「もやもや」の域を出ていなかった明らかに紛らわしいサブドメイン最初から使わないので,被るとしたら普段意識しないようなものだ。被ったとして,ドメインハックccTLD有名無実化している今,そこまで神経質になることでもないだろう。そんなことのために,わざわざ不自然な表現もしたくない。とはいえ,サブドメイン選択肢多い越したことはない

そこで,国家符号表す何らかの接子導入考えたFacebook のように,ja-jp言語符号付きを基本として,言語符号がいらない場合は x-jp のように表記出来るようにするかとも考えたが,少し野暮ったい

最終的に4 接頭子導入する方向検討進めることにした。例えば,キューバ向けのドメイン4cu.kitetu.com として cu.kitetu.com区別出来るようにする。衝突しなければ 4 接頭子省略してもいいし,4ja のように言語符号に代えられてもいいだろう。4ja-jp のような表現が出来てもいい。これなら十分な簡潔性柔軟性兼ねられる

例えば 4jp.kitetu.com なら www.kitetu.com変わらない標準的な長さだし,むしろお洒落感すらあるので,これで統一して,4 接頭子無しは転送用にしてもいいくらいかもしれない。

いまのところ地域別ドメイン必要は感じておらず,将来的に必要になるかもしれない,という程度の問題なので,細かいこと追い追い決めるとりあえず理論上すっきりしたので良かった

=}
{HTML}{駒手記法}{進捗記録}{あれ}{希哲16年2月20日13歩}{神秘的な}{別に}{実装した}{付けた}{階層区切り}...=}(248)

{希哲16年2月15日24歩 K#F85E/E74C-1EF9}

進捗時限記録中略

不意に閃いた階層区切り線」についての方針まとめて終了

従来の見出し未満区切り線記法に,見出し階層越えられる階層区切り線」を加える。以下のように,唯一通常の区切り線区別出来る見出し記号 #全角 使う

* 第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階層になる。これは階層区切り線整合しない。

特に仕様として決めていたことではないため,ここで厳密化することにした。

実装上の課題

仕様完璧思えるが,実装上の課題残った

HTMLCSS機能的には,可接性ちつつ見出し要素隠すことは造作もないが,SEO 上の懸念多少ある。今の検索演心評価理積みはそこまで単純ではないだろうが,伝統的に見出し要素隠すべきではないとされてきただけに,どこまで不利になるか分からない出来るだけ行儀の良い実装方法見つけたい

そもそも見出し要素にしてはいけないのか,<section> あたりを使って上手く誤魔化せないか,など色々考えてみたが,どれも多かれ少なかれ怪しさ残る

見出しの無い階層区切りというのは HTML想定外だったのだろう。

{用者}{HTML}{HTML5}{デラング}{進捗記録}{高い}{あれ}{役割を持たせる}{役割を持つ}{緩衝的}...=}(248)

{希哲16年2月15日10歩 K#F85E/E74C-2CA8}

進捗時限記録中略

昨日寝る直前にまた脳爆発があり,今朝にかけて文字装飾記法タグ記法周りの概念整理仕様整理急速に進んだ

文字装飾記法は,「文字装飾を伴う慣用表現」のための記法位置付けることにした。太字記法##斜体記法//下線記法__打ち消し線記法~~翌日のまとめで「打ち消し記法」から改称4記法基本とし,それぞれ所定装体スタイルを伴う <b><i><u><s> HTML 要素対応する

@ を使った文字サイズ記法% を使った色記法検討していたが,タグ記法概念が出来たことで中途半端なものになるため,これは廃案とする。

文字装飾記法はこれがほぼ完成形か。

検討過程

3つ検討方針

実装自体は容易部類で,記法概ね固まっていたにもかかわらず文字装飾記法実装踏み切れなかった理由として意味論的な問題があり,これが思いのほか難題だった。実装方針3通り考えられる

  1. 完全に意味論的な記法にする
  2. 完全に装飾的な記法にする
  3. 意味論装飾重ね合わせた記法にする

記法趣旨からしても,軽量標記マークアップ言語特性を考えても,1つ目に無理があるのは明らかだ。対応する HTML<b><i><u><s> は,私が何度解説を読んでもややこし感じる代物だ。それを多くの人正しく理解して使うのは不可能だろう。そもそも「文字装飾記法」という分かりやすい説明体系捨てることになるが,代替案があるわけでもない。

かといって,2つ目ももったいない。要は <span>装体指定だけにするということだが,例えば,太字にはしたいが <b> にはしたくない場合打ち消し線引きたい<s> にはしたくない場合がどれだけあるのかと考えると,無難通り越して臆病過ぎる失う可接性アクセシビリティ応用可能性釣り合わない

最終的に採用することになった3つ目も,全く考えなかったわけではないが,柔軟性に欠け,前の2つの悪い所組み合わされる気もして,有力案にはなっていなかった。

タグ記法による書き分け

この膠着状態変えたのは,前日概念としてまとまったばかりのタグ記法だった。

これまで,デラングにおける HTML は,どうしてもデラング出来ない表現をしたい場合などの“抜け道”とか“救済措置”に近い位置付けで,積極的に使うことを想定していなかった。実際個人的にはほとんど使っておらず放置している不具合多い部分だった。

デラングタグ記法として間接的に HTML使うことで,略記法導入可能になり,HTML 側の仕様変更に対しても一定の緩衝帯設けることが出来る。ここに来て初めて文字装飾記法でも「書き分け」が考えられるようになった文字装飾記法対応しうるのが全て1文字要素だったことも幸いした

昨日寝る直前に,##太字的な表現##<{font-weight:bold}>太字</> のように書き分けるよりも,##太字##<b>太字的な表現</b> のように書き分ける方がマシであることに気付いて,1つ目の実装方針完全に潰せた

これにより一時的に2つ目の実装方針再浮上したが,標準的に使う記法として標準的な用途最適化不足なのはやはり否めなかった

決着

最終的に,「文字装飾を伴う慣用表現」という用者自然に理解出来る範囲での意味論的位置付け与え逸脱する用途ならタグ記法書き分けるのが使用頻度に対して最適だろうという結論に達した。3つ目の実装方針洗練させた格好になる。

例えば##太字## は「太字装体<b>」に対応する装体邪魔なら <b>太字的な表現</b>書けるし,意味邪魔なら <{font-weight:bold}>太字</>略記法検討段階のように書けるが,これらの場合稀少なのは明らかで,記述量上手く釣り合うワープロならともかく,軽量標記言語手書きしようという人にとって難しい使い分けではないだろう。

そもそも<b><i><u><s> は,古くからある視覚的要素HTML5慣用的な用途引き継いで意味論化されたものなので,「文字装飾を伴う慣用表現」と非常に相性が良い相互変換にも全く問題ない

何より,直感的に入力すれば構造的に出力されるというデラングの理想適っている

文字サイズ記法色記法廃案

文字装飾記法を「文字装飾を伴う慣用表現」と位置付けたことで,慣用表現を持たない文字サイズ記法色記法仲間外れになるが,タグ記法によって出る幕がなくなった感があるので,ここで廃案にすることとした。

第一に,タグ記法略記法整備した方が一貫性応用可能性高い特定プロパティ省略出来るようにし,<{white}>白い文字</> のように書ければ,%white%白い文字%% と書くのと記述量大差ない

もともとパラメーター必要とする記法異質感はあり,文字装飾記法統一感損うかという懸念はあったので丁度良かった

波及的検討

波及的に,いくつかこまごまとした検討進んだ

組み合わせは「」ではなく「入れ子」へ

これまで,複数文字装飾記法組み合わせ#/太字と斜体/# のように,「記号を1つずつ逆さにした終了記号挟む」といったややこしい説明考えていたが,##//太字と斜体//## のような「入れ子」を #/太字と斜体/#短縮出来るという考え方にした方が分かりやすいため改めることにした。

タグ記法発展

今回検討で,タグ記法早くも実践的な役割を持つことになり,デラングにおける存在感一気に増した

タグ記法HTML仕様変更対する緩衝的役割を持たせること,要素名省略<span> にすることを考え始めた

{希哲16年2月の開発}{開発}{開発記録}{希哲16年2月2日}{知名選り手}{部品単位編集}{用合い}{統一感}=}(8)

{希哲16年2月2日の開発 K#F85E/E74C-C561}

12歩のまとめをしながら,デライト最初期からある知名選り手部品単位編集みたいなものであることに気付いた。閲覧編集用合いは分けたいが WYSIWYG 的な直感性もある程度必要という動機同じだった。元々親和的用合いだったのだろう。

描写と並ぶ要素か,描写内の要素かという違いはあるが,用合いとしては統一感持たせるべきか。

=}
{進捗記録}{表示させたい}{大分類}{最初から}{記法的}{強調度}{希哲16年1月26日の進捗時限}{希哲16年1月26日の進捗}{希哲16年1月26日}{注意記法}...=}(42)

{希哲16年1月26日18歩 K#F85E/E74C-5EC9}

補足記法注意記法拡張性について検討して終了

この手の記法最初から役割細分化し過ぎると気軽に使いにく応用が効かず,記法的統一感もなくなりがちであるため,大分類として補足注意に分け,強調度任意ラベル指定出来るように設計している。

ただ,将来的に役割応じてアイコン表示させたいといった要求が出てくる可能性もあり,その拡張性確保しておきたい。

とりあえずアイコンを指定する記法考えておくことにした。それと例えば !! 注意 -- のように所定ラベルを同時に指定した時に注意書き用のアイコン表示する,といった拡張考えられる

=}
{進捗記録}{希哲15年8月23日の開発}{早期実装}{正規一致検索}{整理がついた}{全知検索の課題}{組み合わせる}{OR 検索}{AND 検索}{希哲15年8月23日の進捗時限}...=}(48)

{希哲15年8月23日11歩 K#F85E/E74C-BB18}

全知検索整備についての検討終了

全知検索の課題として,AND 検索などと正規一致検索整合性をどうするかという問題があったが,これも概ね整理がついた

AND 検索はそもそも部分一致検索組み合わせるものなので,これは OR 検索 とともに部分一致検索一種位置付けることにした。OR 検索正規一致矛盾しないが,そういう検索をしたい場合はなので統一感を取るべきだろう。必要になったら正規一致検索明示する演算子導入すればいい。

ただし,前方一致検索後方一致検索指定することは出来てもいい。a... & ...z で開始文字列と終了文字列を指定出来るのは便利そうだ。

指定にかかわらず,描写検索部分一致検索となる。


ここまでで概ね全知検索設計実装上の課題片付いたと言えそうだ。

早期実装の目処がついたため,19日の開発まとめた作業項目優先順位で「検索語提案機能実装」としていた所を「全知検索整備」に拡大することにした。

=}
{進捗記録}{Markdown}{文字装飾記法}{下線記法}{希哲15年6月23日の開発}{希哲15年6月23日9歩}{希哲15年6月23日の進捗時限}{希哲15年6月23日の進捗}{希哲15年6月23日}{目立たせる}...=}(26)

{希哲15年6月23日10歩 K#F85E/E74C-2B89}

前歩で導入を検討した下線記法についての追加検討で終了。

下線記法は __ と2つ連続するアンダースコア採用することにした。

__下線__

アンダースコア本来の意味を考えると1つでも良い気がしたが,例えば,変数名顔文字の類との相性が悪い。変数名に関しては交度記法を使えばいいといっても,書き手が全ての記法を覚えて使い分けられるわけでもなく,知っていても適当に書きたい場合もあるだろう。

そもそも目立たせるための記法なのでこの程度の目立ち方が丁度良いし,他の書式関連の記法との統一感も出る。

ちなみに Markdown ではアンダースコア1つから強調に使うが,これは明らかにまずい

{開発}{デラング}{開発記録}{letter-spacing}{Android}{iOS}{倍角ダッシュ}{倍角ダッシュ問題}{希哲15年6月19日の日記}{複数段落引用記法}...=}(72)

{希哲15年6月19日の開発 K#F85E/E74C-A3FD}

デラング整備

とりあえず細かい記法実装から済ませてしまうことにし,かねてから考えていたダッシュ記法出典記法実装,概ね満足出来るものになった。当初はそれほど期待していなかったが,想像以上表現の幅が広がりそうだ(公式解説)。

ダッシュ記法

ダッシュ記法は,特に扱いにくい倍角ダッシュが簡単に扱えるようになったのが想像以上に大きい。

この問題は,昔,『道草録』記事名に使おうとしてから認識していた(「Org-Mode の機能、組み込み LaTeX — その1」)が,いまだにこれといった解決策が無く,日本語電子文書課題になっているので,それなりの宣伝効果もありそうだ。

最初,エムダッシュU+2014を2つ繋げて,CSS で何とか調整しようと考えたが,フォントによって太さ長さ統一感がなく,負の letter-spacing で間が開かないようにすると短過ぎて倍角ダッシュに見えなかったりした。しかも,環境によっては重なった部分が濃く見えて結局綺麗な倍角ダッシュにならないという問題に気付き,これは断念した。

最終的に,罫線素片U+2500を使うことにした。罫線を作るための文字である性質上,letter-spacing が 0 であれば隙間が出来ないことはほぼ保証されている。SLFSAndroidWindowsmacOSiOS確認した。

罫線素片による倍角ダッシュの表現はよく見られるものだが,同時によく指摘される問題点として,これがダッシュであるという意図表現出来ないというものがある。例えば,縦書き表示した時に横棒のままになってしまうことがある。

これを踏まえて最初にエムダッシュを利用しようとしたのだが,よく考えると,デラングであれば,ダッシュ記法という仕様によって意図保存しつつ,表示上最適化に徹することが出来る。

出典記法

ダッシュ記法と引用記法の組み合わせとも言える出典記法も実装出来た。

複数段落引用記法の終了記号との兼ね合いをどうするかと思っていたが,これは単純に,出典記法を終了記号としても扱うことで上手く解決した。

ここも意外に他の軽標記言語では面倒だったりするので,デラングの小さな売りになりそうだ。

その他

成果想像以上だったが,これらを実装するのに想像以上に多くの障害があった。

特に,正規表現周りで躓くことが多く,正規表現の扱い方について見直す良い機会にもなった。

{統一感}

{}