wikimd 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +9 -0
  3. data/.gitmodules +0 -0
  4. data/.rspec +2 -0
  5. data/.simplecov +10 -0
  6. data/.travis.yml +12 -0
  7. data/.yardopts +1 -0
  8. data/Gemfile +16 -0
  9. data/Guardfile +25 -0
  10. data/LICENSE.txt +21 -0
  11. data/README.md +67 -0
  12. data/Rakefile +17 -0
  13. data/_scss/_normalize.scss +424 -0
  14. data/_scss/_sidebar.scss +46 -0
  15. data/_scss/_topbar.scss +49 -0
  16. data/_scss/_tree_view.scss +55 -0
  17. data/_scss/octicons.scss +223 -0
  18. data/_scss/syntax.scss +209 -0
  19. data/_scss/wikimd.scss +136 -0
  20. data/bin/wikimd +43 -0
  21. data/config.ru +6 -0
  22. data/lib/wikimd.rb +3 -0
  23. data/lib/wikimd/app.rb +99 -0
  24. data/lib/wikimd/app/public/assets/css/wikimd.css +1 -0
  25. data/lib/wikimd/app/public/assets/font/octicons.eot +0 -0
  26. data/lib/wikimd/app/public/assets/font/octicons.svg +183 -0
  27. data/lib/wikimd/app/public/assets/font/octicons.ttf +0 -0
  28. data/lib/wikimd/app/public/assets/font/octicons.woff +0 -0
  29. data/lib/wikimd/app/public/assets/js/app.js +44 -0
  30. data/lib/wikimd/app/public/assets/js/jquery-2.1.4.min.js +4 -0
  31. data/lib/wikimd/app/public/favicon.ico +0 -0
  32. data/lib/wikimd/app/views/404.slim +2 -0
  33. data/lib/wikimd/app/views/file.slim +17 -0
  34. data/lib/wikimd/app/views/history.slim +17 -0
  35. data/lib/wikimd/app/views/layout.slim +38 -0
  36. data/lib/wikimd/app/views/tree.slim +8 -0
  37. data/lib/wikimd/error.rb +4 -0
  38. data/lib/wikimd/renderer.rb +32 -0
  39. data/lib/wikimd/repository.rb +140 -0
  40. data/lib/wikimd/version.rb +4 -0
  41. data/script/build +5 -0
  42. data/script/console +7 -0
  43. data/script/setup +5 -0
  44. data/wikimd.gemspec +36 -0
  45. metadata +276 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: f7ba8c33e49ca1197b13f2688a2e8104d073c7bd
