Headless CMSを使ってIIIFマニフェストファイルを作成する
概要 Headless CMSの学習のため、CMSに登録した情報からIIIFマニフェストを生成する試みを行いました。 以下がその結果です。(といっても、以下のアプリからはサーバ側の処理内容は見えないです。) https://iiif-headless-cms.vercel.app/ 本記事は上記の取り組みの備忘録です。 Contentful https://www.contentful.com/ 以下のようなiiifというContent modelを作成しました。画像データ(url, width, height)の紐付けには、フィールド「JSON object」と「Reference」が使用できそうでしたが、ここでは「Reference」を選択し、画像データの情報を管理するimageというContent modelを別途作成しました。 IIIFマニフェストの形式に変換して返却するAPIについては、Nuxt3を用いて作成しました。 https://github.com/nakamura196/iiif-headless-cms/blob/main/server/api/iiif/contentful/[id]/manifest.ts 以下のライブラリを使用することで、簡単に接続することができました。 https://www.npmjs.com/package/contentful microCMS https://microcms.io/ microCMSにおいても同様のスキーマ作成を行いました。 以下のような画像データを格納するカスタムフィールドを作成しました。 このカスタムフィールドを繰り返しありの形でiiifスキーマに追加することで、以下のように、画像に関する情報を格納できるようになりました。 スキーマをエクスポートしたデータは以下です。 { "apiFields": [ { "idValue": "ZRdeXxiWOB", "fieldId": "label", "name": "ラベル", "kind": "text", "isUnique": false }, { "fieldId": "image", "name": "画像", "kind": "repeater", "customFieldCreatedAtList": [ "2023-02-03T00:42:08.118Z" ] } ], "customFields": [ { "createdAt": "2023-02-03T00:42:08.118Z", "fieldId": "iiif_image", "name": "iiif画像に関するフィールド", "fields": [ { "idValue": "Y1B3C_tC1c", "fieldId": "url", "name": "URL", "kind": "text" }, { "idValue": "kS9afBRRHr", "fieldId": "width", "name": "幅", "kind": "number" }, { "idValue": "SpLhBEapVh", "fieldId": "height", "name": "高さ", "kind": "number" } ], "position": [ [ "Y1B3C_tC1c", "kS9afBRRHr", "SpLhBEapVh" ] ], "updatedAt": "2023-02-03T00:45:50.426Z", "viewerGroup": "H7Y" } ] } IIIFマニフェストの形式に変換する処理は以下です。 ...



















