短歌表示

(実行例とダウンロードは ↓ 下の方 ↓ にあります)


1.概要

短歌を表示するHTMLです。

縦書き表示と横書き表示を選択できます。

また、1ページに表示する短歌の数を選択できます。


短歌データは、HTMLファイルの中に直接埋め込む必要があります。

(現状、外部のファイルを読み込むことはできません)


2.使い方

tankashow.html を ブラウザで開くと起動します。


表示方向のコンボボックスでは、縦書き表示と横書き表示を選択できます。

「縦」か「縦2」を選択すると、縦書き表示で短歌を表示します。

また、「横」を選択すると、横書き表示で短歌を表示します。

「縦」と「縦2」では、短歌を並べる向きが変わります。

「縦」を選択した場合には、右から左に短歌を並べます。

「縦2」を選択した場合には、左から右に短歌を並べます。

(現状、「上から下に短歌を並べつつ、横に複数列表示する」ことはできません)


また、表示数のコンボボックスでは、1ページに表示する短歌の数を選択できます。

数値(1-100)を選択すると、選択した数だけ短歌を1ページに表示します。

また、「全部」を選択すると、すべての短歌を1ページに表示します。


表示数の選択により複数ページ表示になった場合には、ページ選択のボタン等が

表示されます。これによってページ間を移動することができます。

またこのとき、キーボードの[z][x]キーまたは[<][>]キーによっても

ページ間を移動することができます。


3.短歌データの編集

短歌データを編集する場合、

tankashow.html を メモ帳等で開いて、

<script type="text/plain">

という行の下のテキストを編集します。

改行1個が、短歌の改行になります。

改行2個連続が、短歌1首の終了になります。

