: O. Yuanying

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