Changesets can be listed by changeset number.
The Git repository is here.
- Revision:
- 2
- Log:
Initial import of Instiki 0.11.0 sources from a downloaded Tarball.
Instiki is a Ruby On Rails based Wiki clone.
- Author:
- adh
- Date:
- Sat Jul 22 14:54:51 +0100 2006
- Size:
- 3663 Bytes
1 | class AbstractUrlGenerator |
2 | |
3 | def initialize(controller) |
4 | raise 'Controller cannot be nil' if controller.nil? |
5 | @controller = controller |
6 | end |
7 | |
8 | # Create a link for the given page (or file) name and link text based |
9 | # on the render mode in options and whether the page (file) exists |
10 | # in the web. |
11 | def make_link(name, web, text = nil, options = {}) |
12 | text = CGI.escapeHTML(text || WikiWords.separate(name)) |
13 | mode = (options[:mode] || :show).to_sym |
14 | link_type = (options[:link_type] || :show).to_sym |
15 | |
16 | if (link_type == :show) |
17 | known_page = web.has_page?(name) |
18 | else |
19 | known_page = web.has_file?(name) |
20 | end |
21 | |
22 | case link_type |
23 | when :show |
24 | page_link(mode, name, text, web.address, known_page) |
25 | when :file |
26 | file_link(mode, name, text, web.address, known_page) |
27 | when :pic |
28 | pic_link(mode, name, text, web.address, known_page) |
29 | else |
30 | raise "Unknown link type: #{link_type}" |
31 | end |
32 | end |
33 | |
34 | end |
35 | |
36 | class UrlGenerator < AbstractUrlGenerator |
37 | |
38 | private |
39 | |
40 | def file_link(mode, name, text, web_address, known_file) |
41 | case mode |
42 | when :export |
43 | if known_file |
44 | %{<a class="existingWikiWord" href="#{CGI.escape(name)}.html">#{text}</a>} |
45 | else |
46 | %{<span class="newWikiWord">#{text}</span>} |
47 | end |
48 | when :publish |
49 | if known_file |
50 | href = @controller.url_for :controller => 'file', :web => web_address, :action => 'file', |
51 | :id => name |
52 | %{<a class="existingWikiWord" href="#{href}">#{text}</a>} |
53 | else |
54 | %{<span class="newWikiWord">#{text}</span>} |
55 | end |
56 | else |
57 | href = @controller.url_for :controller => 'file', :web => web_address, :action => 'file', |
58 | :id => name |
59 | if known_file |
60 | %{<a class="existingWikiWord" href="#{href}">#{text}</a>} |
61 | else |
62 | %{<span class="newWikiWord">#{text}<a href="#{href}">?</a></span>} |
63 | end |
64 | end |
65 | end |
66 | |
67 | def page_link(mode, name, text, web_address, known_page) |
68 | case mode |
69 | when :export |
70 | if known_page |
71 | %{<a class="existingWikiWord" href="#{CGI.escape(name)}.html">#{text}</a>} |
72 | else |
73 | %{<span class="newWikiWord">#{text}</span>} |
74 | end |
75 | when :publish |
76 | if known_page |
77 | href = @controller.url_for :controller => 'wiki', :web => web_address, :action => 'published', |
78 | :id => name |
79 | %{<a class="existingWikiWord" href="#{href}">#{text}</a>} |
80 | else |
81 | %{<span class="newWikiWord">#{text}</span>} |
82 | end |
83 | else |
84 | if known_page |
85 | href = @controller.url_for :controller => 'wiki', :web => web_address, :action => 'show', |
86 | :id => name |
87 | %{<a class="existingWikiWord" href="#{href}">#{text}</a>} |
88 | else |
89 | href = @controller.url_for :controller => 'wiki', :web => web_address, :action => 'new', |
90 | :id => name |
91 | %{<span class="newWikiWord">#{text}<a href="#{href}">?</a></span>} |
92 | end |
93 | end |
94 | end |
95 | |
96 | def pic_link(mode, name, text, web_address, known_pic) |
97 | case mode |
98 | when :export |
99 | if known_pic |
100 | %{<img alt="#{text}" src="#{CGI.escape(name)}" />} |
101 | else |
102 | %{<img alt="#{text}" src="no image" />} |
103 | end |
104 | when :publish |
105 | if known_pic |
106 | %{<img alt="#{text}" src="#{CGI.escape(name)}" />} |
107 | else |
108 | %{<span class="newWikiWord">#{text}</span>} |
109 | end |
110 | else |
111 | href = @controller.url_for :controller => 'file', :web => web_address, :action => 'file', |
112 | :id => name |
113 | if known_pic |
114 | %{<img alt="#{text}" src="#{href}" />} |
115 | else |
116 | %{<span class="newWikiWord">#{text}<a href="#{href}">?</a></span>} |
117 | end |
118 | end |
119 | end |
120 | |
121 | end |