instiki 0.9.2 → 0.10.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (102) hide show
  1. data/CHANGELOG +165 -0
  2. data/README +68 -172
  3. data/app/controllers/admin_controller.rb +94 -0
  4. data/app/controllers/application.rb +131 -0
  5. data/app/controllers/file_controller.rb +129 -0
  6. data/app/controllers/wiki_controller.rb +354 -0
  7. data/{libraries/view_helper.rb → app/helpers/application_helper.rb} +68 -33
  8. data/app/models/author.rb +3 -3
  9. data/app/models/chunks/category.rb +33 -31
  10. data/app/models/chunks/chunk.rb +86 -20
  11. data/app/models/chunks/engines.rb +54 -38
  12. data/app/models/chunks/include.rb +41 -29
  13. data/app/models/chunks/literal.rb +31 -19
  14. data/app/models/chunks/nowiki.rb +28 -31
  15. data/app/models/chunks/test.rb +18 -18
  16. data/app/models/chunks/uri.rb +182 -97
  17. data/app/models/chunks/wiki.rb +141 -82
  18. data/app/models/file_yard.rb +58 -0
  19. data/app/models/page.rb +112 -86
  20. data/app/models/page_lock.rb +22 -23
  21. data/app/models/page_set.rb +89 -64
  22. data/app/models/revision.rb +123 -90
  23. data/app/models/web.rb +176 -89
  24. data/app/models/wiki_content.rb +207 -105
  25. data/app/models/wiki_service.rb +233 -83
  26. data/app/models/wiki_words.rb +23 -25
  27. data/app/views/{wiki/new_system.rhtml → admin/create_system.rhtml} +83 -78
  28. data/app/views/{wiki/new_web.rhtml → admin/create_web.rhtml} +69 -64
  29. data/app/views/admin/edit_web.rhtml +136 -0
  30. data/app/views/file/file.rhtml +19 -0
  31. data/app/views/file/import.rhtml +23 -0
  32. data/app/views/layouts/default.rhtml +85 -0
  33. data/app/views/markdown_help.rhtml +12 -16
  34. data/app/views/mixed_help.rhtml +7 -0
  35. data/app/views/navigation.rhtml +30 -19
  36. data/app/views/rdoc_help.rhtml +12 -16
  37. data/app/views/textile_help.rhtml +24 -28
  38. data/app/views/wiki/authors.rhtml +11 -13
  39. data/app/views/wiki/edit.rhtml +39 -31
  40. data/app/views/wiki/export.rhtml +12 -14
  41. data/app/views/wiki/feeds.rhtml +14 -10
  42. data/app/views/wiki/list.rhtml +64 -57
  43. data/app/views/wiki/locked.rhtml +23 -14
  44. data/app/views/wiki/login.rhtml +14 -11
  45. data/app/views/wiki/new.rhtml +31 -27
  46. data/app/views/wiki/page.rhtml +115 -81
  47. data/app/views/wiki/print.rhtml +14 -16
  48. data/app/views/wiki/published.rhtml +9 -10
  49. data/app/views/wiki/recently_revised.rhtml +27 -30
  50. data/app/views/wiki/revision.rhtml +103 -81
  51. data/app/views/wiki/rollback.rhtml +14 -9
  52. data/app/views/wiki/rss_feed.rhtml +22 -22
  53. data/app/views/wiki/search.rhtml +38 -15
  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 -13
  57. data/app/views/wiki_words_help.rhtml +9 -8
  58. data/config/environment.rb +82 -0
  59. data/config/environments/development.rb +5 -0
  60. data/config/environments/production.rb +4 -0
  61. data/config/environments/test.rb +17 -0
  62. data/config/routes.rb +18 -0
  63. data/instiki +6 -67
  64. data/instiki.rb +3 -0
  65. data/lib/active_record_stub.rb +31 -0
  66. data/{libraries/diff → lib}/diff.rb +444 -475
  67. data/lib/instiki_errors.rb +15 -0
  68. data/{libraries → lib}/rdocsupport.rb +151 -155
  69. data/lib/redcloth_for_tex.rb +736 -0
  70. data/natives/osx/desktop_launcher/AppDelegate.h +18 -0
  71. data/natives/osx/desktop_launcher/AppDelegate.mm +109 -0
  72. data/natives/osx/desktop_launcher/Credits.html +16 -0
  73. data/natives/osx/desktop_launcher/English.lproj/InfoPlist.strings +0 -0
  74. data/natives/osx/desktop_launcher/English.lproj/MainMenu.nib/classes.nib +13 -0
  75. data/natives/osx/desktop_launcher/English.lproj/MainMenu.nib/info.nib +24 -0
  76. data/natives/osx/desktop_launcher/English.lproj/MainMenu.nib/objects.nib +0 -0
  77. data/natives/osx/desktop_launcher/Info.plist +13 -0
  78. data/natives/osx/desktop_launcher/Instiki.xcode/project.pbxproj +592 -0
  79. data/natives/osx/desktop_launcher/Instiki_Prefix.pch +7 -0
  80. data/natives/osx/desktop_launcher/MakeDMG.sh +9 -0
  81. data/natives/osx/desktop_launcher/main.mm +14 -0
  82. data/natives/osx/desktop_launcher/version.plist +16 -0
  83. data/public/404.html +6 -0
  84. data/public/500.html +6 -0
  85. data/public/dispatch.rb +10 -0
  86. data/public/favicon.ico +0 -0
  87. data/public/javascripts/edit_web.js +52 -0
  88. data/public/javascripts/prototype.js +336 -0
  89. data/{app/views/static_style_sheet.rhtml → public/stylesheets/instiki.css} +221 -198
  90. data/script/breakpointer +4 -0
  91. data/script/server +93 -0
  92. metadata +59 -32
  93. data/app/controllers/wiki.rb +0 -389
  94. data/app/models/chunks/match.rb +0 -19
  95. data/app/views/bottom.rhtml +0 -4
  96. data/app/views/top.rhtml +0 -49
  97. data/app/views/wiki/edit_web.rhtml +0 -138
  98. data/libraries/action_controller_servlet.rb +0 -177
  99. data/libraries/erb.rb +0 -490
  100. data/libraries/madeleine_service.rb +0 -68
  101. data/libraries/redcloth_for_tex.rb +0 -869
  102. data/libraries/web_controller_server.rb +0 -81
