instiki 0.10.0 → 0.10.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (88) hide show
  1. data/CHANGELOG +174 -165
  2. data/README +68 -68
  3. data/app/controllers/admin_controller.rb +94 -94
  4. data/app/controllers/application.rb +135 -131
  5. data/app/controllers/file_controller.rb +129 -129
  6. data/app/controllers/wiki_controller.rb +354 -354
  7. data/app/helpers/application_helper.rb +68 -68
  8. data/app/models/author.rb +3 -3
  9. data/app/models/chunks/category.rb +33 -33
  10. data/app/models/chunks/chunk.rb +86 -86
  11. data/app/models/chunks/engines.rb +61 -54
  12. data/app/models/chunks/include.rb +41 -41
  13. data/app/models/chunks/literal.rb +31 -31
  14. data/app/models/chunks/nowiki.rb +28 -28
  15. data/app/models/chunks/test.rb +18 -18
  16. data/app/models/chunks/uri.rb +182 -182
  17. data/app/models/chunks/wiki.rb +141 -141
  18. data/app/models/file_yard.rb +58 -58
  19. data/app/models/page.rb +112 -112
  20. data/app/models/page_lock.rb +22 -22
  21. data/app/models/page_set.rb +89 -89
  22. data/app/models/revision.rb +123 -123
  23. data/app/models/web.rb +182 -176
  24. data/app/models/wiki_content.rb +207 -207
  25. data/app/models/wiki_service.rb +233 -233
  26. data/app/models/wiki_words.rb +23 -23
  27. data/app/views/admin/create_system.rhtml +83 -83
  28. data/app/views/admin/create_web.rhtml +69 -69
  29. data/app/views/admin/edit_web.rhtml +137 -136
  30. data/app/views/file/file.rhtml +18 -18
  31. data/app/views/file/import.rhtml +22 -22
  32. data/app/views/layouts/default.rhtml +86 -85
  33. data/app/views/markdown_help.rhtml +12 -12
  34. data/app/views/mixed_help.rhtml +6 -6
  35. data/app/views/navigation.rhtml +30 -30
  36. data/app/views/rdoc_help.rhtml +12 -12
  37. data/app/views/textile_help.rhtml +24 -24
  38. data/app/views/wiki/authors.rhtml +11 -11
  39. data/app/views/wiki/edit.rhtml +39 -39
  40. data/app/views/wiki/export.rhtml +12 -12
  41. data/app/views/wiki/feeds.rhtml +14 -14
  42. data/app/views/wiki/list.rhtml +64 -64
  43. data/app/views/wiki/locked.rhtml +23 -23
  44. data/app/views/wiki/login.rhtml +14 -14
  45. data/app/views/wiki/new.rhtml +31 -31
  46. data/app/views/wiki/page.rhtml +115 -115
  47. data/app/views/wiki/print.rhtml +14 -14
  48. data/app/views/wiki/published.rhtml +9 -9
  49. data/app/views/wiki/recently_revised.rhtml +26 -26
  50. data/app/views/wiki/revision.rhtml +103 -103
  51. data/app/views/wiki/rollback.rhtml +36 -36
  52. data/app/views/wiki/rss_feed.rhtml +22 -22
  53. data/app/views/wiki/search.rhtml +38 -38
  54. data/app/views/wiki/tex.rhtml +22 -22
  55. data/app/views/wiki/tex_web.rhtml +34 -34
  56. data/app/views/wiki/web_list.rhtml +18 -18
  57. data/app/views/wiki_words_help.rhtml +9 -9
  58. data/config/environment.rb +82 -82
  59. data/config/environments/development.rb +5 -5
  60. data/config/environments/production.rb +4 -4
  61. data/config/environments/test.rb +17 -17
  62. data/config/routes.rb +18 -18
  63. data/lib/active_record_stub.rb +31 -31
  64. data/lib/bluecloth_tweaked.rb +1127 -0
  65. data/lib/diff.rb +444 -444
  66. data/lib/instiki_errors.rb +14 -14
  67. data/lib/rdocsupport.rb +151 -151
  68. data/lib/redcloth_for_tex.rb +736 -736
  69. data/natives/osx/desktop_launcher/AppDelegate.h +18 -18
  70. data/natives/osx/desktop_launcher/AppDelegate.mm +109 -109
  71. data/natives/osx/desktop_launcher/Credits.html +15 -15
  72. data/natives/osx/desktop_launcher/English.lproj/MainMenu.nib/classes.nib +12 -12
  73. data/natives/osx/desktop_launcher/English.lproj/MainMenu.nib/info.nib +24 -24
  74. data/natives/osx/desktop_launcher/Info.plist +12 -12
  75. data/natives/osx/desktop_launcher/Instiki.xcode/project.pbxproj +592 -592
  76. data/natives/osx/desktop_launcher/Instiki_Prefix.pch +7 -7
  77. data/natives/osx/desktop_launcher/MakeDMG.sh +9 -9
  78. data/natives/osx/desktop_launcher/main.mm +14 -14
  79. data/natives/osx/desktop_launcher/version.plist +16 -16
  80. data/public/404.html +5 -5
  81. data/public/500.html +5 -5
  82. data/public/dispatch.rb +9 -9
  83. data/public/javascripts/edit_web.js +52 -52
  84. data/public/javascripts/prototype.js +336 -336
  85. data/public/stylesheets/instiki.css +222 -222
  86. data/script/breakpointer +4 -4
  87. data/script/server +93 -93
  88. metadata +4 -3
