2011/02/23

Customized template.xml

Blogger template.xml (css) をカスタマイズした際の memo。

1)

.body-fauxcolumn-outer .cap-top {
  position: absolute;
  z-index: 1;
  /* Default */
  /* height: 400px;*/
  height: 5px;
  width: 100%;
  background: $(body.background);
  $(body.background.override)
}

最上部フレーム高さとか。

#navbar-iframe {
...

を追加しないで変更した場合どうなるかは試していない。

2)

.content-inner {
  /* Default */
  /* padding: $(content.padding) $(content.padding.horizontal); */
  padding: 0px 20px;
}

content は ブログタイトル, description, 全ての投稿を包括する大枠。

3)

.header-inner .Header .titlewrapper {
  /* Default */
  /* padding: 22px $(header.padding); */
  padding: 5px $(header.padding);
}

ブログタイトル余白。

4)

.main-inner {
  /* Default
  padding-top: $(main.padding.top);
  padding-bottom: $(main.padding.bottom);
  */
  padding-top: 0px;
  padding-bottom: $(main.padding.bottom);
}

main は全投稿記事を包括するパート。(記事フッタ、日付、タイトル含む)
上部余白を減らすとブログタイトルと記事全体の間が狭くなる。

5)

.post-header {
  margin: 0 0 1.5em;
  line-height: 1.6;
  font-size: 90%;
  /* add */
  border-bottom: 1px solid #6ea1bb;
}

投稿タイトルと投稿記事の間の余白。
padding-top: 20px; などの確認を要した。

6)
mobile のあと。
p, pre-code, blockquote 部分。

/*
----------------------------------------------- */

#navbar-iframe {
  height:0px;
  visibility:hidden;
  display:none
}

/* p tag
----------------------------------------------- */
.post-body p {
  margin: 0px;
  padding: 0px;
  font-size: 10.2pt;
  line-height: 1.6em;
  letter-spacing: 2px;
}

/* pre code
----------------------------------------------- */
.post-body pre {
  margin: 7px 0 7px 0px;
  padding: 7px 0 7px 7px;
  color: #6666B3;
  overflow: auto;
  border-bottom: 1px solid #eeeeee;
  border-left: 1px solid #eeeeee;
  background-color: #FCFFFD;
}
.post-body code {
  margin: 0em;
  padding: 0em;
  font-family: Menlo, Monaco, Monospace;
  font-size: 8.7pt;
  line-height: 1.7em;
  letter-spacing: 1.5px;
}

/* brockquote
----------------------------------------------- */
.post-body blockquote {
  margin: 5px 0px 5px 5px;
  padding: 0.8em 0.5em 0.5em 0.8em;
  color: #555;
  background-color: #FBFDFF;
  border-top: 1px solid #dddddd;
  border-right: 1px solid #dddddd;
  border-bottom: 1px solid #dddddd;
  border-left: 1px solid #dddddd;
}
.post-body blockquote p {
  margin: 0px;
  padding: 0px;
  font-family: Optima, Georgia, sans-serif;
  font-size: 9pt;
  line-height: 1.4em;
  letter-spacing: 2px;
  font-style: italic;
}


カラー参照
http://www.w3schools.com/css/css_colornames.asp

2011/02/16

UTF8-MAC and Encoding.list

OSXでのファイル名比較
OSXのファイル名について教えてもらったこと

を拝見しとっても興味深かったので私も試してみました。

% touch るびー
% mkdir が
% ls -F
test.rb       が/         るびー
% cat -n test.rb
  1 # coding: utf-8
  2
  3 Dir.entries('.').each do |d|
  4   next if d =~ /^\.|rb$/
  5   printf("name=%s, size=%d, encoding=%s\n", d, d.size, d.encoding)
  6   d = d.encode('utf-8', Encoding::UTF8_MAC)
  7   printf("name=%s, size=%d, encoding=%s\n", d, d.size, d.encoding)
  8 end

