<skam-renderer> Web Component Demo

<skam-renderer> カスタムエレメントの動作確認ページ。宣言的なHTML埋め込みとプログラマティックな操作をテストできます。

1. 基本的な宣言的利用

<skam-renderer>
  <script type="application/vnd.berlysia.skam+xml">
    <?xml version="1.0" encoding="UTF-8"?>
    <skam:doc xmlns:skam="urn:skam:1"
              xml:lang="ja">
      <skam:body>
        <skam:block>
          <skam:kun yomi="まな"
                    okuri="ビテ">學</skam:kun>而
          ...
        </skam:block>
      </skam:body>
    </skam:doc>
  </script>
</skam-renderer>

2. 書字方向の切り替え

<skam-renderer writing-mode="vertical">
  ...
</skam-renderer>

// JS で切り替え
el.setAttribute('writing-mode', 'horizontal');

3. プロファイル切り替え

<skam-renderer profile="learningBasic">
  ...
</skam-renderer>

// プリセット名 or JSON で指定
el.setAttribute('profile',
  '{"yomigana":true,"okurigana":false}');

4. CSS Variables でスタイルカスタマイズ

/* CSS Variables は Shadow DOM を貫通 */
skam-renderer {
  --skam-glyph-size: 2em;
  --skam-color-kaeriten: #c00;
  --skam-color-ruby: #06c;
}

5. プログラマティック操作

SKAM-ML を入力して適用

イベントログ

6. エラーハンドリング

// 不正な XML を渡すとエラー表示
<skam-renderer>
  <script type="application/vnd.berlysia.skam+xml">
    <invalid>not valid SKAM-ML
  </script>
</skam-renderer>

// skam-error イベントで検知可能
el.addEventListener('skam-error', (e) => {
  console.error(e.detail.error);
});