QuartoのReveal.js上でBudouXを利用できる拡張機能を作ってみた

Quarto
Reveal.js
BudouX
Author

statditto

Published

December 8, 2023

はじめに

この記事は「R言語 Advent Calendar 2023」22日目の記事です。

概要

タイトル通りですが、QuartoのReveal.js上でBudouXを利用できる拡張機能を作りました。BudouXとはなんぞや?という方もいると思うので、開発者のブログを引用します。

BudouX は、ウェブをはじめさまざまなプラットフォームで読みやすいテキスト折り返し(改行)を実現するための、軽量な分かち書き器です。オープンソース プロジェクトとして GitHub で公開されており、現時点では日本語と中国語(簡体字、繁体字)をサポートしています。2016 年に公開した Budou の後継となるものですが、Budou とは違いサードパーティの API や分かち書きライブラリに依存せずに動作します。分かち書きのための機械学習モデルを含めて 20 KB 程度に収まるため、ウェブブラウザに配信する JavaScript ファイルに同梱することも可能です。

BudouX: 読みやすい改行のための軽量な分かち書き器

要するに日本語に対応した軽量な分かち書きツールということです。スライドショーの見た目を整えるために手作業で改行を入れるのはやめよう!1ということで、めんどうなことは便利なライブラリにお願いしましょう。デモとしてBudouXを適用したスライドを作成しました。

デモ

使い方

まずは拡張機能を利用したいプロジェクトフォルダの配下で以下のコマンドを実行して、quarto-revealjs-budoux拡張機能をインストールします。

quarto add statditto/quarto-revealjs-budoux

次に、YAMLヘッダーを編集して拡張機能を読み込みます。

---
title: "Quarto-budoux Example"
format:
  revealjs
revealjs-plugins:
  - quarto-revealjs-budoux
---

これで準備は終わりです。自動でBudouXによって改行位置が整えられるようになりました。もしも適用したくないスライドがある場合(BudouXが意図通りに改行してくれないときなど)は、Class Attribute{.no-budoux}を利用します。

## 適用したくないスライド{.no-budoux}

このスライドにはBudouXが適用されません。

以上で拡張機能の使い方の説明を終わります。

おわりに

社会人になってからはRに触れる機会が減ってしまいましたが、たまにこういったコードを書くのは楽しいですね。とはいえ、拡張機能の実装はほぼ全てjsですが。

拡張機能の実装はこちらのレポジトリに置いてあります2。不具合などがあった場合はこちらから連絡をお願いします。

Footnotes

  1. 適当に改行していたら指導教員にシバかれた記憶が蘇ってきました。↩︎

  2. クソコード↩︎