カラクリサイクル

『輝かしい青春』なんて失かった人の雑記

CSS YAML

naoyaの日記経由で知った CSS JSON、それYAMLでもできるんじゃねと思いやってみた。

#!/usr/bin/perl
use strict;
use warnings;
use YAML;
local $/;
print yaml2css(<>);
sub yaml2css {
    my $yaml = YAML::Load(shift);
    my $css;
    foreach my $selector ( keys %{ $yaml } ) {
        $css .= sprintf "%s {\n", $selector;
            foreach my $property ( keys %{ $yaml->{$selector} } ) {
                $css .= sprintf "\t%s: %s;\n", $property, $yaml->{$selector}->{$property};
            }
        $css .= "}\n";
    }
    return $css;
}

id:naoyaさんのコードとほとんど同じ。JSONのところをYAMLに変えただけという。 んで、

div#main:
  color: #000
  background: #FFF
  border: 1px #000 solid

のような内容のYAMLを用意、

perl yaml2css.pl < style.yaml

すると

div#main {
        color: #000;
        background: #FFF;
        border: 1px #000 solid;
}

こんな感じのが返ってくる。

YAMLで書いてる分、JSONより見易く書きやすいような気がする。 CSS JSONとの使い分けは

  • CSS JSON → Javascriptから使うとき
  • CSS YAML → スクリプト(Perlとか)から使うとき

かな?

何に利用できるか思いつかない。

追記: 2006-12-20T15:55:00+09:00

このスクリプトのライセンスはid:naoyaさんのスクリプトのライセンスに準拠します。

id:naoyaさん曰く、Perlのライセンスにしておきましょう ということなので、 このスクリプトのライセンスはPerlのライセンスです。