結果

% ruby192old -v test.rb
ruby 1.9.2p0 (2010-08-18 revision 29036) [x86_64-darwin10.4.0]
name=が, size=2, encoding=UTF-8
test.rb:6:in `block in <main>': uninitialized constant Encoding::UTF8_MAC (NameError)
  from test.rb:3:in `each'
  from test.rb:3:in `<main>'
%
% ruby192 -v test.rb
ruby 1.9.2p136 (2010-12-25 revision 30365) [x86_64-darwin10.6.0]
name=が, size=2, encoding=UTF-8
name=が, size=1, encoding=UTF-8
name=るびー, size=4, encoding=UTF-8
name=るびー, size=3, encoding=UTF-8

1.9.2p136 で動きました。

1.9.2p0 で動かないことも気になるので Encoding.list をみてみます。

% ruby192old -ve "p Encoding.list"
ruby 1.9.2p0 (2010-08-18 revision 29036) [x86_64-darwin10.4.0]
[#<Encoding:ASCII-8BIT>, #<Encoding:UTF-8>, #<Encoding:US-ASCII>]

あれ?なんか少ないような気が...。

% ruby192 -ve "p Encoding.list"
ruby 1.9.2p136 (2010-12-25 revision 30365) [x86_64-darwin10.6.0]
[#<Encoding:ASCII-8BIT>, #<Encoding:UTF-8>, #<Encoding:US-ASCII>, #<Encoding:Big5>, #<Encoding:Big5-HKSCS>, #<Encoding:Big5-UAO>, #<Encoding:CP949>, 

...たくさんあるので以下省略


1.9.2p136 (2010-12-25 revision 30365) の Encoding.list は
1.9.2p0 (2010-08-18 revision 29036)
のそれとは全然違うようです...。

Encoding.list からutf だけをgrep

% cat -n test.rb
  1 # coding: utf-8
  2
  3 a = Encoding.list
  4 p a.map{|x| x.to_s}.grep(/utf/i)

# なぜ map して to_s しているかというと...配列に対して grep かけるにはその配列の要素が String クラスでないとうまくいかない。
# けれどEncoding.list が返した配列、を構成する要素のクラスは Encoding クラスなので String クラスに変える必要があるから。

結果

% ruby192old test.rb
["UTF-8"]

% ruby192 test.rb
["UTF-8", "UTF-16BE", "UTF-16LE", "UTF-32BE", "UTF-32LE", "UTF-7", "UTF8-MAC", "UTF8-DoCoMo", "UTF8-KDDI", "UTF8-SoftBank"]


ruby 1.9.2p136 (2010-12-25 revision 30365) にはいろんな種類の UTF があるけど、
UTF8-MAC は ruby 1.9.2p0 (2010-08-18 revision 29036) にはない?! 。

今度は encode の逆の指定。

  1 # coding: utf-8
  2
  3 str = "が"
  4 p str.size
  5 p str.encode('UTF8-MAC', 'utf-8').size

結果

% ruby192 test.rb
1
2

"が" をutf-8 から UTF8-MAC に変えてみるとsize 1から2に変化しました。

ちょっと rurema で再確認。

% rurema String#encode
...
self を指定したエンコーディングに変換した文字列を作成して返します。引数
を2つ与えた場合、第二引数は変換元のエンコーディングを意味します。さもな
くば self のエンコーディングが使われます
...


最後に iTunes Music Folder の中を検索テスト。
先ずは encode 変換しないでそのまま検索。

% cat -n test.rb
  1 # coding: utf-8
  2 # いかにもそれらしきもの(濁音などを含む)を選んでおく
  3 ary = ["東京スカパラダイスオーケストラ", "Yael Naim", "Yael Naïm"]
  4 dir = '/path/to/itunes/music/'
  5
  6 a = Dir.entries(dir)
  7 a.each{|x|
  8   p x if ary.index(x)
 11 }

結果

% ruby192 test.rb
"Yael Naim"

濁音を含む"東京スカパラダイスオーケストラ" と 特別な文字を含む "Yael Naïm" これら2つの folder は存在しているのにヒットしない。

下記に書き換え。

  6 a = Dir.entries(dir)
  7 a.each{|x|
  8   # p x if ary.index(x)
  9   u = x.encode('utf-8', 'UTF8-MAC')
 10   p x if ary.index(u)
 11 }

結果

% ruby192 -v test.rb
ruby 1.9.2p136 (2010-12-25 revision 30365) [x86_64-darwin10.6.0]
"Yael Naim"
"Yael Naïm"
"東京スカパラダイスオーケストラ"

期待どおりにヒットしました!

さらに ascii_only な文字を encode しなくてすむようにこんな風にしてみても

  6 a = Dir.entries(dir)
  7 a.each{|x|
  8   (x.ascii_only?) ? u = x : u = x.encode('utf-8', 'UTF8-MAC')
  9   p x if ary.index(u)
 10 }

同じ結果を得ることができましたー。

[関連記事]
<http://midorex.blogspot.com/2010/02/utf8-mac.html>
<http://midorex.blogspot.com/2010/02/utf8-mac-2.html>

vim noplugins

半年以上前だしメモを残さなかったので素晴らしく参考になったsiteが正確にはどこだったか分からなくなってしまった。

確かなことは...
kaoriya 様の日本語ヘルプドキュメントと
github.com に公開されていた達人の方々の .vimrc と
Google にて vim noplugins や vim shebang
とか検索した結果のいくつかのサイト

などを参考にさせていただきました。

" --------------------

/usr/bin/vim (OS X に最初から入ってるvim) を起動する際、自動的にロードされてしまう標準プラグインを "ロードしない" ようにした上で実現したいこと...大きくわけて2つ。

mission 1 :)

% vim aaa.rb で新しいファイルを作ると

#!/usr/bin/ruby
# coding: utf-8

この2行が予め記入され、入力するとインデントかかり、class とか def とかそういった文字に色がつく。

インデントかかるっていうのは例えば...

def a [return-key] if [return-key] end

とキーボードを打つと自動的に

  4 def a
  5   if
  6   end

になったり

begin [return-key] a [return-key] rescue

とキーボードをたたくと自動的に

  5 begin
  6   a
  7 rescue

こうなるっ。

mission 2 :)

% vim aaa.txt で開いたテキストファイルを編集する際
# を入力すると以降の文字列(改行まで)は青色になり
-- で始まる行はシアン色?に。
http や https で始まる行もシアンに。
行中にある <http://...> や <https://...> もシアンになるっ。


% cat test.vimrc

set nocompatible
set number
set backspace=indent,eol,start

" -------------------- Status
set laststatus=2
set statusline=%n\:%y%F\ \|%{(&fenc!=''?&fenc:&enc).'\|'.&ff.'\|'}%m%r%=<%-10(%3l,%02c%03V%)>

" -------------------- HighLight
highlight StatusLine term=NONE cterm=NONE ctermfg=gray ctermbg=darkcyan
highlight IncSearch ctermfg=gray ctermbg=cyan
highlight Search ctermfg=yellow ctermbg=darkcyan

highlight LineNr ctermfg=lightcyan ctermbg=NONE
highlight Visual term=NONE cterm=NONE ctermfg=NONE ctermbg=gray
highlight ModeMsg ctermfg=lightcyan ctermbg=NONE

" -------------------- tab
set shiftwidth=2
set tabstop=2
set expandtab
set ts=2 sw=2 expandtab

" -------------------- Plugins
" :help noloadplugins
set noloadplugins

" :help :filetype-off, :filetype-overview
filetype off

" :help :filetype-plugin-off
filetype plugin off

" :help :filetype-indent-on
filetype indent on

" /usr/share/vim/vim72/syntax/syntax.vim
syntax enable
" syntax on

" debag
" set verbose=9
autocmd! filetypedetect
" autocmd! BufWrite

if has("autocmd")
  "echo 'Hello!01'
  augroup MyVim
      autocmd!
      autocmd BufRead,BufNewFile *.txt           setlocal filetype=txt
      autocmd BufRead,BufNewFile *.rb            setlocal filetype=ruby
      autocmd BufRead,BufNewFile *.vimrc         setlocal filetype=vim
      "autocmd BufRead,BufNewFile *.vim           setlocal filetype=vim
      "autocmd BufRead,BufNewFile *.py            setlocal filetype=python
      "autocmd BufRead,BufNewFile *.sh            setlocal filetype=sh
      "autocmd BufRead,BufNewFile *.html          setlocal filetype=html
      autocmd FileType txt  syn match Comment /\#.*/
  augroup content
    autocmd!
    autocmd BufNewFile *.rb
          \ 0put = '#!/usr/bin/ruby'    |
          \ 1put = '# coding: utf-8'   |
    autocmd FileType txt
          \ :highlight MyGroup ctermfg=darkcyan ctermbg=NONE  |
          \ :match MyGroup /^\--.*\|<http.*>\|^http.*/        |
"    autocmd BufNewFile *.py
"        \ 0put = '#!/usr/bin/python'       |
"        \ 1put = '#-*- coding: utf-8 -*-'  |
"        \ $put = '' |
"        \ $put = '' |
  augroup END
endif

" -------------------- Last
" http://github.com/kana/config/
set secure  " must be written at the last.  see :help 'secure'.


テストファイルを指定して vim 起動

vim -i "NONE" -u test.vimrc aaa.rb


vim のコマンド結果

:filetype
# =>
filetype detection:ON  plugin:OFF  indent:ON

:autocmd
# =>
--- Auto-Commands ---
MyVim  BufNewFile
    *.txt     setlocal filetype=txt
    *.rb      setlocal filetype=ruby
    *.vimrc   setlocal filetype=vim
content  BufNewFile
    *.rb      0put = '#!/usr/bin/ruby'      | 1put = '# coding\: utf-8'     |
MyVim  BufRead
    *.txt     setlocal filetype=txt
    *.rb      setlocal filetype=ruby
    *.vimrc   setlocal filetype=vim
filetypeindent  FileType
    *         call s:LoadIndent()
syntaxset  FileType
    *         exe "set syntax=" . expand("<amatch>")
MyVim  FileType
    txt       syn match Comment /\#.*/
content  FileType
    txt       :highlight MyGroup ctermfg=darkcyan ctermbg=NONE  | :match MyGroup /^\--.*\|<http.*>\|^http.*/        |
Syntax
    *         call s:SynSet()
    cpp       if (exists('b:load_doxygen_syntax') && b:load_doxygen_syntax)^I|| (exists('g:load_doxygen_syntax') && g:load_doxygen_syntax)   | runtime! syntax/doxygen
.vim | endif
    c         if (exists('b:load_doxygen_syntax') && b:load_doxygen_syntax)^I|| (exists('g:load_doxygen_syntax') && g:load_doxygen_syntax)   | runtime! syntax/doxygen
.vim | endif
    idl       if (exists('b:load_doxygen_syntax') && b:load_doxygen_syntax)^I|| (exists('g:load_doxygen_syntax') && g:load_doxygen_syntax)   | runtime! syntax/doxygen
.vim | endif
Press ENTER or type command to continue



# 現在の vim バージョン(OS X 10.6.6)
% vim --version
VIM - Vi IMproved 7.2 (2008 Aug 9, compiled Aug 10 2010 22:09:22)
...

[memo]
python のインデントはこのままだとうまくいかない。

[2011-02-19]
'# coding\: utf-8'
になってた。
'# coding: utf-8'
に修正