howl 0.5.5 → 0.6.0
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/.gitignore +1 -0
- data/README.markdown +10 -0
- data/VERSION +1 -1
- data/bin/howl +6 -0
- data/howl.gemspec +15 -12
- data/lib/howl/generator.rb +25 -0
- data/lib/howl/sample_site/.gitignore +1 -0
- data/{sample_site → lib/howl/sample_site}/Rakefile +0 -0
- data/lib/howl/sample_site/config.yml +2 -0
- data/{sample_site → lib/howl/sample_site}/posts/first_post.md +0 -0
- data/lib/howl/sample_site/site/css/screen.scss +57 -0
- data/lib/howl/sample_site/site/index.html +12 -0
- data/{sample_site → lib/howl/sample_site}/templates/default.html +0 -0
- data/lib/howl/sample_site/templates/post.html +10 -0
- data/lib/howl/sample_site/templates/site.html +24 -0
- data/lib/howl/view.rb +1 -1
- data/test/integration_site/config.yml +1 -0
- metadata +18 -17
- data/Gemfile.lock +0 -34
- data/sample_site/site/index.html +0 -10
- data/sample_site/templates/site.html +0 -17
- data/test/integration_site/generated/images/logo.png +0 -0
- data/test/integration_site/generated/index.html +0 -44
- data/test/integration_site/generated/posts/2010/10/17/post.html +0 -44
- data/test/integration_site/generated/stylesheets/screen.css +0 -60
data/.gitignore
CHANGED
data/README.markdown
CHANGED
@@ -16,6 +16,16 @@ Howl is a tiny static site generator.
|
|
16
16
|
/site
|
17
17
|
<generated files go here>
|
18
18
|
|
19
|
+
### Changing the date format
|
20
|
+
|
21
|
+
In `config.yml` add a line similar to the following:
|
22
|
+
|
23
|
+
date_format: "%Y-%m-%d, at %I:%M %p"
|
24
|
+
|
25
|
+
The above format renders like this:
|
26
|
+
|
27
|
+
2010-10-18, at 02:18 PM
|
28
|
+
|
19
29
|
## Note on Patches/Pull Requests
|
20
30
|
|
21
31
|
* Fork the project.
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.6.0
|
data/bin/howl
ADDED
data/howl.gemspec
CHANGED
@@ -5,13 +5,15 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{howl}
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.6.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Clinton R. Nixon"]
|
12
|
-
s.date = %q{2010-10-
|
12
|
+
s.date = %q{2010-10-23}
|
13
|
+
s.default_executable = %q{howl}
|
13
14
|
s.description = %q{Howl is a tiny static website/blog generator.}
|
14
15
|
s.email = %q{crnixon@gmail.com}
|
16
|
+
s.executables = ["howl"]
|
15
17
|
s.extra_rdoc_files = [
|
16
18
|
"LICENSE",
|
17
19
|
"README.markdown"
|
@@ -19,28 +21,33 @@ Gem::Specification.new do |s|
|
|
19
21
|
s.files = [
|
20
22
|
".gitignore",
|
21
23
|
"Gemfile",
|
22
|
-
"Gemfile.lock",
|
23
24
|
"LICENSE",
|
24
25
|
"README.markdown",
|
25
26
|
"Rakefile",
|
26
27
|
"VERSION",
|
28
|
+
"bin/howl",
|
27
29
|
"howl.gemspec",
|
28
30
|
"lib/howl.rb",
|
29
31
|
"lib/howl/converter.rb",
|
30
32
|
"lib/howl/converters/markdown.rb",
|
31
33
|
"lib/howl/converters/sass.rb",
|
32
34
|
"lib/howl/core_ext.rb",
|
35
|
+
"lib/howl/generator.rb",
|
33
36
|
"lib/howl/page.rb",
|
34
37
|
"lib/howl/plugin.rb",
|
35
38
|
"lib/howl/post.rb",
|
39
|
+
"lib/howl/sample_site/.gitignore",
|
40
|
+
"lib/howl/sample_site/Rakefile",
|
41
|
+
"lib/howl/sample_site/config.yml",
|
42
|
+
"lib/howl/sample_site/posts/first_post.md",
|
43
|
+
"lib/howl/sample_site/site/css/screen.scss",
|
44
|
+
"lib/howl/sample_site/site/index.html",
|
45
|
+
"lib/howl/sample_site/templates/default.html",
|
46
|
+
"lib/howl/sample_site/templates/post.html",
|
47
|
+
"lib/howl/sample_site/templates/site.html",
|
36
48
|
"lib/howl/site.rb",
|
37
49
|
"lib/howl/template.rb",
|
38
50
|
"lib/howl/view.rb",
|
39
|
-
"sample_site/Rakefile",
|
40
|
-
"sample_site/posts/first_post.md",
|
41
|
-
"sample_site/site/index.html",
|
42
|
-
"sample_site/templates/default.html",
|
43
|
-
"sample_site/templates/site.html",
|
44
51
|
"test/fixtures/config.yml",
|
45
52
|
"test/fixtures/posts/first_post.html",
|
46
53
|
"test/fixtures/posts/markdown_post.md",
|
@@ -58,10 +65,6 @@ Gem::Specification.new do |s|
|
|
58
65
|
"test/fixtures/templates/site.html",
|
59
66
|
"test/howl_test.rb",
|
60
67
|
"test/integration_site/config.yml",
|
61
|
-
"test/integration_site/generated/images/logo.png",
|
62
|
-
"test/integration_site/generated/index.html",
|
63
|
-
"test/integration_site/generated/posts/2010/10/17/post.html",
|
64
|
-
"test/integration_site/generated/stylesheets/screen.css",
|
65
68
|
"test/integration_site/posts/post.md",
|
66
69
|
"test/integration_site/site/images/logo.png",
|
67
70
|
"test/integration_site/site/index.html",
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'fileutils'
|
2
|
+
|
3
|
+
module Howl
|
4
|
+
module Generator
|
5
|
+
def self.generate(directory)
|
6
|
+
directory = File.expand_path(directory)
|
7
|
+
|
8
|
+
if file_in_the_way?(directory)
|
9
|
+
puts "#{directory} already exists and is not an empty directory."
|
10
|
+
exit
|
11
|
+
end
|
12
|
+
|
13
|
+
FileUtils.mkdir_p(directory)
|
14
|
+
FileUtils.cp_r(File.join(File.dirname(__FILE__), 'sample_site', '.'), directory)
|
15
|
+
end
|
16
|
+
|
17
|
+
private
|
18
|
+
|
19
|
+
def self.file_in_the_way?(directory)
|
20
|
+
File.exists?(directory) &&
|
21
|
+
(!(File.directory?(directory) &&
|
22
|
+
Dir[File.join(directory, '*')].empty?))
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
generated
|
File without changes
|
File without changes
|
@@ -0,0 +1,57 @@
|
|
1
|
+
body {
|
2
|
+
width: 500px;
|
3
|
+
margin: 0 auto;
|
4
|
+
font: 14px / 1.5 Georgia, sans-serif;
|
5
|
+
}
|
6
|
+
|
7
|
+
footer {
|
8
|
+
margin-top: 60px;
|
9
|
+
padding-top: 30px;
|
10
|
+
border-top: 1px dotted #999;
|
11
|
+
text-align: center;
|
12
|
+
}
|
13
|
+
|
14
|
+
h1, h2, h3 {
|
15
|
+
font-weight: normal;
|
16
|
+
}
|
17
|
+
|
18
|
+
a {
|
19
|
+
text-decoration: none;
|
20
|
+
background-color: #eff1f7;
|
21
|
+
color: black;
|
22
|
+
padding: 3px;
|
23
|
+
&:hover {
|
24
|
+
border-bottom: 1px solid black;
|
25
|
+
}
|
26
|
+
}
|
27
|
+
|
28
|
+
article.post {
|
29
|
+
position: relative;
|
30
|
+
margin-top: 60px;
|
31
|
+
span.sidebar {
|
32
|
+
position: absolute;
|
33
|
+
top: 5px;
|
34
|
+
left: -225px;
|
35
|
+
width: 200px;
|
36
|
+
text-align: right;
|
37
|
+
border-right: 1px dotted #999;
|
38
|
+
padding-right: 10px;
|
39
|
+
display: block;
|
40
|
+
}
|
41
|
+
}
|
42
|
+
|
43
|
+
.meta {
|
44
|
+
font-size: .8em;
|
45
|
+
color: #999;
|
46
|
+
font-style: italic;
|
47
|
+
}
|
48
|
+
|
49
|
+
a.image-link {
|
50
|
+
background: none;
|
51
|
+
padding: none;
|
52
|
+
border: none;
|
53
|
+
img {
|
54
|
+
border: 1px solid #999;
|
55
|
+
vertical-align: middle;
|
56
|
+
}
|
57
|
+
}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
template: site
|
2
|
+
|
3
|
+
{{#posts}}
|
4
|
+
<article id="{{dom_id}}" class="post">
|
5
|
+
<h2><a href="{{link}}">{{title}}</a></h2>
|
6
|
+
<span class="meta sidebar">
|
7
|
+
{{#format_date}}{{date}}{{/format_date}}<br/>
|
8
|
+
</span>
|
9
|
+
{{& rendered_content}}
|
10
|
+
<p class="meta"><a href="{{link}}">Permalink</a></p>
|
11
|
+
</article>
|
12
|
+
{{/posts}}
|
File without changes
|
@@ -0,0 +1,24 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta charset="utf-8" />
|
5
|
+
<title>{{site_title}} - {{title}}</title>
|
6
|
+
<link rel="stylesheet" href="/css/screen.css" type="text/css" />
|
7
|
+
<!--[if IE]>
|
8
|
+
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
|
9
|
+
<![endif]-->
|
10
|
+
<style>
|
11
|
+
article, aside, dialog, figure, footer, header,
|
12
|
+
hgroup, menu, nav, section { display: block; }
|
13
|
+
</style>
|
14
|
+
</head>
|
15
|
+
<body>
|
16
|
+
<header><h1><a href="/">{{site_name}}</a></h1></header>
|
17
|
+
<section id="content">
|
18
|
+
{{& content}}
|
19
|
+
</section>
|
20
|
+
<footer>
|
21
|
+
<span class="meta">Powered by Howl; Theme inspired by <a href="http://www.tumblr.com/theme/325">langer</a></span>
|
22
|
+
</footer>
|
23
|
+
</body>
|
24
|
+
</html>
|
data/lib/howl/view.rb
CHANGED
metadata
CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
|
|
4
4
|
prerelease: false
|
5
5
|
segments:
|
6
6
|
- 0
|
7
|
-
-
|
8
|
-
-
|
9
|
-
version: 0.
|
7
|
+
- 6
|
8
|
+
- 0
|
9
|
+
version: 0.6.0
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Clinton R. Nixon
|
@@ -14,8 +14,8 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-10-
|
18
|
-
default_executable:
|
17
|
+
date: 2010-10-23 00:00:00 -04:00
|
18
|
+
default_executable: howl
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: riot
|
@@ -98,8 +98,8 @@ dependencies:
|
|
98
98
|
version_requirements: *id006
|
99
99
|
description: Howl is a tiny static website/blog generator.
|
100
100
|
email: crnixon@gmail.com
|
101
|
-
executables:
|
102
|
-
|
101
|
+
executables:
|
102
|
+
- howl
|
103
103
|
extensions: []
|
104
104
|
|
105
105
|
extra_rdoc_files:
|
@@ -108,28 +108,33 @@ extra_rdoc_files:
|
|
108
108
|
files:
|
109
109
|
- .gitignore
|
110
110
|
- Gemfile
|
111
|
-
- Gemfile.lock
|
112
111
|
- LICENSE
|
113
112
|
- README.markdown
|
114
113
|
- Rakefile
|
115
114
|
- VERSION
|
115
|
+
- bin/howl
|
116
116
|
- howl.gemspec
|
117
117
|
- lib/howl.rb
|
118
118
|
- lib/howl/converter.rb
|
119
119
|
- lib/howl/converters/markdown.rb
|
120
120
|
- lib/howl/converters/sass.rb
|
121
121
|
- lib/howl/core_ext.rb
|
122
|
+
- lib/howl/generator.rb
|
122
123
|
- lib/howl/page.rb
|
123
124
|
- lib/howl/plugin.rb
|
124
125
|
- lib/howl/post.rb
|
126
|
+
- lib/howl/sample_site/.gitignore
|
127
|
+
- lib/howl/sample_site/Rakefile
|
128
|
+
- lib/howl/sample_site/config.yml
|
129
|
+
- lib/howl/sample_site/posts/first_post.md
|
130
|
+
- lib/howl/sample_site/site/css/screen.scss
|
131
|
+
- lib/howl/sample_site/site/index.html
|
132
|
+
- lib/howl/sample_site/templates/default.html
|
133
|
+
- lib/howl/sample_site/templates/post.html
|
134
|
+
- lib/howl/sample_site/templates/site.html
|
125
135
|
- lib/howl/site.rb
|
126
136
|
- lib/howl/template.rb
|
127
137
|
- lib/howl/view.rb
|
128
|
-
- sample_site/Rakefile
|
129
|
-
- sample_site/posts/first_post.md
|
130
|
-
- sample_site/site/index.html
|
131
|
-
- sample_site/templates/default.html
|
132
|
-
- sample_site/templates/site.html
|
133
138
|
- test/fixtures/config.yml
|
134
139
|
- test/fixtures/posts/first_post.html
|
135
140
|
- test/fixtures/posts/markdown_post.md
|
@@ -147,10 +152,6 @@ files:
|
|
147
152
|
- test/fixtures/templates/site.html
|
148
153
|
- test/howl_test.rb
|
149
154
|
- test/integration_site/config.yml
|
150
|
-
- test/integration_site/generated/images/logo.png
|
151
|
-
- test/integration_site/generated/index.html
|
152
|
-
- test/integration_site/generated/posts/2010/10/17/post.html
|
153
|
-
- test/integration_site/generated/stylesheets/screen.css
|
154
155
|
- test/integration_site/posts/post.md
|
155
156
|
- test/integration_site/site/images/logo.png
|
156
157
|
- test/integration_site/site/index.html
|
data/Gemfile.lock
DELETED
@@ -1,34 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: .
|
3
|
-
specs:
|
4
|
-
howl (0.5.0)
|
5
|
-
haml
|
6
|
-
hashie
|
7
|
-
mustache
|
8
|
-
rdiscount
|
9
|
-
|
10
|
-
GEM
|
11
|
-
remote: http://rubygems.org/
|
12
|
-
specs:
|
13
|
-
haml (3.0.17)
|
14
|
-
hashie (0.4.0)
|
15
|
-
mustache (0.11.2)
|
16
|
-
nokogiri (1.4.3.1)
|
17
|
-
rdiscount (1.6.5)
|
18
|
-
riot (0.11.4)
|
19
|
-
rr
|
20
|
-
term-ansicolor
|
21
|
-
rr (1.0.0)
|
22
|
-
term-ansicolor (1.0.5)
|
23
|
-
|
24
|
-
PLATFORMS
|
25
|
-
ruby
|
26
|
-
|
27
|
-
DEPENDENCIES
|
28
|
-
haml
|
29
|
-
hashie
|
30
|
-
howl!
|
31
|
-
mustache
|
32
|
-
nokogiri
|
33
|
-
rdiscount
|
34
|
-
riot (>= 0.11)
|
data/sample_site/site/index.html
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
<!DOCTYPE html>
|
2
|
-
<html>
|
3
|
-
<head>
|
4
|
-
<meta charset=utf-8 />
|
5
|
-
<title>{{title}}</title>
|
6
|
-
<!--[if IE]>
|
7
|
-
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
|
8
|
-
<![endif]-->
|
9
|
-
<style>
|
10
|
-
article, aside, dialog, figure, footer, header,
|
11
|
-
hgroup, menu, nav, section { display: block; }
|
12
|
-
</style>
|
13
|
-
</head>
|
14
|
-
<body>
|
15
|
-
{{& content}}
|
16
|
-
</body>
|
17
|
-
</html>
|
Binary file
|
@@ -1,44 +0,0 @@
|
|
1
|
-
<!DOCTYPE html>
|
2
|
-
<html>
|
3
|
-
<head>
|
4
|
-
<meta charset="utf-8" />
|
5
|
-
<title>dce.gitwrite.com</title>
|
6
|
-
<link rel="stylesheet" href="/stylesheets/screen.css" type="text/css" />
|
7
|
-
<!--[if IE]>
|
8
|
-
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
|
9
|
-
<![endif]-->
|
10
|
-
</head>
|
11
|
-
|
12
|
-
<body>
|
13
|
-
<div id="container">
|
14
|
-
<div id="header">
|
15
|
-
<h1><a href="http://dce.gitwrite.com">dce.gitwrite.com</a></h1>
|
16
|
-
</div>
|
17
|
-
|
18
|
-
<div id="content">
|
19
|
-
<div class="post">
|
20
|
-
<h2>
|
21
|
-
<a href="/posts/2010/10/17/post.html">Welcome to GitWrite</a>
|
22
|
-
</h2>
|
23
|
-
<span class="meta sidebar">
|
24
|
-
Oct 17, 2010 at 1:24 pm<br />
|
25
|
-
</span>
|
26
|
-
<p>Thank you for trying out GitWrite. Your blog lives in a repository at</p>
|
27
|
-
|
28
|
-
<blockquote><p><code>git://gitwrite.com/blogs/dce.git</code></p></blockquote>
|
29
|
-
|
30
|
-
<p>Pull it down (with <code>git checkout</code>), make some updates, and push it back.
|
31
|
-
In a few moments, your blog will be regenerated to include your new content. Of
|
32
|
-
course, you can always make edits through our <a href="http://gitwrite.com/site">web interface</a>, as well.</p>
|
33
|
-
|
34
|
-
<p class="meta"><a href="/posts/2010/10/17/post.html">Permalink</a></p>
|
35
|
-
</div>
|
36
|
-
|
37
|
-
</div>
|
38
|
-
|
39
|
-
<div id="footer" class="meta">
|
40
|
-
Powered by <a href="http://gitwrite.com" class="image-link"><img src="/images/logo.png" width="100"/></a> ¶ Theme inspired by <a href="http://www.tumblr.com/theme/325">langer</a>
|
41
|
-
</div>
|
42
|
-
</div>
|
43
|
-
</body>
|
44
|
-
</html>
|
@@ -1,44 +0,0 @@
|
|
1
|
-
<!DOCTYPE html>
|
2
|
-
<html>
|
3
|
-
<head>
|
4
|
-
<meta charset="utf-8" />
|
5
|
-
<title>dce.gitwrite.com</title>
|
6
|
-
<link rel="stylesheet" href="/stylesheets/screen.css" type="text/css" />
|
7
|
-
<!--[if IE]>
|
8
|
-
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
|
9
|
-
<![endif]-->
|
10
|
-
</head>
|
11
|
-
|
12
|
-
<body>
|
13
|
-
<div id="container">
|
14
|
-
<div id="header">
|
15
|
-
<h1><a href="http://dce.gitwrite.com">dce.gitwrite.com</a></h1>
|
16
|
-
</div>
|
17
|
-
|
18
|
-
<div id="content">
|
19
|
-
<div class="post">
|
20
|
-
<h2>Welcome to GitWrite</h2>
|
21
|
-
<span class="meta sidebar">
|
22
|
-
Oct 17, 2010 at 1:24 pm<br />
|
23
|
-
</span>
|
24
|
-
|
25
|
-
<p>Thank you for trying out GitWrite. Your blog lives in a repository at</p>
|
26
|
-
|
27
|
-
<blockquote><p><code>git://gitwrite.com/blogs/dce.git</code></p></blockquote>
|
28
|
-
|
29
|
-
<p>Pull it down (with <code>git checkout</code>), make some updates, and push it back.
|
30
|
-
In a few moments, your blog will be regenerated to include your new content. Of
|
31
|
-
course, you can always make edits through our <a href="http://gitwrite.com/site">web interface</a>, as well.</p>
|
32
|
-
|
33
|
-
|
34
|
-
<p class="meta"><a href="/posts/2010/10/17/post.html">Permalink</a></p>
|
35
|
-
</div>
|
36
|
-
|
37
|
-
</div>
|
38
|
-
|
39
|
-
<div id="footer" class="meta">
|
40
|
-
Powered by <a href="http://gitwrite.com" class="image-link"><img src="/images/logo.png" width="100"/></a> ¶ Theme inspired by <a href="http://www.tumblr.com/theme/325">langer</a>
|
41
|
-
</div>
|
42
|
-
</div>
|
43
|
-
</body>
|
44
|
-
</html>
|
@@ -1,60 +0,0 @@
|
|
1
|
-
h1, h2, h3 {
|
2
|
-
font-weight: normal;
|
3
|
-
}
|
4
|
-
|
5
|
-
a {
|
6
|
-
text-decoration: none;
|
7
|
-
background-color: #FF9;
|
8
|
-
color: black;
|
9
|
-
padding: 3px;
|
10
|
-
}
|
11
|
-
|
12
|
-
a:hover {
|
13
|
-
border-bottom: 1px solid black;
|
14
|
-
}
|
15
|
-
|
16
|
-
#container {
|
17
|
-
width: 500px;
|
18
|
-
margin: 0 auto;
|
19
|
-
font: 14px/1.5 Georgia, sans-serif;
|
20
|
-
}
|
21
|
-
|
22
|
-
#footer {
|
23
|
-
margin-top: 60px;
|
24
|
-
padding-top: 30px;
|
25
|
-
border-top: 1px dotted #999;
|
26
|
-
text-align: center;
|
27
|
-
}
|
28
|
-
|
29
|
-
div.post {
|
30
|
-
position: relative;
|
31
|
-
margin-top: 60px;
|
32
|
-
}
|
33
|
-
|
34
|
-
.meta {
|
35
|
-
font-size: .8em;
|
36
|
-
color: #999;
|
37
|
-
font-style: italic;
|
38
|
-
}
|
39
|
-
|
40
|
-
div.post span.sidebar {
|
41
|
-
position: absolute;
|
42
|
-
top: 5px;
|
43
|
-
left: -225px;
|
44
|
-
width: 200px;
|
45
|
-
text-align: right;
|
46
|
-
border-right: 1px dotted #999;
|
47
|
-
padding-right: 10px;
|
48
|
-
display: block;
|
49
|
-
}
|
50
|
-
|
51
|
-
a.image-link {
|
52
|
-
background: none;
|
53
|
-
padding: none;
|
54
|
-
border: none;
|
55
|
-
}
|
56
|
-
|
57
|
-
a.image-link img {
|
58
|
-
border: 1px solid #999;
|
59
|
-
vertical-align: middle;
|
60
|
-
}
|