概要

TEI/XMLファイルを読み込み、Miradorで画像を表示し、CETEIceanでテキストを表示するサンプルアプリを作成しました。以下のURLからお試しいただけます。

デモサイト

https://nakamura196.github.io/ceteicean-mirador/

アプリのスクリーンショット

背景

これまでにも、同様の機能を提供するアプリケーションを開発してきました。

  • Next.js を使用した実装例
  • XSLT を使用した実装例

今回は、HTMLとプレーンなJavaScriptのみを使用して実装する方法をご紹介します。

対象データ

以下の校異源氏物語テキストDBを対象とします。

https://kouigenjimonogatari.github.io/

実装方法

ソースコードは以下のリポジトリで公開しています。

https://github.com/nakamura196/ceteicean-mirador

実装のポイント

1. CETEIcean の behaviors を利用した pb タグの処理

以下のコードでは、CETEIcean の behaviors を利用して pb タグのクリック時の挙動を定義しています。

c}t).t};ae,digfp}d:ribBag:li}ci}cpp}re{pupefofobb)ehhrbftpncpn..ci};taieu(bcs(obstaofuvc:npe.otcn.tednci}ri:cblsrossxds(ofnot.ercrteptEtznci}ri=hteortaCvos(ofpsoaAsrezAgoezntzngb(=ndstprsotennoeos(o;{=>oAtepntNttnIzntsT>(ctrs)erueLedoeuodeutipIimniI)nEsrPdolmrb{dbtsdelufaoc)eiuz=u=t{Eeragcunbto=t=e=lmfceum{tueneeeneeae(me.t(elc(l`etmncEsence"I.o".[rheteluntr(ndgrdgP(in)Eert.e""eraea"stlmf.can,tettgc.{eeacrt"AsaAelg=mncree)etp-tieeteeaE)lt.zt$ctdnEatl.rror{kAot&ltee{gienip"tc&eeDmebpeba,tu=mDoetul-ugrmseocnAtaitefiezuncuttecdeNubnortum(t(e"(unutnf.me"r"(,"mct.eagentic'n}teqEcentebo#z"]i(ulettFiur'o)`o"eeEAFr-tr,n;ndrmltrapeee(ayeetagb(sI)tSnmrgm""pdaeteime)n"))"{-l.nben;");;"zectunt);;ocl.tt()ntohe();eosa(),-res",i(sAsd`tta"t(tm)e"re;itiA-ebsziu"o-t)nse)eu(;[r"ifsdaa=cm"ee$"A{)sz;"o)n)eI{d}"]`);

2. Mirador でのページ遷移処理

pb タグをクリックした際に、TEI/XML ファイルから Canvas の URI を取得し、Mirador のページ遷移を実行します。

lf}eutni}Mcfimtm)rii(i;aromrMdaniaiodrdrrogaoarodrdIToIonornrsPIs.tantaagsacnetntc(aciecneo;ac.nnessv)t.aoss{reUetr.Cida)insv{paast(c'hw(indow-1',canvasUri)

3. CETEIcean の CSS を利用

テキストのスタイルは、CETEIcean が提供する CSS を利用しています。

<linkrel="stylesheet"href="https://teic.github.io/CETEIcean/css/CETEIcean.css"

まとめ

本記事では、TEI/XML ビューアの開発手法の一例として、HTML とプレーンな JavaScript を使用した方法をご紹介しました。

今回のアプローチを参考にしつつ、Next.js などのフレームワークの活用や、ビューアを介さない XSLT の利用など、さまざまな方法を検討いただければ幸いです。