SlideBlockJS

縦長HTML文書をスライドブロック単位で扱う、依存なし単一ファイルのJSライブラリ。

使い方

各スライドを section.slide-block で囲み、ライブラリを読み込むだけ。

<section id="block1" class="slide-block">
  <h1>タイトル</h1>
  <p>本文</p>
</section>

<script src="slideblock.js"></script>

図表の例

ブロック内には自由にHTMLを書ける。

サンプルの棒グラフ(ダミーデータ)

コード例

手動初期化でオプションを変更する場合。

SlideBlockJS.init({
  container: document.body,
  snap: true,
  keyboard: true,
  toc: true
});

キーボード操作

キー動作
→ / ↓次のブロックへ
← / ↑前のブロックへ

目次

画面右に固定表示される目次から、任意のブロックへジャンプできる。目次はこのページのように自動生成される。

ある一枚の、終わりの見えないブロックについて

かつて、ひとつのページには収まりきらぬ想いを、 無理やり折り畳んで押し込めていた時代があった。 それは決して悪意あってのことではない。 ただ、ページというものには縁があり、縁の向こうには行けぬという、 ごく単純な、しかし逃れがたい掟が敷かれていたからである。

その掟のもとでは、語るべき言葉は間引かれ、 伝えたかった具体例は泣く泣く別のページへ引き離され、 文字はページの余白と交渉を重ねた末に、 次第に体を小さく折り曲げていくことを強いられた。 まるで、大きな家具を狭い部屋に運び込むために、 分解して、また組み立て直すような作業であった。

けれど、ここで少し立ち止まって考えてみたい。 そもそも「一枚に収める」という制約は、 誰のためのものであったのだろうか。 発表者のためか、聴衆のためか、 それとも、単にページという器の形状に、 内容の方が律儀に付き合ってきただけなのではないか。

もし、器の形に内容を合わせるのではなく、 内容の自然な長さに、器の方が付き合ってくれるとしたら。 そのとき、話し手はもはや、 言葉を圧縮するための技巧に頭を悩ませる必要はなくなる。 削ぎ落とすべきかどうかを迷って夜を明かすこともない。 なぜなら、器はどこまでも、静かに、 下へ、下へと伸びていってくれるのだから。

想像してみてほしい。一本の巻物を。 巻物には、ページの切れ目というものがない。 読み手はただ、手元でくるくると巻いていくだけで、 次の景色、次の話題へと移っていく。 区切りは、あるにはあるのだが、 それは壁ではなく、ただの目印のようなものにすぎない。

さて、今あなたが読んでいるこの段落もまた、 そうした巻物の一部である。 これは特別に長く書かれたブロックであり、 おそらく画面一枚には到底収まりきらないだろう。 しかし、それは何ら問題にはならない。 なぜと問われれば、答えはいつも、拍子抜けするほど単純だ。

画面に入らない分だけ、指先が、あるいは矢印キーが、 すこしだけ長く動けばよいだけのことなのである。 文字を小さくする必要もない。段落を泣く泣く削る必要もない。 伝えたいことがまだ残っているなら、 ただ書き続ければよい。そして読み手は、 ただ、下へ向かってスクロールを続ければよい。

これこそが、遠回しに、もったいぶって、 ここまで長々と述べてきたことの、 ようやくの結論というものである。 ページに収まらない内容があっても、何も恐れることはない。 ——ただ、スクロールするだけでよいのだ。

おわりに

詳細は spec.mdREADME.md を参照。