{
  "path": "/3mey5il42rk2t",
  "site": "at://did:plc:urj4pkche2yvpr5ilj4ykteu/site.standard.publication/3mbpveyjbq22q",
  "tags": [],
  "$type": "site.standard.document",
  "title": "navigation の lexicon",
  "content": {
    "$type": "pub.leaflet.content",
    "pages": [
      {
        "id": "019c6698-cc34-7cc4-b304-20b59a267faf",
        "$type": "pub.leaflet.pages.linearDocument",
        "blocks": [
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": "従来の一般的なウェブサイト、たとえば、example.jp というドメインのウェブサイトだとして、"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.unorderedList",
              "children": [
                {
                  "$type": "pub.leaflet.blocks.unorderedList#listItem",
                  "content": {
                    "$type": "pub.leaflet.blocks.text",
                    "facets": [
                      {
                        "index": {
                          "byteEnd": 19,
                          "byteStart": 0
                        },
                        "features": [
                          {
                            "uri": "https://example.jp/",
                            "$type": "pub.leaflet.richtext.facet#link"
                          }
                        ]
                      }
                    ],
                    "plaintext": "https://example.jp/ トップページ"
                  },
                  "children": []
                },
                {
                  "$type": "pub.leaflet.blocks.unorderedList#listItem",
                  "content": {
                    "$type": "pub.leaflet.blocks.text",
                    "facets": [
                      {
                        "index": {
                          "byteEnd": 24,
                          "byteStart": 0
                        },
                        "features": [
                          {
                            "uri": "https://example.jp/about",
                            "$type": "pub.leaflet.richtext.facet#link"
                          }
                        ]
                      }
                    ],
                    "plaintext": "https://example.jp/about ◯◯について"
                  },
                  "children": []
                },
                {
                  "$type": "pub.leaflet.blocks.unorderedList#listItem",
                  "content": {
                    "$type": "pub.leaflet.blocks.text",
                    "facets": [
                      {
                        "index": {
                          "byteEnd": 23,
                          "byteStart": 0
                        },
                        "features": [
                          {
                            "uri": "https://example.jp/news",
                            "$type": "pub.leaflet.richtext.facet#link"
                          }
                        ]
                      }
                    ],
                    "plaintext": "https://example.jp/news 新着情報"
                  },
                  "children": []
                },
                {
                  "$type": "pub.leaflet.blocks.unorderedList#listItem",
                  "content": {
                    "$type": "pub.leaflet.blocks.text",
                    "facets": [
                      {
                        "index": {
                          "byteEnd": 27,
                          "byteStart": 0
                        },
                        "features": [
                          {
                            "uri": "https://example.jp/articles",
                            "$type": "pub.leaflet.richtext.facet#link"
                          }
                        ]
                      }
                    ],
                    "plaintext": "https://example.jp/articles なんらかの記事集"
                  },
                  "children": []
                },
                {
                  "$type": "pub.leaflet.blocks.unorderedList#listItem",
                  "content": {
                    "$type": "pub.leaflet.blocks.text",
                    "facets": [
                      {
                        "index": {
                          "byteEnd": 23,
                          "byteStart": 0
                        },
                        "features": [
                          {
                            "uri": "https://example.jp/link",
                            "$type": "pub.leaflet.richtext.facet#link"
                          }
                        ]
                      }
                    ],
                    "plaintext": "https://example.jp/link リンク集"
                  },
                  "children": []
                }
              ]
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": "みたいな構造となって、各ページの上のほうに"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.code",
              "language": "plaintext",
              "plaintext": "[TOP] [ABOUT] [NEWS] [ARTICLES] [LINK]"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": "みたいなナビゲーションメニューだったり、ハンバーガーメニューが表示されたりする。"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": "さて、Atmosphere 上でウェブサイトを作りたいとする。それぞれのページについてはPDSに格納します。"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": "トップページはシンプルならペライチのページなので site.standard.document で表現できる。「◯◯について」についても同様。"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": "新着情報は Bluesky の投稿をそのまま流用してしまおう。かつて、Twitterのタイムラインを表示するウィジェットをトップページにはっつけて新着情報をCMS使って更新する代わりにしているところが多かったのを記憶していることでしょう。"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": "「なんらかの記事集」は site.standard.publication と site.standard.document で。"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": "リンク集は blue.linkat.board を使いましょう。"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": "そういったことを単純なJSONで表現すると、こうなります。"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.code",
              "language": "json",
              "plaintext": "[\n  {\n\t  \"label\":\"TOP\",\n\t  \"url\": \"https://example.jp\"\n\t  \"aturi\": \"at://<did>/site.standard.document/abcde123\"\n  },\n  {\n\t  \"label\": \"ABOUT\",\n\t  \"url\": \"https://example-jp.leaflet.pub/fghij456\"\n\t  \"aturi\": \"at://<did>/site.standard.document/fghij456\"\n  },\n  {\n\t  \"label\": \"NEWS\",\n\t  \"url\": \"https://bsky.app/profile/example.jp\",\n\t  \"aturi\": \"at://<did>/app.bsky.feed.post\"\n  },\n  {\n\t  \"label\": \"ARTICLES\",\n\t  \"url\": \"https://example-jp.leaflet.pub\",\n\t  \"aturi\": \"at://<did>/site.standard.publication\"\n  },\n  {\n      \"label\": \"LINK\",\n      \"url:\" \"https://linkat.blue/example.jp\",\n      \"aturi\": \"at://<did>/blue.linkat.board\"\n  }\n]"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": "これを良さげなlexiconの形式にしてPDSに格納しておきます。"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": "そして、ちょっとしたウェブアプリを作って、このナビゲーションデータをPDSから引っ張ってきて、https://example.jp/ というドメインで見れるようにするのができないかな。"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": "もし、各AppView (フロントエンド) の協力があれば、このナビゲーションデータをPDSから引っ張り出してきて、良さげなUIで各ページの上部とかに表示してくれると嬉しいかもしれない。"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": "なんてことをぼんやり考えています。"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": "仕組みとしては大昔にあったOLEとかOpenDocみたいな複合ドキュメントのAtmosphere版なのだけど、こういうのがあれば、SNSやブログが登場する以前、みんなが個人ホームページを作っていた時代が戻ってこないかな。"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 19,
                    "byteStart": 0
                  },
                  "features": [
                    {
                      "uri": "https://blento.app/",
                      "$type": "pub.leaflet.richtext.facet#link"
                    }
                  ]
                }
              ],
              "plaintext": "https://blento.app/ も近い感じ。"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.horizontalRule"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.header",
              "level": 3,
              "facets": [],
              "plaintext": "追記"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": "UI側としてはブラウザのツールバーとして実装してみるのが早い気がしてきた。"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": "このlexiconのデータを持つユーザーのAtomosphereアプリのサイトにアクセスすると、グローバルナビゲーションが表示される、みたいな。"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": ""
            }
          }
        ]
      }
    ]
  },
  "description": "website on atproto",
  "publishedAt": "2026-02-16T13:23:36.205Z"
}