smeagol 0.5.9 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.ruby +80 -0
- data/.yardopts +9 -0
- data/HISTORY.md +147 -0
- data/LICENSE.txt +30 -0
- data/README.md +132 -26
- data/bin/smeagol +9 -39
- data/bin/smeagol-init +3 -0
- data/bin/smeagol-preview +4 -0
- data/bin/smeagol-serve +4 -0
- data/bin/smeagol-update +4 -0
- data/bin/smeagold +1 -4
- data/lib/smeagol.rb +77 -6
- data/lib/smeagol/app.rb +121 -75
- data/lib/smeagol/cache.rb +43 -24
- data/lib/smeagol/cli.rb +166 -0
- data/lib/smeagol/config.rb +154 -0
- data/lib/smeagol/console.rb +369 -0
- data/lib/smeagol/controller.rb +275 -0
- data/lib/smeagol/core_ext.rb +12 -0
- data/lib/smeagol/gollum/blob_entry.rb +17 -0
- data/lib/smeagol/gollum/file.rb +44 -0
- data/lib/smeagol/gollum/page.rb +47 -0
- data/lib/smeagol/gollum/wiki.rb +31 -0
- data/lib/smeagol/helpers/rss.rb +96 -0
- data/lib/smeagol/helpers/toc.rb +69 -0
- data/lib/smeagol/public/assets/smeagol/gollum.css +716 -0
- data/lib/smeagol/public/{smeagol → assets/smeagol}/html5.js +0 -0
- data/lib/smeagol/public/{smeagol → assets/smeagol}/pygment.css +0 -0
- data/lib/smeagol/public/assets/smeagol/template.css +631 -0
- data/lib/smeagol/repository.rb +85 -0
- data/lib/smeagol/settings.rb +302 -0
- data/lib/smeagol/templates/layouts/page.mustache +19 -0
- data/lib/smeagol/templates/layouts/versions.mustache +16 -0
- data/lib/smeagol/templates/partials/footer.mustache +17 -0
- data/lib/smeagol/templates/partials/header.mustache +47 -0
- data/lib/smeagol/templates/settings.yml +64 -0
- data/lib/smeagol/version.rb +1 -1
- data/lib/smeagol/views/base.rb +188 -27
- data/lib/smeagol/views/form.rb +56 -0
- data/lib/smeagol/views/page.rb +126 -25
- data/lib/smeagol/views/post.rb +51 -0
- data/lib/smeagol/views/versions.rb +20 -6
- data/lib/smeagol/wiki.rb +25 -45
- data/test/helper.rb +72 -8
- data/test/test_app.rb +57 -0
- data/test/test_cache.rb +10 -11
- data/test/test_init.rb +27 -0
- data/test/test_update.rb +20 -0
- data/test/test_wiki.rb +13 -10
- metadata +142 -216
- data/bin/smeagol-static +0 -115
- data/lib/file.rb +0 -10
- data/lib/smeagol/hash.rb +0 -13
- data/lib/smeagol/option_parser.rb +0 -138
- data/lib/smeagol/public/smeagol/main.css +0 -234
- data/lib/smeagol/templates/page.mustache +0 -58
- data/lib/smeagol/templates/versions.mustache +0 -50
- data/test/test_file.rb +0 -12
- data/test/test_hash.rb +0 -18
data/.ruby
ADDED
@@ -0,0 +1,80 @@
|
|
1
|
+
---
|
2
|
+
source:
|
3
|
+
- meta
|
4
|
+
authors:
|
5
|
+
- name: Ben Johnson
|
6
|
+
email: benbjohnson@yahoo.com
|
7
|
+
- name: Thomas Sawyer
|
8
|
+
email: transfire@gmail.com
|
9
|
+
copyrights:
|
10
|
+
- holder: Ben Johnson
|
11
|
+
year: '2010'
|
12
|
+
- holder: Rubyworks
|
13
|
+
year: '2011'
|
14
|
+
license: BSD-2-Clause
|
15
|
+
requirements:
|
16
|
+
- name: rack
|
17
|
+
version: 1.2~
|
18
|
+
- name: gollum
|
19
|
+
version: 1.3+
|
20
|
+
- name: sinatra
|
21
|
+
version: 1.0~
|
22
|
+
- name: rubypython
|
23
|
+
version: 0.5+
|
24
|
+
- name: citron
|
25
|
+
groups:
|
26
|
+
- development
|
27
|
+
- test
|
28
|
+
development: true
|
29
|
+
- name: ae
|
30
|
+
groups:
|
31
|
+
- develpoment
|
32
|
+
- test
|
33
|
+
development: true
|
34
|
+
- name: rack-test
|
35
|
+
groups:
|
36
|
+
- development
|
37
|
+
- test
|
38
|
+
development: true
|
39
|
+
- name: rdiscount
|
40
|
+
groups:
|
41
|
+
- development
|
42
|
+
- doc
|
43
|
+
development: true
|
44
|
+
dependencies: []
|
45
|
+
alternatives: []
|
46
|
+
conflicts: []
|
47
|
+
repositories:
|
48
|
+
- uri: git://github.com/rubyworks/smeagol.git
|
49
|
+
scm: git
|
50
|
+
name: upstream
|
51
|
+
resources:
|
52
|
+
- uri: http://rubyworks.github.com/smeagol
|
53
|
+
label: Website
|
54
|
+
type: home
|
55
|
+
- uri: http://github.com/rubyworks/smeagol
|
56
|
+
label: Source Code
|
57
|
+
type: code
|
58
|
+
- uri: http://rubydoc.info/gems/smeagol/frames
|
59
|
+
label: Documentation
|
60
|
+
type: docs
|
61
|
+
- uri: http://groups.google.com/groups/rubyworks-mailinglist
|
62
|
+
label: Mailing List
|
63
|
+
type: mail
|
64
|
+
categories: []
|
65
|
+
extra: {}
|
66
|
+
load_path:
|
67
|
+
- lib
|
68
|
+
revision: 0
|
69
|
+
created: '2010-08-16'
|
70
|
+
summary: Wiki Cum Website
|
71
|
+
title: Semagol
|
72
|
+
version: 0.6.0
|
73
|
+
name: smeagol
|
74
|
+
description: ! 'Smeagol is a customizable read-only Gollum wiki server.
|
75
|
+
|
76
|
+
Smeagol makes it possible to maintain a standalone website,
|
77
|
+
|
78
|
+
but update it through the Gollum wiki interface, e.g. via GitHub.'
|
79
|
+
organization: rubyworks
|
80
|
+
date: '2012-07-30'
|
data/.yardopts
ADDED
data/HISTORY.md
ADDED
@@ -0,0 +1,147 @@
|
|
1
|
+
# RELEASE HISTORY
|
2
|
+
|
3
|
+
## v0.6.0 / 2012-07-30
|
4
|
+
|
5
|
+
Version 0.6 is a major refactoring of the code base. While most previous
|
6
|
+
functionality remains, new features have been added and certain configuration
|
7
|
+
settings have been adjusted. One of the more note-worthy changes is that
|
8
|
+
the static generation feature has been spun-off to a new gem called Shelob.
|
9
|
+
Another important change is the use of an initial underscore to denote special
|
10
|
+
files. Users of the previous version should consult the updated documentation
|
11
|
+
and adjust their sites accordingly.
|
12
|
+
|
13
|
+
This release is dedicated to Ben Johnson, the original author of Smeagol.
|
14
|
+
Thanks for all your hard work and putting the project in the care of the
|
15
|
+
Rubyworks Foundation.
|
16
|
+
|
17
|
+
Changes:
|
18
|
+
|
19
|
+
* Use _layouts directory to store templates.
|
20
|
+
* Use _settings.yml instead of settings.yml.
|
21
|
+
* Spin-off static builds to Shelob project.
|
22
|
+
* Add init command for setting up wiki for Smeagol.
|
23
|
+
|
24
|
+
|
25
|
+
## v0.5.9 / 2011-09-26
|
26
|
+
|
27
|
+
Bug fix release for static site generation.
|
28
|
+
|
29
|
+
Changes:
|
30
|
+
|
31
|
+
* Static site generator bug fixes. (kylef)
|
32
|
+
|
33
|
+
|
34
|
+
## v0.5.8 / 2011-09-23
|
35
|
+
|
36
|
+
This release adds ability to generate a static site.
|
37
|
+
|
38
|
+
Changes:
|
39
|
+
|
40
|
+
* Added static site generator. (kylef)
|
41
|
+
|
42
|
+
|
43
|
+
## v0.5.7 / 2011-04-13
|
44
|
+
|
45
|
+
Simple CSS style fix release.
|
46
|
+
|
47
|
+
Changes:
|
48
|
+
|
49
|
+
* Fix frame in CSS.
|
50
|
+
|
51
|
+
|
52
|
+
## v0.5.3 / 2011-02-04
|
53
|
+
|
54
|
+
This release simple updates the version of Gollum dependency.
|
55
|
+
|
56
|
+
Changes:
|
57
|
+
|
58
|
+
* Upgrade to Gollum 1.1.1
|
59
|
+
|
60
|
+
|
61
|
+
## v0.5.2 / 2010-11-21
|
62
|
+
|
63
|
+
New release adds Google Analytics support. Just
|
64
|
+
add a `tracking_id` to setting.yml.
|
65
|
+
|
66
|
+
Changes:
|
67
|
+
|
68
|
+
* Added Google Analytics support
|
69
|
+
|
70
|
+
|
71
|
+
## v0.5.1 / 2010-10-13
|
72
|
+
|
73
|
+
Release fixes bug in menu generation.
|
74
|
+
|
75
|
+
Changes:
|
76
|
+
|
77
|
+
* Fixed menu bug.
|
78
|
+
|
79
|
+
|
80
|
+
## v0.5.0 / 2010-10-12
|
81
|
+
|
82
|
+
This release adds support for site versions. The old
|
83
|
+
versions of pages can be viewed by providing the commit
|
84
|
+
id or tag name in the URL.
|
85
|
+
|
86
|
+
Changes:
|
87
|
+
|
88
|
+
* Added versioning using git tags.
|
89
|
+
|
90
|
+
|
91
|
+
## v0.4.2 / 2010-10-11
|
92
|
+
|
93
|
+
This release improves CSS styling, including the addition
|
94
|
+
of a CSS reset.
|
95
|
+
|
96
|
+
Changes:
|
97
|
+
|
98
|
+
* Added CSS styles.
|
99
|
+
* Added CSS reset.
|
100
|
+
|
101
|
+
|
102
|
+
## v0.4.1 / 2010-10-04
|
103
|
+
|
104
|
+
Bug release fixes missing require issue.
|
105
|
+
|
106
|
+
Changes:
|
107
|
+
|
108
|
+
* Missing require bug fixed.
|
109
|
+
|
110
|
+
|
111
|
+
## v0.4.0 / 2010-10-03
|
112
|
+
|
113
|
+
This release adds a number of new features, such as
|
114
|
+
GitHub "fork me" ribbon support. It also makes a few
|
115
|
+
API adjustments.
|
116
|
+
|
117
|
+
Changes:
|
118
|
+
|
119
|
+
* Added secret update key.
|
120
|
+
* Added GitHub ribbon support.
|
121
|
+
* Added footer to home page.
|
122
|
+
* Changed `is_not_home?` to `not_home?` on Mustache page view.
|
123
|
+
* Renamed `--autoupdate` CLI option to `--auto-update`.
|
124
|
+
* Moved update functionality into Smeagol::Wiki.
|
125
|
+
* CSS Fixes: code & H3
|
126
|
+
|
127
|
+
|
128
|
+
## v0.3.0 / 2010-10-01
|
129
|
+
|
130
|
+
First public release of Smeagol!
|
131
|
+
|
132
|
+
Changes:
|
133
|
+
|
134
|
+
* Added multiple repository support.
|
135
|
+
* Added `smeagold` process daemon.
|
136
|
+
* Removed Bundler dependency.
|
137
|
+
* Added HTML5 shiv for IE support.
|
138
|
+
|
139
|
+
|
140
|
+
## v0.1.0 / 2010-09-20
|
141
|
+
|
142
|
+
First private release of Smeagol.
|
143
|
+
|
144
|
+
Changes:
|
145
|
+
|
146
|
+
* Smeagol was born!
|
147
|
+
|
data/LICENSE.txt
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
Smeagol - Read-only Gollum Server
|
2
|
+
(http://rubyworks.github.com/smeagol)
|
3
|
+
|
4
|
+
Copyright (c) 2012 Rubyworks
|
5
|
+
Copyright (c) 2009 Ben Johnson
|
6
|
+
|
7
|
+
Redistribution and use in source and binary forms, with or without
|
8
|
+
modification, are permitted provided that the following conditions are met:
|
9
|
+
|
10
|
+
* Redistributions of source code must retain the above copyright notice,
|
11
|
+
this list of conditions and the following disclaimer.
|
12
|
+
|
13
|
+
* Redistributions in binary form must reproduce the above copyright notice,
|
14
|
+
this list of conditions and the following disclaimer in the documentation
|
15
|
+
and/or other materials provided with the distribution.
|
16
|
+
|
17
|
+
THIS SOFTWARE IS PROVIDED BY Thomas Sawyer ``AS IS'' AND ANY EXPRESS
|
18
|
+
OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
19
|
+
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
|
20
|
+
NO EVENT SHALL Thomas Sawyer OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
|
21
|
+
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
22
|
+
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
23
|
+
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
|
24
|
+
OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
25
|
+
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
|
26
|
+
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
27
|
+
|
28
|
+
(SPDX) BSD-2-Clause License
|
29
|
+
|
30
|
+
|
data/README.md
CHANGED
@@ -1,56 +1,151 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
Smeagol - A Read-Only Gollum Server
|
2
|
+
===================================
|
3
|
+
|
4
|
+
[Website](http://rubyworks.github.com/smeagol) /
|
5
|
+
[Documentation](http://rubydoc.info/rubyworks/smeagol) /
|
6
|
+
[Source Code](http://github.com/rubyworks/smeagol) /
|
7
|
+
[Report Issue](http://github.com/rubyworks/smeagol/issues)
|
8
|
+
|
3
9
|
|
4
10
|
## DESCRIPTION
|
5
11
|
|
6
12
|
Smeagol is a server that can run a read-only version of a
|
7
|
-
[Gollum](http://github.com/github/gollum) wiki.
|
8
|
-
|
9
|
-
the
|
13
|
+
[Gollum](http://github.com/github/gollum) wiki.
|
14
|
+
This can be useful when you want to maintain a standalone website,
|
15
|
+
but you want to update it through the Gollum wiki interface,
|
16
|
+
e.g. via GitHub.
|
17
|
+
|
18
|
+
Smeagol also includes a static site generator that can convert
|
19
|
+
a Gollum wiki into a static website to be served by any hosting
|
20
|
+
service.
|
10
21
|
|
11
22
|
Smeagol follows the rules of [Semantic Versioning](http://semver.org/) and uses
|
12
23
|
[TomDoc](http://tomdoc.org/) for inline documentation.
|
13
24
|
|
14
25
|
|
26
|
+
## STATUS
|
27
|
+
|
28
|
+
[![Build Status](https://secure.travis-ci.org/rubyworks/smeagol.png)](http://travis-ci.org/rubyworks/smeagol)
|
29
|
+
|
30
|
+
As of v0.6.0 Smeagol is in fairly good shape. It has a number of tests and they
|
31
|
+
are all green. However the tests are far from comprehensive. So there is a some
|
32
|
+
QA waterfalling going on here too. Probably it is best to consider the v0.6.x
|
33
|
+
series an advanced beta set. So if you run into any issues, or see any clear ways
|
34
|
+
to improve the project, let us know via the issues tracker to help us move
|
35
|
+
toward a rock-solid 0.7.
|
36
|
+
|
37
|
+
|
15
38
|
## INSTALLATION
|
16
39
|
|
17
40
|
You can install Smeagol with RubyGems:
|
18
41
|
|
19
|
-
|
42
|
+
$ [sudo] gem install smeagol
|
20
43
|
|
21
44
|
And then, if you want code highlighting, follow the
|
22
45
|
[Installation Guide](http://pygments.org/docs/installation) for Pygments.
|
23
46
|
|
24
|
-
Ta da
|
47
|
+
Ta da! You're ready to go.
|
48
|
+
|
49
|
+
Of course, the first thing you need to do is clone your Gollum wiki repo.
|
50
|
+
|
51
|
+
$ git clone git@github.com:user/user.github.com.git
|
25
52
|
|
26
53
|
|
27
|
-
##
|
54
|
+
## PREVIEWING
|
28
55
|
|
29
|
-
To
|
30
|
-
`smeagol`
|
56
|
+
To preview your site via smeagol, simply change directories to your Gollum repository
|
57
|
+
and run `smeagol preview` from the command line:
|
31
58
|
|
32
|
-
|
33
|
-
|
59
|
+
$ cd /path/to/repo
|
60
|
+
$ smeagol preview
|
34
61
|
|
35
62
|
This will run a web server at `http://localhost:4567`. You can change the port
|
36
63
|
by setting the `--port` or `-p` option on the command line.
|
37
64
|
|
38
65
|
|
39
|
-
##
|
66
|
+
## CUSTOMIZING
|
67
|
+
|
68
|
+
Of course, you want to customize your site to suit your style. To do this you
|
69
|
+
need to add some Smeagol support files. Use the `init` command to have Smeagol
|
70
|
+
put the default files in place.
|
71
|
+
|
72
|
+
$ cd path/to/wiki
|
73
|
+
$ smeagol init
|
74
|
+
|
75
|
+
In your wiki this will add a few files. One of these is `_settings.yml` which you
|
76
|
+
use to configure smeagol for your site. See SETTINGS below.
|
77
|
+
|
78
|
+
There will also be a file called `_layouts/page.mustache`. Using Mustache templating
|
79
|
+
use this file to create a custom page layout for your site. To learn more
|
80
|
+
about the variables available for use in this template see
|
81
|
+
the [Smeagol Wiki](http://github.com/rubyworks/smeagol/wiki).
|
82
|
+
|
83
|
+
Be sure to add these files to your repo and commit them. (You can just check
|
84
|
+
these files in and push to the server. It will not effect you Gollum
|
85
|
+
wiki in any way.)
|
86
|
+
|
87
|
+
|
88
|
+
## SETTINGS
|
40
89
|
|
41
|
-
|
90
|
+
The `_settings.yml` file allows you to configure certain behaviors of Smeagol.
|
91
|
+
An example `_settings.yml` file:
|
42
92
|
|
43
|
-
|
44
|
-
|
93
|
+
---
|
94
|
+
static: public
|
95
|
+
url: http://trans.github.com
|
96
|
+
source_url: http://github.com/trans
|
97
|
+
title: 7R4N5.C0D3
|
98
|
+
author: trans
|
99
|
+
description:
|
100
|
+
Trans Programming Blog
|
101
|
+
|
102
|
+
menu:
|
103
|
+
- title: Homepage
|
104
|
+
href: "/"
|
105
|
+
- title: RSS Feed
|
106
|
+
href: "/rss.xml"
|
107
|
+
- title: Projects
|
108
|
+
href: "http://github.com/trans"
|
109
|
+
|
110
|
+
See the API documentation for more details about each field.
|
111
|
+
|
112
|
+
|
113
|
+
## SERVING
|
114
|
+
|
115
|
+
Smeagol can serve multiple Gollum repos simulataneously. To do this
|
116
|
+
create a configuration file at `~/.smeagol/config.yml`. An example file
|
117
|
+
looks like this:
|
118
|
+
|
119
|
+
---
|
120
|
+
port: 3000
|
121
|
+
auto_update: true
|
122
|
+
cache_enabled: true
|
123
|
+
repositories:
|
124
|
+
- path: ~/websites/acme/wiki
|
125
|
+
cname: acme.org
|
126
|
+
origin: 'git@github.com:acme/acme.wiki.git'
|
127
|
+
ref: master
|
128
|
+
bare: false
|
129
|
+
secret: X123
|
130
|
+
|
131
|
+
Then to serve the listed repositories use:
|
132
|
+
|
133
|
+
$ smeagol serve
|
134
|
+
|
135
|
+
|
136
|
+
## UPDATING
|
137
|
+
|
138
|
+
There are two ways to handle updates of the repository through Smeagol:
|
139
|
+
*automatic updating* and *manual updating*.
|
45
140
|
|
46
141
|
To setup Smeagol to automatically update your repository in fixed intervals,
|
47
|
-
simply pass the `--auto-update` option in the command
|
48
|
-
automatically perform a `git pull origin master` on your repository once
|
49
|
-
day.
|
142
|
+
simply pass the `--auto-update` option in the `smeagol-serve` command and Smeagol
|
143
|
+
will automatically perform a `git pull origin master` on your repository once
|
144
|
+
per day.
|
50
145
|
|
51
|
-
To perform a manual update, simply go to the
|
52
|
-
|
53
|
-
|
146
|
+
To perform a manual update, simply go to the `update` route, e.g. `http://localhost:4567/update`,
|
147
|
+
and Smeagol will perform a git pull. Of course, change the URL appropriately
|
148
|
+
for your hostname and port.
|
54
149
|
|
55
150
|
|
56
151
|
## CONTRIBUTE
|
@@ -58,9 +153,20 @@ URL to your appropriate hostname and port.
|
|
58
153
|
Have a great idea for Smeagol? Awesome. Fork the repository and add a feature
|
59
154
|
or fix a bug. There are a couple things I ask:
|
60
155
|
|
61
|
-
|
62
|
-
|
156
|
+
* Create an appropriately named topic branch that contains your change.
|
157
|
+
* Please try to provide tests for all code you check in.
|
158
|
+
|
159
|
+
Note that Smeagol uses Citron and AE for testing. And admittedly the project
|
160
|
+
is water-falling too much at present. So if you would like to contribute, but
|
161
|
+
don't have any specific request, writing a few tests would be a great help.
|
162
|
+
|
163
|
+
|
164
|
+
## COPYRIGHTS
|
165
|
+
|
166
|
+
Smeagol is distributed under the terms of the **BSD-2-Clause** license.
|
167
|
+
|
168
|
+
* Copyright 2012 Trans, Rubyworks
|
169
|
+
* Copyright 2009 Ben Johnson
|
63
170
|
|
64
|
-
|
171
|
+
Please see LICENSE.txt file for details.
|
65
172
|
|
66
|
-
$ gem install rdiscount
|