noumenon 0.0.1 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/noumenon/version.rb +1 -1
- data/noumenon.gemspec +16 -1
- metadata +12 -83
data/lib/noumenon/version.rb
CHANGED
data/noumenon.gemspec
CHANGED
|
@@ -10,7 +10,22 @@ Gem::Specification.new do |s|
|
|
|
10
10
|
s.email = ["jon@blankpad.net"]
|
|
11
11
|
s.homepage = "https://github.com/Noumenon"
|
|
12
12
|
s.summary = %q{An content management system backed by Git}
|
|
13
|
-
s.description =
|
|
13
|
+
s.description = <<EOF
|
|
14
|
+
Noumenon is a content management system designed to be backed by a file system, with
|
|
15
|
+
theme support.
|
|
16
|
+
|
|
17
|
+
It's currently in an early stage of development, but right now you can create a basic
|
|
18
|
+
static site using templates from a theme which specify the structure and presentation
|
|
19
|
+
of your content, and YAML files which specify the actual content to place in those
|
|
20
|
+
templates.
|
|
21
|
+
|
|
22
|
+
Future development will include an end-user friendly web interface for editing and
|
|
23
|
+
creating content, while retaining the ability for developers and designers to manage
|
|
24
|
+
the site's presentation using the tools they're most comfortable with.
|
|
25
|
+
|
|
26
|
+
See http://github.com/Noumenon/example-app/ for a really bare bones example of how
|
|
27
|
+
Noumenon works.
|
|
28
|
+
EOF
|
|
14
29
|
|
|
15
30
|
s.rubyforge_project = "noumenon"
|
|
16
31
|
|
metadata
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: noumenon
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
4
|
prerelease:
|
|
5
|
-
version: 0.0.
|
|
5
|
+
version: 0.0.2
|
|
6
6
|
platform: ruby
|
|
7
7
|
authors:
|
|
8
8
|
- Jon Wood
|
|
@@ -58,91 +58,20 @@ dependencies:
|
|
|
58
58
|
type: :development
|
|
59
59
|
version_requirements: *id004
|
|
60
60
|
description: |
|
|
61
|
-
|
|
61
|
+
Noumenon is a content management system designed to be backed by a file system, with
|
|
62
|
+
theme support.
|
|
62
63
|
|
|
63
|
-
|
|
64
|
+
It's currently in an early stage of development, but right now you can create a basic
|
|
65
|
+
static site using templates from a theme which specify the structure and presentation
|
|
66
|
+
of your content, and YAML files which specify the actual content to place in those
|
|
67
|
+
templates.
|
|
64
68
|
|
|
65
|
-
|
|
69
|
+
Future development will include an end-user friendly web interface for editing and
|
|
70
|
+
creating content, while retaining the ability for developers and designers to manage
|
|
71
|
+
the site's presentation using the tools they're most comfortable with.
|
|
66
72
|
|
|
67
|
-
Noumenon
|
|
68
|
-
|
|
69
|
-
populate of a content management system using the tools they are most comfortable with.
|
|
70
|
-
|
|
71
|
-
In the case of developers (and some designers) that's version control and text editors, while in the case of content
|
|
72
|
-
editors thats more likely to be a web interface.
|
|
73
|
-
|
|
74
|
-
## How it Works
|
|
75
|
-
|
|
76
|
-
The URL structure and content of a Noumenon site is defined by a Git repository, similar to the structure below:
|
|
77
|
-
|
|
78
|
-
/
|
|
79
|
-
- /config.rb
|
|
80
|
-
- /index.html
|
|
81
|
-
- /about
|
|
82
|
-
- /people.html
|
|
83
|
-
- /company.html
|
|
84
|
-
- /contact
|
|
85
|
-
- /config.rb
|
|
86
|
-
- /blog
|
|
87
|
-
- /config.rb
|
|
88
|
-
- /posts/2011-04-18-an-example-post.md
|
|
89
|
-
- /posts/2011-04-10-another-example.md
|
|
90
|
-
|
|
91
|
-
This git repository is then provided to Noumenon as it's data source. On startup it loads any file called "config.rb"
|
|
92
|
-
and uses it to determine how that directory should behave:
|
|
93
|
-
|
|
94
|
-
# /config.rb
|
|
95
|
-
domain "example.org"
|
|
96
|
-
application "git://github.com/noumenon/apps-static"
|
|
97
|
-
theme "git://github.com/noumenon/themes-example"
|
|
98
|
-
|
|
99
|
-
That example configures Noumenon to use the "Noumenon::Static" application to serve any templates below that point as
|
|
100
|
-
a static page.
|
|
101
|
-
|
|
102
|
-
# /contact/config.rb
|
|
103
|
-
application "git://github.com/noumenon/apps-contact"
|
|
104
|
-
contact.email_address "info@example.org"
|
|
105
|
-
|
|
106
|
-
While the one in /contact specifies that "Noumenon::Contact" should be used to provide the URL tree below /contact, in this
|
|
107
|
-
case a contact form which emails any responses to the specified address.
|
|
108
|
-
|
|
109
|
-
Finally /blogs/config.rb might look something like this:
|
|
110
|
-
|
|
111
|
-
application "git://github.com/noumenon/apps-blog"
|
|
112
|
-
blog.comments true
|
|
113
|
-
|
|
114
|
-
## Hosting a Noumenon Site
|
|
115
|
-
|
|
116
|
-
*This won't work yet: I havn't implemented automatic check out of a content repository.*
|
|
117
|
-
|
|
118
|
-
To host a site you will need to have Ruby and an application server such as Passenger, Unicorn or Thin. Due it's interactions
|
|
119
|
-
with git as a data store Heroku is not a supported platform for hosting, although I'm sure someone will find a way around that.
|
|
120
|
-
|
|
121
|
-
Install Noumenon: `gem install noumenon`
|
|
122
|
-
|
|
123
|
-
Create a directory, and put the following config.ru in it:
|
|
124
|
-
|
|
125
|
-
require 'noumenon'
|
|
126
|
-
Noumenon::Core.set :content_repository, "git@github.com:Noumenon/example.git"
|
|
127
|
-
|
|
128
|
-
run Noumenon.boot
|
|
129
|
-
|
|
130
|
-
And then set up your application server to provide that application. On startup it will first attempt to check out the content
|
|
131
|
-
repository, then it will parse any configuration files, and install any required dependencies. Finally, it will start hosting
|
|
132
|
-
the site.
|
|
133
|
-
|
|
134
|
-
To update the content repository restart your application server, which will cause it to update the repository, and any dependencies.
|
|
135
|
-
|
|
136
|
-
### Hosting on Heroku
|
|
137
|
-
|
|
138
|
-
The someone who worked out the way around it was me it seems. This will only work if you're deploying an entirely static site,
|
|
139
|
-
if you need the admin section to work then you'll have to host somewhere else, but otherwise, use a config.ru like this, and make
|
|
140
|
-
sure you have Noumenon in your Gemfile:
|
|
141
|
-
|
|
142
|
-
require 'noumenon'
|
|
143
|
-
Noumenon::Core.set :content_repository_path, File.expand_path("..", __FILE__)
|
|
144
|
-
|
|
145
|
-
run Noumenon.boot
|
|
73
|
+
See http://github.com/Noumenon/example-app/ for a really bare bones example of how
|
|
74
|
+
Noumenon works.
|
|
146
75
|
|
|
147
76
|
email:
|
|
148
77
|
- jon@blankpad.net
|