AI が HTML を作るときの書き方の決まり
図・チャートなど見た目のあるものを HTML で作るときに従う決まり。 フロー図・シーケンス図・グラフ・操作できる部品は HTML を書かず、図を描く の部品の定義で描く。
| 描くもの | 書き方 |
|---|---|
| 文章・表・手順・リスト | Markdown |
| フロー図・シーケンス図・グラフ・操作できる部品 | 部品の定義(JSON) |
| 部品で描けない図・チャートなど見た目のあるもの | HTML |
| 項目 | 決まり |
|---|---|
| 自己完結 | 外のファイル・CDN・フォントを読まない。図は 1 つの HTML に収める |
| 色と文字 | 色・書体・角丸は --mdmark- の CSS 変数で書き、色の値を直に書かない。変数はライトとダークで切り替わる。変数の一覧は テーマの CSS 変数 |
| 色だけで分けない | 意味の違いは、色に加えて形・模様・文字・アイコンでも示し、凡例に全て書く |
| 題と凡例 | 図ごとに題名・範囲・更新日と凡例を付ける |
| 読み上げ | 図に名前を付け、操作できる要素には読み上げの名前を付ける。アイコンだけのボタンは aria-label を付ける |
| キーボード | 操作は全てキーボードでもできる。ドラッグだけの操作にしない |
| ツールチップ | ホバーとフォーカスの両方で出し、Esc で消し、上に乗っても消えない。理解に必須のことは入れない |
| 拡大・縮小 | ボタンとキーで行う。ホイールは普通のスクロールに使う |
| 文字 | 文字の上では選べる。ドラッグで図を動かすときは、文字の上を除く |
| スクリプト | 文書に書いた <script> は動かない。動きが要る部品は、使う側のページに載せて動かす |
置いたら、動かして、スクリーンショットを撮って見る。 手順は 描いた図を確かめる。
文書に書いた HTML は、描く前に許した要素・属性・URL だけを残す。
| 項目 | 残るもの |
|---|---|
| 要素 | 標準の要素と img・del・details・summary。文書に書いた input は、チェックボックスで操作できない形に直す。svg・button・output は残さない |
class |
language-*・mdmark-align-*・task-list-item・mdmark-embed だけ |
| 属性 | style・id・data-*・on で始まる属性は残さない |
| URL | href と src は http・https・mailto と相対 URL だけ |
見た目を自分で作る HTML は、使う側のページに載せるか、画像にして置く。
<!-- html --> の範囲に置いた html のコードブロックの HTML は、上の文書に書いた HTML と同じ許可の検査を通してから、その場に描く。
書き方は コードブロックのHTMLを描く。
| 項目 | 決まり |
|---|---|
| スクリプト・イベントの属性 | script 要素・on で始まる属性・javascript: の URL は落ち、動かない。動くのは mdmark の部品だけ |
button |
残る。type="button" に固定し、form で始まる属性は落とす。押しても何も起きない |
style |
下の宣言だけが残る |
data-hint |
任意の要素に書け、値の文がツールチップで出る。値は Markdown として読まず、文字として出す |
| 図の部品 | <mdmark-flow>・<mdmark-sequence>・<mdmark-chart>・<mdmark-param> の中の JSON を、図の部品の定義として描く。要素の属性は読まない |
id・data-*(data-hint を除く) |
残さない |
style の宣言は、次のものだけが残る。
| 項目 | 宣言 |
|---|---|
| 残す宣言 | display・flex で始まるもの・align-items・align-self・justify-content・grid で始まるもの・gap・row-gap・column-gap・margin で始まるもの・padding で始まるもの・border で始まるもの・width・max-width・min-width・height・color・background-color・font-size・font-weight・text-align |
| 落とす値 | url( を含む値・単位 vw・vh を含む値・position・負の margin・padding |
幅が本文の列より広い HTML は、描いた枠の中で横にスクロールする。