image

  • フォト Amazonギフト券
    ※この時計の時刻は、閲覧しているパソコンのものであり、必ずしも正確な時間とは限りません

検索

最近のトラックバック

無料ブログはココログ

« 2007-06-15 | トップページ | 2007-06-17 »

2007-06-16

2007-06-16

ピックアップ:ハードディスクの中身を3次元地図で表示, 「みんなのうた」まとめ

- http://d.hatena.ne.jp/ytakamiya/20070615#1181897876
> > たかみやの日記: 『『『クロージャによる超軽量並行プロセス』を Ruby で』をもう少し Ruby っぽく』をちょっとだけ見やすく

- http://codezine.jp/a/article/aid/1446.aspx
> > CodeZine:XMLコンソーシアム、Web 2.0の事例を多数紹介した文書をWebで公開(Ajax, マッシュアップ)

- http://bogusne.ws/article/44988106.html
> > Windows版Safari「思ったよりぜい弱」に非難殺到 : bogusnews

- http://www.ringolab.com/note/daiya/archives/005011.html
> > Passion For The Future: ハードディスクの中身を3次元地図で表示するStepTree

- http://www.aoimiyazaki.jp/news.html
> > AOI MIYAZAKI official web - 宮﨑あおい

- http://d.hatena.ne.jp/furamubon/20070615/1181902019
> > おすましエプロン - ニコニコ動画で見られる「みんなのうた」まとめ

- http://d.hatena.ne.jp/darashi/20070615/1181894461
> > dara日記 - AP4R on Rails はじめの一歩

- http://affiliate-blog.amazon.co.jp/2007/06/2007.html
> > Amazon アソシエイト・プログラム ブログ: 東京おもちゃショー2007

- http://blog.creamu.com/mt/2007/06/zoho_creator.html
> > 数分でオンラインのデータベースアプリケーションを作成できる『Zoho Creator』 | CREAMU

- http://edu-hypericum.seesaa.net/article/44774784.html
> > Education++ weblog: 2007年秋はフィンランドがアツい

- http://kmo.air-nifty.com/kanamori_marketing_office/2007/06/post_a2a8.html
> > Kanamori Marketing Office: 映画「バベル」に見る「コミュニケーション」の真の意味

- http://d.hatena.ne.jp/umedamochio/20070615/p1
> > My Life Between Silicon Valley and Japan - サバイバルのための人体実験を公開すること

- http://pitecan.com/blog/2007/06/web.html
> > ユビキタスの街角: Webページをスクリーンセーバで表示する

- http://blogs.itmedia.co.jp/mm21/2007/06/post_b8cb.html
> > 世の中の問題の8割の原因 - 永井孝尚のMM21 [ITmedia オルタナティブ・ブログ]

- http://plaza.rakuten.co.jp/chime/diary/200706130003/
> > 社内ドキュメントと社外ドキュメント - 胃痛!イトマサのいわゆるチラシの裏 - 楽天ブログ(Blog)


racc で xvcd を生成することを試し始めた (その7)

ruby/racc で xfy/xvcd を生成する実験を続けています。

今回は2つの変更を行いました。
  1. 属性指定方法の書式を導入
  2. 任意の xml タグを生成できるようにした

今回のソースコードは以下で公開しています。
http://homepage2.nifty.com/youichi_kato/src.html
- racc で xvcd
    zzz-2007-06-16.tgz(2007-06-16)

1. 属性指定方法の書式を導入
-------------------------
前回は、
変換結果 xml の属性指定を "name", "val" で指定させていたが、
name=>"val" で指定するようにしました。

つまり

xvcd:foo(name=>"val")

と書いたら

<xvcd:foo name="val">
</xvcd:foo>

が出力されます。

2. 任意の xml タグを生成できるようにした
-------------------------------------
いままでは 変換プログラム側で認識できないタグは無視していました。
しかし、今回からは 定義済みチェックをせずに すべて、xml タグ展開をすることに変更しました。
そうすることで これまでは "<<" での ヒアドキュメントで書くしかなかった部分も、
すべて 関数呼び出し風に書くことが可能となります。

つまり

<< <html>
<<   <body>
<<   </body>
<< </html>

html() {
  body();
};

は、同じ変換結果になります。
(すべてを 無理に関数呼び出し風に書く必要は無いです。
ケースに応じてヒアドキュメント記述と使いわければよいと思う)

いままでつかってきた 入力ソースは次のように書き換えることになります。
出力結果は前回までと同じです。

$ cat src
<<
xvcd(
    xmlns             => "http://www.w3.org/1999/xhtml",
    xmlns:xvcd        => "http://xmlns.xfy.com/xvcd",
    xmlns:instruction => "http://xmlns.xfy.com/instruction",
    xmlns:ctrl        => "http://xmlns.xfy.com/controls",
    xmlns:event       => "http://xmlns.xfy.com/event",
    xmlns:ui          => "http://xmlns.xfy.com/ui",
    xmlns:command     => "http://xmlns.xfy.com/command",
    xmlns:ab          => "http://xmlns.example.com/developer/tutorial/addressbook",
    version           => "1.0"
) {

<<
  //============== VOCABULARY ==========
  vocabulary(name          => "AddressBook",
             match         => "ab:addressbook",
             call-template => "Root") {
    //============== MENU ==========
    ui:ui(version=>"1.0") {
      ui:main-menu() {
        ui:menu(label=>"Entry") {
          ui:menu-item(label=>"add", command=>"my:AddEntry",  open-dialog=>"true");
          ui:menu-item(label=>"edit", command=>"my:EditEntry", open-dialog=>"true");
        };
      };
    };
  };

<<
  //============== COMMAND ==========
  def my:AddEntry(a, b)
    dialog(return-to=>"result") {
<<       <ab:edit-dialog>
<<            <ab:entry>
<<                <ab:person />
<<                <ab:address />
<<            </ab:entry>
<<        </ab:edit-dialog>
    };

    if "'ok'=$result/ab:edit-dialog/@closed-by" then
      insert(select=>"/ab:addressbook", position=>"last-child") {
        copy_of(select=>"$result//ab:entry");
      };
    end
  end

<<
  //============== TEMPLATE ==========
  template(name=>"EditDialogRoot") {
    html() {
      body()
    };
  };
};
#--- End of File ---

今回も、前回予告とは反する変更を行ってしまいました。
次回こそは、include 機能を実装しようと思う...


« 2007-06-15 | トップページ | 2007-06-17 »

mokuji

2013年12月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        

google

  • twitter
  • __
  • _
    Googleボットチェッカー

合わせて読む

  • 合わせて読む
    フィードメーター - katoy: cocolog あわせて読みたい

リンク