4
+ data.tar.gz: f850dcf304d684be00720fa15224e325cc513626
5
+ SHA512:
6
+ metadata.gz: dc0c0ddaafad972df74d1e6463c8af1f7817a6ce5928a04207d133c9e4be571954b06ae8b9e6206b6d26ec63d640e2033a9077a9deaf3c8f123d51e601dba1c0
7
+ data.tar.gz: 01b68b562a0715c089cfffca65bcc30279ef6a4f18d3be5d3b474e09dc792bf74bcab49eabc61db6415bb8ae8f09b9cef3b397db6962cdd45b2baf9ff99b9e82
@@ -0,0 +1,9 @@
1
+ /vendor/bundle
2
+ /spec/examples.txt
3
+ /tmp/
4
+ /pkg/
5
+ /.yardoc/
6
+ /doc/
7
+ /coverage/
8
+ /.sass-cache
9
+ /Gemfile.lock
File without changes
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --color
2
+ --require spec_helper
@@ -0,0 +1,10 @@
1
+ SimpleCov.add_filter '/.bundle'
2
+ SimpleCov.add_filter '/spec'
3
+ SimpleCov.add_filter '/features'
4
+
5
+ if ENV['CODECLIMATE_REPO_TOKEN']
6
+ require 'codeclimate_batch'
7
+ CodeclimateBatch.start
8
+ else
9
+ SimpleCov.start
10
+ end
@@ -0,0 +1,12 @@
1
+ language: ruby
2
+ rvm: # support stable versions
3
+ - 2.2
4
+ - 2.1
5
+ before_script:
6
+ - git config --global user.email "you@example.com"
7
+ - git config --global user.name "Your Name"
8
+ script:
9
+ - bundle exec rspec
10
+ - bundle exec cucumber
11
+ after_script:
12
+ - codeclimate-batch --groups 2
@@ -0,0 +1 @@
1
+ --private --protected
data/Gemfile ADDED
@@ -0,0 +1,16 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec
4
+
5
+ group :development do
6
+ gem 'shotgun'
7
+ gem 'guard'
8
+ gem 'guard-rspec'
9
+ gem 'guard-cucumber'
10
+ gem 'growl'
11
+ end
12
+
13
+ group :test do
14
+ gem 'codeclimate-test-reporter', require: nil
15
+ gem 'codeclimate_batch', require: nil
16
+ end
@@ -0,0 +1,25 @@
1
+ guard :rspec, cmd: "bundle exec rspec" do
2
+ require "guard/rspec/dsl"
3
+ dsl = Guard::RSpec::Dsl.new(self)
4
+
5
+ # Feel free to open issues for suggestions and improvements
6
+
7
+ # RSpec files
8
+ rspec = dsl.rspec
9
+ watch(rspec.spec_helper) { rspec.spec_dir }
10
+ watch(rspec.spec_support) { rspec.spec_dir }
11
+ watch(rspec.spec_files)
12
+
13
+ # Ruby files
14
+ ruby = dsl.ruby
15
+ dsl.watch_spec_files_for(ruby.lib_files)
16
+ end
17
+
18
+ guard "cucumber" do
19
+ watch(%r{^features/.+\.feature$})
20
+ watch(%r{^features/support/.+$}) { "features" }
21
+
22
+ watch(%r{^features/step_definitions/(.+)_steps\.rb$}) do |m|
23
+ Dir[File.join("**/#{m[1]}.feature")][0] || "features"
24
+ end
25
+ end
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2015 Manuel Hutter
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
@@ -0,0 +1,67 @@
1
+ # WikiMD
2
+
3
+ Turn any Git-repository into a Wiki!
4
+
5
+ ## State
6
+
7
+ This Project is currently under development. It works, but there are some rough edges!
8
+
9
+ ## Installation & Usage
10
+
11
+ ```bash
12
+ # Install WikiMD
13
+ $ gem install wikimd
14
+
15
+ # browse to your Git-repo and run wikimd
16
+ $ cd my/git/repo
17
+ $ wikimd
18
+ Thin web server (v1.6.4 codename Gob Bluth)
19
+ Maximum connections set to 1024
20
+ Listening on 0.0.0.0:8777, CTRL+C to stop
21
+ ```
22
+
23
+ That's all! Now browse to [localhost:8777](http://localhost:8777) and browse your repository!
24
+
25
+ ## Development
26
+
27
+ After checkout, run `script/setup` to install dependencies. Run `bundle exec rspec` to run unit tests, or `bundle exec cucumber` to run feature specs.
28
+
29
+ If you make changes to the SCSS files, run `script/build` to regenerate the CSS files.
30
+
31
+ To automatically rebuild CSS, run
32
+
33
+ bundle exec scss --sourcemap=none --watch _scss/wikimd.scss:lib/wikimd/app/public/assets/css/wikimd.css`
34
+
35
+ However, still run `script/build` before commiting if you changed any SCSS files!
36
+
37
+ To install this gem onto your local machine, run `bundle exec rake install`.
38
+
39
+
40
+ ## Contributing
41
+
42
+ Fork it ( https://github.com/mhutter/string-similarity/fork )
43
+ Create your feature branch (git checkout -b my-new-feature)
44
+ Commit your changes (git commit -am 'Add some feature')
45
+ Push to the branch (git push origin my-new-feature)
46
+ Create a new Pull Request
47
+ Bug reports and pull requests are welcome on GitHub at https://github.com/mhutter/string-similarity.
48
+
49
+ License
50
+
51
+ The gem is available as open source under the terms of the MIT License.
52
+
53
+
54
+ ## Contributing
55
+
56
+ 1. Fork it ( https://github.com/mhutter/wikimd/fork )
57
+ 2. Create your feature branch (git checkout -b my-new-feature)
58
+ 3. Commit your changes (git commit -am 'Add some feature')
59
+ 4. Push to the branch (git push origin my-new-feature)
60
+ 5. Create a new Pull Request
61
+
62
+ Bug reports and pull requests are welcome on GitHub at https://github.com/mhutter/wikimd.
63
+
64
+
65
+ ## License
66
+
67
+ The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
@@ -0,0 +1,17 @@
1
+ require 'bundler/gem_tasks'
2
+
3
+ # RSpec task
4
+ begin
5
+ require 'rspec/core/rake_task'
6
+ RSpec::Core::RakeTask.new(:spec)
7
+ rescue LoadError
8
+ end
9
+
10
+ # Cucumber task
11
+ begin
12
+ require 'cucumber/rake/task'
13
+ Cucumber::Rake::Task.new(:features) do |t|
14
+ t.cucumber_opts = "features --format pretty"
15
+ end
16
+ rescue LoadError
17
+ end
@@ -0,0 +1,424 @@
1
+ /*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
2
+
3
+ /**
4
+ * 1. Set default font family to sans-serif.
5
+ * 2. Prevent iOS and IE text size adjust after device orientation change,
6
+ * without disabling user zoom.
7
+ */
8
+
9
+ html {
10
+ font-family: sans-serif; /* 1 */
11
+ -ms-text-size-adjust: 100%; /* 2 */
12
+ -webkit-text-size-adjust: 100%; /* 2 */
13
+ }
14
+
15
+ /**
16
+ * Remove default margin.
17
+ */
18
+
19
+ body {
20
+ margin: 0;
21
+ }
22
+
23
+ /* HTML5 display definitions
24
+ ========================================================================== */
25
+
26
+ /**
27
+ * Correct `block` display not defined for any HTML5 element in IE 8/9.
28
+ * Correct `block` display not defined for `details` or `summary` in IE 10/11
29
+ * and Firefox.
30
+ * Correct `block` display not defined for `main` in IE 11.
31
+ */
32
+
33
+ article,
34
+ aside,
35
+ details,
36
+ figcaption,
37
+ figure,
38
+ footer,
39
+ header,
40
+ hgroup,
41
+ main,
42
+ menu,
43
+ nav,
44
+ section,
45
+ summary {
46
+ display: block;
47
+ }
48
+
49
+ /**
50
+ * 1. Correct `inline-block` display not defined in IE 8/9.
51
+ * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
52
+ */
53
+
54
+ audio,
55
+ canvas,
56
+ progress,
57
+ video {
58
+ display: inline-block; /* 1 */
59
+ vertical-align: baseline; /* 2 */
60
+ }
61
+
62
+ /**
63
+ * Prevent modern browsers from displaying `audio` without controls.
64
+ * Remove excess height in iOS 5 devices.
65
+ */
66
+
67
+ audio:not([controls]) {
68
+ display: none;
69
+ height: 0;
70
+ }
71
+
72
+ /**
73
+ * Address `[hidden]` styling not present in IE 8/9/10.
74
+ * Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.
75
+ */
76
+
77
+ [hidden],
78
+ template {
79
+ display: none;
80
+ }
81
+
82
+ /* Links
83
+ ========================================================================== */
84
+
85
+ /**
86
+ * Remove the gray background color from active links in IE 10.
87
+ */
88
+
89
+ a {
90
+ background-color: transparent;
91
+ }
92
+
93
+ /**
94
+ * Improve readability of focused elements when they are also in an
95
+ * active/hover state.
96
+ */
97
+
98
+ a:active,
99
+ a:hover {
100
+ outline: 0;
101
+ }
102
+
103
+ /* Text-level semantics
104
+ ========================================================================== */
105
+
106
+ /**
107
+ * Address styling not present in IE 8/9/10/11, Safari, and Chrome.
108
+ */
109
+
110
+ abbr[title] {
111
+ border-bottom: 1px dotted;
112
+ }
113
+
114
+ /**
115
+ * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
116
+ */
117
+
118
+ b,
119
+ strong {
120
+ font-weight: bold;
121
+ }
122
+
123
+ /**
124
+ * Address styling not present in Safari and Chrome.
125
+ */
126
+
127
+ dfn {
128
+ font-style: italic;
129
+ }
130
+
131
+ /**
132
+ * Address variable `h1` font-size and margin within `section` and `article`
133
+ * contexts in Firefox 4+, Safari, and Chrome.
134
+ */
135
+
136
+ h1 {
137
+ font-size: 2em;
138
+ margin: 0.67em 0;
139
+ }
140
+
141
+ /**
142
+ * Address styling not present in IE 8/9.
143
+ */
144
+
145
+ mark {
146
+ background: #ff0;
147
+ color: #000;
148
+ }
149
+
150
+ /**
151
+ * Address inconsistent and variable font size in all browsers.
152
+ */
153
+
154
+ small {
155
+ font-size: 80%;
156
+ }
157
+
158
+ /**
159
+ * Prevent `sub` and `sup` affecting `line-height` in all browsers.
160
+ */
161
+
162
+ sub,
163
+ sup {
164
+ font-size: 75%;
165
+ line-height: 0;
166
+ position: relative;
167
+ vertical-align: baseline;
168
+ }
169
+
170
+ sup {
171
+ top: -0.5em;
172
+ }
173
+
174
+ sub {
175
+ bottom: -0.25em;
176
+ }
177
+
178
+ /* Embedded content
179
+ ========================================================================== */
180
+
181
+ /**
182
+ * Remove border when inside `a` element in IE 8/9/10.
183
+ */
184
+
185
+ img {
186
+ border: 0;
187
+ }
188
+
189
+ /**
190
+ * Correct overflow not hidden in IE 9/10/11.
191
+ */
192
+
193
+ svg:not(:root) {
194
+ overflow: hidden;
195
+ }
196
+
197
+ /* Grouping content
198
+ ========================================================================== */
199
+
200
+ /**
201
+ * Address margin not present in IE 8/9 and Safari.
202
+ */
203
+
204
+ figure {
205
+ margin: 1em 40px;
206
+ }
207
+
208
+ /**
209
+ * Address differences between Firefox and other browsers.
210
+ */
211
+
212
+ hr {
213
+ box-sizing: content-box;
214
+ height: 0;
215
+ }
216
+
217
+ /**
218
+ * Contain overflow in all browsers.
219
+ */
220
+
221
+ pre {
222
+ overflow: auto;
223
+ }
224
+
225
+ /**
226
+ * Address odd `em`-unit font size rendering in all browsers.
227
+ */
228
+
229
+ code,
230
+ kbd,
231
+ pre,
232
+ samp {
233
+ font-family: monospace, monospace;
234
+ font-size: 1em;
235
+ }
236
+
237
+ /* Forms
238
+ ========================================================================== */
239
+
240
+ /**
241
+ * Known limitation: by default, Chrome and Safari on OS X allow very limited
242
+ * styling of `select`, unless a `border` property is set.
243
+ */
244
+
245
+ /**
246
+ * 1. Correct color not being inherited.
247
+ * Known issue: affects color of disabled elements.
248
+ * 2. Correct font properties not being inherited.
249
+ * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
250
+ */
251
+
252
+ button,
253
+ input,
254
+ optgroup,
255
+ select,
256
+ textarea {
257
+ color: inherit; /* 1 */
258
+ font: inherit; /* 2 */
259
+ margin: 0; /* 3 */
260
+ }
261
+
262
+ /**
263
+ * Address `overflow` set to `hidden` in IE 8/9/10/11.
264
+ */
265
+
266
+ button {
267
+ overflow: visible;
268
+ }
269
+
270
+ /**
271
+ * Address inconsistent `text-transform` inheritance for `button` and `select`.
272
+ * All other form control elements do not inherit `text-transform` values.
273
+ * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
274
+ * Correct `select` style inheritance in Firefox.
275
+ */
276
+
277
+ button,
278
+ select {
279
+ text-transform: none;
280
+ }
281
+
282
+ /**
283
+ * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
284
+ * and `video` controls.
285
+ * 2. Correct inability to style clickable `input` types in iOS.
286
+ * 3. Improve usability and consistency of cursor style between image-type
287
+ * `input` and others.
288
+ */
289
+
290
+ button,
291
+ html input[type="button"], /* 1 */
292
+ input[type="reset"],
293
+ input[type="submit"] {
294
+ -webkit-appearance: button; /* 2 */
295
+ cursor: pointer; /* 3 */
296
+ }
297
+
298
+ /**
299
+ * Re-set default cursor for disabled elements.
300
+ */
301
+
302
+ button[disabled],
303
+ html input[disabled] {
304
+ cursor: default;
305
+ }
306
+
307
+ /**
308
+ * Remove inner padding and border in Firefox 4+.
309
+ */
310
+
311
+ button::-moz-focus-inner,
312
+ input::-moz-focus-inner {
313
+ border: 0;
314
+ padding: 0;
315
+ }
316
+
317
+ /**
318
+ * Address Firefox 4+ setting `line-height` on `input` using `!important` in
319
+ * the UA stylesheet.
320
+ */
321
+
322
+ input {
323
+ line-height: normal;
324
+ }
325
+
326
+ /**
327
+ * It's recommended that you don't attempt to style these elements.
328
+ * Firefox's implementation doesn't respect box-sizing, padding, or width.
329
+ *
330
+ * 1. Address box sizing set to `content-box` in IE 8/9/10.
331
+ * 2. Remove excess padding in IE 8/9/10.
332
+ */
333
+
334
+ input[type="checkbox"],
335
+ input[type="radio"] {
336
+ box-sizing: border-box; /* 1 */
337
+ padding: 0; /* 2 */
338
+ }
339
+
340
+ /**
341
+ * Fix the cursor style for Chrome's increment/decrement buttons. For certain
342
+ * `font-size` values of the `input`, it causes the cursor style of the
343
+ * decrement button to change from `default` to `text`.
344
+ */
345
+
346
+ input[type="number"]::-webkit-inner-spin-button,
347
+ input[type="number"]::-webkit-outer-spin-button {
348
+ height: auto;
349
+ }
350
+
351
+ /**
352
+ * 1. Address `appearance` set to `searchfield` in Safari and Chrome.
353
+ * 2. Address `box-sizing` set to `border-box` in Safari and Chrome.
354
+ */
355
+
356
+ input[type="search"] {
357
+ -webkit-appearance: textfield; /* 1 */
358
+ box-sizing: content-box; /* 2 */
359
+ }
360
+
361
+ /**
362
+ * Remove inner padding and search cancel button in Safari and Chrome on OS X.
363
+ * Safari (but not Chrome) clips the cancel button when the search input has
364
+ * padding (and `textfield` appearance).
365
+ */
366
+
367
+ input[type="search"]::-webkit-search-cancel-button,
368
+ input[type="search"]::-webkit-search-decoration {
369
+ -webkit-appearance: none;
370
+ }
371
+
372
+ /**
373
+ * Define consistent border, margin, and padding.
374
+ */
375
+
376
+ fieldset {
377
+ border: 1px solid #c0c0c0;
378
+ margin: 0 2px;
379
+ padding: 0.35em 0.625em 0.75em;
380
+ }
381
+
382
+ /**
383
+ * 1. Correct `color` not being inherited in IE 8/9/10/11.
384
+ * 2. Remove padding so people aren't caught out if they zero out fieldsets.
385
+ */
386
+
387
+ legend {
388
+ border: 0; /* 1 */
389
+ padding: 0; /* 2 */
390
+ }
391
+
392
+ /**
393
+ * Remove default vertical scrollbar in IE 8/9/10/11.
394
+ */
395
+
396
+ textarea {
397
+ overflow: auto;
398
+ }
399
+
400
+ /**
401
+ * Don't inherit the `font-weight` (applied by a rule above).
402
+ * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
403
+ */
404
+
405
+ optgroup {
406
+ font-weight: bold;
407
+ }
408
+
409
+ /* Tables
410
+ ========================================================================== */
411
+
412
+ /**
413
+ * Remove most spacing between table cells.
414
+ */
415
+
416
+ table {
417
+ border-collapse: collapse;
418
+ border-spacing: 0;
419
+ }
420
+
421
+ td,
422
+ th {
423
+ padding: 0;
424
+ }