少し前にWord文書由来のhtmlを触る機会があり、フォントサイズを相対指定にする必要に迫られたのが案外うまくいったのでメモ。 問題点 wordが出力したファイルはhtmlからcssまで、font-sizeやmargin,padding等すべてpt指定であるという点。文書の忠実な再現のために細かく指定してあるので数がやたら多い。したがって計算の必要があるこの処理を手書きではこなせないという点。 解決方法 結局シェルスクリプトでやった。 px = pt / 72 * 96に従っていちどpxにしたあと、em = px / px(parent)よりemが算出できる。 早い話が次の式になるので、ざっくりこれを使う。 em = pt * 4 / 3 / px(parent) 余談) この件でいろいろ調べているうちにhtmlのfontsizeを62.5%に指定するやり方というものを知った。頭いいな 参考 数式は以下のページより PXtoEM.comのlearnタブ [ JavaScript ] フォントサイズ変換(pt↔px)のソース
Continue reading

もくてき テキストファイルを空行区切りで取り出す。 今回僕が触ってた対象はバックアップしたLINEの履歴です。 やりかた 思いついたのは空行間を一列にして改行区切りで取り出す方法 空行を目印となる文字に置き換える(今回は等号) 同様に改行を別の文字に置き換える 空行を改行に戻す IFSを設定した上でforとかで取り出す msg="$(cat xxx.txt | sed -e ’s/^$/=/g’ | sed -r -e ’s/=+/=/g’ | tr ‘\n’ ‘@’ | tr ‘=’ ‘\n’)" IFS=’ ‘ for i in $msg; do echo "$i" | tr ‘@’ ‘\n’ done; おまけ awkでやるときは区切り文字とかを設定してレコード番号から絞るらしい。 awk自体に制御構文はあるわけだし明らかに賢い (フィールド番号指定してできねーなって言ってた)。 AWK:空行で区切られたファイルを処理する - 廿TT あとタイトルのわりにBashである必要はない。
Continue reading

またシェルスクリプトネタです。 Githubで直接ファイルを書き換えてコミットする際、任意の入力が無ければ “Update README.md” のように行われた事実がコミットメッセージになりますよね。 これをコマンドラインでの作業でもやりたいと思って簡単なスクリプトを書きました。 nobuyo/committer git statusからステージングされている変更を拾ってきてコミットメッセージとして返してくれます。 簡素な仕様ですが、分かればいい程度で自分だけのリポジトリをちょっと書き換えるときに若干べんりです。 例えば以下のような感じになります。変更の事実がそのままコミットメッセージになっている様子が確認できます。 git本体へのオプション等には干渉しないので、ステージされた変更があるのにgit commit -amしたときなんかはコミットの精度が低下します。 % git status On branch master Your branch is up-to-date with ‘origin/master’. Changes not staged for commit: (use "git add <file>…" to update what will be committed) (use "git checkout – <file>…" to discard changes in working directory) modified: .zshrc no changes added to commit (use "git add" and/or "git commit -a") % git commit -am "$(committer)" # here [master 8e3fa69] modify .
Continue reading

Author's picture

nobuyo

student of nit

JS/Rails

Nagano, Japan