Pythonの出力で改行させない

Pythonで以下のようなコードを書くと

print 'hoge'
print 'hoge'
print 'hoge'

出力は下記のようになる

$ python example.py
hoge
hoge
hoge

だが改行したくない場合もあると思うので、そういう時はsys.stdout.write()を使う

import sys
sys.stdout.write('hoge')
sys.stdout.write('hoge')
sys.stdout.write('hoge')

このように改行されずに出力される

$ python example.py
hogehogehoge

HTML5のcontenteditable属性で要素内を編集可能にする

これを使えばDOMの書き換えをユーザーに行わせるのが楽になる。

<!DOCTYPE html>
<html>
<head>
    <title>HTML5テスト</title>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="css/app.css">
  </head>
<body>
<p style="padding: 10px; background-color: #e74c3c;" contenteditable="true">true</p>
<p style="padding: 10px; background-color: #1abc9c;" contenteditable="false">false</p>
<p style="padding: 10px; background-color: #3498db;" contenteditable=""></p>
</body>
</html>

こういう風になるんだけど

f:id:hoge:20150530220648p:plain

こうやって編集できる

f:id:hoge:20150530220728p:plain

JavaScriptでPHPのstrip_tags()みたいなことする

検索してたら良いコードを見つけた。これを使えばタグが除去できる。コード見る限り除去できないパターンとかも無さそうだ。

var StrippedString = OriginalString.replace(/(<([^>]+)>)/ig,"");

Thanks

css-tricks.com

JavaScriptのtoLocaleString()で数値にコンマを付ける

JavaScripttoLocaleString()を使って数値にコンマを付けられるんだが、ブラウザによって対応状況が異なるみたいなので、IE10、IE11、FirefoxChromeSafariで調べてみた。調べる時に使ったコードはこれ。

var num = 123456789;
num.toLocaleString();

undefinedが返ってきちゃうのかなとか、nullが返ってきちゃうのかなと思ったけど、とりあえずそのまま使っても同じような結果が得られるのでよかった。

IE11

f:id:hoge:20150530212721p:plain

ちゃんとコンマ区切り

IE10

f:id:hoge:20150530212821p:plain

なんか末尾に0つくんだけど、まあ見れはするか

Firefox

f:id:hoge:20150530212924p:plain

ちゃんとコンマ区切り

Chrome

f:id:hoge:20150530212950p:plain

ちゃんとコンマ区切り

Safari

f:id:hoge:20150530213208p:plain

ただの数値が返ってきた

複数のHTMLファイルからまとめてscriptタグを削除する

とりあえずscriptタグが含まれているファイルを検索して、それをsedでscriptタグの所を空白で置き換える。

egrep -rl '<script[^>]*><\/script>' ./ | xargs sed -i '' 's/<script[^>]*><\/script>//g'

このようなHTMLがあったとすると

<html>
<head>
  <title>test</title>
</head>
<body>
hogehoge
<script type="text/javascript" src="analysis.js"></script>
</body>
</html>

このように置き換わる

<html>
<head>
  <title>test</title>
</head>
<body>
hogehoge
</body>
</html>

bashコマンドの途中で改行する

sedで置換したい時に置換後のメッセージに改行を加えたかった。調べた所バックスラッシュ\で改行してやれた。参考サイトに以下のような例があったので引用しておく。

echo 'a' 'x' \
'b' 'y' \
'c' 'z' \
'd' 'w'

Thanks

qiita.com

複数のHTMLファイルの末尾にscriptタグを自動で挿入するコマンド

findでHTMLファイルを探してきて、それをsedで置き換えていくだけ

find . -name '*.html' | xargs sed -i '' 's/<\/body>/<script type="text\/javascript" src="analysis.js"><\/script><\/body>/g'

これを実行すればこのようなHTMLが

<html>
<head>
  <title>test</title>
</head>
<body>
hogehoge
</body>
</html>

このように変化すると思われる

<html>
<head>
  <title>test</title>
</head>
<body>
hogehoge
<script type="text/javascript" src="analysis.js"></script>
</body>
</html>