2006-09-17(Sun) [長年日記]
_ [Hiki]Hikiで任意の箇所にアンカー&指示
後輩> Hikiでtocの見出しにtoc以外からジャンプできるようになりませんか? 俺 > tocの見出しアンカーって自動採番だから難しいと思うけど...
ってことでやってみた。ようは
<a name="kokodayo"> </a>
ってのがプラグインで指示できて、あとこれまた別の指示で
http://Server/hikifarm/hiki_sono_1/?Nantoka#kokodayo
みたいなリンクが生成されれればいいわけだから、
プラグイン
def a_h(anchor)
%Q|<a name="#{anchor}"> </a>|
end
InterWikiName
* [[self|http:?$1]]
本文(リンクされるほう)
! {{a_h kokodayo}}見出し1なんだよ。
本文(リンクするほう)
* [[self:Nantoka#kokodayo]]
hiki-currentで確認した。 自Wiki内を指すリンクが簡単にハッシュ込みで指示できるならInterWikiNameへの追加はいらないんだけどなー。たとえば:
* http:?TextFormattingRules#plugin
と書くと
<li>?TextFormattingRules#plugin<a class="nodisp" href="./?c=edit;p=%3FTextFormattingRules%23plugin" title="ページ ?TextFormattingRules#plugin を新規作成し、編集します。">?</a></li>
になっちゃうし。
とりあえず任意の箇所にアンカーがおけるようになったしよしとするか。
_ [Hiki]hikiの src.rb の表示が寂しい
せっかくsvnを使っていることだし、ソースそのままでは味気ないので svn blame の出力がいいんじゃね?ということで作ってみた。あまりにも手抜きなのでdiffだけ載せる。
--- ..\hiki\misc\plugin\src.rb Wed Jul 13 01:43:06 2005
+++ blame.rb Sun Sep 17 06:49:29 2006
@@ -1,7 +1,4 @@
-# $Id: src.rb,v 1.8 2005/07/13 01:43:06 fdiary Exp $
-# Copyright (C) 2003 TAKEUCHI Hitoshi <hitoshi@namaraii.com>
-
-def src
+def blame
sources = <<EOS
<!DOCTYPE html
PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
@@ -15,7 +12,7 @@
<body>
<div>
EOS
- page = @db.load( @page )
+ page = get_blame( @page )
sources << (page ? page.escapeHTML.gsub(/\n/, "<br>\n").gsub(/ /, ' ') :
'load error.')
sources << <<EOS
</div>
@@ -36,6 +33,16 @@
nil # Don't move to the 'FrontPage'
end
+def get_blame(page)
+ ret = ''
+ Dir.chdir("#{@db.pages_path}") do
+ open("|svn blame -r HEAD #{page.escape.untaint}") do |f|
+ ret = f.read
+ end
+ end
+ ret
+end
+
add_body_enter_proc(Proc.new do
- add_plugin_command('src', src_label, {'p' => true})
+ add_plugin_command('blame', blame_label, {'p' => true})
end)
これでsrc.rbの出力がsvn blame 相当になってちょっとうれしいかも。ていうか、history.rbの表示で、行ごとにrevisionがでてくれればいいのかも。ソース見る限りちょっと難しそうだったので見送り。
nice post. thanks.