Kouhei Sutou
kou****@cozmi*****
2005年 6月 14日 (火) 21:06:14 JST
須藤です. [[XXX:YYY]] というInterWikiを使った時に,XXXに該当するInterWikiNameが登 録されていない場合は, XXX:YYY が表示されますが,これを 「XXX:YYY」ページへのリンク として欲しいです. パッチ中のmake_linkはwhen :wikiname, :bracketnameをそのまま 抜き出しただけです. -------------- next part -------------- Index: hiki/interwiki.rb =================================================================== RCS file: /cvsroot/hiki/hiki/hiki/interwiki.rb,v retrieving revision 1.7 diff -u -p -r1.7 interwiki.rb --- hiki/interwiki.rb 20 Mar 2005 01:48:11 -0000 1.7 +++ hiki/interwiki.rb 14 Jun 2005 08:14:40 -0000 @@ -41,7 +41,7 @@ module Hiki @plugin.make_anchor("#{@interwiki_names[s][:url]}#{page}", display_text) end else - "#{s}:#{p}".escapeHTML + nil end end Index: style/default/html_formatter.rb =================================================================== RCS file: /cvsroot/hiki/hiki/style/default/html_formatter.rb,v retrieving revision 1.27 diff -u -p -r1.27 html_formatter.rb --- style/default/html_formatter.rb 8 Jun 2005 05:12:44 -0000 1.27 +++ style/default/html_formatter.rb 14 Jun 2005 08:14:41 -0000 @@ -154,28 +154,14 @@ module Hiki s[:html] << @plugin.make_anchor( t[:href], t[:s].escapeHTML, 'external' ) s[:toc_title] << t[:s] if s[:toc_level] > 0 when :wikiname, :bracketname - disp =****@db*****_attribute(t[:s], :title) - disp = t[:s] if disp.empty? - t[:href] =****@alias*****_names.key(t[:href]) || t[:href] - if t[:e] == :bracketname - orig =****@db***** {|p| p[:title] == t[:href]} - t[:href] = orig[0] if orig[0] - end - if !@conf.use_wikiname and t[:e] == :wikiname - s[:html] << disp.escapeHTML - elsif****@db*****?( t[:href] ) - s[:html] << @plugin.hiki_anchor(t[:href].escape, disp.escapeHTML) - @references << t[:href] + make_link(t, s) + when :interwiki + inter_link =****@inter*****(t[:href], t[:p], t[:s]) + if inter_link + s[:html] << inter_link else - missing_anchor_title =****@conf*****_missing_anchor_title % [ disp.escapeHTML ] - wikiname_anchor =****@plugi*****? ? "#{disp.escapeHTML}<a class=\"nodisp\" href=\"#{@conf.cgi_name}?c=edit;p=#{t[:href].escape}\" title=\"#{missing_anchor_title}\">?</a>" : disp.escapeHTML - # outer_alias =****@inter*****_alias(t[:href]) || "#{disp.escapeHTML}<a class=\"nodisp\" href=\"#{@conf.cgi_name}?c=edit;p=#{t[:href].escape}\" title=\"#{missing_anchor_title}\">?</a>" - outer_alias =****@inter*****_alias(t[:href]) || wikiname_anchor - s[:html] << outer_alias + make_link(t, s) end - s[:toc_title] << t[:href] if s[:toc_level] > 0 - when :interwiki - s[:html] << @interwiki.interwiki(t[:href], t[:p], t[:s]) when :empty s[:html] << "\n" when :heading1_open, :heading2_open, :heading3_open, :heading4_open, :heading5_open @@ -274,5 +260,28 @@ EOS str = t[:method].gsub(/&/, '&').gsub(/</, '<').gsub(/>/, '>') return apply_plugin( str, @plugin, @conf ) end + + def make_link(t, s) + disp =****@db*****_attribute(t[:s], :title) + disp = t[:s] if disp.empty? + t[:href] =****@alias*****_names.key(t[:href]) || t[:href] + if t[:e] == :bracketname + orig =****@db***** {|p| p[:title] == t[:href]} + t[:href] = orig[0] if orig[0] + end + if !@conf.use_wikiname and t[:e] == :wikiname + s[:html] << disp.escapeHTML + elsif****@db*****?( t[:href] ) + s[:html] << @plugin.hiki_anchor(t[:href].escape, disp.escapeHTML) + @references << t[:href] + else + missing_anchor_title =****@conf*****_missing_anchor_title % [ disp.escapeHTML ] + wikiname_anchor =****@plugi*****? ? "#{disp.escapeHTML}<a class=\"nodisp\" href=\"#{@conf.cgi_name}?c=edit;p=#{t[:href].escape}\" title=\"#{missing_anchor_title}\">?</a>" : disp.escapeHTML + # outer_alias =****@inter*****_alias(t[:href]) || "#{disp.escapeHTML}<a class=\"nodisp\" href=\"#{@conf.cgi_name}?c=edit;p=#{t[:href].escape}\" title=\"#{missing_anchor_title}\">?</a>" + outer_alias =****@inter*****_alias(t[:href]) || wikiname_anchor + s[:html] << outer_alias + s[:toc_title] << t[:href] if s[:toc_level] > 0 + end + end end end