rss/makerとQuartz Composer
Quartz Composer
Quartz Composerを使ってRSS表示するスクリーンセーバを作ることができます。 んで、これを使ってスライドをスクリーンセーバ化する実験をしました。
必要なものは
- Ruby
- Tiger
- Quartz Composer
rss/maker
RDFを生成するスクリプト。
箇条書きしか扱えないTiny Tiny RDを読んでRSSっぽいのを出力する習作。
Tiny RDの例
= Tiny RDについて * 箇条書き * 箇条書き * 箇条書き
まあ、こんな感じ。
# rss_maker.rb require 'rss/maker' class TinyRD include Enumerable def initialize(str) @src = str @slide = [] make_slide end attr_reader :slide def make_slide @src.each do |line| line = line.chomp if /^=+?s*(?S.*)/ =~ line add_page($1) elsif /^(?*?s*)?(?S.*)/ =~ line add_item($2) end end end def add_page(title) @slide.push([title, ""]) end def add_item(desc) @slide[-1][1].concat('<p>' + desc + '</p>') end def each(&block) @slide.each(&block) end end def make_rss(slide) RSS::Maker.make('1.0') do |maker| maker.channel.about = 'http://www.druby.org/fake_index.rdf' maker.channel.title = 'I like Ruby.' maker.channel.description = 'fake' maker.channel.link = 'http://www.druby.org' slide.each_with_index do |page, index| item = maker.items.new_item item.link = 'http://www.druby.org/fake/' + index.to_s item.title = page[0] item.description = page[1] item.date = Time.now - 3600 * index end end end t = TinyRD.new($<.read) puts make_rss(t)
qtz
Quartz Composerで"Mac OS X RSS Screen Saver"プロジェクトを生成します。 んで、"RSS Feed"パッチのInput ParametersのURIを適切に設定するとさっき作った RDFを表示することができます。
例
参考資料
- 未来派図画工作
- 飛び交う幸福の王子本の元ネタはここから。