2002-09-29 (Sun)

AOC

(や)が、まんちゃん宅と AOC ネット対戦。結果は惨敗。


2003-09-29 (Mon)

インタビュー:XMLの実力を見定める

Tim Bray のインタビュー。利害関係のあるベンダーが増えすぎということか。

memo

Tags: XML

include プラグイン

VikiWiki のimport プラグインが羨ましくなり、himi さんからの要望もあったので Hiki 用の include プラグインをでっちあげてみた。

# $Id $
# Copyright (C) 2003 Koichiro Ohba <koichiro@meadowy.org>

def include( page )
  @content = ''
  return '' unless @db.exist?( page )
  include_content( page )
  @content
end

def include_content( page )
  include_page_backup( page )
  parser = Parser::new
  tokens = parser.parse( @db.load( page ) )
  formatter = HikiFormatter::new( tokens, @db, @db.plugin )
  @content << formatter.apply_tdiary_theme_include(formatter.to_s).sanitize
  include_page_restore
end

def include_page_backup( page )
  @tmp_page = @page
  @page = page
end

def include_page_restore
  @page = @tmp_page
end

hiki/hiki_formatter.rb への修正。

diff -c -r1.1.2.2 hiki_formatter.rb
*** hiki/hiki_formatter.rb      31 May 2003 10:13:01 -0000      1.1.2.2
--- hiki/hiki_formatter.rb      22 Oct 2003 15:16:02 -0000
***************
*** 15,20 ****
--- 15,42 ----
          if /(.*?)(<h2>.+)/ =~ line
             section << $1
            if section.size > 0 or first_f
+             tdiary_html << tdiary_day(title, section)
+             section = ''
+           end
+           first_f = true
+           title = $2
+         else
+          section << line
+         end
+      end
+      tdiary_html << tdiary_day(title, section)
+     end
+
+     def apply_tdiary_theme_include(html)
+       section = ''
+       title   = ''
+       tdiary_html    = ''
+       first_f = false
+
+       html.each do |line|
+         if /(.*?)(<h2>.+)/ =~ line
+            section << $1
+           if section.size > 0 or first_f
              tdiary_html << tdiary_section(title, section)
              section = ''
            end
***************
*** 30,42 ****
    private
      def tdiary_section(title, section)
  <<"EOS"
- <div class="day">
    #{title}
    <div class="body">
      <div class="section">
        #{section}
      </div>
    </div>
  </div>
  EOS
      end
--- 52,70 ----
    private
      def tdiary_section(title, section)
  <<"EOS"
    #{title}
    <div class="body">
      <div class="section">
        #{section}
      </div>
    </div>
+ EOS
+     end
+
+     def tdiary_day(title, section)
+ <<"EOS"
+ <div class="day">
+     #{tdiary_section(title, section)}
  </div>
  EOS
      end

使い方は埋め込みたい場所でページ名を指定する。

{{include('SandBox')}}

実行例 about:SandBox

セクションが分かれるようにしたほうがよいのかな。 <div class="day"> が入れ子にならないように対処。

あとこのままでは include 先のプラグインが元ページの情報で実行されてしまうために BBS プラグインなどが正常に動かない。include 先に合わせて Plugin クラスを初期化するとかしないとイカンかも。安直に対応。

Tags: Hiki

2007-09-29 (Sat)

BookScope (2)

みなさま、紹介ありがとうございます!

お陰さまで調査機関GのBookScope界ランキングでトップに。ありがたや。

小関さんの

本のバーコードの画像を携帯からメールで送ると「バーコード認識」によりその本を自分の蔵書に登録してくれる。

これは「あ」の人から聞いた「Kinjiro」が近いかも。そんな小関さんでも大丈夫です。BookScope設計段階からここへんを参考にさせて頂いた仮想ユーザーですから安心です(謎)。

B000I5O8I2は、PCから見ると普通のUSBキーボードとして認識するので、可能ならウィルコムのZero3に繋いで書斎に持ち込みBookScopeへ登録できたらいいなーとか、あの人と妄想。BookScopeのためにバーコードリーダを買いましたという人が現れることが野望なんですが、民生品ではないので高いですよね... B0002A9WR0のがちょっと安いか。3000円くらいであるといいのだが。

カヲルくんも唐突に上位に躍り出た登録数でびっくり。ありがとう。いったいどんなマジックが...

最近の修正や変更点をメモしておきます。

  • ユーザー毎の新着Atomフィードのリンクがおかしくなっていたのを修正。
  • 」の人より、Amazonから蔵書登録するBookmarkletを提供してもらったので取り込んだ。Amazonの商品表示画面から一発登録できるようになった。蔵書登録の下のほうに各ユーザー向けのBookmarkletを表示してます。>あの人thx!
  • 誰がどの本を持っているか見る機能を追加。本の総合情報から見れます。
  • 本にタグを付ける。タグで絞込み検索する。

など。細かい使い勝手の修正。

Tags: BookScope