Safari 3.0でSite Alteration CSS
SafariStand 3.0a3でSite Alterationが復活したようだが、どうもうちのMacでは調子が悪いらしくちゃんと動作しない。そこでSite AlterationしてかけたいCSSをユーザスクリプトに変換して、Creammonkeyを通して利用する事にした。
このアイディア自体は以前のエントリ (OSXライクなGoogle Readerテーマを「WebKit Nightly Builds」で使う) で利用した考え方だが、Userstyles.orgが提供するユーザスタイルシートをすべてユーザスクリプトの形でも提供しているのを見て触発された。
具体的には以下のスクリプトを使う。
ソースコード
#!/usr/bin/env ruby
#
# Created by Yuanying on 2007-10-01.
# Copyright (c) 2007. All rights reserved.
require 'open-uri'
open(ARGV[0]) do |io|
puts <<CSS
// ==UserScript==
// ==/UserScript==
var css = "#{io.read.gsub('"','\"').gsub(/\n/, "\" +\n\"")}";
if (typeof GM_addStyle != "undefined") {
GM_addStyle(css);
} else if (typeof addStyle != "undefined") {
addStyle(css);
} else {
var heads = document.getElementsByTagName("head");
if (heads.length > 0) {
var node = document.createElement("style");
node.type = "text/css";
node.appendChild(document.createTextNode(css));
heads[0].appendChild(node);
}
}
CSS
end
このスクリプトでスタイルシートをユーザスクリプトに変換してCreammonkeyに読み込ませる。
使い方
$ ruby user_js_converter.rb /~yuanying/greader.css > greader.user.js