@@ -1,14 +1,14 @@
1
- <%
2
- @title = @page.plain_name
3
- @hide_navigation = true
4
- @style_additions = ".newWikiWord { background-color: white; font-style: italic; }"
5
- @inline_style = true
6
- %>
7
-
8
- <%= @page.display_content_for_export %>
9
-
10
- <div class="byline">
11
- <%= @page.revisions? ? "Revised" : "Created" %> on <%= @page.pretty_created_at %>
12
- by
13
- <%= @page.author_link({ :mode => (@link_mode || :show) }) %>
14
- </div>
1
+ <%
2
+ @title = @page.plain_name
3
+ @hide_navigation = true
4
+ @style_additions = ".newWikiWord { background-color: white; font-style: italic; }"
5
+ @inline_style = true
6
+ %>
7
+
8
+ <%= @page.display_content_for_export %>
9
+
10
+ <div class="byline">
11
+ <%= @page.revisions? ? "Revised" : "Created" %> on <%= @page.pretty_created_at %>
12
+ by
13
+ <%= @page.author_link({ :mode => (@link_mode || :show) }) %>
14
+ </div>
@@ -1,9 +1,9 @@
1
- <%
2
- @title = @page.plain_name
3
- @hide_navigation = false
4
- @style_additions = ".newWikiWord { background-color: white; font-style: italic; }"
5
- @inline_style = true
6
- @show_footer = true
7
- %>
8
-
9
- <%= @page.display_published %>
1
+ <%
2
+ @title = @page.plain_name
3
+ @hide_navigation = false
4
+ @style_additions = ".newWikiWord { background-color: white; font-style: italic; }"
5
+ @inline_style = true
6
+ @show_footer = true
7
+ %>
8
+
9
+ <%= @page.display_published %>
@@ -1,27 +1,27 @@
1
- <% @title = "Recently Revised" %>
2
-
3
- <%= categories_menu %>
4
-
5
- <% unless @pages_by_revision.empty? %>
6
- <% revision_date = @pages_by_revision.first.revised_on %>
7
- <h3><%= revision_date.strftime('%B %e, %Y') %></h3>
8
- <ul>
9
- <% for page in @pages_by_revision %>
10
- <% if page.revised_on < revision_date %>
11
- <% revision_date = page.revised_on %>
12
- </ul>
13
- <h3><%= revision_date.strftime('%B %e, %Y') %></h3>
14
- <ul>
15
- <% end %>
16
- <li>
17
- <%= link_to_existing_page page %>
18
- <div class="byline" style="margin-bottom: 0px">
19
- by <%= link_to_page(page.author) %>
20
- at <%= page.created_at.strftime "%H:%M" %>
21
- <%= "from #{page.author.ip}" if page.author.respond_to?(:ip) %>
22
- </div>
23
- </li>
24
- <% end %>
25
- </ul>
26
- <% end %>
1
+ <% @title = "Recently Revised" %>
2
+
3
+ <%= categories_menu %>
4
+
5
+ <% unless @pages_by_revision.empty? %>
6
+ <% revision_date = @pages_by_revision.first.revised_on %>
7
+ <h3><%= revision_date.strftime('%B %e, %Y') %></h3>
8
+ <ul>
9
+ <% for page in @pages_by_revision %>
10
+ <% if page.revised_on < revision_date %>
11
+ <% revision_date = page.revised_on %>
12
+ </ul>
13
+ <h3><%= revision_date.strftime('%B %e, %Y') %></h3>
14
+ <ul>
15
+ <% end %>
16
+ <li>
17
+ <%= link_to_existing_page page %>
18
+ <div class="byline" style="margin-bottom: 0px">
19
+ by <%= link_to_page(page.author) %>
20
+ at <%= page.created_at.strftime "%H:%M" %>
21
+ <%= "from #{page.author.ip}" if page.author.respond_to?(:ip) %>
22
+ </div>
23
+ </li>
24
+ <% end %>
25
+ </ul>
26
+ <% end %>
27
27
 
