baron 1.0.18 → 1.0.20
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.
- checksums.yaml +4 -4
- data/Backlog.txt +38 -0
- data/Readme.md +14 -22
- data/VERSION +1 -1
- data/baron.gemspec +4 -3
- data/lib/baron/blog_engine.rb +1 -0
- data/lib/baron/models/article.rb +6 -1
- data/spec/baron_article_spec.rb +1 -1
- data/spec/baron_blog_engine_spec.rb +4 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e89f92d362719ab9949fb661afd7b15fbed8c6af
|
4
|
+
data.tar.gz: d29abe97cedc71a906a8c41b7f2550292e0f4b6e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 37f7099fb31794508c6a796312b3f56413e1e52a028a952f382b47d457a54503c7f969a67ffe1ad9290351c0baf7d48032cac31450b3f31c808eb53be9763236
|
7
|
+
data.tar.gz: fef3367575b6ace44c65ca20bc382cec6f65bac75bd7dec5cf13ace6b035834f27eb9acb95fd947af65508b313b0eb1a0cafd742166a04ea5fe15cac767fd22e
|
data/Backlog.txt
ADDED
@@ -0,0 +1,38 @@
|
|
1
|
+
BACKLOG & VERSION HISTORY
|
2
|
+
|
3
|
+
[ ] Revisit naming to delineate path, url and filepath
|
4
|
+
[ ] Support feed_max_articles in the feed.atom file
|
5
|
+
[ ] Page title definition happens inside blog_engine.rb. Should happen within
|
6
|
+
page_controller.rb as a Private or Protected method.
|
7
|
+
[ ] Can I reduce the number of downcase calls by doing it to the whole path at
|
8
|
+
the beginning?
|
9
|
+
[ ] Add integration tests to ensure each page type loads with 200, and redirects
|
10
|
+
work
|
11
|
+
[ ] Consider creating a class to handle all filesystem work and better document
|
12
|
+
conventions. rename baron_engine to routing
|
13
|
+
[ ] Add letsencrypt free SSL support to rakefile tasks
|
14
|
+
[ ] Add comments
|
15
|
+
[ ] Convert font icon set to Zurb's, they have github and slideshare http://www.zurb.com/playground/foundation-icons
|
16
|
+
[ ] Add .gitkeep files to the downloads and drafts folder so I don't lose them in the repo
|
17
|
+
[ ] Setup a sample blog on a custom domain, host on heroku.
|
18
|
+
[ ] Document SEO tips & tricks
|
19
|
+
[ ] Add a sitemap template
|
20
|
+
[ ] Add 'publish' task to the rake file
|
21
|
+
[ ] Add 'clean' task to the rake file to remove all articles (should use Git to make it safer)
|
22
|
+
[ ] Add support for Author pages
|
23
|
+
[ ] Render article attributes as content name/ value pairs in the header
|
24
|
+
[ ] Incorporate 'getting started' into the default content for the blog
|
25
|
+
|
26
|
+
Version 1.1 - In progress
|
27
|
+
* Support image-based template
|
28
|
+
|
29
|
+
Version 1.0 - Initial Release
|
30
|
+
* Author articles or custom pages in markdown or HTML
|
31
|
+
* Article categories supported by simply putting articles in a folder
|
32
|
+
* Many permalink formats are supported, including a custom prefix and several
|
33
|
+
date formats
|
34
|
+
* 301 or 302 redirects are supported for easy porting from your current blog
|
35
|
+
* SEO optimized with built-in support for Robots.txt, Google Analytics, Google web master tools
|
36
|
+
* Easy to customize the look & feel via a common site layout template
|
37
|
+
* Rakefile supports deploy to git, publish to rubygems.org and install on local
|
38
|
+
system.
|
data/Readme.md
CHANGED
@@ -1,31 +1,23 @@
|
|
1
1
|
#Baron Blog Engine Gem
|
2
2
|
|
3
|
-
|
4
|
-
|
3
|
+
No one needs another blog engine. This is just a fun side project to play around
|
4
|
+
with Ruby and a small web-based app. I wanted to create the simplest content
|
5
|
+
management engine I could that included all the features I was looking for to
|
6
|
+
power my blog.
|
7
|
+
|
5
8
|
There are two parts, the [Baron Blog Engine Gem](https://rubygems.org/gems/baron)
|
6
9
|
and the [Baron Blog](https://github.com/nbuggia/baron-blog) project. The gem
|
7
10
|
contains the code for routing, HTTP, and the MVC components of a simple blog.
|
8
11
|
The blog project instantiates the gem and includes the blog UI templates and
|
9
12
|
content.
|
10
13
|
|
11
|
-
|
12
|
-
|
13
|
-
While writing this blog engine, I borrowed some code and design approaches
|
14
|
-
from many existing blog engines. Following were the most useful.
|
15
|
-
|
16
|
-
Toto
|
17
|
-
|
18
|
-
* URL: https://github.com/cloudhead/toto
|
19
|
-
* Author: http://cloudhead.io/ (Alexis Sellier)
|
20
|
-
* License: https://github.com/cloudhead/toto/blob/master/LICENSE
|
21
|
-
|
22
|
-
Jekyll
|
23
|
-
|
24
|
-
* URL: https://github.com/mojombo/jekyll
|
25
|
-
* Author: http://tom.preston-werner.com/ (Tom Preston-Werner)
|
26
|
-
* License: https://github.com/mojombo/jekyll/blob/master/LICENSE
|
27
|
-
|
28
|
-
Scanty
|
14
|
+
## Features
|
29
15
|
|
30
|
-
*
|
31
|
-
*
|
16
|
+
* Publish to Heroku (or similar) using Git
|
17
|
+
* Easy to customize the look & feel via a common site layout template
|
18
|
+
* Author posts or custom pages in markdown or HTML
|
19
|
+
* Organize content into categories
|
20
|
+
* Several permalink formats are supported, including a custom prefix and several date formats
|
21
|
+
* 301 or 302 redirects are supported for easy porting from your current blog
|
22
|
+
* SEO optimized with built-in support for Robots.txt, Google Analytics, Google web master tools
|
23
|
+
* Fun tech used: Ruby, Rack, RSpec, Bootstrap, Disqus
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.0.
|
1
|
+
1.0.20
|
data/baron.gemspec
CHANGED
@@ -2,22 +2,23 @@
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
3
|
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
|
-
# stub: baron 1.0.
|
5
|
+
# stub: baron 1.0.20 ruby lib
|
6
6
|
|
7
7
|
Gem::Specification.new do |s|
|
8
8
|
s.name = "baron"
|
9
|
-
s.version = "1.0.
|
9
|
+
s.version = "1.0.20"
|
10
10
|
|
11
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
12
12
|
s.require_paths = ["lib"]
|
13
13
|
s.authors = ["Nathan Buggia"]
|
14
|
-
s.date = "2016-07-
|
14
|
+
s.date = "2016-07-12"
|
15
15
|
s.description = "What's in the box: (1) Publish to Heroku using Git (2) Author articles in markdown (3) Article categories (4) Multiple permalink formats supported (5) Redirects (6) Advanced SEO optimizations and Google Analytics/ Webmaster Tools support. Uses Rack, RSpec, Bootstrap, JQuery, Disqus, Thin"
|
16
16
|
s.email = "nbuggia@gmail.com"
|
17
17
|
s.extra_rdoc_files = [
|
18
18
|
"LICENSE"
|
19
19
|
]
|
20
20
|
s.files = [
|
21
|
+
"Backlog.txt",
|
21
22
|
"LICENSE",
|
22
23
|
"Rakefile",
|
23
24
|
"Readme.md",
|
data/lib/baron/blog_engine.rb
CHANGED
@@ -117,6 +117,7 @@ module Baron
|
|
117
117
|
date: parts.last[0..9],
|
118
118
|
# trims date and extention
|
119
119
|
filename: parts.last[11..(-1 * (@config[:ext].length + 2))].downcase,
|
120
|
+
filename_without_extension: parts.last[0..(-1 * (@config[:ext].length + 2))].downcase,
|
120
121
|
category: parts[parts.count-2] == 'articles' ? '' : parts[parts.count-2]
|
121
122
|
}
|
122
123
|
end
|
data/lib/baron/models/article.rb
CHANGED
@@ -2,7 +2,7 @@ module Baron
|
|
2
2
|
|
3
3
|
class Article < Hash
|
4
4
|
|
5
|
-
def self.
|
5
|
+
def self.create_filename_without_extension title, date
|
6
6
|
slug = title.empty? ? "Untitled" : title.strip.downcase
|
7
7
|
slug_encoded = slug.gsub(/[^a-z0-9]/, '-')
|
8
8
|
"#{date.strftime("%Y-%m-%d-") + slug_encoded}"
|
@@ -11,6 +11,7 @@ module Baron
|
|
11
11
|
def initialize file_parts, config = {}
|
12
12
|
@config = config
|
13
13
|
self[:filename_and_path] = file_parts[:filename_and_path]
|
14
|
+
self[:filename_without_extension] = file_parts[:filename_without_extension]
|
14
15
|
self[:slug] = file_parts[:filename]
|
15
16
|
self[:category] = file_parts[:category].empty? ? '' : file_parts[:category]
|
16
17
|
self[:date] = Date.parse(file_parts[:date].gsub('/', '-')) rescue Date.today
|
@@ -73,6 +74,10 @@ module Baron
|
|
73
74
|
self[:slug]
|
74
75
|
end
|
75
76
|
|
77
|
+
def slug_with_date
|
78
|
+
|
79
|
+
end
|
80
|
+
|
76
81
|
protected
|
77
82
|
|
78
83
|
def load_article filename_and_path
|
data/spec/baron_article_spec.rb
CHANGED
@@ -52,7 +52,7 @@ describe "Baron::Article" do
|
|
52
52
|
end
|
53
53
|
|
54
54
|
it "should create values correctly" do
|
55
|
-
expect(Baron::Article.
|
55
|
+
expect(Baron::Article.create_filename_without_extension "B's Cookies & Cream 2,3,4", Date.new(2016,6,15)).to eq("2016-06-15-b-s-cookies---cream-2-3-4")
|
56
56
|
end
|
57
57
|
|
58
58
|
end
|
@@ -45,14 +45,17 @@ describe "Baron::BlogEngine" do
|
|
45
45
|
expect(articles_fileparts[0][:filename_and_path]).to eq(SAMPLE_DATA_PATH + 'articles/favorites/1916-01-01-the-road-not-taken.txt')
|
46
46
|
expect(articles_fileparts[0][:date]).to eq('1916-01-01')
|
47
47
|
expect(articles_fileparts[0][:filename]).to eq('the-road-not-taken')
|
48
|
-
expect(articles_fileparts[0][:
|
48
|
+
expect(articles_fileparts[0][:filename_without_extension]).to eq('1916-01-01-the-road-not-taken')
|
49
|
+
expect(articles_fileparts[0][:category]).to eq('favorites')
|
49
50
|
expect(articles_fileparts[1][:filename_and_path]).to eq(SAMPLE_DATA_PATH + 'articles/north of boston/1914-01-05-A-Hundred-callers.txt')
|
50
51
|
expect(articles_fileparts[1][:date]).to eq('1914-01-05')
|
51
52
|
expect(articles_fileparts[1][:filename]).to eq('a-hundred-callers')
|
53
|
+
expect(articles_fileparts[1][:filename_without_extension]).to eq('1914-01-05-a-hundred-callers')
|
52
54
|
expect(articles_fileparts[1][:category]).to eq('north of boston')
|
53
55
|
expect(articles_fileparts.last[:filename_and_path]).to eq(SAMPLE_DATA_PATH + 'articles/other authors/1909-01-02-If.txt')
|
54
56
|
expect(articles_fileparts.last[:date]).to eq('1909-01-02')
|
55
57
|
expect(articles_fileparts.last[:filename]).to eq('if')
|
58
|
+
expect(articles_fileparts.last[:filename_without_extension]).to eq('1909-01-02-if')
|
56
59
|
expect(articles_fileparts.last[:category]).to eq('other authors')
|
57
60
|
end
|
58
61
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: baron
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.20
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nathan Buggia
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-07-
|
11
|
+
date: 2016-07-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|
@@ -48,6 +48,7 @@ extensions: []
|
|
48
48
|
extra_rdoc_files:
|
49
49
|
- LICENSE
|
50
50
|
files:
|
51
|
+
- Backlog.txt
|
51
52
|
- LICENSE
|
52
53
|
- Rakefile
|
53
54
|
- Readme.md
|