仏典のTEI/XMLデータをHTMLに変換して読みやすくするスクリプトを作りました

SAT大蔵経データベース研究会で公開している仏典(勝鬘経義疏)のTEI/XMLデータをHTMLに変換して読みやすくするスクリプトを作りました。例によって、Google Colab上で動かせるようにしております。

それから、見本ということで、変換後のHTML版は、とりあえず以下のURLにて閲覧できるようにしています。

https://www.dhii.jp/dh/tei/2185/2185.html

まだ完成版からはほど遠いですが、これくらいやっておけば、TEI/XMLファイルのマークアップをする人達には便利なのではないか…というようなものを作ってみたところです。TEI/XMLのデータを作成することによって何ができるのか・何がしたいのか、ということも、この変換結果をみていただくとなんとなくつかんでいただけるかもしれないと思っております。

サーバを立てなくてもローカルでファイルをブラウザで読み込むだけで閲覧できるように、javascriptファイルなどをダウンロードして、各章のファイルなども一緒にまとめて zip ファイルを作成するようになっています。

変換をかけている主な項目としては、

  1. 章のリストと本文を上下にわけて、頁上部の章タイトルをクリックするとページ下部に本文が表示されるように。

  2. <div>の章単位で個々のHTMLにファイルを分割(⇒大きすぎるファイルは表示の際にブラウザが固まってしまうため)

  3. Double-endpoint attachment method の校異情報に対応して本文には黄色いマーカー+脚注記号を付与、校異情報はポップアップダイアログに表示

  4. 改行・返り点・脚注記号はそれぞれ小さく表示した上で任意に非表示化できるようにチェックボックスを用意

  5. 引用に関しては、@source属性を持っているものは外部リンクを埋め込み

  6. <back>にリストされている固有表現をとりだして右ウインドウに表示

といった感じです。

ただ、今回は、変換にはPythonを使っていますが、HTML上で動的な表示を行うために、変換結果の中にJavascriptが含まれるような書き方をしています。そのため、PythonとJavascriptの文法が完全に混在しています。両者をうまく分割するというのもあり得るのですが、とりあえず1つのスクリプトで済ませてしまいたいので、ここでは両者を混在させています。両方をある程度知らないと、スクリプトをみてもわけがわからないと思いますので、その点、ご注意ください。

それから、splitpinesを利用するためにvue.jsを使ったので、ついでに、Javascriptが必要な事柄については、基本的にvue.jsで書いています。

この後、さらにこのスクリプトをグレードアップしていくというのと、検索させるために検索用データを抽出するといったことにも取り組んでいく予定です。ちょっと気の長い話ですが、引き続きお付き合いいただけますと幸いです。

なお、このスクリプトと見本は、『人文学のためのテキストデータ構築入門』のフォローアップサイトでもリストしておりますので、他の入門的なスクリプトもあわせてご覧ください。