baron 1.0.5 → 1.0.6

Sign up to get free protection for your applications and to get access to all the features.
data/Readme.md CHANGED
@@ -1,55 +1,11 @@
1
1
  #Baron Blog Engine Gem
2
2
 
3
- A full-featured, yet minimalist, blog engine for developers
3
+ A minimalist, yet fully-featured, blog engine for developers.
4
4
 
5
- I know what you're thinking, the world doesn't need another Ruby blog
6
- engine. And, okay, you're right, however Baron is a little bit different from
7
- all the others in that it is a lot more full-featured, and still only a scant
8
- 400 lines of easy-to-ready code.
5
+ This project is only the blog engine gem, if you want to play with your own
6
+ blog, you should use this project, which includes the client:
9
7
 
10
- **Features**
11
- * Publish to heroku (or similar PaaS) using Git
12
- * Author articles or custom pages in markdown, text or HTML
13
- * Article categories supported by simply putting articles in a folder
14
- * Many permalink formats are supported, including a custom prefix and several
15
- date formats
16
- * 301 or 302 redirects are support for easy porting from your current blog
17
- * SEO optimized with built-in support for Robots.txt, Google Analytics, Google
18
- web master tools
19
- * Easy to customize the look & feel via a common site layout template
20
- * Frameworks used: Rack, RSpec, Bootstrap, JQuery, Disqus, Thin
21
-
22
- ##Quick Start
23
-
24
- To use the baron blog, go to the client project and follow the instructions
25
- there. This project holds the source for the engine gem.
26
-
27
- TODO - insert link to client project when ready...
28
-
29
- ##Next Steps
30
-
31
- I wrote this as an excuse to learn a handful of new technologies and approaches,
32
- like Ruby and TDD. There are an ambitious set of features I'd like to add that
33
- each align to something else I would like to learn:
34
-
35
- * Themes - I'm designing 3-4 fancy, shmancy themes to try out this new 'flat'
36
- and minimalist thing everyone's excited about. Also a good excuse to dig into
37
- HTML5, CSS3, JQuery, Instagram's API and a few other things.
38
-
39
- * Pre-rendering - the platform nerd in me doesn't understand why the whole
40
- blog isn't pre-rendered at deploy time so heroku just serves static HTML and
41
- assets (a la <a href="https://github.com/mojombo/jekyll">Jekyll</a>)
42
-
43
- * JavaScript Comments - the blog engine currently uses Disqus for comments,
44
- which is free and cool, but I hate letting other people own my data. I want
45
- to build something similar to Disqus on top of
46
- <a href="https://www.parse.com/">Parse</a> /
47
- <a href="https://github.com/documentcloud/backbone">Backbone</a> and make it
48
- really easy to use
49
-
50
- * Simple Plugin Model - I've always wanted to write a plug-in model. I tried
51
- to write one in C++ in college and was only able to do static linking (lame). I
52
- think an interpreted language will make it much easier, right?
8
+ https://github.com/nbuggia/baron-blog
53
9
 
54
10
  ##How Does it Work?
55
11
 
@@ -95,35 +51,6 @@ into the site layout template (./themes/theme/templates/layout.rhtml)
95
51
 
96
52
  * Baron::Article - the data model for a single article.
97
53
 
98
- **Baron Blog**
99
-
100
- Project structure:
101
-
102
- ├── Gemfile
103
- ├── Rakefile
104
- ├── articles/ place your published articles here
105
- │   ├── 2012-11-09-sample-1.txt the date and URL slug are the filename
106
- │   └── category/ creating folders puts these articles in a category
107
- │   ├── another category/ spaces in folder names will be replaces with '-'s
108
- ├── config.ru configure features of the blog here
109
- ├── downloads/ files in here are publicly accessible
110
- ├── drafts/ place for your unfinished articles
111
- ├── images/ images in here are publicly accessible
112
- ├── pages/ you can create custom pages in here
113
- │   └── about.rhtml
114
- ├── resources/
115
- │   ├── feed.rss your rss feed's rendering template
116
- │   ├── redirects.txt list of redirects the blog will process
117
- │   └── robots.txt your robots.txt file
118
- └── themes/
119
- └── my-theme/ each theme has the same folder structure
120
- ├── css/
121
- ├── img/
122
- ├── js/
123
- └── templates/ rhtml rendering templates for each page type
124
-
125
- TODO - I'll update this with more detail once I've posted the Baron Blog project to github
126
-
127
54
  ##Thanks
128
55
 
129
56
  While writing this blog engine, I barrowed a lot of code and design approaches
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.0.5
1
+ 1.0.6
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "baron"
8
- s.version = "1.0.5"
8
+ s.version = "1.0.6"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Nathan Buggia"]
@@ -27,7 +27,6 @@ Gem::Specification.new do |s|
27
27
  "spec/baron_spec.rb",
28
28
  "spec/sample_data/.gitignore",
29
29
  "spec/sample_data/Gemfile",
30
- "spec/sample_data/README.md",
31
30
  "spec/sample_data/Rakefile",
