proton 0.3.0.rc1
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/AUTHORS +6 -0
- data/HISTORY.md +200 -0
- data/README.md +75 -0
- data/Rakefile +5 -0
- data/TODO.md +6 -0
- data/bin/proton +7 -0
- data/data/new_site/Protonfile +12 -0
- data/data/new_site/README.md +10 -0
- data/data/new_site/_layouts/default.haml +28 -0
- data/data/new_site/index.haml +5 -0
- data/data/rack/Gemfile +2 -0
- data/data/rack/Gemfile.lock +40 -0
- data/data/rack/config.ru +24 -0
- data/lib/proton.rb +78 -0
- data/lib/proton/cli.rb +227 -0
- data/lib/proton/cli/helpers.rb +89 -0
- data/lib/proton/compass_support.rb +8 -0
- data/lib/proton/config.rb +116 -0
- data/lib/proton/helpers.rb +126 -0
- data/lib/proton/layout.rb +20 -0
- data/lib/proton/meta.rb +17 -0
- data/lib/proton/page.rb +431 -0
- data/lib/proton/partial.rb +12 -0
- data/lib/proton/project.rb +176 -0
- data/lib/proton/server.rb +99 -0
- data/lib/proton/set.rb +32 -0
- data/lib/proton/version.rb +13 -0
- data/test/fixture/build_options/control/page.html +0 -0
- data/test/fixture/build_options/control/style.css +1 -0
- data/test/fixture/build_options/hyde.conf +18 -0
- data/test/fixture/build_options/site/page.haml +0 -0
- data/test/fixture/build_options/site/style.scss +1 -0
- data/test/fixture/compass/hyde.conf +4 -0
- data/test/fixture/compass/site/style.scss +5 -0
- data/test/fixture/empty_config/hyde.conf +0 -0
- data/test/fixture/extensions/control/index.html +1 -0
- data/test/fixture/extensions/extensions/a/a.rb +1 -0
- data/test/fixture/extensions/extensions/hi.rb +1 -0
- data/test/fixture/extensions/hyde.conf +8 -0
- data/test/fixture/extensions/site/index.haml +1 -0
- data/test/fixture/fail_type/control/about/index.html +2 -0
- data/test/fixture/fail_type/control/about/us.html +2 -0
- data/test/fixture/fail_type/control/index.html +1 -0
- data/test/fixture/fail_type/hyde.conf +8 -0
- data/test/fixture/fail_type/site/index.haml +4 -0
- data/test/fixture/high_version/hyde.conf +1 -0
- data/test/fixture/high_version_2/hyde.conf +1 -0
- data/test/fixture/html/control/index.html +2 -0
- data/test/fixture/html/hyde.conf +8 -0
- data/test/fixture/html/site/index.html +2 -0
- data/test/fixture/ignores/control/about.html +1 -0
- data/test/fixture/ignores/hyde.conf +10 -0
- data/test/fixture/ignores/site/about.haml +1 -0
- data/test/fixture/ignores/site/hi.haml +1 -0
- data/test/fixture/metadata/control/index.html +4 -0
- data/test/fixture/metadata/hyde.conf +8 -0
- data/test/fixture/metadata/site/index.haml +8 -0
- data/test/fixture/nested_layout/control/index.html +2 -0
- data/test/fixture/nested_layout/hyde.conf +9 -0
- data/test/fixture/nested_layout/layouts/default.haml +2 -0
- data/test/fixture/nested_layout/layouts/post.haml +3 -0
- data/test/fixture/nested_layout/site/index.haml +4 -0
- data/test/fixture/one/control/about/index.css +1 -0
- data/test/fixture/one/control/about/us.html +1 -0
- data/test/fixture/one/control/cheers.html +5 -0
- data/test/fixture/one/control/css/bar.css +0 -0
- data/test/fixture/one/control/css/style.css +1 -0
- data/test/fixture/one/control/hello.html +5 -0
- data/test/fixture/one/control/hi.html +1 -0
- data/test/fixture/one/control/images/bar.gif +0 -0
- data/test/fixture/one/control/images/baz.png +0 -0
- data/test/fixture/one/control/images/foo.jpg +0 -0
- data/test/fixture/one/control/index.html +7 -0
- data/test/fixture/one/hyde.conf +9 -0
- data/test/fixture/one/layouts/default.haml +4 -0
- data/test/fixture/one/partials/menu.haml +3 -0
- data/test/fixture/one/public/about/index.css +1 -0
- data/test/fixture/one/public/about/us.html +1 -0
- data/test/fixture/one/public/cheers.html +5 -0
- data/test/fixture/one/public/css/bar.css +0 -0
- data/test/fixture/one/public/css/style.css +1 -0
- data/test/fixture/one/public/hello.html +5 -0
- data/test/fixture/one/public/hi.html +1 -0
- data/test/fixture/one/public/images/bar.gif +0 -0
- data/test/fixture/one/public/images/baz.png +0 -0
- data/test/fixture/one/public/images/foo.jpg +0 -0
- data/test/fixture/one/public/index.html +7 -0
- data/test/fixture/one/site/about/index.scss +1 -0
- data/test/fixture/one/site/about/us.haml +3 -0
- data/test/fixture/one/site/cheers.html.haml +1 -0
- data/test/fixture/one/site/css/bar.scss +0 -0
- data/test/fixture/one/site/css/style.scss +2 -0
- data/test/fixture/one/site/hello.haml +3 -0
- data/test/fixture/one/site/hi.html +3 -0
- data/test/fixture/one/site/images/bar.gif +0 -0
- data/test/fixture/one/site/images/baz.png +0 -0
- data/test/fixture/one/site/images/foo.jpg +0 -0
- data/test/fixture/one/site/index.haml +7 -0
- data/test/fixture/parent/control/about/index.html +2 -0
- data/test/fixture/parent/control/about/us.html +2 -0
- data/test/fixture/parent/control/index.html +1 -0
- data/test/fixture/parent/hyde.conf +8 -0
- data/test/fixture/parent/site/about/index.haml +3 -0
- data/test/fixture/parent/site/about/us.haml +3 -0
- data/test/fixture/parent/site/index.haml +3 -0
- data/test/fixture/sort/control/about.html +6 -0
- data/test/fixture/sort/control/about/hardy.html +1 -0
- data/test/fixture/sort/control/about/intrepid.html +1 -0
- data/test/fixture/sort/hyde.conf +8 -0
- data/test/fixture/sort/site/about.haml +3 -0
- data/test/fixture/sort/site/about/hardy.haml +4 -0
- data/test/fixture/sort/site/about/intrepid.haml +4 -0
- data/test/fixture/subclass/control/index.html +1 -0
- data/test/fixture/subclass/extensions/a/a.rb +12 -0
- data/test/fixture/subclass/hyde.conf +9 -0
- data/test/fixture/subclass/layouts/default.haml +1 -0
- data/test/fixture/subclass/layouts/post.haml +1 -0
- data/test/fixture/subclass/site/index.haml +4 -0
- data/test/helper.rb +36 -0
- data/test/unit/build_options_test.rb +18 -0
- data/test/unit/extensions_test.rb +17 -0
- data/test/unit/fixture_test.rb +122 -0
- data/test/unit/page_test.rb +58 -0
- data/test/unit/proton_test.rb +27 -0
- data/test/unit/set_test.rb +26 -0
- metadata +301 -0
data/AUTHORS
ADDED
data/HISTORY.md
ADDED
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
Proton v0.3.0 - Jun 22, 2011
|
|
2
|
+
----------------------------
|
|
3
|
+
|
|
4
|
+
**The project has been renamed to Proton** (previously called *Hyde*).
|
|
5
|
+
|
|
6
|
+
### Changed:
|
|
7
|
+
* The main class is now called `Proton` instead of `Hyde`. However, `Hyde`
|
|
8
|
+
still works as an alias.
|
|
9
|
+
* The main executable is now called `proton` (and not `hyde`).
|
|
10
|
+
* The configuration file is now called `Protonfile`. The legacy `hyde.conf`
|
|
11
|
+
and `.hyderc` still works for backward-compatibility.
|
|
12
|
+
|
|
13
|
+
Hyde v0.2.3 - Jun 20, 2011
|
|
14
|
+
--------------------------
|
|
15
|
+
|
|
16
|
+
### Changed:
|
|
17
|
+
* Use a bundler Gemfile for Hyde sites if a Gemfile is found.
|
|
18
|
+
|
|
19
|
+
### Fixed:
|
|
20
|
+
* **Fixed `hyde create`.**
|
|
21
|
+
* Fixed overriding of Hyde::CLI via commands not working.
|
|
22
|
+
* Fixed the rel() helper.
|
|
23
|
+
|
|
24
|
+
Hyde v0.2.2 - Jun 16, 2011
|
|
25
|
+
--------------------------
|
|
26
|
+
|
|
27
|
+
### Added:
|
|
28
|
+
* **Built-in Compass support.**
|
|
29
|
+
* **Enable Sass, SCSS, Haml, Textile and Markdown by default.**
|
|
30
|
+
* Extensions from `_extensions/*rb` will now be loaded.
|
|
31
|
+
|
|
32
|
+
### Changed:
|
|
33
|
+
* The default `hyde.conf` now comments out the default stuff you don't need to set.
|
|
34
|
+
* Update dependencies to Cuba 2.0, and Hashie 1.0.
|
|
35
|
+
|
|
36
|
+
Hyde v0.1.14 - Jun 04, 2011
|
|
37
|
+
---------------------------
|
|
38
|
+
|
|
39
|
+
### Fixed:
|
|
40
|
+
* Fixed a syntax error in page.rb.
|
|
41
|
+
* Don't impose gem versions explicitly, and don't load Rubygems if used as a
|
|
42
|
+
library.
|
|
43
|
+
|
|
44
|
+
### Misc:
|
|
45
|
+
* Added some doc comments to the main classes.
|
|
46
|
+
|
|
47
|
+
Hyde v0.1.13
|
|
48
|
+
------------
|
|
49
|
+
|
|
50
|
+
- Try to fix an edge case where the path '/' gives you an arbitrary dotfile.
|
|
51
|
+
|
|
52
|
+
Hyde v0.1.11
|
|
53
|
+
------------
|
|
54
|
+
|
|
55
|
+
- Deprecate in-app caching for rack-cache.
|
|
56
|
+
- The Hyde server now sends the Last-Modified HTTP header.
|
|
57
|
+
- New Hyde sites will now use rack-cache (optionally) when used as a Rack site.
|
|
58
|
+
|
|
59
|
+
Hyde v0.1.10
|
|
60
|
+
-------
|
|
61
|
+
|
|
62
|
+
- New Hyde sites will now have a gems manifest. This means you can
|
|
63
|
+
push your Hyde sites to Heroku instantly.
|
|
64
|
+
- Add cuba to dependencies.
|
|
65
|
+
- The server now serves the right MIME types.
|
|
66
|
+
- When used as a Rack app, Hyde sends cache headers.
|
|
67
|
+
|
|
68
|
+
Hyde v0.1.9
|
|
69
|
+
-----------
|
|
70
|
+
|
|
71
|
+
- Hotfix: tilt_build_options should work even if there was no tilt_options specified.
|
|
72
|
+
|
|
73
|
+
Hyde v0.1.8
|
|
74
|
+
-----------
|
|
75
|
+
|
|
76
|
+
- Fix: 404 pages in 'hyde start' no longer throws an exception log to the viewer.
|
|
77
|
+
- Implemented the `content_for` and `yield_content` helpers.
|
|
78
|
+
- Fix partial locals not working.
|
|
79
|
+
- Allow having the same layouts/partials path as the site.
|
|
80
|
+
- Implement `Hyde.project` which returns the latest project. (deprecates $project)
|
|
81
|
+
- Support tilt_build_options in the config.
|
|
82
|
+
|
|
83
|
+
Hyde v0.1.7
|
|
84
|
+
-----------
|
|
85
|
+
|
|
86
|
+
- Show friendlier error messages.
|
|
87
|
+
- Show steps on how to install missing gems when any are encountered.
|
|
88
|
+
- Change 'hyde build' display format to look better.
|
|
89
|
+
|
|
90
|
+
Hyde v0.1.6
|
|
91
|
+
-----------
|
|
92
|
+
|
|
93
|
+
- Fix an edge case where files containing '---' somewhere is treated wrong.
|
|
94
|
+
- Ruby 1.8 compatibility.
|
|
95
|
+
|
|
96
|
+
Hyde v0.1.4
|
|
97
|
+
-----------
|
|
98
|
+
|
|
99
|
+
- Fix: `hyde start` was giving errors.
|
|
100
|
+
|
|
101
|
+
Hyde v0.1.3
|
|
102
|
+
-----------
|
|
103
|
+
|
|
104
|
+
- .html files are now being treated as .erb.
|
|
105
|
+
- Implement `page.children.find`.
|
|
106
|
+
- Implement `page.children.except`.
|
|
107
|
+
- Fix #children and sorting giving errors.
|
|
108
|
+
- Fix #siblings.
|
|
109
|
+
- Revise the 'no config file found' error message.
|
|
110
|
+
- Allow `.hyderc` as a filename.
|
|
111
|
+
- Add help for `hyde help start`.
|
|
112
|
+
- Support `hyde start -D` which is a very hackish solution to have
|
|
113
|
+
Hyde start as a daemon.
|
|
114
|
+
|
|
115
|
+
Hyde v0.1.2
|
|
116
|
+
-----------
|
|
117
|
+
|
|
118
|
+
- Allow `hyde create .` to add a hyde.conf in the current folder.
|
|
119
|
+
- Revamp the help screen.
|
|
120
|
+
- Fix: change the default load path for Sass/SCSS to 'css'.
|
|
121
|
+
- Add Page#depth.
|
|
122
|
+
- Fix Page#breadcrumbs.
|
|
123
|
+
- Fix Page#parent.
|
|
124
|
+
- Add the `rel` helper.
|
|
125
|
+
- Generated Hyde projects are now Rack-compatible.
|
|
126
|
+
|
|
127
|
+
Hyde v0.1.1
|
|
128
|
+
-----------
|
|
129
|
+
|
|
130
|
+
- Default project is now simpler. The site_path is `.`.
|
|
131
|
+
- Implement `Project#build`.
|
|
132
|
+
- If YAML parsing of page metadata fails, treat it as content.
|
|
133
|
+
- All options in `hyde.conf` are now optional (even `hyde_requirement`).
|
|
134
|
+
- Page metadata can now only be a hash.
|
|
135
|
+
- Fix `hyde start`.
|
|
136
|
+
- Minimum Ruby version is now at 1.8.6.
|
|
137
|
+
|
|
138
|
+
Hyde v0.1.0
|
|
139
|
+
-----------
|
|
140
|
+
|
|
141
|
+
**Complete rewrite.** Many thing have been deprecated.
|
|
142
|
+
|
|
143
|
+
- Now uses Tilt (for templates), Shake (for CLI) and Cuba (for the server).
|
|
144
|
+
- Now supports everything Tilt supports: CoffeeScript, Liquid, etc.
|
|
145
|
+
- Allow `tilt_options` in hyde.conf.
|
|
146
|
+
- Old extensions will be broken (but who made any yet, anyway?)
|
|
147
|
+
- Update the `hyde create` template's gitignore file to account for _public.
|
|
148
|
+
|
|
149
|
+
Hyde v0.0.8
|
|
150
|
+
-----------
|
|
151
|
+
|
|
152
|
+
- Add support for subclassing. (just add a 'type' meta)
|
|
153
|
+
- Implement Project#all.
|
|
154
|
+
- Implement Page#all and Page#all(type).
|
|
155
|
+
- Fix binary files losing extensions on 'hyde build'.
|
|
156
|
+
- Allow "layout: false" to ensure that a page doesn't have a layout.
|
|
157
|
+
- Fix bug where "index.html.haml" and "index.rss.haml" clash.
|
|
158
|
+
- Implement Page#content.
|
|
159
|
+
|
|
160
|
+
Hyde v0.0.7
|
|
161
|
+
-----------
|
|
162
|
+
|
|
163
|
+
- Add support for Sass and SCSS.
|
|
164
|
+
- Add support for ignored files.
|
|
165
|
+
|
|
166
|
+
Hyde v0.0.6
|
|
167
|
+
-----------
|
|
168
|
+
|
|
169
|
+
- Added support for blocks for `yield_content` (as default text).
|
|
170
|
+
- `Page#referrer` now is a page (instead of a string of the name).
|
|
171
|
+
- Partials path is now not ignored by default.
|
|
172
|
+
- Add support for page ordering (by the `position` key in metadata).
|
|
173
|
+
- You can now start an IRB session with the `hyde console` command.
|
|
174
|
+
- Implement traversion methods for page: #next, #previous, #siblings,
|
|
175
|
+
and #parent.
|
|
176
|
+
- Implement the 'page' variable to be available in pages.
|
|
177
|
+
- Add Page#title.
|
|
178
|
+
- Add Page#path.
|
|
179
|
+
- Add Page#breadcrumbs.
|
|
180
|
+
- Implement Utils#escape_html.
|
|
181
|
+
- Hyde now always tries 'layouts/default.*' as the default layout, if none's
|
|
182
|
+
specified. (TODO: layout: false)
|
|
183
|
+
- Implement Renderer.layoutable?, which dictates if a renderer is capable of
|
|
184
|
+
having a layout.
|
|
185
|
+
|
|
186
|
+
Hyde v0.0.5 - 2010-05-30
|
|
187
|
+
------------------------
|
|
188
|
+
|
|
189
|
+
- Implemented `content_for` and `yield_content` helpers
|
|
190
|
+
- Added `partials_path` config variable
|
|
191
|
+
- Changed helper method `partial`s syntax (from `partial X, :locals => { ... }` to `partial X, ...`)
|
|
192
|
+
- Line numbers for errors are shown now
|
|
193
|
+
- Added rudimentary 404 page
|
|
194
|
+
- Added `hyde_requirement` config variable -- Hyde will now not proceed if the project needs a later version of Hyde
|
|
195
|
+
- Extensions are now auto-guessed (for example, 'foo.less' will be accessible as 'foo.css')
|
|
196
|
+
|
|
197
|
+
Hyde v0.0.4 - 2010-05-25
|
|
198
|
+
------------------------
|
|
199
|
+
|
|
200
|
+
- First public release
|
data/README.md
ADDED
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# [Proton](http://sinefunc.com/proton?)
|
|
2
|
+
#### Proton is a website preprocessor.
|
|
3
|
+
|
|
4
|
+
http://sinefunc.com/proton/
|
|
5
|
+
|
|
6
|
+
- __HAML, Sass, Compass and more:__ Proton will let you write in HAML, SCSS,
|
|
7
|
+
Sass, and more by default. It also comes preloaded with
|
|
8
|
+
[Compass](http://compass-style.org).
|
|
9
|
+
|
|
10
|
+
- __Layouts and Partials:__ Proton lets you define your site's header and footer
|
|
11
|
+
layouts in a separate file, and even separate snippets of your site
|
|
12
|
+
into reuseable components (partials). Your code will be much cleaner and
|
|
13
|
+
DRYer!
|
|
14
|
+
|
|
15
|
+
- __Template languages:__ Proton lets you write your site in any template
|
|
16
|
+
language you need -- the translation will be taken care of for you.
|
|
17
|
+
Proton supports HAML, LessCSS, Markdown, SASS and Textile by default, and
|
|
18
|
+
more can be added through extensions.
|
|
19
|
+
|
|
20
|
+
- __Extendable:__ Proton is easily customizable with extensions. You can add
|
|
21
|
+
new helpers, new commands, support for new languages and many more by
|
|
22
|
+
simply adding the extensions to your project folder. Some are even
|
|
23
|
+
available as simple Ruby gems!
|
|
24
|
+
|
|
25
|
+
- __Design fast:__ Proton comes with a web server that lets you serve up
|
|
26
|
+
your site locally. Any changes to your files will be seen on your next
|
|
27
|
+
browser refresh!
|
|
28
|
+
|
|
29
|
+
- __Build your site as static HTMLs:__ You can export your site as plain
|
|
30
|
+
HTML files with one simple command.
|
|
31
|
+
|
|
32
|
+
Why use Proton?
|
|
33
|
+
---------------
|
|
34
|
+
|
|
35
|
+
It's like building a static site, but better! You can use Proton for:
|
|
36
|
+
|
|
37
|
+
- Building HTML prototypes
|
|
38
|
+
- Building sites with no dynamic logic
|
|
39
|
+
- Creating a blog where the entries are stored in a source repository
|
|
40
|
+
|
|
41
|
+
Installation
|
|
42
|
+
------------
|
|
43
|
+
|
|
44
|
+
gem install protonweb
|
|
45
|
+
|
|
46
|
+
Usage
|
|
47
|
+
-----
|
|
48
|
+
|
|
49
|
+
Here's how you can get started:
|
|
50
|
+
|
|
51
|
+
proton create <project_name>
|
|
52
|
+
cd <project_name>
|
|
53
|
+
proton build # <= Build the HTML files, or
|
|
54
|
+
proton start # <= Serve via a local web server
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
Testing
|
|
58
|
+
-------
|
|
59
|
+
|
|
60
|
+
Run tests:
|
|
61
|
+
|
|
62
|
+
rake test
|
|
63
|
+
|
|
64
|
+
To try it in a different Ruby version, you can use RVM + Bundler to make
|
|
65
|
+
things easier. For instance:
|
|
66
|
+
|
|
67
|
+
rvm use 1.8.7@proton --create # Create a gemset
|
|
68
|
+
bundle install # Install the needed gems on that set
|
|
69
|
+
rake test
|
|
70
|
+
|
|
71
|
+
Authors
|
|
72
|
+
-------
|
|
73
|
+
|
|
74
|
+
Authored and maintained by Rico Sta. Cruz and Sinefunc, Inc.
|
|
75
|
+
See [sinefunc.com](http://sinefunc.com) for more about our work!
|
data/Rakefile
ADDED
data/TODO.md
ADDED
data/bin/proton
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# This is a Proton site.
|
|
2
|
+
# Install Proton (`gem install proton`) and type `proton` for help.
|
|
3
|
+
requirement: 0.2
|
|
4
|
+
|
|
5
|
+
# The folder where the site's source files are kept.
|
|
6
|
+
site_path: .
|
|
7
|
+
output_path: _output
|
|
8
|
+
|
|
9
|
+
# Other paths:
|
|
10
|
+
layouts_path: _layouts
|
|
11
|
+
extensions_path: _extensions
|
|
12
|
+
partials_path: .
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
!!!
|
|
2
|
+
%html
|
|
3
|
+
%head
|
|
4
|
+
%title= page.title
|
|
5
|
+
|
|
6
|
+
%meta(charset='UTF-8')
|
|
7
|
+
-# Use the latest IE engine, or Chrome frame.
|
|
8
|
+
%meta(http-equiv='X-UA-Compatible' content='IE=edge,chrome=1')
|
|
9
|
+
|
|
10
|
+
-# Mobile viewport optimization. j.mp/bplateviewport
|
|
11
|
+
%meta(name='viewport' content='width=device-width, initial-scale=1.0')
|
|
12
|
+
|
|
13
|
+
-# Standard SEO meta
|
|
14
|
+
- if page.meta.keywords
|
|
15
|
+
%meta{:name => 'keywords', :content => page.meta.keywords}
|
|
16
|
+
- if page.meta.description
|
|
17
|
+
%meta{:name => 'description', :content => page.meta.description}
|
|
18
|
+
|
|
19
|
+
%link{:rel => 'stylesheet', :href => '/css/style.css'}
|
|
20
|
+
|
|
21
|
+
%body
|
|
22
|
+
#content
|
|
23
|
+
!= yield
|
|
24
|
+
|
|
25
|
+
%div#footer
|
|
26
|
+
%hr
|
|
27
|
+
%p Generated by Hyde
|
|
28
|
+
|
data/data/rack/Gemfile
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
GEM
|
|
2
|
+
specs:
|
|
3
|
+
RedCloth (4.2.3)
|
|
4
|
+
chunky_png (1.2.0)
|
|
5
|
+
compass (0.11.3)
|
|
6
|
+
chunky_png (~> 1.2)
|
|
7
|
+
fssm (>= 0.2.7)
|
|
8
|
+
sass (~> 3.1)
|
|
9
|
+
cuba (2.0.0)
|
|
10
|
+
rack (~> 1.2)
|
|
11
|
+
tilt (~> 1.2)
|
|
12
|
+
fssm (0.2.7)
|
|
13
|
+
haml (3.1.1)
|
|
14
|
+
hashie (1.0.0)
|
|
15
|
+
maruku (0.6.0)
|
|
16
|
+
syntax (>= 1.0.0)
|
|
17
|
+
proton (0.3.0.rc1)
|
|
18
|
+
RedCloth (~> 4.2.3)
|
|
19
|
+
compass (~> 0.11.1)
|
|
20
|
+
cuba (~> 2.0.0)
|
|
21
|
+
haml (~> 3.1.1)
|
|
22
|
+
hashie (~> 1.0.0)
|
|
23
|
+
maruku (~> 0.6.0)
|
|
24
|
+
sass (~> 3.1.1)
|
|
25
|
+
shake (~> 0.1)
|
|
26
|
+
tilt (~> 1.2.2)
|
|
27
|
+
rack (1.3.0)
|
|
28
|
+
rack-cache (1.0.2)
|
|
29
|
+
rack (>= 0.4)
|
|
30
|
+
sass (3.1.1)
|
|
31
|
+
shake (0.1.2)
|
|
32
|
+
syntax (1.0.0)
|
|
33
|
+
tilt (1.2.2)
|
|
34
|
+
|
|
35
|
+
PLATFORMS
|
|
36
|
+
ruby
|
|
37
|
+
|
|
38
|
+
DEPENDENCIES
|
|
39
|
+
proton (= 0.3.0.rc1)
|
|
40
|
+
rack-cache (~> 1.0.0)
|
data/data/rack/config.ru
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# This file exists to make this project Rack-compatible.
|
|
2
|
+
# You may delete it if you're not concerned about this.
|
|
3
|
+
|
|
4
|
+
require 'rubygems' unless defined?(::Gem)
|
|
5
|
+
|
|
6
|
+
# Use Bundler if possible.
|
|
7
|
+
begin
|
|
8
|
+
require 'bundler'
|
|
9
|
+
Bundler.setup
|
|
10
|
+
rescue LoadError
|
|
11
|
+
gem 'proton', '0.3.0.rc1'
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
# Add the 'rack-cache' gem if you want to enable caching.
|
|
15
|
+
begin
|
|
16
|
+
require 'rack/cache'
|
|
17
|
+
use Rack::Cache
|
|
18
|
+
rescue LoadError
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
# Load Proton.
|
|
22
|
+
require 'proton/server'
|
|
23
|
+
Proton::Project.new File.dirname(__FILE__)
|
|
24
|
+
run Proton::Server
|
data/lib/proton.rb
ADDED
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
$:.push *Dir[File.expand_path('../../vendor/*/lib', __FILE__)]
|
|
2
|
+
|
|
3
|
+
require 'fileutils'
|
|
4
|
+
require 'ostruct'
|
|
5
|
+
require 'hashie'
|
|
6
|
+
require 'yaml'
|
|
7
|
+
require 'tilt'
|
|
8
|
+
require 'shake'
|
|
9
|
+
|
|
10
|
+
# For Compass and such
|
|
11
|
+
Encoding.default_external = 'utf-8' if defined?(::Encoding)
|
|
12
|
+
|
|
13
|
+
# HTML files as ERB
|
|
14
|
+
Tilt.mappings['html'] = Tilt.mappings['erb']
|
|
15
|
+
|
|
16
|
+
# Class: Proton
|
|
17
|
+
# The Proton class.
|
|
18
|
+
#
|
|
19
|
+
# ## Description
|
|
20
|
+
# This is the main class.
|
|
21
|
+
#
|
|
22
|
+
# This class is also aliased as `Hyde` for backward-compatibility with
|
|
23
|
+
# versions <= 0.2.x, when the project was still called Hyde.
|
|
24
|
+
|
|
25
|
+
class Proton
|
|
26
|
+
PREFIX = File.expand_path('../', __FILE__)
|
|
27
|
+
|
|
28
|
+
# Class: Proton::Error
|
|
29
|
+
# An error.
|
|
30
|
+
#
|
|
31
|
+
# ## Description
|
|
32
|
+
# The class Error describes any error thrown by the application.
|
|
33
|
+
#
|
|
34
|
+
# ## Example
|
|
35
|
+
#
|
|
36
|
+
# begin
|
|
37
|
+
# Proton::Project.new './my_project/'
|
|
38
|
+
# rescue Proton::LegacyError => e
|
|
39
|
+
# puts "Old version."
|
|
40
|
+
# rescue Proton::VersionError => e
|
|
41
|
+
# puts "The project requires a newer version of Proton."
|
|
42
|
+
# rescue Proton::Error => e
|
|
43
|
+
# puts e
|
|
44
|
+
# end
|
|
45
|
+
|
|
46
|
+
Error = Class.new(StandardError)
|
|
47
|
+
LegacyError = Class.new(Error)
|
|
48
|
+
VersionError = Class.new(Error)
|
|
49
|
+
|
|
50
|
+
# Constant: CONFIG_FILES (Proton)
|
|
51
|
+
# An array of the allowed config filenames.
|
|
52
|
+
CONFIG_FILES = ['Protonfile', 'proton.conf', '.protonrc', 'hyde.conf', '.hyderc']
|
|
53
|
+
|
|
54
|
+
autoload :Project, "#{PREFIX}/proton/project"
|
|
55
|
+
autoload :Page, "#{PREFIX}/proton/page"
|
|
56
|
+
autoload :Meta, "#{PREFIX}/proton/meta"
|
|
57
|
+
autoload :Config, "#{PREFIX}/proton/config"
|
|
58
|
+
autoload :CLI, "#{PREFIX}/proton/cli"
|
|
59
|
+
autoload :Set, "#{PREFIX}/proton/set"
|
|
60
|
+
autoload :Layout, "#{PREFIX}/proton/layout"
|
|
61
|
+
autoload :Partial, "#{PREFIX}/proton/partial"
|
|
62
|
+
autoload :Helpers, "#{PREFIX}/proton/helpers"
|
|
63
|
+
|
|
64
|
+
require "#{PREFIX}/proton/version"
|
|
65
|
+
|
|
66
|
+
class << self
|
|
67
|
+
# Attribute: project (Proton)
|
|
68
|
+
# Returns the latest project.
|
|
69
|
+
#
|
|
70
|
+
# ## Example
|
|
71
|
+
# Proton.project.path(:site)
|
|
72
|
+
|
|
73
|
+
attr_accessor :project
|
|
74
|
+
end
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
# For backward compatibility reasons, Hyde is an alias for Proton.
|
|
78
|
+
Hyde = Proton
|