Skip to content

A compact and portable format that can be converted back to HTML in a lightweight way. And Tiny Streaming SSR!

Notifications You must be signed in to change notification settings

itozyun/html.json

Repository files navigation

HTML.JSON

A compact and portable format that can be converted back to HTML in a lightweight way.

And Tiny Streaming SSR!

Edit in draw.io

  1. html を json で表現する(変換する)
  2. json から html への変換時に処理を追加できる
  3. HTML を予め json 化しておけば、実行環境に HTML パーサーが不要になる
    • Web サーバ側での動的生成のソース(AMP HTML, メディアタイプ別専用ページ)
    • オフラインドキュメントのコンテンツデータ
    • PJAX のコンテンツデータ
    • 非力な DHTML ブラウザで、文書をページャーで表示する(要素のサイズを測りながら描画する)際のデータ

目次

  1. コンパイルとテスト
    1. Streaming SSR のデモ
  2. html.json の例
  3. API の概要
  4. HTML の minify
  5. 条件付きコメントに関する情報
  6. License

1. コンパイルとテスト

git clone https://github.com/itozyun/html.json.git
cd html.json
npm i
git submodule update --init

npm run make
npm run test

# Do when the node module is updated
gulp externs

1.1. Streaming SSR のデモ

次を実行した後にブラウザで http://localhost:8080/ を開く.

npm run demo

# Do when the "sample/*" files are updated
gulp sample

2. html.json の例

html.json は HTML と等価な JSON のサブセットです.定義は HTMLJSON.md にあります.

閉じタグの省略できない HTML 要素が多い文書などでは、HTML 形式よりファイルサイズが小さくなります.

<!DOCTYPE html>
<p>Hello, world!

[
  9, "<!DOCTYPE html>",
  [ "P", "Hello, world!" ]
]

3. API の概要

次の3つの API が利用できます.詳しい文書は API を確認します.

json2html, json2json で利用できる Restricted Virtual DOM の説明は RESTRICTED_VNODE.md を確認します.

json2json で使える Virtual DOM の説明は RESTRICTED_VNODE.md を確認します.

  1. html2json
    • html を html.json 形式に変換します.
    • html2json.gulp が利用できます.
  2. json2html
    • html.json を html 形式に変換します.
    • 変換時に処理を追加します.
    • ストリーミング SSR の json2html.stream が利用できます
    • json2html.gulp が利用できます.
  3. json2json
    • html.json の編集が行えます.
    • 動的ノードと動的属性の内で、決定済の値があれば、静的ノードと静的属性に置き換える.
    • json2json.gulp が利用できます.
  4. filter.gulp
    • 静的ページまたは、動的ページだけ処理したい場合に便利な gulp プラグインです

4. HTML の minify

html2json, json2json ではテキストノードの最適化と空白ノードの除去を行います.

json2html では、閉じタグとクォートを省略して HTML を最小化します.

より詳しい情報は MINIFY_HTML を確認します.

5. 条件付きコメントに関する情報

html.json は条件付きコメントをサポートします.条件付きコメントに独自に割り振られた nodeType は HTMLJSON.md で確認出来ます. 条件付きコメントに関する情報は CONDITIONAL_COMMENTS にあります.

6. License

HTML.JSON is licensed under MIT license.

(C) 2024 itozyun(blog)

About

A compact and portable format that can be converted back to HTML in a lightweight way. And Tiny Streaming SSR!

Resources

Stars

Watchers

Forks