32
31
  "spec/sample_data/articles/favorites/1916-01-01-the-road-not-taken.txt",
33
32
  "spec/sample_data/articles/north of boston/1914-01-01-the-pasture.txt",
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: baron
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.5
4
+ version: 1.0.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -64,7 +64,6 @@ files:
64
64
  - spec/baron_spec.rb
65
65
  - spec/sample_data/.gitignore
66
66
  - spec/sample_data/Gemfile
67
- - spec/sample_data/README.md
68
67
  - spec/sample_data/Rakefile
69
68
  - spec/sample_data/articles/favorites/1916-01-01-the-road-not-taken.txt
70
69
  - spec/sample_data/articles/north of boston/1914-01-01-the-pasture.txt
@@ -1,243 +0,0 @@
1
- #The Baron Blog
2
-
3
- A full-featured, yet minimalist, blog engine for developers
4
-
5
- I know what you're thinking, the world doesn't need another Ruby blog
6
- engine. And, okay, you're right, however Baron is a little bit different from
7
- all the others in that it is a lot more full-featured, and still only a scant
8
- 400 lines of easy-to-ready code.
9
-
10
- **Features**
11
- * Publish to heroku (or similar PaaS) using Git
12
- * Author articles or custom pages in markdown, text or HTML
13
- * Article categories supported by simply putting articles in a folder
14
- * Many permalink formats are supported, including a custom prefix and several
15
- date formats
16
- * 301 or 302 redirects are support for easy porting from your current blog
17
- * SEO optimized with built-in support for Robots.txt, Google Analytics, Google
18
- web master tools
19
- * Easy to customize the look & feel via a common site layout template
20
- * Frameworks used: Rack, RSpec, Bootstrap, JQuery, Disqus, Thin
21
-
22
- ##Quick Start
23
-
24
- Dependencies: <a href="http://git-scm.com/">git</a>,
25
- <a href="https://devcenter.heroku.com/articles/quickstart">heroku</a>,
26
- <a href="http://www.ruby-lang.org/en/downloads/">ruby</a>
27
-
28
- $ git clone https://github.com/nbuggia/baron-blog.git
29
- $ mv baron-blog my-blog
30
- $ heroku create my-blog
31
- $ TODO: heroku add local...????
32
- $ git init
33
- $ git add .
34
- $ git commit -m 'First commit of my new blog!'
35
- $ git push heroku master
36
- $ heroku open
37
-
38
- Yay! Now you probably are going to want to customize this thing, read on for
39
- all the bells and whistles.
40
-
41
- ##Quick How To's
42
-
43
- ###Customize Your Blog
44
-
45
- $ less config.ru
46
-
47
- There are many bells and whistles available for your blog, most of them can be
48
- set from inside <code>config.ru</code>. The file is well documented for all the
49
- options.
50
-
51
- The other big customization route is to hack the theme to either make your own,
52
- or to just modify it the way you'd like. Check out the
53
- **Creating Your Own Themes*** section for more information.
54
-
55
- ###Adding a Custom Domain Name (with Heroku)
56
-
57
- Go to the config section of your blog app and then enter in one or more new
58
- domain names. Next step is to redirect your DNS server to to heroku
59
-
60
- **GoDaddy**
61
-
62
-
63
- **FOOBAR**
64
-
65
-
66
- If you have a different hoster, just ask google how to set it up.
67
-
68
- Finally, you'll want to redirect the nude domain name to www, like this:
69
-
70
- my-domain.com &rarr; www.my-domain.com
71
-
72
- ###Create New Post
73
-
74
- $ rake new
75
- Title: My Blog Title
76
-
77
- This command creates a new blog post with the current date in your
78
- <code>drafts/</code> folder.
79
-
80
- To create a new post, you simply create a new text file in your favorite
81
- editor. Simply save the file somewhere in your <code>articles/</code> folder in
82
- the format of <code>YYYY-MM-DD-article-title.txt</code>. Where YYYY means the
83
- year in 4 digits, MM means the month in two digits and DD means the day of the
84
- month in 2 digits.
85
-
86
- **Attributes**
87
-
88
- The first few lines of the file are where you can place attribute value
89
- pairs in YAML format (e.g. <code>my_attribute: 'attribute'</code>). Add two new
90
- lines to start the article, and then you can write it using markdown, HTML,
91
- plain text, or a combination of all 3.
92
-
93
- * You can add additional attributes you want and then access them in the rhtml
94
- template with <code>@article[:my_attribute]</code>.
95
- * If you need to use ':' or other special characters in your value, wrap it in
96
- quotes (e.g. <code>title: "My article: Lots & Lots of Smiles"</code>)
97
-
98
- Notes
99
-
100
- * Baron forces all folder names and file names to lower case for canonicalization
101
- * You can't have periods in the file name
102
-
103
- ###Create A New Custom Page
104
-
105
- use the directory structure
106
-
107
- ###Setup redirects
108
-
109
-
110
- ###SEO
111
-
112
- ###Explore the Project
113
-
114
- Project structure:
115
-
116
- ├── Gemfile
117
- ├── Rakefile
118
- ├── articles/ place your published articles here
119
- │   ├── 2012-11-09-sample-1.txt the date and URL slug are the filename
120
- │   └── category/ creating folders puts these articles in a category
121
- │   ├── another category/ spaces in folder names will be replaces with '-'s
122
- ├── config.ru configure features of the blog here
123
- ├── downloads/ files in here are publicly accessible
124
- ├── drafts/ place for your unfinished articles
125
- ├── images/ images in here are publicly accessible
126
- ├── pages/ you can create custom pages in here
127
- │   └── about.rhtml
128
- ├── resources/
129
- │   ├── feed.rss your rss feed's rendering template
130
- │   ├── redirects.txt list of redirects the blog will process
131
- │   └── robots.txt your robots.txt file
132
- └── themes/
133
- └── my-theme/ each theme has the same folder structure
134
- ├── css/
135
- ├── img/
136
- ├── js/
137
- └── templates/ rhtml rendering templates for each page type
138
-
139
- ###Create a New Article
140
-
141
-
142
- ###Create a New Page
143
-
144
-
145
- ###Add a Custom Domain Name in Heroku (free!)
146
-
147
- TODO
148
-
149
- ###Deploy to Heroku (free!)
150
-
151
- TODO
152
-
153
- ###Domain Name Configuration
154
-
155
- Then setup use the Forwarding feature in GoDaddy to send buggia.org --> www.buggia.org
156
-
157
- http://stackoverflow.com/questions/11492563/heroku-godaddy-send-naked-domain-to-www
158
-
159
-
160
- ###Run Blog Locally
161
-
162
- Uses Thin to run the blog
163
-
164
- > cd my-blog
165
- > sudo gem install thin
166
- > thin start
167
-
168
- If you make a change to config.ru, you will need to restart thin.
169
-
170
- ###Creating Your Own Themes
171
-
172
-
173
- ##Next Steps
174
-
175
- I wrote this as an excuse to learn a handful of new technologies and approaches,
176
- like Ruby and TDD. There are an ambitious set of features I'd like to add that
177
- each align to something else I would like to learn:
178
-
179
- * Themes - I'm designing 3-4 fancy, shmancy themes to try out this new 'flat'
180
- and minimalist thing everyone's excited about. Also a good excuse to dig into
181
- HTML5, CSS3, JQuery, Instagram's API and a few other things.
182
-
183
- * Pre-rendering - the platform nerd in me doesn't understand why the whole
184
- blog isn't pre-rendered at deploy time so heroku just serves static HTML and
185
- assets (a la <a href="https://github.com/mojombo/jekyll">Jekyll</a>)
186
-
187
- * JavaScript Comments - the blog engine currently uses Disqus for comments,
188
- which is free and cool, but I hate letting other people own my data. I want
189
- to build something similar to Disqus on top of
190
- <a href="https://www.parse.com/">Parse</a> /
191
- <a href="https://github.com/documentcloud/backbone">Backbone</a> and make it
192
- really easy to use
193
-
194
- * Simple Plugin Model - I've always wanted to write a plug-in model. I tried
195
- to write one in C++ in college and was only able to do static linking (lame). I
196
- think an interpreted language will make it much easier, right?
197
-
198
- ##Namesake
199
-
200
- Pictures of the adorable baron von underbite
201
-
202
- ##Thanks
203
-
204
- While writing this blog engine, I barrowed a lot of code and design approaches
205
- from the Toto project by Cloudhead and the Scanty project by Adam Wiggins. The
206
- primary purpose of this project was a learning one for me, and both of these
207
- folks provided a lot of good code an examples. I'm not sure how much code or
208
- design awesomeness one needs to use before they are obligated to include their
209
- license, so I'm included a link to each of them just in case (and thank you
210
- both for your awesomeness!)
211
-
212
- Toto
213
- - URL: https://github.com/cloudhead/toto
214
- - Author: http://cloudhead.io/ (Alexis Sellier)
215
- - License: https://github.com/cloudhead/toto/blob/master/LICENSE
216
-
217
- Scanty
218
- - URL: https://github.com/adamwiggins/scanty
219
- - Author: http://about.adamwiggins.com/ (Adam Wiggins)
220
-
221
- ##License
222
-
223
- This software is licensed under the MIT Software License
224
-
225
- Copyright (c) 2013 Nathan Buggia
226
-
227
- Permission is hereby granted, free of charge, to any person obtaining a copy of
228
- this software and associated documentation files (the "Software"), to deal in
229
- the Software without restriction, including without limitation the rights to
230
- use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
231
- of the Software, and to permit persons to whom the Software is furnished to do
232
- so, subject to the following conditions:
233
-
234
- The above copyright notice and this permission notice shall be included in all
235
- copies or substantial portions of the Software.
236
-
237
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
238
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
239
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
240
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
241
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
242
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
243
- SOFTWARE.