Mirador3プラグイン開発: Text Overlay pluginで縦書き対応を行う
概要 Text Overlay plugin for Mirador 3は、OCRまたはトランスクリプションに基づいて選択可能なテキストオーバーレイを表示するMirador3のプラグインです。 https://github.com/dbmdz/mirador-textoverlay 以下でデモページが公開されています。 https://mirador-textoverlay.netlify.app/ 一方、日本語などの縦書きテキストを表示してみると、以下のようにうまく表示ができませんでした。 そこで、上記のリポジトリをフォークして、縦書きテキストも表示できるようにしました。以下のリポジトリでソースコードを公開しています。(いずれプルリクエストも検討したいと思います。) https://github.com/nakamura196/mirador-textoverlay 結果、以下のように縦書きテキストも表示できるようになりました。 デモページは以下です。 https://nakamura196.github.io/mirador-integration-textoverlay/?manifest=https://nakamura196.github.io/static/iiif/6722fa34-2fff-11ee-a029-0242ac1c000c/manifest_o.json&annotationState=1&canvasIndex=3 以下、本モジュール開発に関連する事項をメモします。 マニフェストファイルの構造 本モジュールでは、以下の要件を満たすIIIFマニフェストが必要とのことでした。 https://github.com/dbmdz/mirador-textoverlay#requirements-for-supported-iiif-manifests いくつかのオプションがありますが、以下のwellcome collectionのマニフェストを参考にしました。 https://iiif.wellcomecollection.org/presentation/v2/b18035723 Canvas毎にseeAlsoでALTO XMLファイルへのURLが指定されています。 { } { } { } { } { } " " " " " " } " " " " , , , } " } " " " @ @ f h w s ] " ] " @ @ l t " " " " " " " " , s , h w i i t o e i e " " " " " " , o , w i t a h " " " w h w h w h w h } e " " " " e i m { d y r i d r @ @ p p w h } t { } i d y b u @ @ s i e i e i e i e e @ p f l i d a " p m g t v c i r r i e h t " p e m i t e " " " " " " " d i d i d i d i ] A i r o a g t g " " " " : e a h h i o d o o d i } " e " " " h : e l b d y r @ @ p p w h s t g t g t g t g l d o r b h h e @ @ m r " t t " c n " f t t g , o r @ @ l i " " n " p v c i r r i e i h h h h h h h h s " f m e t " s i t o e " : " " : e t : i o h h n C i t a n " : : a : e i o d o o d i z " t " t " t " t o : i a l " : " d y t s h : : " e l c " t " o d y b " h i " c n " f t t g e : " : " : " : " " l t " : : " p i o t " 7 : x " e o : " : n " p e : t " " l " : e t : i o h h s : : : : : " e " : 2 : e v u t d " 1 3 t h " l : t : e l t s - " h " e l c " t " 7 1 2 7 h " : 3 4 [ " a r p c i 0 2 { " t : " 2 " e " " " p c " : t " : x " e o : " : 2 1 4 2 8 4 3 1 { t : " 3 1 " : t c s t m 2 , : t : 4 3 h n " : : " s : , t d t h " l : , 0 3 0 6 0 2 0 t " M 7 1 h i e : y a 4 p " 1 3 t t h : C { p c { " t : " 7 [ 0 , 0 , 0 , 2 p " t E 2 , t " o " / p g , " s h " 1 7 t " t " " / a s t : t : 3 1 4 s h e T , t o n : / e e h : t h , 2 p : t s T / n : y p " 2 0 : t x S p a " i s / t / t t s p c e i v / p " s h " , 2 / t t - s : : { i : j t / p t : [ s : x i a / e h : t h 4 / p / A : A i I p p i : p / : A t i s i s t / t t , a : x L / n " f m e : i / : / / n f " i : t / p t p / m T / n s . a g / i / / i / n o . , i I p i : p i l O i o c w g " / f i / i i o f w f m : i / : . w " i t : e e , i . i i i i t e . a / i / / w w , X i a p l " i w i i f i a p l w g / f i / e w M f t a l , i e f i . f t a l e e i . i i l . L . i i c f l . f w . i g c l " i w i i l l " w o n o . l i . e w o e o l , i e f i c o e n t m i c o i l e n m c f l . f o c l " i e o / o l l L e o . l i . m . l , n c m a / c l i - c m i c o i e g c g o a e p a o c s " o e o / o c o o " l p c i p m o t l c m a / o v m , l i / i e m " l o a e p a l / e e l i / c e , e l p c i p l s c c i l m i o c c l i / i e t o t m e a m l o t e l i / c a l i a c g a l l i c i l m i t n l o g t e g e l o t m e a m i d e n e i e c e n i a c g a o a c . / 2 " t c . o g t e g n r t o 2 n , i t o n e i e . d i r / . l o i r . / 2 " o s o g c o e n o g o 2 n , r / n / o r v . n / r / . l g a . i n g e o . p g c o e / l o m t / l r o r / o r v t t r a e i 1 g r e t n g e e o g g x m . / g s h t / l x / / e t a j p / e u e t 0 t p / . g s r a n m x h . / 3 r b j e e n t b t u j a / e 1 s n s n a s . m s l a s 8 b " e o t / j b o t l e 0 n 1 , n t i b s s n o t n 3 " 8 t a o 1 o / " / o t 5 , 0 a t n 8 n b , b . a 7 3 t i / 0 " 1 1 x t 2 5 i o b 3 , 8 8 s i 3 7 o n 1 5 0 0 d o _ 2 n s 8 7 3 3 " n 0 3 / / 0 2 5 5 , / 0 _ b v 3 3 7 7 b 0 0 1 2 5 _ 2 2 1 3 0 8 / 7 0 3 3 8 . 0 0 b 2 0 _ / 0 J 3 3 1 3 0 0 b 3 P . 5 8 / 3 0 1 5 2 J 7 0 c . 0 8 7 / P 2 3 a J 3 0 2 f 2 3 5 n P . 3 3 u " / 7 v 2 J 5 / l , c 2 a / P 7 c l a 3 s f 2 2 a / n / e u " 3 n 7 v b s l , _ v 3 a 1 / l 0 a 2 s 8 b / 0 s , e 0 1 7 0 e 1 s 3 8 2 3 s 0 / 5 0 , . / 2 b 7 3 1 J b 4 1 2 5 0 P 1 / 8 3 7 0 2 8 0 0 _ 2 / " 0 / 3 0 3 0 , 3 d 5 0 _ / 5 e 7 0 0 d 7 f 2 3 0 e 2 a 3 . 0 f 3 u _ J 3 a _ l 0 P . u 0 t 0 2 J l 0 . 0 / P t 0 j 3 l 2 . 3 p . i " j . g J n , p J " P e g P , 2 " " 2 " , , / p a i n t i n g / a n n o " , まとめ 開発したプラグインについて、xmlファイルのロードが完了しない時があるなど、引き続き改善が必要ですが、Mirador3のプラグイン開発やIIIF、OCR結果の活用にあたり、参考になりましたら幸いです。 ...