• Emacs と Perl を使って,XML-RPC 経由で Movable Type のエントリを編集するツールを配布しています.良かったら持っていってください.( 2004/10/24 update) mapae logo
  • Movable Type で footnote*1 を生成する plugin を配布しています.良かったら持っていってください.( 2004/03/04 update )
  • その他の配布物等

*1: 脚注.よ〜するに,こ〜ゆ〜やつです.

AutoNav for Trac 0.11

| コメント(0) | トラックバック(0)

Trac を 0.11 系にしたら、AutoNav が動かなくなった。

0.11 系用のものも置いてあるのだけれど、これも動かない。

将来的には別のプラグインに乗り換えるにしても、とりあえずのところは以下のように修正してみた。

--- autonav-trac-0.11.py	2009-04-11 01:59:20.000000000 +0900
+++ autonav-trac.py	2009-04-11 01:59:10.000000000 +0900
@@ -35,14 +35,14 @@
     `[[AutoNav(MyPage, MyPageToo, MyPageThree)]]` -> references merged with MyPage, MyPageToo and MyPageThree
     """
     
-    def render_macro(self, formatter, name, args):
-        if formatter.context.resource != 'wiki':
+    def expand_macro(self, formatter, name, args):
+        if formatter.context.resource.realm != 'wiki':
             return ''
         
         cursor = formatter.db.cursor()
         
         # get the refere page name
-        thispage = formatter.context.id
+        thispage = formatter.context.resource.id
         
         # process arguments
         pages, kw = parse_args(args)
@@ -59,11 +59,11 @@
             WHERE 
                 w1.version = w2.version AND 
                 w1.name = w2.name AND 
-                w1.text LIKE \'%%%s%%\' 
-            ORDER BY w1.name""" % thispage
+                w1.text LIKE %s
+            ORDER BY w1.name"""
         
         # TODO: use named parameters
-        cursor.execute(query)
+        cursor.execute(query, [ '%%%s%%' % thispage ])
         
         # for each answer store in page
         for page, in cursor:
@@ -77,6 +77,11 @@
         def link(page):
             return tag.a(page, href=formatter.href.wiki(page))
         
-        return tag(tag.strong('Navigation:'), '(',
-                   [[link(page), ', '] for page in pages[:-2]],
-                   link(page), ')')
+        if (pages):
+            links = [
+                [link(pages[0])],
+                [[', ', link(page)] for page in pages[1:]]
+                ]
+        else: links = []
+        
+        return tag(tag.strong('Navigation:'), '(', links, ')')

トラックバック(0)

トラックバックURL: http://d.nym.jp/mt/trackback/2058

コメントする

最近のコメント

アーカイブ

Author

nym <n...@nym.jp>
Powered by Movable Type 5.12