(¥記号でも改行します。もし¥記号自身を表示したい場合には、#¥と記述します)

</script> という行でデータは終わりになります。

(それ以降の行は表示用のプログラムになります)


また、<title>短歌</title>

という行の<title>と</title>の間の文字を変更すると、

タイトル表示を変更できます。


4.コマンド

短歌データの部分にコマンドを記述して、見た目をカスタマイズすることができます。

コマンドは、#( で始まり ) で終わります。

行の途中にコマンドを挿入する場合には、#( で始まり )$ で終わるようにします。

また、##と書くと、行末までコメント扱いになり、その部分は無視されます。

#を単に文字として表示したい場合には、\# と記述してください。

使用可能なコマンドを以下に示します。

(コマンドについては、アルファベット、数字、各種記号等はすべて半角です)


#(back-color 色コード)

背景色を設定します。

色コードは #ffffff のように指定します(#に続けてRGB各8ビット、合計24ビットの16進数で色を指定)。


#(fore-color 色コード)

文字色を設定します。

色コードは #ffffff のように指定します(#に続けてRGB各8ビット、合計24ビットの16進数で色を指定)。


#(back-image 画像のURL)

背景画像を設定します。


#(back-image-size サイズ設定)

背景画像のサイズを設定します。

サイズ設定には、contain, cover, auto, 100px 等を指定します。

contain を指定すると、画像が背景に収まるように拡大縮小します。

cover を指定すると、画像が背景を覆い隠すように拡大縮小します。

auto を指定すると、画像のサイズそのままで表示します。


#(back-image-repeat 繰り返し設定)

背景画像の繰り返し表示を設定します。

繰り返し設定には、repeat, repeat-x, repeat-y, no-repeat のいずれかを指定します。

repeat を指定すると、画像を縦横に繰り返して表示します。

repeat-x を指定すると、画像を横方向にのみ繰り返して表示します。

repeat-y を指定すると、画像を縦方向にのみ繰り返して表示します。

no-repeat を指定すると、画像を繰り返さずに表示します。


#(title-text 'タイトル文字列')

タイトル文字列を設定します。


#(title-font-color 色コード)

タイトル文字列のフォントの色を設定します。

色コードは #ffffff のように指定します(#に続けてRGB各8ビット、合計24ビットの16進数で色を指定)。


#(title-font-family 'フォント名')

タイトル文字列のフォントを設定します。

フォント名には 'MS Mincho' のようにフォントの名前を指定します。


#(title-font-size サイズ)

タイトル文字列のフォントのサイズを設定します。

サイズは 32px のように指定します。


#(title-font-weight 太さ)

タイトル文字列のフォントの太さを設定します。

太さは bold または normal のように指定します。


#(title-shadow-color 色コード)

タイトル文字列の影の色を設定します。

色コードは #ffffff のように指定します(#に続けてRGB各8ビット、合計24ビットの16進数で色を指定)。


#(title-margin-top サイズ)

タイトル文字列の上側の余白のサイズを設定します。

サイズは 10px のように指定します。


#(title-margin-bottom サイズ)

タイトル文字列の下側の余白のサイズを設定します。

サイズは 10px のように指定します。


#(setting-font-color 色コード)

設定用文字列(「表示方向」「表示数」等)のフォントの色を設定します。

色コードは #ffffff のように指定します(#に続けてRGB各8ビット、合計24ビットの16進数で色を指定)。


#(setting-font-family 'フォント名')

設定用文字列(「表示方向」「表示数」等)のフォントを設定します。

フォント名には 'MS Mincho' のようにフォントの名前を指定します。


#(setting-font-size サイズ)

設定用文字列(「表示方向」「表示数」等)のフォントのサイズを設定します。

サイズは 32px のように指定します。


#(setting-font-weight 太さ)

設定用文字列(「表示方向」「表示数」等)のフォントの太さを設定します。

太さは bold または normal のように指定します。


#(setting-shadow-color 色コード)

設定用文字列(「表示方向」「表示数」等)の影の色を設定します。

色コードは #ffffff のように指定します(#に続けてRGB各8ビット、合計24ビットの16進数で色を指定)。


#(setting-display 表示設定)

設定用文字列(「表示方向」「表示数」等)の表示/非表示を設定します。

表示設定に none を指定すると非表示になります(none 以外を指定した場合には表示します)。


#(init-direction 表示モード)

初期表示の 表示方向を設定します。

表示モードには 0,1,2,3 のいずれかの数値を指定します。

0を指定すると、縦書き表示(右→左に並べる)になります(v1.29以前とは逆向きになりました)。

1を指定すると、横書き表示(上→下に並べる)になります。

2を指定すると、縦書き表示2(左→右に並べる)になります(v1.29以前とは逆向きになりました)。


#(init-jump ページ番号 表示数)

初期表示の ページ番号と表示数を設定します。

ページ番号は、先頭ページが1になります。

表示数に0を指定した場合、全データを表示します。


#(box-size 幅 高さ)

短歌の枠のサイズを設定します。

幅と高さは 250px 250px のように指定します。


#(box-back-color 色コード)

短歌の枠の背景色を設定します。

色コードは #ffffff のように指定します(#に続けてRGB各8ビット、合計24ビットの16進数で色を指定)。


#(box-back-color2 赤 緑 青 透明度)

短歌の枠の背景色を透明度つきで設定します。

赤 緑 青にはそれぞれ 0-255 までの整数を指定します。

透明度には 0-1 までの小数値を指定します。値が小さいほど透明になります。

(※)box-back-color2の背景色は、box-back-colorとbox-back-imageの表示の

上にかぶさる形で表示されます。

(※)本設定を解除する場合には、引数を省略して #(box-back-color2) と記述してください。

(※)ブラウザがCSSのrgba()に対応していない場合には、不透明になります。


#(box-border-color 色コード)

短歌の枠線の色を設定します。

色コードは #ffffff のように指定します(#に続けてRGB各8ビット、合計24ビットの16進数で色を指定)。


#(box-border-style スタイル)

短歌の枠線のスタイルを設定します。

スタイルは solid または dashed のように指定します。


#(box-border-width 幅)

短歌の枠線の幅を設定します。

幅は 1px のように指定します。


#(box-margin サイズ)

短歌の枠の外側の余白のサイズを設定します。

サイズは 10px のように指定します。

また、サイズには、以下の例のように複数の値を指定することもできます。

例1.

#(box-margin 10px 5px)

上下の余白を10pxに 左右の余白を5pxに 設定します。

例2.

#(box-margin 10px 5px 20px 15px)

上側の余白を10pxに 右側の余白を5pxに 下側の余白を20pxに 左側の余白を15pxに 設定します。


#(box-back-image 画像のURL)

短歌の枠の背景画像を設定します。

横書き表示の場合には無効です(ただし#(write-yoko 1)で一時的に横書き表示にした場合には有効)。

(※)本設定を解除する場合には、引数を省略して #(box-back-image) と記述してください。


#(box-back-image-size サイズ設定)

短歌の枠の背景画像のサイズを設定します。

サイズ設定には、contain, cover, auto, 100px 等を指定します。

contain を指定すると、画像が背景に収まるように拡大縮小します。

cover を指定すると、画像が背景を覆い隠すように拡大縮小します。

auto を指定すると、画像のサイズそのままで表示します。


#(box-back-image-repeat 繰り返し設定)

短歌の枠の背景画像の繰り返し表示を設定します。

繰り返し設定には、repeat, repeat-x, repeat-y, no-repeat のいずれかを指定します。

repeat を指定すると、画像を縦横に繰り返して表示します。

repeat-x を指定すると、画像を横方向にのみ繰り返して表示します。

repeat-y を指定すると、画像を縦方向にのみ繰り返して表示します。

no-repeat を指定すると、画像を繰り返さずに表示します。


#(box-fore-image 画像のURL)

短歌の枠の前景画像を設定します。

本命令で画像を表示すると、短歌の文字は表示されません。

横書き表示の場合には無効です(ただし#(write-yoko 1)で一時的に横書き表示にした場合には有効)。

画像は短歌の枠のサイズに合わせて拡大縮小されます。

画像はマウスの右クリック操作で保存等が行えます(ブラウザの機能によります)。


#(box-display 表示設定)

短歌の表示/非表示を設定します。(短歌の枠ごと消去します)

表示設定に none を指定すると非表示になります(none 以外を指定した場合には表示します)。


#(box-line-break 1)

短歌の枠の改行を行います。(次の短歌の枠を横に並べずに、下に並べます)


#(font-color 色コード)

短歌のフォントの色を設定します。

色コードは #ffffff のように指定します(#に続けてRGB各8ビット、合計24ビットの16進数で色を指定)。


#(font-color-hover 色コード)

短歌の枠内にマウスを移動したときの 短歌のフォントの色を設定します。

色コードは #ffffff のように指定します(#に続けてRGB各8ビット、合計24ビットの16進数で色を指定)。


#(font-family 'フォント名')

短歌のフォントを設定します。

フォント名には 'MS Mincho' のようにフォントの名前を指定します。


#(font-size サイズ)

短歌のフォントのサイズを設定します。

サイズは 20px のように指定します。


#(font-weight 太さ)

短歌のフォントの太さを設定します。

太さは bold または normal のように指定します。


#(font-orientation 方向設定)

短歌の半角フォントの表示方向を設定します。

方向設定には、フォントを縦向きで表示する場合に upright を指定します。

(デフォルトでは、半角の英数字や記号等は、フォントが横向きで表示されます)

(※)ブラウザがCSSの text-orientation に対応していない場合には、本設定は無効です。


#(height 文字数)

短歌の表示上の高さ(=1行の文字数)を設定します。

文字数は 10em のように指定します。

(※)#(write-yoko 1)で一時的に横書き表示にした場合には、

横書き表示の表示上の高さ(例えば3emであれば3行分の高さ)の設定になります。


#(line-width 文字数)

このコマンドは#(height 文字数)と同じ動作をします。

互換性のために残されています。


#(line-height 文字数)

短歌の行間の文字数を設定します。

文字数は 1.5em のように指定します。


#(padding-left サイズ)

短歌の左側の余白のサイズを設定します。

サイズは 10px のように指定します。


#(padding-right サイズ)

短歌の右側の余白のサイズを設定します。

サイズは 10px のように指定します。


#(padding-top サイズ)

短歌の上側の余白のサイズを設定します。

サイズは 10px のように指定します。


#(shadow-color 色コード)

短歌の文字列の影の色を設定します。

色コードは #ffffff のように指定します(#に続けてRGB各8ビット、合計24ビットの16進数で色を指定)。


#(write-yoko 1)

縦書き表示時に 短歌を一時的に横書き表示に設定します。

この場合、余白やフォントは縦書きの設定がそのまま使われます。

( #(y- で始まる横書き用のコマンドの設定は使われません)

縦書き表示に戻す場合には、引数を省略して #(write-yoko) と記述します。


#(y-box-margin サイズ)

横書き表示時の 短歌の枠の外側の余白のサイズを設定します。

サイズは 10px のように指定します。

また、サイズには、以下の例のように複数の値を指定することもできます。

例1.

#(y-box-margin 10px 5px)

上下の余白を10pxに 左右の余白を5pxに 設定します。

例2.

#(y-box-margin 10px 5px 20px 15px)

上側の余白を10pxに 右側の余白を5pxに 下側の余白を20pxに 左側の余白を15pxに 設定します。


#(y-font-size サイズ)

横書き表示時の 短歌のフォントのサイズを設定します。

サイズは 16px のように指定します。


#(y-line-height 文字数)

横書き表示時の 短歌の行間の文字数を設定します。

文字数は 1.5em のように指定します。


#(y-padding サイズ)

横書き表示時の 短歌の四方の余白のサイズを設定します。

サイズは 10px のように指定します。

また、サイズには、以下の例のように複数の値を指定することもできます。

例1.

#(y-padding 10px 5px)

上下の余白を10pxに 左右の余白を5pxに 設定します。

例2.

#(y-padding 10px 5px 20px 15px)

上側の余白を10pxに 右側の余白を5pxに 下側の余白を20pxに 左側の余白を15pxに 設定します。


#(jump ページ番号 表示数)

短歌をクリックした場合にジャンプする ページ番号と表示数を設定します。

ページ番号は、先頭ページが1になります。

表示数に0を指定した場合、全データを表示します。


#(key-jump ページ番号 表示数 キーダウンコード1 キーダウンコード2 キーダウンコード3)

キー入力時にジャンプする ページ番号と表示数を設定します。

ページ番号は、先頭ページが1になります。

表示数に0を指定した場合、全データを表示します。

キーは、キーダウンコードにより最大3個まで指定可能です。

(いずれかのキーを押した場合にジャンプします)

キーダウンコード2, 3は省略可能です。

キーダウンコードは、キーごとの数値がブラウザによって決まっています。

例えば以下のページを参照ください。

http://www.programming-magic.com/file/20080205232140/keycode_table.html

(※)本コマンドは記述したページでのみ有効です。

(※)本コマンドは1行に1個だけ記述してください。


#(global-key-jump ページ番号 表示数 キーダウンコード1 キーダウンコード2 キーダウンコード3)

本コマンドはkey-jumpと同様の動作を行います。

ただし、本コマンドの設定は、全てのページで有効になります。

引数はkey-jumpと同様です。

(※)本コマンドは1行に1個だけ記述してください。


#(key-and-jump ページ番号 表示数 キーダウンコード1 キーダウンコード2 キーダウンコード3)

jumpとkey-jumpの両方の機能を実行するコマンドです。

引数はkey-jumpと同様です。

(※)本コマンドは1行に1個だけ記述してください。


#(ruby 文字 ルビ)$

文字にルビを振って表示します。

(※)行の途中に本コマンドを挿入する場合には、#( で始まり )$ で終わるようにしてください。


#(preload-image 画像のURL)

先読みしておく画像を設定します。

(※)本コマンドは1行に1個だけ記述してください。


#(keyboard-disabled 1)

キーボードによるページ移動([z][x]および[<][>])を無効にします。

(※)key-jumpで設定したキーは無効になりません。


#(print-title-margin-top サイズ)

印刷時のタイトル文字列の上側の余白の 追加サイズを設定します。

(印刷時にtitle-margin-topの設定にプラスされます)

サイズは 10px のように指定します。


#(print-title-margin-bottom サイズ)

印刷時のタイトル文字列の下側の余白の 追加サイズを設定します。

(印刷時にtitle-margin-bottomの設定にプラスされます)

サイズは 10px のように指定します。


#(print-page-break 改ページ設定)

印刷時の改ページを設定します。

改ページ設定には、改ページを行う短歌の番号を指定します。

短歌の番号は、先頭が1になります。

また、番号に+を付けると、その個数ごとに改ページします。

また、改ページ設定には、以下の例のように複数の値を指定することもできます。

(※)本コマンドは表示数の選択で「全部」を選択したときのみ有効です。

(※)本コマンドはデータ全体で1個だけ記述してください。

例1.

#(print-page-break +6)

6個ごとに改ページします。

例2.

#(print-page-break 4 10 16)

4,10,16番目の短歌データ(の直後)で改ページします。

例3.

#(print-page-break 4 +6)

4番目の短歌データで改ページし、以後6個ごとに改ページします。

例4.

#(print-page-break 4 +6 100)

4番目の短歌データで改ページし、以後6個ごとに100番目まで改ページします。

例5.

#(print-page-break 4 +6 +8)

4番目の短歌データで改ページし、続いて6個目で改ページし、以後8個ごとに改ページします。


#(print-page-margin-top サイズ)

印刷時の改ページの次のページの 上側の余白のサイズを設定します。

サイズは 15mm のように指定します。

(※)本コマンドは表示数の選択で「全部」を選択したときのみ有効です。

(※)本コマンドはprint-page-breakで改ページしたときのみ有効です。


#(print-last-margin サイズ)

印刷時の最終ページの 下側の余白のサイズを設定します。

サイズは 15mm のように指定します。

(Google Chromeで最終ページの背景画像の印刷が途切れるため追加)


#(y-print-page-break 改ページ設定)

#(y-print-page-margin-top サイズ)

#(y-print-last-margin サイズ)

横書き表示時の print-page-break, print-page-margin-top,

print-last-margin の設定を行うコマンドです。


5.環境

OS : Windows 8.1 (64bit)

ブラウザ : Chrome v67

でのみ動作確認。


6.履歴

2013-6-17 v1.00 (初版)

2013-6-18 v1.01 一部書き直し

2013-6-18 v1.02 CSS一部変更

2013-6-18 v1.03 CSS一部変更

2013-6-19 v1.04 一部書き直し

2013-6-19 v1.05 一部書き直し

2013-6-22 v1.06 一部修正([z][x]または[,][.]でページ移動)

2013-6-23 v1.07 一部修正(表示調整等)

2013-6-24 v1.08 一部修正(IE10で縦書き表示ずれの対策(仮))

2013-6-26 v1.09 一部書き直し

2013-7-31 v1.10 コマンド対応

2013-7-31 v1.11 コマンド追加(title-margin-top,title-margin-bottom)

2013-8-1 v1.12 一部書き直し

2013-8-11 v1.13 一部書き直し

2013-8-21 v1.14 コマンド追加(setting-display,init-direction,

init-jump,font-color-hover,box-display,font-orientation,

padding-left,write-yoko,jump,ruby)

2013-8-25 v1.15 コマンド追加(padding-right,height,box-line-break)

2013-8-25 v1.16 コマンド追加(preload-image)

2013-8-26 v1.17 コマンド追加(keyboard-disabled)

2013-8-30 v1.18 一部修正(Tankashow名前空間を導入)

コマンド追加(key-jump)

2013-8-30 v1.19 一部修正(key-jumpの引数変更)

コマンド追加(key-and-jump)

2013-8-31 v1.20 一部書き直し

2013-9-2 v1.21 コマンド追加(back-image-size,back-image-repeat)

2013-9-3 v1.22 コマンド追加(setting-font-family,setting-font-size,setting-font-weight)

2013-9-6 v1.23 一部書き直し

2013-9-8 v1.24 ページ選択のコンボボックスを追加

2013-9-10 v1.25 表示方向に縦3を追加

コマンド追加(box-back-image-size,box-back-image-repeat,box-fore-image)

2013-9-10 v1.26 一部書き直し

2013-9-11 v1.27 表示方向の縦3を削除(IE10で表示ずれるため)

2013-9-12 v1.28 コマンド追加(print-height)

2013-9-12 v1.29 コマンド追加(print-title-margin-top,print-title-margin-bottom)

2013-9-14 v1.30 表示方向の縦と縦2の意味を交換

コマンド削除(print-height)

コマンド追加(print-page-break,print-page-margin-top,print-last-margin)

2013-9-15 v1.31 コマンド追加(y-print-page-break,y-print-page-margin-top,y-print-last-margin)

コマンド変更(box-margin,y-box-margin,y-paddingの複数引数対応)

2013-9-25 v1.32 短歌データ中の¥記号で改行する機能を追加

2013-9-30 v1.33 コマンド追加(global-key-jump)

2013-10-13 v1.34 一部書き直し

2013-11-26 v1.35 フォントサイズ等のデフォルト設定見直し

2013-11-28 v1.36 色設定一部見直し

2013-12-1 v1.37 フォントサイズのデフォルト設定もれ修正

2014-1-4 v1.38 「¥#」→「#」の変換追加

2014-1-21 v1.39 一部書き直し

2014-2-1 v1.40 一部修正(全角の「¥#」は変換しない)

2014-2-8 v1.41 一部書き直し

2014-2-18 v1.42 一部修正(ブラウザ判定処理修正)

2015-1-20 v1.43 一部修正(エラーチェック追加等)

2016-8-20 v1.44 一部修正(縦書き表示のセンタリング処理見直し等)

2016-8-21 v1.45 一部修正(文字列の解析処理見直し)

2017-4-9 v1.46 一部修正(複合代入演算子の使用等)

2017-4-18 v1.47 一部修正(文字列の解析処理見直し等)

2017-4-19 v1.48 一部修正(v1.47の変更ミスを修正)

2017-4-26 v1.49 一部修正(文字列の解析処理修正)

2017-7-17 v1.50 一部修正(書式修正等)

2017-7-20 v1.51 一部修正(書式修正等)

2018-4-12 v1.52 一部修正(コメント修正のみ)

2018-4-29 v1.53 一部修正(キーボード処理見直し)

2018-6-29 v1.54 一部修正(HTML見直し)

2018-6-30 v1.55 一部修正(HTML見直し)


<実行例>

https://hamayapp.appspot.com/static/tankashow.html


<ダウンロード>

tankashow.zip (2018-6-30)