@@ -1,103 +1,103 @@
1
- <% @title = "#{@page.plain_name} (Rev ##{@revision.number})" %>
2
-
3
- <div id="revision">
4
- <%= @revision.display_content %>
5
- </div>
6
-
7
- <div id="changes" style="display: none">
8
- <p style="background: #eee; padding: 3px; border: 1px solid silver">
9
- <small>
10
- Showing changes from revision #<%= @revision.number - 1 %> to #<%= @revision.number %>:
11
- <ins class="diffins">Added</ins> | <del class="diffdel">Removed</del>
12
- </small>
13
- </p>
14
-
15
- <%= @revision.display_diff %>
16
- </div>
17
-
18
-
19
- <div class="byline">
20
- <%= "Revision from #{@revision.pretty_created_at} by" %>
21
- <%= link_to_page @revision.author %>
22
- </div>
23
-
24
- <div class="navigation">
25
-
26
- <% if @revision.next_revision %>
27
- <% if @revision.next_revision.number < (@page.revisions.length - 1) %>
28
- <%= link_to('Forward in time',
29
- {:web => @web.address, :action => 'revision', :id => @page.name,
30
- :rev => @revision.next_revision.number},
31
- {:class => 'navlink'})
32
- %>
33
- <% else %>
34
- <%= link_to('Forward in time',
35
- {:web => @web.address, :action => 'show', :id => @page.name},
36
- {:class => 'navlink'})
37
- %>
38
- <% end %>
39
- (<%= @revision.page.revisions.length - @revision.next_revision.number %> more)
40
- <% end %>
41
-
42
- <% if @revision.next_revision && @revision.previous_revision %>
43
- |
44
- <% end %>
45
-
46
- <% if @revision.previous_revision %>
47
- <%= link_to('Back in time',
48
- {:web => @web.address, :action => 'revision', :id => @page.name,
49
- :rev => @revision.previous_revision.number},
50
- {:class => 'navlink'})
51
- %>
52
- (<%= @revision.previous_revision.number + 1 %> more)
53
- <% end %>
54
-
55
- |
56
- <%= link_to('See current', {:web => @web.address, :action => 'show', :id => @page.name},
57
- {:class => 'navlink'})
58
- %>
59
-
60
- <% if @revision.previous_revision %>
61
- <span id="show_changes">
62
- | <a href="#" onClick="toggleChanges(); return false;">See changes</a>
63
- </span>
64
- <span id="hide_changes" style="display: none">
65
- | <a href="#" onClick="toggleChanges(); return false;">Hide changes</a>
66
- </span>
67
- <% end %>
68
-
69
- |
70
-
71
- <%= link_to('Rollback',
72
- {:web => @web.address, :action => 'rollback', :id => @page.name, :rev => @revision.number},
73
- {:class => 'navlink'})
74
- %>
75
-
76
- <% if @page.references.length > 0 %>
77
- <small>
78
- | Linked from:
79
- <%= @page.references.collect { |ref|
80
- link_to ref.name, :web => @web.address, :action => 'show', :id => ref.name
81
- }.join(", ")
82
- %>
83
- </small>
84
- <% else %>
85
- Orphan page
86
- <% end %>
87
- </div>
88
-
89
- <script language="Javascript">
90
- function toggleChanges() {
91
- if (document.getElementById("changes").style.display == "none") {
92
- document.getElementById("changes").style.display = "block";
93
- document.getElementById("revision").style.display = "none";
94
- document.getElementById("show_changes").style.display = "none";
95
- document.getElementById("hide_changes").style.display = "inline";
96
- } else {
97
- document.getElementById("changes").style.display = "none";
98
- document.getElementById("revision").style.display = "block";
99
- document.getElementById("show_changes").style.display = "inline";
100
- document.getElementById("hide_changes").style.display = "none";
101
- }
102
- }
103
- </script>
1
+ <% @title = "#{@page.plain_name} (Rev ##{@revision.number})" %>
2
+
3
+ <div id="revision">
4
+ <%= @revision.display_content %>
5
+ </div>
6
+
7
+ <div id="changes" style="display: none">
8
+ <p style="background: #eee; padding: 3px; border: 1px solid silver">
9
+ <small>
10
+ Showing changes from revision #<%= @revision.number - 1 %> to #<%= @revision.number %>:
11
+ <ins class="diffins">Added</ins> | <del class="diffdel">Removed</del>
12
+ </small>
13
+ </p>
14
+
15
+ <%= @revision.display_diff %>
16
+ </div>
17
+
18
+
19
+ <div class="byline">
20
+ <%= "Revision from #{@revision.pretty_created_at} by" %>
21
+ <%= link_to_page @revision.author %>
22
+ </div>
23
+
24
+ <div class="navigation">
25
+
26
+ <% if @revision.next_revision %>
27
+ <% if @revision.next_revision.number < (@page.revisions.length - 1) %>
28
+ <%= link_to('Forward in time',
29
+ {:web => @web.address, :action => 'revision', :id => @page.name,
30
+ :rev => @revision.next_revision.number},
31
+ {:class => 'navlink'})
32
+ %>
33
+ <% else %>
34
+ <%= link_to('Forward in time',
35
+ {:web => @web.address, :action => 'show', :id => @page.name},
36
+ {:class => 'navlink'})
37
+ %>
38
+ <% end %>
39
+ (<%= @revision.page.revisions.length - @revision.next_revision.number %> more)
40
+ <% end %>
41
+
42
+ <% if @revision.next_revision && @revision.previous_revision %>
43
+ |
44
+ <% end %>
45
+
46
+ <% if @revision.previous_revision %>
47
+ <%= link_to('Back in time',
48
+ {:web => @web.address, :action => 'revision', :id => @page.name,
49
+ :rev => @revision.previous_revision.number},
50
+ {:class => 'navlink'})
51
+ %>
52
+ (<%= @revision.previous_revision.number + 1 %> more)
53
+ <% end %>
54
+
55
+ |
56
+ <%= link_to('See current', {:web => @web.address, :action => 'show', :id => @page.name},
57
+ {:class => 'navlink'})
58
+ %>
59
+
60
+ <% if @revision.previous_revision %>
61
+ <span id="show_changes">
62
+ | <a href="#" onClick="toggleChanges(); return false;">See changes</a>
63
+ </span>
64
+ <span id="hide_changes" style="display: none">
65
+ | <a href="#" onClick="toggleChanges(); return false;">Hide changes</a>
66
+ </span>
67
+ <% end %>
68
+
69
+ |
70
+
71
+ <%= link_to('Rollback',
72
+ {:web => @web.address, :action => 'rollback', :id => @page.name, :rev => @revision.number},
73
+ {:class => 'navlink'})
74
+ %>
75
+
76
+ <% if @page.references.length > 0 %>
77
+ <small>
78
+ | Linked from:
79
+ <%= @page.references.collect { |ref|
80
+ link_to ref.name, :web => @web.address, :action => 'show', :id => ref.name
81
+ }.join(", ")
82
+ %>
83
+ </small>
84
+ <% else %>
85
+ Orphan page
86
+ <% end %>
87
+ </div>
88
+
89
+ <script language="Javascript">
90
+ function toggleChanges() {
91
+ if (document.getElementById("changes").style.display == "none") {
92
+ document.getElementById("changes").style.display = "block";
93
+ document.getElementById("revision").style.display = "none";
94
+ document.getElementById("show_changes").style.display = "none";
95
+ document.getElementById("hide_changes").style.display = "inline";
96
+ } else {
97
+ document.getElementById("changes").style.display = "none";
98
+ document.getElementById("revision").style.display = "block";
99
+ document.getElementById("show_changes").style.display = "inline";
100
+ document.getElementById("hide_changes").style.display = "none";
101
+ }
102
+ }
103
+ </script>
@@ -1,36 +1,36 @@
1
- <%
2
- @title = "Rollback to #{@page.plain_name} Rev ##{@revision.number}"
3
- @content_width = 720
4
- @hide_navigation = true
5
- %>
6
-
7
- <%= "<p style='color:red'>Please correct the error that caused this error in rendering:<br/><small>#{@params["msg"]}</small></p>" if @params["msg"] %>
8
-
9
- <%= form_tag({:web => @web.address, :action => 'save', :id => @page.name},
10
- {:id => 'editForm', :method => 'post', :onSubmit => 'cleanAuthorName();'})
11
- %>
12
- <p>
13
- <textarea name="content" style="font-size: 12px; width: 450px; height: 500px"><%= @revision.content %></textarea>
14
- </p>
15
- <p>
16
- <input type="submit" value="Update" accesskey="u" /> as
17
- <input type="text" name="author" id="authorName" value="<%= @author %>"
18
- onClick="this.value == 'AnonymousCoward' ? this.value = '' : true" />
19
- |
20
- <% link_to('Cancel',
21
- {:web => @web.address, :action => 'cancel_edit', :id => @page.name},
22
- {:accesskey => 'c'})
23
- %>
24
- <small>(unlocks page)</small>
25
- </p>
26
- <%= end_form_tag %>
27
-
28
- <%= render("#{@web.markup}_help") if @web %>
29
-
30
- <script language="JavaScript1.2">
31
- function cleanAuthorName() {
32
- if (document.getElementById('authorName').value == "") {
33
- document.getElementById('authorName').value = 'AnonymousCoward';
34
- }
35
- }
36
- </script>
1
+ <%
2
+ @title = "Rollback to #{@page.plain_name} Rev ##{@revision.number}"
3
+ @content_width = 720
4
+ @hide_navigation = true
5
+ %>
6
+
7
+ <%= "<p style='color:red'>Please correct the error that caused this error in rendering:<br/><small>#{@params["msg"]}</small></p>" if @params["msg"] %>
8
+
9
+ <%= form_tag({:web => @web.address, :action => 'save', :id => @page.name},
10
+ {:id => 'editForm', :method => 'post', :onSubmit => 'cleanAuthorName();'})
11
+ %>
12
+ <p>
13
+ <textarea name="content" style="font-size: 12px; width: 450px; height: 500px"><%= @revision.content %></textarea>
14
+ </p>
15
+ <p>
16
+ <input type="submit" value="Update" accesskey="u" /> as
17
+ <input type="text" name="author" id="authorName" value="<%= @author %>"
18
+ onClick="this.value == 'AnonymousCoward' ? this.value = '' : true" />
19
+ |
20
+ <% link_to('Cancel',
21
+ {:web => @web.address, :action => 'cancel_edit', :id => @page.name},
22
+ {:accesskey => 'c'})
23
+ %>
24
+ <small>(unlocks page)</small>
25
+ </p>
26
+ <%= end_form_tag %>
27
+
28
+ <%= render("#{@web.markup}_help") if @web %>
29
+
30
+ <script language="JavaScript1.2">
31
+ function cleanAuthorName() {
32
+ if (document.getElementById('authorName').value == "") {
33
+ document.getElementById('authorName').value = 'AnonymousCoward';
34
+ }
35
+ }
36
+ </script>
@@ -1,22 +1,22 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
3
- <channel>
4
- <title><%= @web.name %></title>
5
- <link><%= url_for :only_path => false, :web => @web_name, :action => @link_action, :id => 'HomePage' %></link>
6
- <description>An Instiki wiki</description>
7
- <language>en-us</language>
8
- <ttl>40</ttl>
9
- <% for page in @pages_by_revision %>
10
- <item>
11
- <title><%= page.plain_name %></title>
12
- <% unless @hide_description %>
13
- <description><%= h page.display_content %></description>
14
- <% end %>
15
- <pubDate><%= page.created_at.strftime "%a, %e %b %Y %H:%M:%S %Z" %></pubDate>
16
- <guid><%= url_for :only_path => false, :web => @web_name, :action => @link_action, :id => page.name %></guid>
17
- <link><%= url_for :only_path => false, :web => @web_name, :action => @link_action, :id => page.name %></link>
18
- <dc:creator><%= WikiWords.separate(page.author) %></dc:creator>
19
- </item>
20
- <% end %>
21
- </channel>
22
- </rss>
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
3
+ <channel>
4
+ <title><%= @web.name %></title>
5
+ <link><%= url_for :only_path => false, :web => @web_name, :action => @link_action, :id => 'HomePage' %></link>
6
+ <description>An Instiki wiki</description>
7
+ <language>en-us</language>
8
+ <ttl>40</ttl>
9
+ <% for page in @pages_by_revision %>
10
+ <item>
11
+ <title><%= h page.plain_name %></title>
12
+ <% unless @hide_description %>
13
+ <description><%= h page.display_content %></description>
14
+ <% end %>
15
+ <pubDate><%= page.created_at.getgm.strftime "%a, %d %b %Y %H:%M:%S Z" %></pubDate>
16
+ <guid><%= url_for :only_path => false, :web => @web_name, :action => @link_action, :id => page.name %></guid>
17
+ <link><%= url_for :only_path => false, :web => @web_name, :action => @link_action, :id => page.name %></link>
18
+ <dc:creator><%= WikiWords.separate(page.author) %></dc:creator>
19
+ </item>
20
+ <% end %>
21
+ </channel>
22
+ </rss>
@@ -1,38 +1,38 @@
1
- <% @title = "Search results for \"#{@params["query"]}\"" %>
2
-
3
- <% unless @title_results.empty? %>
4
- <h2><%= @title_results.length %> page(s) containing search string in the page name:</h2>
5
- <ul>
6
- <% for page in @title_results %>
7
- <li>
8
- <%= link_to page.plain_name, :web => @web.address, :action => 'show', :id => page.name %>
9
- </li>
10
- <% end %>
11
- </ul>
12
- <% end %>
13
-
14
-
15
- <% unless @results.empty? %>
16
- <h2> <%= @results.length %> page(s) containing search string in the page text:</h2>
17
- <ul>
18
- <% for page in @results %>
19
- <li>
20
- <%= link_to page.plain_name, :web => @web.address, :action => 'show', :id => page.name %>
21
- </li>
22
- <% end %>
23
- </ul>
24
- <% end %>
25
-
26
- <% if (@results + @title_results).empty? %>
27
- <h2>No pages contains "<%= @params["query"] %>" </h2>
28
- <p>
29
- Perhaps you should try expanding your query. Remember that Instiki searches for entire
30
- phrases, so if you search for "all that jazz" it will not match pages that contain these
31
- words in separation&mdash;only as a sentence fragment.
32
- </p>
33
- <p>
34
- If you're a high-tech computer wizard, you might even want try constructing a Ruby regular
35
- expression. That's actually what Instiki uses, so go right ahead and flex your
36
- "[a-z]*Leet?RegExpSkill(s|z)"
37
- </p>
38
- <% end %>
1
+ <% @title = "Search results for \"#{@params["query"]}\"" %>
2
+
3
+ <% unless @title_results.empty? %>
4
+ <h2><%= @title_results.length %> page(s) containing search string in the page name:</h2>
5
+ <ul>
6
+ <% for page in @title_results %>
7
+ <li>
8
+ <%= link_to page.plain_name, :web => @web.address, :action => 'show', :id => page.name %>
9
+ </li>
10
+ <% end %>
11
+ </ul>
12
+ <% end %>
13
+
14
+
15
+ <% unless @results.empty? %>
16
+ <h2> <%= @results.length %> page(s) containing search string in the page text:</h2>
17
+ <ul>
18
+ <% for page in @results %>
19
+ <li>
20
+ <%= link_to page.plain_name, :web => @web.address, :action => 'show', :id => page.name %>
21
+ </li>
22
+ <% end %>
23
+ </ul>
24
+ <% end %>
25
+
26
+ <% if (@results + @title_results).empty? %>
27
+ <h2>No pages contains "<%= @params["query"] %>" </h2>
28
+ <p>
29
+ Perhaps you should try expanding your query. Remember that Instiki searches for entire
30
+ phrases, so if you search for "all that jazz" it will not match pages that contain these
31
+ words in separation&mdash;only as a sentence fragment.
32
+ </p>
33
+ <p>
34
+ If you're a high-tech computer wizard, you might even want try constructing a Ruby regular
35
+ expression. That's actually what Instiki uses, so go right ahead and flex your
36
+ "[a-z]*Leet?RegExpSkill(s|z)"
37
+ </p>
38
+ <% end %>