@@ -0,0 +1,165 @@
1
+ * 0.10.0:
2
+ Ported to ActionPack
3
+ RedCloth 3.0.3
4
+ BlueCloth is phased out, Markdown is rendered by RedCloth
5
+ Mix markup option understands both Textile and Markdown on the same page
6
+ Instiki can serve static content (such as HTML or plain-text files) from ./public
7
+ directory
8
+ Much friendlier admin interface
9
+ Wiki link syntax doesn't conflict with Textile hyperlink syntax. Therefore
10
+ "textile link":LinkToSomePlace will not look insane.
11
+ RSS feeds accept query parameters, sush as
12
+ http://localhost:2500/wiki/rss_with_headlines?start=2005-02-18&end=2005-02-19&limit=10
13
+ RSS feed with page contents for a password-protected web behaves as follows:
14
+ if the web is published, RSS feed links to the published version of the web
15
+ otherwise, the feed is not available
16
+ Madeleine will check every hour if there are new commands in the log or 24 hours have
17
+ passed since last snapshot, and take snapshot if either of these conditions is true
18
+ Madeleine will also not log read-only operations, resulting in a better performance
19
+ Wiki extracts (to HTML and plain text) will leave only the last extract file in ./storage
20
+ Wiki search handles multibyte (UTF-8) characters correctly
21
+ Local hyperlinks in published pages point to published pages [Michael DeHaan]
22
+ Fixed a bug that sometimes caused all past revisions of a page to be "forgotten" on
23
+ restart
24
+ Fixed parsing of URIs with a port number (http://someplace.org:8080)
25
+ Instiki will not fork itself on a *nix, unless explicitly asked to
26
+ Instiki can bind to IPs other than 127.0.0.1 (command-line option)
27
+ Revisions that do not change anything on the page are rejected
28
+ Automated tests for all controller actions
29
+ category: lines are presented as links to "All Pages" for relevant categories
30
+ Search looks at page titles, as well as content
31
+ Multiple other usability enhancements and bug fixes
32
+
33
+ * 0.9.2:
34
+ Rollback takes the user to an edit form. The form has to be submitted for the change to
35
+ take place.
36
+ Changed to use inline style on published pages
37
+ Fixed "forward in time" on the last revision before current page
38
+ Instiki won't log bogus error messages when creating a new Wiki
39
+ Fixed deprecation warning for Object.id (introduced in Ruby 1.8.2)
40
+ Madeleine upgraded to 0.7.1
41
+ Madeleine snapshots are compressed
42
+ Packaged as a gem
43
+
44
+ * 0.9.1:
45
+ Added performance improvements for updating existing pages
46
+ Fixed IP logging and RSS feeds behind proxies [With help from Guan Yang]
47
+ Fixed default storage directory (borked running on Windows) [Spotted by Curt Hibbs]
48
+
49
+ * 0.9.0:
50
+ Added aliased links such as [[HomePage|that nice home page]] [Mark Reid]
51
+ Added include other page content with [[!include TableOfContents]] [Mark Reid]
52
+ Added delete orphan pages from the Edit Web screen [by inspiration from Simon Arnaud]
53
+ Added logging of IP address for authors (who's behind the rollback wars)
54
+ Added Categories pages through backlinks (use "categories: news, instiki" on start of line) [Mark Reid]
55
+ Added option to use bracket-style wiki links only (and hence ban WikiWords)
56
+ Added command-line option to specify different storage path
57
+ Added print view without navigation
58
+ Added character and page (2275 characters including spaces) counter (important for student papers)
59
+ Off by default, activate it on the Edit Web screen
60
+ Added LaTeX/PDF integration on Textile installations with pdflatex installed on system (EXPERIMENTAL)
61
+ Use the home page as a table of contents with a unordered list to control sections
62
+ Added limit of 15 to the number of pages included in RSS feed
63
+ Moved static parts of stylesheet to separate file [Lau T�rnskov]
64
+ Fixed better semantics for revision movement [Ryan Singer]
65
+ Fixed color diffs to work much better [Xen/Mertz/Atkins]
66
+ Fixed performance problems for All Pages list [Dennis Mertz]
67
+ Fixed lots of rendering bugs [Mark Reid]
68
+ Upgraded to RedCloth 2.0.11 [integrating the fine work of Dennis Mertz]
69
+
70
+ * 0.8.9:
71
+ Added color diffs to see changes between revisions [Bill Atkins]
72
+ They're aren't quite perfect yet as new paragraphs split the <ins> tags (hence 0.8.9, not 0.9.0)
73
+ Added redirect to edit if content of page generates an error
74
+ (so the page doesn't become unusable on bugs in the markup engines)
75
+ Fixed update Web with different address bug [Denis Metz]
76
+ Fixed a bunch of wiki word rendering issues by doing wiki word detection and replacment at once
77
+ Upgraded to BlueCloth 0.0.3b (should fix loads of problems on Markdown wikis)
78
+
79
+ * 0.8.5:
80
+ Instiki can now serve as a CMS by running a password-protected web with a published front
81
+ Added version check at startup (Instiki needs Ruby 1.8.1)
82
+
83
+ * 0.8.1:
84
+ Actually included RedCloth 2.0.7 in the release
85
+
86
+ * 0.8.0:
87
+ NOTE: Single-web wikis created in versions prior to 0.8.0 have "instiki" as their system password
88
+ Accepts wiki words in bracket style. Ex: [[wiki word]], [[c]], [[We could'nt have done it!]]
89
+ Accepts camel-case wiki words in all latin, greek, cyrillian, and armenian unicode characters
90
+ Many thanks to Guan Yang for building the higher- and lower-case lookup tables
91
+ And thanks to Simon Arnaud for the initial patch that got the work started
92
+ Changed charset to UTF-8
93
+ Cut down on command-line options and replaced them with an per-web config screen
94
+ Added option to extend the stylesheet on a per-web basis to tweak the look in details
95
+ Added simple color options for variety
96
+ Added option to add/remove password protection on each web
97
+ Added the wiki name of the author locking a given page (instead of just "someone")
98
+ Removed single/multi-web distinction -- all Instikis are now multi-web
99
+ Load libraries from an unshifted load path, so that old installed libraries doesn't clash [Emiel van de Laar]
100
+ Keeps the author cookie forever, so you don't have to enter your name again and again
101
+ Fixed XHTML so it validates [Bruce D'Arcus]
102
+ Authors are no longer listed under orphan pages
103
+ Added export to markup (great for backups, potentially for switching wiki engine)
104
+ Don't link wiki words that proceeds from either /, = or ?
105
+ (http://c2.com/cgi/wiki?WikiWikiClones, /show/HomePage, cgi.pl?show=WikiWord without escaping)
106
+ Accessing an unexisting page redirects to a different url (/new/PageName)
107
+ Increased snapshot time to just once a day (cuts down on disk storage requirements)
108
+ Made RDoc support work better with 1.8.1 [Mauricio Fern�ndez]
109
+ Added convinient redirect from /wiki/ to /wiki/show/HomePage
110
+ Fixed BlueCloth bug with backticks at start of line
111
+ Updated to RedCloth 2.0.7 (and linked to the new Textile reference)
112
+
113
+ * 0.7.0:
114
+ Added Markdown (BlueCloth) and RDoc [Mauricio Fern�ndez] as command-line markup choices
115
+ Added wanted and orphan page lists to All pages (only show up if there's actually orphan or wanted pages)
116
+ Added ISO-8859-1 as XML encoding in RSS feeds (makes FeedReader among others happy for special entities)
117
+ Added proper links in the RSS feed (but the body links are still relative, which NNW and others doesn't grok)
118
+ Added access keys: E => Edit, H => HomePage, A => All Pages, U => Recently Revised, X => Export
119
+ Added password-login through URL (so you can subscribe to feed on a protected web)
120
+ Added web passwords to the feed links for protected webs, so they work without manual login
121
+ Added the web name in small letters above all pages within a web
122
+ Polished authors and recently revised
123
+ Updated to RedCloth 2.0.6
124
+ Changed content type for RSS feeds to text/xml (makes Mozilla Aggreg8 happy)
125
+ Changed searching to be case insensitive
126
+ Changed HomePage to display the name of the web instead
127
+ Changed exported HTML pages to be valid XHTML (which can be preprocessed by XSLT)
128
+ Fixed broken recently revised
129
+
130
+ * 0.6.0:
131
+ Fixed Windows compatibility [Florian]
132
+ Fixed bug that would prevent Madeleine from taking snapshots in Daemon mode
133
+ Added export entire web as HTML in a zip file
134
+ Added RSS feeds
135
+ Added proper getops support for the growing number of options [Florian]
136
+ Added safe mode that forbids style options in RedCloth [Florian]
137
+ Updated RedCloth to 2.0.5
138
+
139
+ * 0.5.0:
140
+ NOTE: 0.5.0 is NOT compatible with databases from earlier versions
141
+ Added revisions
142
+ Added multiple webs
143
+ Added password protection for webs on multi-web setups
144
+ Added the notion of authors (that are saved in a cookie)
145
+ Added command-line option for not running as a Daemon on Unix
146
+
147
+ * 0.3.1:
148
+ Added option to escape wiki words with \
149
+
150
+ * 0.3.0:
151
+ Brought all files into common style (including Textile help on the edit page)
152
+ Added page locking (if someone already is editing a page there's a warning)
153
+ Added daemon abilities on Unix (keep Instiki running after you close the terminal)
154
+ Made port 2500 the default port, so Instiki can be launched by dobbelt-click
155
+ Added Textile cache to speed-up rendering of large pages
156
+ Made WikiWords look like "Wiki Words"
157
+ Updated RedCloth to 2.0.4
158
+
159
+ * 0.2.5:
160
+ Upgraded to RedCloth 2.0.2 and Madeleine 0.6.1, which means the
161
+ Windows problems are gone. Also fixed a problem with wikiwords
162
+ that used part of other wikiwords.
163
+
164
+ * 0.2.0:
165
+ First public release
data/README CHANGED
@@ -1,172 +1,68 @@
1
- ===What is Instiki?
2
-
3
- Admitted, it's YetAnotherWikiClone[http://c2.com/cgi/wiki?WikiWikiClones], but with a strong focus
4
- on simplicity of installation and running:
5
-
6
- Step 1. Download
7
-
8
- Step 2. Run "instiki"
9
-
10
- Step 3. Chuckle... "There's no step three!" (TM)
11
-
12
- You're now running a perfectly suitable wiki on port 2500
13
- that'll present you with one-step setup, followed by a textarea for the home page
14
- on http://localhost:2500.
15
-
16
- Instiki lowers the barriers of interest for when you might consider
17
- using a wiki. It's so simple to get running that you'll find yourself
18
- using it for anything -- taking notes, brainstorming, organizing a
19
- gathering.
20
-
21
- ===Features:
22
- * Regular expression search: Find deep stuff really fast
23
- * Revisions: Follow the changes on every page from birth. Rollback to an earlier rev
24
- * Export to HTML or markup in a zip: Take the entire wiki with you home or for reference
25
- * RSS feeds to track recently revised pages
26
- * Multiple webs: Create separate wikis with their own namespace
27
- * Password-protected webs: Keep it private
28
- * Authors: Each revision is associated with an author, so you can see who changed what
29
- * Reference tracker: Which other pages are pointing to the current?
30
- * Speed: Using Madelein[http://madeleine.sourceforge.net] for persistence (all pages are in memory)
31
- * Three markup choices: Textile[http://www.textism.com/tools/textile]
32
- (default / RedCloth[http://www.whytheluckystiff.net/ruby/redcloth]),
33
- Markdown (BlueCloth[http://bluecloth.rubyforge.org]), and RDoc[http://rdoc.sourceforge.net/doc]
34
- * Embedded webserver: Through WEBrick[http://www.webrick.org]
35
- * Internationalization: Wiki words in any latin, greek, cyrillian, or armenian characters
36
- * Color diffs: Track changes through revisions
37
-
38
- ===Missing:
39
- * File attachments
40
-
41
- ===Install from gem:
42
- * Install rubygems
43
- * Run "gem install instiki"
44
- * Change to a directory where you want Instiki to keep its data files (for example, ~/instiki/)
45
- * Run "instiki" - this will create a "storage" directory (for example, ~/instiki/storage), and start a new Wiki service
46
-
47
- Make sure that you always launch Instiki from the same working directory, or specify the storage directory in runtime parameters, such as:
48
- instiki --storage ~/instiki/storage
49
-
50
- ===Command-line options:
51
- * Run "instiki --help"
52
-
53
- ===History:
54
- * 0.9.2: Rollback takes the user to an edit form. The form has to be submitted for the change to take place.
55
- Changed to use inline style on published pages
56
- Fixed "forward in time" on the last revision before current page
57
- Instiki won't log bogus error messages when creating a new Wiki.
58
- Fixed deprecation warning for Object.id (introduced in Ruby 1.8.2)
59
- Madeleine upgraded to 0.7.1
60
- Madeleine snapshots are compressed
61
- Packaged as a gem
62
- * 0.9.1: Added performance improvements for updating existing pages
63
- Fixed IP logging and RSS feeds behind proxies [With help from Guan Yang]
64
- Fixed default storage directory (borked running on Windows) [Spotted by Curt Hibbs]
65
- * 0.9.0: Added aliased links such as [[HomePage|that nice home page]] [Mark Reid]
66
- Added include other page content with [[!include TableOfContents]] [Mark Reid]
67
- Added delete orphan pages from the Edit Web screen [by inspiration from Simon Arnaud]
68
- Added logging of IP address for authors (who's behind the rollback wars)
69
- Added Categories pages through backlinks (use "categories: news, instiki" on start of line) [Mark Reid]
70
- Added option to use bracket-style wiki links only (and hence ban WikiWords)
71
- Added command-line option to specify different storage path
72
- Added print view without navigation
73
- Added character and page (2275 characters including spaces) counter (important for student papers)
74
- Off by default, activate it on the Edit Web screen
75
- Added LaTeX/PDF integration on Textile installations with pdflatex installed on system (EXPERIMENTAL)
76
- Use the home page as a table of contents with a unordered list to control sections
77
- Added limit of 15 to the number of pages included in RSS feed
78
- Moved static parts of stylesheet to separate file [Lau T�rnskov]
79
- Fixed better semantics for revision movement [Ryan Singer]
80
- Fixed color diffs to work much better [Xen/Mertz/Atkins]
81
- Fixed performance problems for All Pages list [Dennis Mertz]
82
- Fixed lots of rendering bugs [Mark Reid]
83
- Upgraded to RedCloth 2.0.11 [integrating the fine work of Dennis Mertz]
84
- * 0.8.9: Added color diffs to see changes between revisions [Bill Atkins]
85
- They're aren't quite perfect yet as new paragraphs split the <ins> tags (hence 0.8.9, not 0.9.0)
86
- Added redirect to edit if content of page generates an error
87
- (so the page doesn't become unusable on bugs in the markup engines)
88
- Fixed update Web with different address bug [Denis Metz]
89
- Fixed a bunch of wiki word rendering issues by doing wiki word detection and replacment at once
90
- Upgraded to BlueCloth 0.0.3b (should fix loads of problems on Markdown wikis)
91
- * 0.8.5: Instiki can now serve as a CMS by running a password-protected web with a published front
92
- Added version check at startup (Instiki needs Ruby 1.8.1)
93
- * 0.8.1: Actually included RedCloth 2.0.7 in the release
94
- * 0.8.0: NOTE: Single-web wikis created in versions prior to 0.8.0 have "instiki" as their system password
95
- Accepts wiki words in bracket style. Ex: [[wiki word]], [[c]], [[We could'nt have done it!]]
96
- Accepts camel-case wiki words in all latin, greek, cyrillian, and armenian unicode characters
97
- Many thanks to Guan Yang for building the higher- and lower-case lookup tables
98
- And thanks to Simon Arnaud for the initial patch that got the work started
99
- Changed charset to UTF-8
100
- Cut down on command-line options and replaced them with an per-web config screen
101
- Added option to extend the stylesheet on a per-web basis to tweak the look in details
102
- Added simple color options for variety
103
- Added option to add/remove password protection on each web
104
- Added the wiki name of the author locking a given page (instead of just "someone")
105
- Removed single/multi-web distinction -- all Instikis are now multi-web
106
- Load libraries from an unshifted load path, so that old installed libraries doesn't clash [Emiel van de Laar]
107
- Keeps the author cookie forever, so you don't have to enter your name again and again
108
- Fixed XHTML so it validates [Bruce D'Arcus]
109
- Authors are no longer listed under orphan pages
110
- Added export to markup (great for backups, potentially for switching wiki engine)
111
- Don't link wiki words that proceeds from either /, = or ?
112
- (http://c2.com/cgi/wiki?WikiWikiClones, /show/HomePage, cgi.pl?show=WikiWord without escaping)
113
- Accessing an unexisting page redirects to a different url (/new/PageName)
114
- Increased snapshot time to just once a day (cuts down on disk storage requirements)
115
- Made RDoc support work better with 1.8.1 [Mauricio Fern�ndez]
116
- Added convinient redirect from /wiki/ to /wiki/show/HomePage
117
- Fixed BlueCloth bug with backticks at start of line
118
- Updated to RedCloth 2.0.7 (and linked to the new Textile reference)
119
- * 0.7.0: Added Markdown (BlueCloth) and RDoc [Mauricio Fern�ndez] as command-line markup choices
120
- Added wanted and orphan page lists to All pages (only show up if there's actually orphan or wanted pages)
121
- Added ISO-8859-1 as XML encoding in RSS feeds (makes FeedReader among others happy for special entities)
122
- Added proper links in the RSS feed (but the body links are still relative, which NNW and others doesn't grok)
123
- Added access keys: E => Edit, H => HomePage, A => All Pages, U => Recently Revised, X => Export
124
- Added password-login through URL (so you can subscribe to feed on a protected web)
125
- Added web passwords to the feed links for protected webs, so they work without manual login
126
- Added the web name in small letters above all pages within a web
127
- Polished authors and recently revised
128
- Updated to RedCloth 2.0.6
129
- Changed content type for RSS feeds to text/xml (makes Mozilla Aggreg8 happy)
130
- Changed searching to be case insensitive
131
- Changed HomePage to display the name of the web instead
132
- Changed exported HTML pages to be valid XHTML (which can be preprocessed by XSLT)
133
- Fixed broken recently revised
134
- * 0.6.0: Fixed Windows compatibility [Florian]
135
- Fixed bug that would prevent Madeleine from taking snapshots in Daemon mode
136
- Added export entire web as HTML in a zip file
137
- Added RSS feeds
138
- Added proper getops support for the growing number of options [Florian]
139
- Added safe mode that forbids style options in RedCloth [Florian]
140
- Updated RedCloth to 2.0.5
141
- * 0.5.0: NOTE: 0.5.0 is NOT compatible with databases from earlier versions
142
- Added revisions
143
- Added multiple webs
144
- Added password protection for webs on multi-web setups
145
- Added the notion of authors (that are saved in a cookie)
146
- Added command-line option for not running as a Daemon on Unix
147
- * 0.3.1: Added option to escape wiki words with \
148
- * 0.3.0: Brought all files into common style (including Textile help on the edit page)
149
- Added page locking (if someone already is editing a page there's a warning)
150
- Added daemon abilities on Unix (keep Instiki running after you close the terminal)
151
- Made port 2500 the default port, so Instiki can be launched by dobbelt-click
152
- Added Textile cache to speed-up rendering of large pages
153
- Made WikiWords look like "Wiki Words"
154
- Updated RedCloth to 2.0.4
155
- * 0.2.5: Upgraded to RedCloth 2.0.2 and Madeleine 0.6.1, which means the
156
- Windows problems are gone. Also fixed a problem with wikiwords
157
- that used part of other wikiwords.
158
- * 0.2.0: First public release
159
-
160
- ===Download latest from:
161
- * http://rubyforge.org/project/showfiles.php?group_id=186
162
-
163
- ===Visit the official Instiki wiki:
164
- * http://www.instiki.org
165
-
166
- ===License:
167
- * same as Ruby's
168
-
169
- ---
170
- Author:: David Heinemeier Hansson
171
- Email:: david@loudthinking.com
172
- Weblog:: http://www.loudthinking.com
1
+ ===What is Instiki?
2
+
3
+ Admitted, it's YetAnotherWikiClone[http://c2.com/cgi/wiki?WikiWikiClones], but with a strong focus
4
+ on simplicity of installation and running:
5
+
6
+ Step 1. Download
7
+
8
+ Step 2. Run "instiki"
9
+
10
+ Step 3. Chuckle... "There's no step three!" (TM)
11
+
12
+ You're now running a perfectly suitable wiki on port 2500
13
+ that'll present you with one-step setup, followed by a textarea for the home page
14
+ on http://localhost:2500.
15
+
16
+ Instiki lowers the barriers of interest for when you might consider
17
+ using a wiki. It's so simple to get running that you'll find yourself
18
+ using it for anything -- taking notes, brainstorming, organizing a
19
+ gathering.
20
+
21
+ ===Features:
22
+ * Regular expression search: Find deep stuff really fast
23
+ * Revisions: Follow the changes on every page from birth. Rollback to an earlier rev
24
+ * Export to HTML or markup in a zip: Take the entire wiki with you home or for reference
25
+ * RSS feeds to track recently revised pages
26
+ * Multiple webs: Create separate wikis with their own namespace
27
+ * Password-protected webs: Keep it private
28
+ * Authors: Each revision is associated with an author, so you can see who changed what
29
+ * Reference tracker: Which other pages are pointing to the current?
30
+ * Speed: Using Madelein[http://madeleine.sourceforge.net] for persistence (all pages are in memory)
31
+ * Three markup choices: Textile[http://www.textism.com/tools/textile]
32
+ (default / RedCloth[http://www.whytheluckystiff.net/ruby/redcloth]),
33
+ Markdown (BlueCloth[http://bluecloth.rubyforge.org]), and RDoc[http://rdoc.sourceforge.net/doc]
34
+ * Embedded webserver: Through WEBrick[http://www.webrick.org]
35
+ * Internationalization: Wiki words in any latin, greek, cyrillian, or armenian characters
36
+ * Color diffs: Track changes through revisions
37
+
38
+ ===Missing:
39
+ * File attachments
40
+
41
+ ===Install from gem:
42
+ * Install rubygems
43
+ * Run "gem install instiki"
44
+ * Change to a directory where you want Instiki to keep its data files (for example, ~/instiki/)
45
+ * Run "instiki" - this will create a "storage" directory (for example, ~/instiki/storage), and start a new Wiki service
46
+
47
+ Make sure that you always launch Instiki from the same working directory, or specify the storage directory in runtime parameters, such as:
48
+ instiki --storage ~/instiki/storage
49
+
50
+ ===Command-line options:
51
+ * Run "instiki --help"
52
+
53
+ ===History:
54
+ * See CHANGELOG
55
+
56
+ ===Download latest from:
57
+ * http://rubyforge.org/project/showfiles.php?group_id=186
58
+
59
+ ===Visit the official Instiki wiki:
60
+ * http://www.instiki.org
61
+
62
+ ===License:
63
+ * same as Ruby's
64
+
65
+ ---
66
+ Author:: David Heinemeier Hansson
67
+ Email:: david@loudthinking.com
68
+ Weblog:: http://www.loudthinking.com
@@ -0,0 +1,94 @@
1
+ require 'application'
2
+
3
+ class AdminController < ApplicationController
4
+
5
+ layout 'default'
6
+
7
+ def create_system
8
+ if @wiki.setup?
9
+ flash[:error] = <<-EOL
10
+ Wiki has already been created in '#{@wiki.storage_path}'. Shut down Instiki and delete
11
+ this directory if you want to recreate it from scratch.<br/><br/>
12
+ (WARNING: this will destroy content of your current wiki).
13
+ EOL
14
+ redirect_show('HomePage', @wiki.webs.keys.first)
15
+ elsif @params['web_name']
16
+ # form submitted -> create a wiki
17
+ @wiki.setup(@params['password'], @params['web_name'], @params['web_address'])
18
+ flash[:info] = <<-EOL
19
+ Your new wiki '#{@params['web_name']}' is created!<br/>
20
+ Please edit its home page and press Submit when finished.
21
+ EOL
22
+ redirect_to :web => @params['web_address'], :controller => 'wiki', :action => 'new',
23
+ :id => 'HomePage'
24
+ else
25
+ # no form submitted -> go to template
26
+ end
27
+ end
28
+
29
+ def create_web
30
+ if @params['address']
31
+ # form submitted
32
+ if @wiki.authenticate(@params['system_password'])
33
+ begin
34
+ @wiki.create_web(@params['name'], @params['address'])
35
+ flash[:info] = "New web '#{@params['name']}' successfully created."
36
+ redirect_to :web => @params['address'], :controller => 'wiki', :action => 'new',
37
+ :id => 'HomePage'
38
+ rescue Instiki::ValidationError => e
39
+ flash[:error] = e.message
40
+ # and re-render the form again
41
+ end
42
+ else
43
+ redirect_to :controller => 'wiki', :action => 'index'
44
+ end
45
+ else
46
+ # no form submitted -> render template
47
+ end
48
+ end
49
+
50
+ def edit_web
51
+ system_password = @params['system_password']
52
+ if system_password
53
+ # form submitted
54
+ if wiki.authenticate(system_password)
55
+ begin
56
+ wiki.edit_web(
57
+ @web.address, @params['address'], @params['name'],
58
+ @params['markup'].intern,
59
+ @params['color'], @params['additional_style'],
60
+ @params['safe_mode'] ? true : false,
61
+ @params['password'].empty? ? nil : @params['password'],
62
+ @params['published'] ? true : false,
63
+ @params['brackets_only'] ? true : false,
64
+ @params['count_pages'] ? true : false,
65
+ @params['allow_uploads'] ? true : false,
66
+ @params['max_upload_size']
67
+ )
68
+ flash[:info] = "Web '#{@params['address']}' was successfully updated"
69
+ redirect_show('HomePage', @params['address'])
70
+ rescue Instiki::ValidationError => e
71
+ flash[:error] = e.message
72
+ # and re-render the same template again
73
+ end
74
+ else
75
+ flash[:error] = password_error(system_password)
76
+ # and re-render the same template again
77
+ end
78
+ else
79
+ # no form submitted - go to template
80
+ end
81
+ end
82
+
83
+ def remove_orphaned_pages
84
+ if wiki.authenticate(@params['system_password_orphaned'])
85
+ wiki.remove_orphaned_pages(@web_name)
86
+ flash[:info] = 'Orphaned pages removed'
87
+ redirect_to :controller => 'wiki', :web => @web_name, :action => 'list'
88
+ else
89
+ flash[:error] = password_error(@params['system_password'])
90
+ return_to_last_remembered
91
+ end
92
+ end
93
+
94
+ end