BDF フォントを canvas にレンダリングする
ブラウザでアンチエイリアスのきいてない bitmap フォントを使おうと思い webfont でいけるかなと思いきや、手元の環境だとどのブラウザでも bitmap フォントを使用できなかった、ということがありました。(Firefox はオプションを入れればできるみたいなのを最近見たんですが試さず)
で、それなら自力でレンダリングしたらいいんじゃないかなと思いつつ、面倒でやってなかったのですが、bdf のフォーマットがただのテキストファイルということを知って多少やる気が沸いたのでやってみました。
依存しているブラウザの機能は
- canvas
- 2d Context
- fillRect
だけなので canvas が実装されていれば大抵のブラウザで動きます。
日本語も対応 bdf さえあれば描けるのですが、JS の charCodeAt でとれる数値と、bdf のコードポイントが一致していないといけないので、普通は変換が必要です。mplus の bdf 用の変換器 (というか jis から ucs) は書いたのを一緒のレポジトリにいれてあります
どや
✖
✖
✖
そういえば、月読尊という神様について、自分は女神だと思っていたけれど、(ハッキリはしないものの) 基本的には男神らしい。松尾大社の月読神社も男神らしい。なんで自分が女神だと思っているのかはよくわからないが (クロノクロスのせい?)、男神ってのは、あんまりピンとこないなあ。
✖
ワンダーワンダーの足利義政の回がおもしろかった
gerry++
✖
vim、三項条件演算子の第二項と第三項を入れかえる
nnoremap e3 :s/?\s*\((.\{-1,})\\|\S\+\)\s*:\s*\((.\{-1,})\\|\S\+\)/? \2 : \1/<CR>でいける。
以下つくりかたのメモ
#!/usr/bin/env perl
use strict;
use warnings;
use Test::Most;
my $tests = [
'aa ? bb : cc' => 'aa ? cc : bb',
'aa ? bb : cc | foobar' => 'aa ? cc : bb | foobar',
'aa ? (bb bb) : (cc cc)' => 'aa ? (cc cc) : (bb bb)',
];
while (my ($a, $b) = splice @$tests, 0, 2) {
$a =~ s/\?\s*(\(.+?\)|\S+)\s*:\s*(\(.+?\)|\S+)/? $2 : $1/;
is $a, $b;
}
done_testing;みたいなのを書いて正規表現を確定させる
eregex.vim を入れた状態で
:echo E2v('\?\s*(\(.+?\)|\S+)\s*:\s*(\(.+?\)|\S+)')する
でてきた正規表現でだいたいいいのだけれど .vimrc に書くと \| が | として認識されるので \| は \\| にさらに置換する






