平衡点


2011/12/21 [長年日記]

_ RD スタイルで CodeRay のシンタックスハイライトを

最近, ソースコードの色付けに google-code prettify を使っていたのだけれど,

  1. イマイチしっくりこない(笑)
  2. autopagerize などで継ぎ足されると動作しない

というのが気になってた.

どうしようかなぁ, と思っていたら

と. そのものズバリでした. 須藤さん, 流石です. というわけで, 導入ついでに tDiary を 3.1.1 に上げてみたり.

以下はテスト

# source: ruby
 #!/usr/bin/env ruby
 require 'fileutils'

 # ディレクトリ内のファイルリスト. .svn と *.orig, .,  .., .git は無視
 dir = Dir.glob('.*').reject{|ign|
   ign =~ /((^\.svn)|(^\.*$)|(\.orig$)|(\.gpg$)|(^\.git)|(\.elc$))/
 }
 # 既存ファイルのバックアップを dotfiles/backup 以下に作成する
 backupd = Dir.pwd + '/backup'
 Dir.mkdir(backupd) unless FileTest.exist?(backupd)
 backupdir = backupd + "/" + Time.now.strftime("%Y%m%d-%H%M%S").to_s
 Dir.mkdir(backupdir) unless FileTest.exist?(backupdir)
 # メイン
 dir.each do |file|
   # ソースファイル
   dotfile = Dir.pwd + '/' + file
   # symlink の位置
   target = ENV['HOME'] + '/' + file
   # バックアップの位置
   backup = backupdir + '/' + file
   # ファイルが存在する場合
   if FileTest.exist?(target)
     # バックアップへの退避
     Flie.delete(target) if FileTest.symlink?(backup)
     FileUtils.move(target, backup) if FileTest.file?(target)
     FileUtils.move(target, backup) if FileTest.directory?(target)
     File.delete(backup) if FileTest.symlink?(backup)
     # symlink 作成
     File.symlink(dotfile, target)
   else
     # symlink 作成
     File.symlink(dotfile, target)
   end
 end

 # backup direcotry が空なら削除
 if Dir.entries(backupdir).reject{|i| i=~ /^\.*$/}.size == 0
   Dir.delete(backupdir)
   if Dir.entries(backupd).reject{|i| i=~ /^\.*$/}.size == 0
     Dir.delete(backupd)
   end
 end

 puts <<-EOS
 making symlink in ~/.
 if dotfile exist. mv ./backup/,
 but dotfile is symlink, delete it.
 if ./backup is empty, delet backup directory.
 EOS