baron 1.0.5 → 1.0.6

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/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.