jekyllpress 0.1.0 → 0.1.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4b5c5fdd1ddb2b086c4b22d33eb6e974174ca696
4
- data.tar.gz: bdaac49ecb5014b3368910cc64ac606ea1984fbe
3
+ metadata.gz: dd6682117892650ad63c153d63979873c1e42515
4
+ data.tar.gz: a8e78117bcdc10b196a28c96c6c0081f745d24cf
5
5
  SHA512:
6
- metadata.gz: 9c077112ea772189b910eb23db1e4692d73f959bcfee41bc60c0b2326f3caf9644187e7dbc5988daf841abe8ce79c3ecc3f03aaadb735f7f1a180c066e068ea0
7
- data.tar.gz: 22216e5959ff5378a873ee75772052d233f2ced80eddf0713366de667334a555b94d64e73b6083003bf2d7d7684c942a20e920206c9d46e714977208eac59ac5
6
+ metadata.gz: dcf10491338155651e916d09a0a331f64f5c920eef9c841204c6a8919ac1b7fa2130b0ab636baee54a65927ffc511f43375fe964c089586f844f8ee31b796f2e
7
+ data.tar.gz: 67d70468fd06525e2181de755b3cd1488099bec2513a606fe2e2767a6bf4bee47da94539ca96d760883c6842a040b0998c527b0e048a174f2a34eeb0eeb7e374
data/CHANGELOG CHANGED
@@ -1,5 +1,8 @@
1
- 78c8b1c (HEAD, master) new: Add :redirect command to insert a 'redirect_from:' array in the front matter of each post in the _posts directory, to allow for blog restructuring, in service of using the jekyll-redirect-from gem.
2
- 4957944 (tag: v0.0.3, origin/master) Forgot to add thor as a dependency! Doh!
1
+ 263acca (HEAD, origin/master, master) fix: use thor actions to inject redirect_from into post.
2
+ 61a16b8 new: Add options to redirect to specify the permalink template and force overwriting.
3
+ dbb8b67 (tag: v0.1.0) new: Add CHANGELOG.
4
+ 78c8b1c new: Add :redirect command to insert a 'redirect_from:' array in the front matter of each post in the _posts directory, to allow for blog restructuring, in service of using the jekyll-redirect-from gem.
5
+ 4957944 (tag: v0.0.3) Forgot to add thor as a dependency! Doh!
3
6
  a905e0e Move setup action to beginning of Usage section in README
4
7
  2ba98e4 (tag: v0.0.2) version bump
5
8
  2fee61c clean up tests, all running under one test_site
@@ -1,3 +1,3 @@
1
1
  module Jekyllpress
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
data/lib/jekyllpress.rb CHANGED
@@ -6,6 +6,9 @@ require "jekyllpress/version"
6
6
 
7
7
  module Jekyllpress
8
8
 
9
+ SETUPERROR_MESSAGE = "It appears you have not set up a template directory yet.\nRun `#{$0} setup` to set up the templates properly."
10
+ class SetupError < RuntimeError; end
11
+
9
12
  class App < Thor
10
13
  include Thor::Actions
11
14
  package_name 'Jekyllpress::App'
@@ -82,58 +85,68 @@ module Jekyllpress
82
85
  end
83
86
 
84
87
  desc "redirect OLD_DIR", "Add a jekyll-redirect-from entry in every post based on OLD_DIR"
88
+ method_option :permalink_template, :desc => "Format of permalink for redirect (old format)", :type => :string, :aliases => %w[-p]
89
+ method_option :force, :desc => "Force writing of redirect_from, even if there is one already", :type => :boolean, :aliases => %w[-F]
85
90
  def redirect(old_dir="")
86
91
  @old_dir = old_dir.to_s
87
92
  @old_dir = ask("Old directory to use in redirect: ") if @old_dir.empty?
93
+ permalink_template = options.fetch("permalink_template") { Jekyll::Configuration::DEFAULTS["permalink"] }
94
+ force_redirect = options.fetch("force") { false }
88
95
  processed_posts = []
89
- with_posts do |post|
90
- if post.data.has_key?("redirect_from")
96
+ with_posts({"permalink" => permalink_template}) do |post|
97
+ # binding.pry
98
+ if post.data.has_key?("redirect_from") && !force_redirect
91
99
  say "skipping #{post.name} - redirect_from detected"
92
100
  next
93
101
  end
94
- say "processing #{post.name}"
95
- post.data.merge!({
96
- "redirect_from" => Array(File.join('', old_dir, post.url))
97
- })
98
- rewrite_post(post)
99
- say "wrote #{post.name}"
102
+
103
+ time_now = Time.now
104
+ insert_text = %Q{# BEGIN: redirect added by jekyllpress on #{time_now}
105
+ redirect_from:
106
+ - #{File.join('', old_dir, post.url)}
107
+ # END: redirect added by jekyllpress on #{time_now}
108
+ }
109
+ insert_into_file(post_file_name(post), insert_text, :after => %r{\A---\n})
110
+
100
111
  processed_posts << {name: post.name, file: post_file_name(post)}
101
112
  end
113
+
114
+ binding.pry
102
115
  [__method__, @old_dir, processed_posts]
103
116
  end
104
117
 
105
118
  private
106
119
 
107
- def with_config
120
+ def with_config(options={})
108
121
  raise "no block given at #{caller[1]}" unless block_given?
109
122
  self.class.source_root(jekyll_config["source"])
110
123
  yield jekyll_config
111
124
  end
112
125
 
113
- def with_posts
114
- with_config do |config|
126
+ def with_posts(options={})
127
+ with_config(options) do |config|
115
128
  site = Jekyll::Site.new(config)
116
129
  site.reset
117
130
  site.read
118
131
  site.posts.each do |post|
119
132
  yield post
120
133
  end
134
+ site.reset
121
135
  end
122
136
  end
123
137
 
124
138
  def check_templates
139
+ raise SetupError.new SETUPERROR_MESSAGE unless jekyll_config.has_key?("templates")
125
140
  File.stat(File.join(source, template_dir))
126
141
  File.stat(File.join(source, template_dir, new_page_template))
127
142
  File.stat(File.join(source, template_dir, new_post_template))
128
143
  rescue ::Errno::ENOENT => error
129
- warn "It appears you have not set up a template directory yet.",
130
- "Run `#{$0} setup` to set up the templates directory"
131
- raise error
144
+ raise SetupError.new SETUPERROR_MESSAGE
132
145
  end
133
146
 
134
- def jekyll_config
147
+ def jekyll_config(options={})
135
148
  @jekyll_config ||= begin
136
- conf = Jekyll.configuration({})
149
+ conf = Jekyll.configuration(options)
137
150
  unless conf.has_key?("templates")
138
151
  conf.merge!({
139
152
  "templates" => {
@@ -144,8 +157,9 @@ module Jekyllpress
144
157
  })
145
158
  end
146
159
  end
147
-
160
+ # @jekyll_config ||= Jekyll.configuration(options)
148
161
  end
162
+
149
163
  def new_ext
150
164
  jekyll_config["markdown_ext"].split(',').first
151
165
  end
@@ -190,16 +204,6 @@ module Jekyllpress
190
204
  File.join(post.site.source, post.path)
191
205
  end
192
206
 
193
- def rewrite_post(post)
194
- file = post_file_name(post)
195
- # backup current file
196
- FileUtils.copy_file(file, "#{file}.bak")
197
- File.open(file, 'w') do |f|
198
- f.puts post.data.to_yaml
199
- f.puts "---"
200
- f.write post.content
201
- end
202
- end
203
207
  end
204
208
 
205
209
  end
@@ -1,144 +1,215 @@
1
1
  require 'spec_helper'
2
2
 
3
- jekyll_match = %r[(gems/jekyll-.+/lib/jekyll)]
4
- # load 'jekyllpress.rb'; STDERR.puts $".grep(jekyll_match); exit;
3
+ TEST_SITE = 'test_site'
4
+
5
+ def kill_jekyll
6
+ # This is a weird little discombobulation.
7
+ # I'm not altogether sure why I have to do this, but apparently
8
+ # the way thor, rspec, and jekyll all meld, something goes haywire.
9
+ $".delete_if{|x| x.match(%r[(/gems/jekyll-.+/lib/jekyll)])}
10
+ # run `load 'jekyllpress.rb'` in each test setup where you have a
11
+ # jekyll test directory to work with
12
+ end
5
13
 
6
- Dir.chdir(Pathname.new('spec/test_site')) do |test_dir|
7
- $".delete_if{|x| x.match(jekyll_match)} ; load 'jekyllpress.rb' # Have to load this *after* we're in the working directory
8
- # STDERR.puts Jekyll::Configuration::DEFAULTS["source"]
14
+ describe "my Jekyllpress Thor script" do
9
15
 
10
- describe Jekyllpress::App do
16
+ describe ":version" do
17
+ before(:all) do
18
+ kill_jekyll
19
+ load 'jekyllpress.rb'
20
+ end
11
21
 
12
- # it "should bloody well be in the damn spec/test_site directory!!!" do
13
- # expect(Jekyll::Configuration::DEFAULTS["source"]).to include("spec/test_site")
14
- # end
22
+ it {expect(Jekyllpress::App.start(%w[version])).to include(Jekyllpress::VERSION)}
23
+ it {expect(Jekyllpress::App.start(%w[-V])).to include(Jekyllpress::VERSION)}
24
+ it {expect(Jekyllpress::App.start(%w[--version])).to include(Jekyllpress::VERSION)}
25
+ end
26
+
27
+ describe ":new_post" do
28
+ before(:all) do
29
+ kill_jekyll
30
+ Dir.chdir("spec") do |spec_dir|
31
+ FileUtils.rm_rf TEST_SITE
32
+ `jekyll new #{TEST_SITE}`
33
+ Dir.chdir(TEST_SITE) do |test_site|
34
+ load 'jekyllpress.rb'
35
+ Jekyllpress::App.start(%w[setup])
36
+ @action, @title, @filename, @categories, @tags = Jekyllpress::App.start(%w[new_post A\ New\ Post -c one two three -t able baker charlie])
37
+ end
38
+ end
39
+ end
40
+
41
+ after(:all) do
42
+ Dir.chdir("spec") do |spec_dir|
43
+ FileUtils.rm_rf TEST_SITE
44
+ end
45
+ end
15
46
 
16
- describe ":version" do
17
- it {expect(Jekyllpress::App.start(%w[version])).to include(Jekyllpress::VERSION)}
18
- it {expect(Jekyllpress::App.start(%w[-V])).to include(Jekyllpress::VERSION)}
19
- it {expect(Jekyllpress::App.start(%w[--version])).to include(Jekyllpress::VERSION)}
20
- end
47
+ it {expect(@action).to eq :new_post}
48
+ it {expect(@title).to eq "A New Post"}
49
+ it {expect(@categories).to eq %w[one two three]}
50
+ it {expect(@tags).to eq %w[able baker charlie]}
51
+ it {expect(@filename).to be_a String}
52
+ it {expect(@filename).not_to be_empty}
53
+ it {expect(@filename).to include("/_posts/#{Time.now.strftime("%Y-%m-%d")}-a-new-post.markdown")}
54
+ end
21
55
 
22
- describe ":new_post" do
23
- before(:all) do
24
- # STDERR.puts "test_dir is #{test_dir}"
25
- Dir.chdir(test_dir) do |test_dir|
26
- # binding.pry
27
- @posts_dir = Pathname.new('_posts')
28
- raise "#{@posts_dir} does not exist!" unless @posts_dir.directory?
29
- @posts_dir.children.each(&:unlink)
30
- @templates = Pathname.new('_templates')
31
- @templates.rmtree if @templates.exist?
56
+ describe ":new_page" do
57
+ before(:all) do
58
+ kill_jekyll
59
+ Dir.chdir("spec") do |spec_dir|
60
+ FileUtils.rm_rf TEST_SITE
61
+ `jekyll new #{TEST_SITE}`
62
+ Dir.chdir(TEST_SITE) do |test_site|
63
+ load 'jekyllpress.rb'
32
64
  Jekyllpress::App.start(%w[setup])
33
- @action, @title, @filename, @categories, @tags = Jekyllpress::App.start(%w[new_post A\ New\ Post -c=one two three -t=a b c])
34
65
  end
35
66
  end
36
- # it "should bloody well be in the damn spec/test_site directory!!!" do
37
- # expect(Jekyll::Configuration::DEFAULTS["source"]).to include("spec/test_site")
38
- # end
39
- it {expect(@action).to eq :new_post}
40
- it {expect(@title).to eq "A New Post"}
41
- it {expect(@categories).to eq %w[one two three]}
42
- it {expect(@tags).to eq %w[a b c]}
67
+ end
68
+
69
+ after(:all) do
70
+ Dir.chdir("spec") do |spec_dir|
71
+ FileUtils.rm_rf TEST_SITE
72
+ end
73
+ end
74
+
75
+
76
+ it "should report an error if location is an absolute path" do
77
+ expect{Jekyllpress::App.start(%w[new_page bogus --location /pages])}.to raise_error(RuntimeError, "location can not be an absolute path: /pages")
78
+ end
79
+
80
+ context "create a new page" do
81
+ before(:all) do
82
+ @action, @title, @filename, @location = Jekyllpress::App.start(%w[new_page A\ New\ Page -l=pages])
83
+ end
84
+
85
+ after(:all) do
86
+ File.unlink(@filename)
87
+ end
88
+
89
+ it {expect(@action).to eq :new_page}
90
+ it {expect(@title).to eq "A New Page"}
91
+ it {expect(@location).to eq "pages"}
43
92
  it {expect(@filename).to be_a String}
44
93
  it {expect(@filename).not_to be_empty}
45
- it {expect(@filename).to include("#{test_dir}/_posts/#{Time.now.strftime("%Y-%m-%d")}-a-new-post.markdown")}
94
+ it {expect(@filename).to include("/pages/a-new-page/index.markdown")}
46
95
  end
96
+ end
47
97
 
48
- describe ":new_page" do
49
- it "should report an error if location is an absolute path" do
50
- expect{Jekyllpress::App.start(%w[new_page bogus --location /pages])}.to raise_error(RuntimeError, "location can not be an absolute path: /pages")
51
- end
52
-
53
- context "create a new page" do
54
- before(:all) do
55
- Dir.chdir(test_dir) do |test_dir|
56
- @pages_dir = Pathname.new('pages')
57
- raise "#{@pages_dir} does not exist!" unless @pages_dir.directory?
58
- @pages_dir.children.each(&:rmtree)
59
- @templates = Pathname.new('_templates')
60
- @templates.rmtree if @templates.exist?
61
- Jekyllpress::App.start(%w[setup])
62
- @action, @title, @filename, @location = Jekyllpress::App.start(%w[new_page A\ New\ Page -l=pages])
63
- end
98
+ describe "no templates" do
99
+
100
+ before(:all) do
101
+ kill_jekyll
102
+ Dir.chdir("spec") do |spec_dir|
103
+ FileUtils.rm_rf TEST_SITE
104
+ `jekyll new #{TEST_SITE}`
105
+ Dir.chdir(TEST_SITE) do |test_site|
106
+ load 'jekyllpress.rb'
64
107
  end
65
- it {expect(@action).to eq :new_page}
66
- it {expect(@title).to eq "A New Page"}
67
- it {expect(@location).to eq "pages"}
68
- it {expect(@filename).to be_a String}
69
- it {expect(@filename).not_to be_empty}
70
- it {expect(@filename).to include("#{test_dir}/pages/a-new-page/index.markdown")}
71
108
  end
72
109
  end
73
110
 
74
- describe "no templates" do
111
+ after(:all) do
112
+ Dir.chdir("spec") do |spec_dir|
113
+ FileUtils.rm_rf TEST_SITE
114
+ end
115
+ end
75
116
 
117
+ it "should abort when no templates are found" do
118
+ expect{Jekyllpress::App.start(%w[new_page blah])}.to raise_error(Jekyllpress::SetupError)
119
+ end
120
+
121
+ context ":setup" do
76
122
  before(:all) do
77
- Dir.chdir(test_dir) do |test_dir|
78
- @templates = Pathname.new('_templates')
79
- @templates.rmtree if @templates.exist?
80
- end
123
+ @action, @source, @template_dir, @new_post_template, @new_page_template = Jekyllpress::App.start(%w[setup])
81
124
  end
82
-
83
- it "should abort when no templates are found" do
84
- expect{Jekyllpress::App.start(%w[new_page blah])}.to raise_error(::Errno::ENOENT)
85
- expect(@templates.directory?).not_to eq(true)
86
- end
87
-
88
- context ":setup" do
89
- before(:all) do
90
- @action, @source, @template_dir, @new_post_template, @new_page_template = Jekyllpress::App.start(%w[setup])
125
+
126
+ it { expect(@action).to eq(:setup) }
127
+ it { expect(@source).to include("spec/test_site") }
128
+ it { expect(@template_dir).to eq("_templates") }
129
+ it { expect(@new_post_template).to eq("new_post.markdown") }
130
+ it { expect(@new_page_template).to eq("new_page.markdown") }
131
+
132
+ it "templates directory created" do
133
+ Dir.chdir(File.join("spec",TEST_SITE)) do |test_dir|
134
+ expect(File.directory?(@template_dir)).to eq true
91
135
  end
92
-
93
- it { expect(@action).to eq(:setup) }
94
- it { expect(@source).to include("spec/test_site") }
95
- it { expect(@template_dir).to eq("_templates") }
96
- it { expect(@new_post_template).to eq("new_post.markdown") }
97
- it { expect(@new_page_template).to eq("new_page.markdown") }
98
-
99
- it "templates directory created" do
100
- Dir.chdir(test_dir) do |test_dir|
101
- expect(File.directory?(@template_dir)).to eq true
102
- end
136
+ end
137
+
138
+ it "new_post_template created" do
139
+ Dir.chdir(File.join("spec",TEST_SITE)) do |test_dir|
140
+ expect(File.exist?(File.join(@template_dir, @new_post_template)))
103
141
  end
104
-
105
- it "new_post_template created" do
106
- Dir.chdir(test_dir) do |test_dir|
107
- expect(File.exist?(File.join(@template_dir, @new_post_template)))
108
- end
142
+ end
143
+
144
+ it "new_page_template created" do
145
+ Dir.chdir(File.join("spec",TEST_SITE)) do |test_dir|
146
+ expect(File.exist?(File.join(@template_dir, @new_page_template)))
109
147
  end
110
-
111
- it "new_page_template created" do
112
- Dir.chdir(test_dir) do |test_dir|
113
- expect(File.exist?(File.join(@template_dir, @new_page_template)))
148
+ end
149
+
150
+ end
151
+
152
+ end
153
+
154
+ describe ":redirect" do
155
+ before do
156
+ kill_jekyll
157
+ Dir.chdir("spec") do |spec_dir|
158
+ FileUtils.rm_rf TEST_SITE
159
+ `jekyll new #{TEST_SITE}`
160
+ Dir.chdir(TEST_SITE) do |test_site|
161
+ load 'jekyllpress.rb'
162
+ File.open(File.join("_posts","2013-12-31-an-old-post.markdown"), 'w') do |post|
163
+ frontmatter = {
164
+ "title" => "An old post",
165
+ "date" => "2013-12-31 12:31",
166
+ "layout" => "post",
167
+ "redirect_from" => Array("/oldsite/2013/12/31/an-old-post/")
168
+ }
169
+ post.puts frontmatter.to_yaml
170
+ post.puts "---"
171
+ post.puts "Old horse kitty kat peanut butter engine."
172
+ post.puts "\n"
173
+ post.puts "This is a post with a redirect_from."
114
174
  end
115
175
  end
116
-
117
176
  end
118
-
119
177
  end
120
178
 
121
- describe ":redirect" do
122
- before(:all) do
123
- @action, @old_dir, @posts = Jekyllpress::App.start(%w[redirect BLOG])
179
+ after do
180
+ Dir.chdir("spec") do |spec_dir|
181
+ FileUtils.rm_rf TEST_SITE
124
182
  end
183
+ end
184
+
185
+ # after(:each) do # restore backups to normal
186
+ # @posts.each do |post|
187
+ # FileUtils.mv("#{post[:file]}.bak", post[:file], force: true, verbose: true)
188
+ # end
189
+ # end
125
190
 
126
- it "each post has a redirect_from: in frontmatter" do
191
+ it "only one post has a redirect_from: in frontmatter" do
192
+ Dir.chdir(File.join("spec", TEST_SITE)) do |test_site|
193
+ @action, @old_dir, @posts = Jekyllpress::App.start(%w[redirect BLOG])
194
+ expect(@posts.count).to eq(1)
127
195
  @posts.each do |post|
128
196
  post_content = File.read post[:file]
129
197
  expect(post_content).to match(%r{^redirect_from:$})
198
+ expect(post_content).to match(%r{^ - /BLOG/})
130
199
  end
131
200
  end
201
+ end
132
202
 
133
- after(:all) do
134
- # restore backups to normal
135
- @posts.each do |post|
136
- FileUtils.mv("#{post[:file]}.bak", post[:file], force: true)
137
- end
203
+ it "all posts have a redirect_from: in frontmatter" do
204
+ @action, @old_dir, @posts = Jekyllpress::App.start(%w[redirect BLOG -F])
205
+ expect(@posts.count).to eq(2)
206
+ @posts.each do |post|
207
+ post_content = File.read post[:file]
208
+ expect(post_content).to match(%r{^redirect_from:$})
209
+ expect(post_content).to match(%r{^ - /BLOG/})
138
210
  end
139
-
140
-
141
211
  end
142
212
 
143
213
  end
214
+
144
215
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyllpress
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tamara Temple
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-09-28 00:00:00.000000000 Z
11
+ date: 2014-09-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -188,20 +188,6 @@ files:
188
188
  - spec/jekyllpress_spec.rb
189
189
  - spec/lib/jekyllpress_spec.rb
190
190
  - spec/spec_helper.rb
191
- - spec/test_site/.gitignore
192
- - spec/test_site/_config.yml
193
- - spec/test_site/_includes/footer.html
194
- - spec/test_site/_includes/head.html
195
- - spec/test_site/_includes/header.html
196
- - spec/test_site/_layouts/default.html
197
- - spec/test_site/_layouts/page.html
198
- - spec/test_site/_layouts/post.html
199
- - spec/test_site/_templates/new_page.markdown
200
- - spec/test_site/_templates/new_post.markdown
201
- - spec/test_site/about.md
202
- - spec/test_site/css/main.css
203
- - spec/test_site/feed.xml
204
- - spec/test_site/index.html
205
191
  homepage: https://github.com/tamouse/jekyllpress
206
192
  licenses:
207
193
  - MIT
@@ -230,18 +216,4 @@ test_files:
230
216
  - spec/jekyllpress_spec.rb
231
217
  - spec/lib/jekyllpress_spec.rb
232
218
  - spec/spec_helper.rb
233
- - spec/test_site/.gitignore
234
- - spec/test_site/_config.yml
235
- - spec/test_site/_includes/footer.html
236
- - spec/test_site/_includes/head.html
237
- - spec/test_site/_includes/header.html
238
- - spec/test_site/_layouts/default.html
239
- - spec/test_site/_layouts/page.html
240
- - spec/test_site/_layouts/post.html
241
- - spec/test_site/_templates/new_page.markdown
242
- - spec/test_site/_templates/new_post.markdown
243
- - spec/test_site/about.md
244
- - spec/test_site/css/main.css
245
- - spec/test_site/feed.xml
246
- - spec/test_site/index.html
247
219
  has_rdoc:
@@ -1 +0,0 @@
1
- _site
@@ -1,12 +0,0 @@
1
- # Site settings
2
- title: Your awesome title
3
- email: your-email@domain.com
4
- description: "Write an awesome description for your new site here. You can edit this line in _config.yml. It will appear in your document head meta (for Google search results) and in your feed.xml site description."
5
- baseurl: ""
6
- url: "http://yourdomain.com"
7
- twitter_username: jekyllrb
8
- github_username: jekyll
9
-
10
- # Build settings
11
- markdown: kramdown
12
- permalink: pretty
@@ -1,61 +0,0 @@
1
- <footer class="site-footer">
2
-
3
- <div class="wrap">
4
-
5
- <h2 class="footer-heading">{{ site.title }}</h2>
6
-
7
- <div class="footer-col-1 column">
8
- <ul>
9
- <li>{{ site.title }}</li>
10
- <li><a href="mailto:{{ site.email }}">{{ site.email }}</a></li>
11
- </ul>
12
- </div>
13
-
14
- <div class="footer-col-2 column">
15
- <ul>
16
- {% if site.github_username %}<li>
17
- <a href="https://github.com/{{ site.github_username }}">
18
- <span class="icon github">
19
- <svg version="1.1" class="github-icon-svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
20
- viewBox="0 0 16 16" enable-background="new 0 0 16 16" xml:space="preserve">
21
- <path fill-rule="evenodd" clip-rule="evenodd" fill="#C2C2C2" d="M7.999,0.431c-4.285,0-7.76,3.474-7.76,7.761
22
- c0,3.428,2.223,6.337,5.307,7.363c0.388,0.071,0.53-0.168,0.53-0.374c0-0.184-0.007-0.672-0.01-1.32
23
- c-2.159,0.469-2.614-1.04-2.614-1.04c-0.353-0.896-0.862-1.135-0.862-1.135c-0.705-0.481,0.053-0.472,0.053-0.472
24
- c0.779,0.055,1.189,0.8,1.189,0.8c0.692,1.186,1.816,0.843,2.258,0.645c0.071-0.502,0.271-0.843,0.493-1.037
25
- C4.86,11.425,3.049,10.76,3.049,7.786c0-0.847,0.302-1.54,0.799-2.082C3.768,5.507,3.501,4.718,3.924,3.65
26
- c0,0,0.652-0.209,2.134,0.796C6.677,4.273,7.34,4.187,8,4.184c0.659,0.003,1.323,0.089,1.943,0.261
27
- c1.482-1.004,2.132-0.796,2.132-0.796c0.423,1.068,0.157,1.857,0.077,2.054c0.497,0.542,0.798,1.235,0.798,2.082
28
- c0,2.981-1.814,3.637-3.543,3.829c0.279,0.24,0.527,0.713,0.527,1.437c0,1.037-0.01,1.874-0.01,2.129
29
- c0,0.208,0.14,0.449,0.534,0.373c3.081-1.028,5.302-3.935,5.302-7.362C15.76,3.906,12.285,0.431,7.999,0.431z"/>
30
- </svg>
31
- </span>
32
- <span class="username">{{ site.github_username }}</span>
33
- </a>
34
- </li>{% endif %}
35
- {% if site.twitter_username %}<li>
36
- <a href="https://twitter.com/{{ site.twitter_username }}">
37
- <span class="icon twitter">
38
- <svg version="1.1" class="twitter-icon-svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
39
- viewBox="0 0 16 16" enable-background="new 0 0 16 16" xml:space="preserve">
40
- <path fill="#C2C2C2" d="M15.969,3.058c-0.586,0.26-1.217,0.436-1.878,0.515c0.675-0.405,1.194-1.045,1.438-1.809
41
- c-0.632,0.375-1.332,0.647-2.076,0.793c-0.596-0.636-1.446-1.033-2.387-1.033c-1.806,0-3.27,1.464-3.27,3.27
42
- c0,0.256,0.029,0.506,0.085,0.745C5.163,5.404,2.753,4.102,1.14,2.124C0.859,2.607,0.698,3.168,0.698,3.767
43
- c0,1.134,0.577,2.135,1.455,2.722C1.616,6.472,1.112,6.325,0.671,6.08c0,0.014,0,0.027,0,0.041c0,1.584,1.127,2.906,2.623,3.206
44
- C3.02,9.402,2.731,9.442,2.433,9.442c-0.211,0-0.416-0.021-0.615-0.059c0.416,1.299,1.624,2.245,3.055,2.271
45
- c-1.119,0.877-2.529,1.4-4.061,1.4c-0.264,0-0.524-0.015-0.78-0.046c1.447,0.928,3.166,1.469,5.013,1.469
46
- c6.015,0,9.304-4.983,9.304-9.304c0-0.142-0.003-0.283-0.009-0.423C14.976,4.29,15.531,3.714,15.969,3.058z"/>
47
- </svg>
48
- </span>
49
- <span class="username">{{ site.twitter_username }}</span>
50
- </a>
51
- </li>{% endif %}
52
- </ul>
53
- </div>
54
-
55
- <div class="footer-col-3 column">
56
- <p class="text">{{ site.description }}</p>
57
- </div>
58
-
59
- </div>
60
-
61
- </footer>
@@ -1,12 +0,0 @@
1
- <head>
2
- <meta charset="utf-8">
3
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
4
- <title>{% if page.title %}{{ page.title }}{% else %}{{ site.title }}{% endif %}</title>
5
- <meta name="viewport" content="width=device-width">
6
- <meta name="description" content="{{ site.description }}">
7
- <link rel="canonical" href="{{ page.url | replace:'index.html','' | prepend: site.baseurl | prepend: site.url }}">
8
-
9
- <!-- Custom CSS -->
10
- <link rel="stylesheet" href="{{ "/css/main.css" | prepend: site.baseurl }}">
11
-
12
- </head>
@@ -1,28 +0,0 @@
1
- <header class="site-header">
2
-
3
- <div class="wrap">
4
-
5
- <a class="site-title" href="{{ site.baseurl }}/">{{ site.title }}</a>
6
-
7
- <nav class="site-nav">
8
- <a href="#" class="menu-icon">
9
- <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
10
- viewBox="0 0 18 15" enable-background="new 0 0 18 15" xml:space="preserve">
11
- <path fill="#505050" d="M18,1.484c0,0.82-0.665,1.484-1.484,1.484H1.484C0.665,2.969,0,2.304,0,1.484l0,0C0,0.665,0.665,0,1.484,0
12
- h15.031C17.335,0,18,0.665,18,1.484L18,1.484z"/>
13
- <path fill="#505050" d="M18,7.516C18,8.335,17.335,9,16.516,9H1.484C0.665,9,0,8.335,0,7.516l0,0c0-0.82,0.665-1.484,1.484-1.484
14
- h15.031C17.335,6.031,18,6.696,18,7.516L18,7.516z"/>
15
- <path fill="#505050" d="M18,13.516C18,14.335,17.335,15,16.516,15H1.484C0.665,15,0,14.335,0,13.516l0,0
16
- c0-0.82,0.665-1.484,1.484-1.484h15.031C17.335,12.031,18,12.696,18,13.516L18,13.516z"/>
17
- </svg>
18
- </a>
19
- <div class="trigger">
20
- {% for page in site.pages %}
21
- {% if page.title %}<a class="page-link" href="{{ page.url | prepend: site.baseurl }}">{{ page.title }}</a>{% endif %}
22
- {% endfor %}
23
- </div>
24
- </nav>
25
-
26
- </div>
27
-
28
- </header>
@@ -1,19 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
-
4
- {% include head.html %}
5
-
6
- <body>
7
-
8
- {% include header.html %}
9
-
10
- <div class="page-content">
11
- <div class="wrap">
12
- {{ content }}
13
- </div>
14
- </div>
15
-
16
- {% include footer.html %}
17
-
18
- </body>
19
- </html>
@@ -1,14 +0,0 @@
1
- ---
2
- layout: default
3
- ---
4
- <div class="post">
5
-
6
- <header class="post-header">
7
- <h1>{{ page.title }}</h1>
8
- </header>
9
-
10
- <article class="post-content">
11
- {{ content }}
12
- </article>
13
-
14
- </div>
@@ -1,15 +0,0 @@
1
- ---
2
- layout: default
3
- ---
4
- <div class="post">
5
-
6
- <header class="post-header">
7
- <h1>{{ page.title }}</h1>
8
- <p class="meta">{{ page.date | date: "%b %-d, %Y" }}{% if page.author %} • {{ page.author }}{% endif %}{% if page.meta %} • {{ page.meta }}{% endif %}</p>
9
- </header>
10
-
11
- <article class="post-content">
12
- {{ content }}
13
- </article>
14
-
15
- </div>
@@ -1,5 +0,0 @@
1
- ---
2
- layout: page
3
- title: <%= @title %>
4
- date: <%= Time.now.strftime("%Y-%m-%d %H:%M") %>
5
- ---
@@ -1,7 +0,0 @@
1
- ---
2
- layout: post
3
- title: <%= @title %>
4
- date: <%= Time.now.strftime("%Y-%m-%d %H:%M") %>
5
- categories: <%= @categories %>
6
- tags: <%= @tags %>
7
- ---
@@ -1,11 +0,0 @@
1
- ---
2
- layout: page
3
- title: About
4
- permalink: /about/
5
- ---
6
-
7
- This is the base Jekyll theme. You can find out more info about customizing your Jekyll theme, as well as basic Jekyll usage documentation at [jekyllrb.com](http://jekyllrb.com/)
8
-
9
- You can find the source code for the Jekyll new theme at: [github.com/jglovier/jekyll-new](https://github.com/jglovier/jekyll-new)
10
-
11
- You can find the source code for Jekyll at [github.com/jekyll/jekyll](https://github.com/jekyll/jekyll)
@@ -1,410 +0,0 @@
1
- /* Base */
2
- /* ----------------------------------------------------------*/
3
-
4
- * {
5
- margin: 0;
6
- padding: 0;
7
- }
8
-
9
- html, body { height: 100%; }
10
-
11
- body {
12
- font-family: Helvetica, Arial, sans-serif;
13
- font-size: 16px;
14
- line-height: 1.5;
15
- font-weight: 300;
16
- background-color: #fdfdfd;
17
- }
18
-
19
- h1, h2, h3, h4, h5, h6 { font-size: 100%; font-weight: 400; }
20
-
21
- a { color: #2a7ae2; text-decoration: none; }
22
- a:hover { color: #000; text-decoration: underline; }
23
- a:visited { color: #205caa; }
24
-
25
- /* Utility */
26
-
27
- .wrap:before,
28
- .wrap:after { content:""; display:table; }
29
- .wrap:after { clear: both; }
30
- .wrap {
31
- max-width: 800px;
32
- padding: 0 30px;
33
- margin: 0 auto;
34
- zoom: 1;
35
- }
36
-
37
-
38
- /* Layout Styles */
39
- /* ----------------------------------------------------------*/
40
-
41
- /* Site header */
42
-
43
- .site-header {
44
- border-top: 5px solid #333;
45
- border-bottom: 1px solid #e8e8e8;
46
- min-height: 56px;
47
- background-color: white;
48
- }
49
-
50
- .site-title,
51
- .site-title:hover,
52
- .site-title:visited {
53
- display: block;
54
- color: #333;
55
- font-size: 26px;
56
- letter-spacing: -1px;
57
- float: left;
58
- line-height: 56px;
59
- position: relative;
60
- z-index: 1;
61
- }
62
-
63
- .site-nav {
64
- float: right;
65
- line-height: 56px;
66
- }
67
-
68
- .site-nav .menu-icon { display: none; }
69
-
70
- .site-nav .page-link {
71
- margin-left: 20px;
72
- color: #727272;
73
- letter-spacing: -.5px;
74
- }
75
-
76
- /* Site footer */
77
-
78
- .site-footer {
79
- border-top: 1px solid #e8e8e8;
80
- padding: 30px 0;
81
- }
82
-
83
- .footer-heading {
84
- font-size: 18px;
85
- font-weight: 300;
86
- letter-spacing: -.5px;
87
- margin-bottom: 15px;
88
- }
89
-
90
- .site-footer .column { float: left; margin-bottom: 15px; }
91
-
92
- .footer-col-1 {
93
- width: 270px; /*fallback*/
94
- width: -webkit-calc(35% - 10px);
95
- width: -moz-calc(35% - 10px);
96
- width: -o-calc(35% - 10px);
97
- width: calc(35% - 10px);
98
- margin-right: 10px
99
- }
100
- .footer-col-2 {
101
- width: 175px; /*fallback*/
102
- width: -webkit-calc(23.125% - 10px);
103
- width: -moz-calc(23.125% - 10px);
104
- width: -o-calc(23.125% - 10px);
105
- width: calc(23.125% - 10px);
106
- margin-right: 10px
107
- }
108
- .footer-col-3 {
109
- width: 335px; /*fallback*/
110
- width: -webkit-calc(41.875%);
111
- width: -moz-calc(41.875%);
112
- width: -o-calc(41.875%);
113
- width: calc(41.875%);
114
- }
115
-
116
- .site-footer ul { list-style: none; }
117
-
118
- .site-footer li,
119
- .site-footer p {
120
- font-size: 15px;
121
- letter-spacing: -.3px;
122
- color: #828282;
123
- }
124
-
125
- .github-icon-svg,
126
- .twitter-icon-svg {
127
- display: inline-block;
128
- width: 16px;
129
- height: 16px;
130
- position: relative;
131
- top: 3px;
132
- }
133
-
134
-
135
- /* Page Content styles */
136
- /* ----------------------------------------------------------*/
137
-
138
- .page-content {
139
- padding: 30px 0;
140
- background-color: #fff;
141
- }
142
-
143
-
144
- /* Home styles */
145
- /* ----------------------------------------------------------*/
146
-
147
- .home h1 { margin-bottom: 25px; }
148
-
149
- .posts { list-style-type: none; }
150
-
151
- .posts li { margin-bottom: 30px; }
152
-
153
- .posts .post-link {
154
- font-size: 24px;
155
- letter-spacing: -1px;
156
- line-height: 1;
157
- }
158
-
159
- .posts .post-date {
160
- display: block;
161
- font-size: 15px;
162
- color: #818181;
163
- }
164
-
165
-
166
- /* Post styles */
167
- /* ----------------------------------------------------------*/
168
-
169
- .post-header { margin: 10px 0 30px; }
170
-
171
- .post-header h1 {
172
- font-size: 42px;
173
- letter-spacing: -1.75px;
174
- line-height: 1;
175
- font-weight: 300;
176
- }
177
-
178
- .post-header .meta {
179
- font-size: 15px;
180
- color: #818181;
181
- margin-top: 5px;
182
- }
183
-
184
- .post-content { margin: 0 0 30px; }
185
-
186
- .post-content > * { margin: 20px 0; }
187
-
188
-
189
- .post-content h1,
190
- .post-content h2,
191
- .post-content h3,
192
- .post-content h4,
193
- .post-content h5,
194
- .post-content h6 {
195
- line-height: 1;
196
- font-weight: 300;
197
- margin: 40px 0 20px;
198
- }
199
-
200
- .post-content h2 {
201
- font-size: 32px;
202
- letter-spacing: -1.25px;
203
- }
204
-
205
- .post-content h3 {
206
- font-size: 26px;
207
- letter-spacing: -1px;
208
- }
209
-
210
- .post-content h4 {
211
- font-size: 20px;
212
- letter-spacing: -1px;
213
- }
214
-
215
- .post-content blockquote {
216
- border-left: 4px solid #e8e8e8;
217
- padding-left: 20px;
218
- font-size: 18px;
219
- opacity: .6;
220
- letter-spacing: -1px;
221
- font-style: italic;
222
- margin: 30px 0;
223
- }
224
-
225
- .post-content ul,
226
- .post-content ol { padding-left: 20px; }
227
-
228
- .post pre,
229
- .post code {
230
- border: 1px solid #d5d5e9;
231
- background-color: #eef;
232
- padding: 8px 12px;
233
- -webkit-border-radius: 3px;
234
- -moz-border-radius: 3px;
235
- border-radius: 3px;
236
- font-size: 15px;
237
- overflow:scroll;
238
- }
239
-
240
- .post code { padding: 1px 5px; }
241
-
242
- .post ul,
243
- .post ol { margin-left: 1.35em; }
244
-
245
- .post pre code {
246
- border: 0;
247
- padding-right: 0;
248
- padding-left: 0;
249
- }
250
-
251
- /* terminal */
252
- .post pre.terminal {
253
- border: 1px solid #000;
254
- background-color: #333;
255
- color: #FFF;
256
- -webkit-border-radius: 3px;
257
- -moz-border-radius: 3px;
258
- border-radius: 3px;
259
- }
260
-
261
- .post pre.terminal code { background-color: #333; }
262
-
263
- /* Syntax highlighting styles */
264
- /* ----------------------------------------------------------*/
265
-
266
- .highlight { background: #ffffff; }
267
- .highlight .c { color: #999988; font-style: italic } /* Comment */
268
- .highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */
269
- .highlight .k { font-weight: bold } /* Keyword */
270
- .highlight .o { font-weight: bold } /* Operator */
271
- .highlight .cm { color: #999988; font-style: italic } /* Comment.Multiline */
272
- .highlight .cp { color: #999999; font-weight: bold } /* Comment.Preproc */
273
- .highlight .c1 { color: #999988; font-style: italic } /* Comment.Single */
274
- .highlight .cs { color: #999999; font-weight: bold; font-style: italic } /* Comment.Special */
275
- .highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */
276
- .highlight .gd .x { color: #000000; background-color: #ffaaaa } /* Generic.Deleted.Specific */
277
- .highlight .ge { font-style: italic } /* Generic.Emph */
278
- .highlight .gr { color: #aa0000 } /* Generic.Error */
279
- .highlight .gh { color: #999999 } /* Generic.Heading */
280
- .highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */
281
- .highlight .gi .x { color: #000000; background-color: #aaffaa } /* Generic.Inserted.Specific */
282
- .highlight .go { color: #888888 } /* Generic.Output */
283
- .highlight .gp { color: #555555 } /* Generic.Prompt */
284
- .highlight .gs { font-weight: bold } /* Generic.Strong */
285
- .highlight .gu { color: #aaaaaa } /* Generic.Subheading */
286
- .highlight .gt { color: #aa0000 } /* Generic.Traceback */
287
- .highlight .kc { font-weight: bold } /* Keyword.Constant */
288
- .highlight .kd { font-weight: bold } /* Keyword.Declaration */
289
- .highlight .kp { font-weight: bold } /* Keyword.Pseudo */
290
- .highlight .kr { font-weight: bold } /* Keyword.Reserved */
291
- .highlight .kt { color: #445588; font-weight: bold } /* Keyword.Type */
292
- .highlight .m { color: #009999 } /* Literal.Number */
293
- .highlight .s { color: #d14 } /* Literal.String */
294
- .highlight .na { color: #008080 } /* Name.Attribute */
295
- .highlight .nb { color: #0086B3 } /* Name.Builtin */
296
- .highlight .nc { color: #445588; font-weight: bold } /* Name.Class */
297
- .highlight .no { color: #008080 } /* Name.Constant */
298
- .highlight .ni { color: #800080 } /* Name.Entity */
299
- .highlight .ne { color: #990000; font-weight: bold } /* Name.Exception */
300
- .highlight .nf { color: #990000; font-weight: bold } /* Name.Function */
301
- .highlight .nn { color: #555555 } /* Name.Namespace */
302
- .highlight .nt { color: #000080 } /* Name.Tag */
303
- .highlight .nv { color: #008080 } /* Name.Variable */
304
- .highlight .ow { font-weight: bold } /* Operator.Word */
305
- .highlight .w { color: #bbbbbb } /* Text.Whitespace */
306
- .highlight .mf { color: #009999 } /* Literal.Number.Float */
307
- .highlight .mh { color: #009999 } /* Literal.Number.Hex */
308
- .highlight .mi { color: #009999 } /* Literal.Number.Integer */
309
- .highlight .mo { color: #009999 } /* Literal.Number.Oct */
310
- .highlight .sb { color: #d14 } /* Literal.String.Backtick */
311
- .highlight .sc { color: #d14 } /* Literal.String.Char */
312
- .highlight .sd { color: #d14 } /* Literal.String.Doc */
313
- .highlight .s2 { color: #d14 } /* Literal.String.Double */
314
- .highlight .se { color: #d14 } /* Literal.String.Escape */
315
- .highlight .sh { color: #d14 } /* Literal.String.Heredoc */
316
- .highlight .si { color: #d14 } /* Literal.String.Interpol */
317
- .highlight .sx { color: #d14 } /* Literal.String.Other */
318
- .highlight .sr { color: #009926 } /* Literal.String.Regex */
319
- .highlight .s1 { color: #d14 } /* Literal.String.Single */
320
- .highlight .ss { color: #990073 } /* Literal.String.Symbol */
321
- .highlight .bp { color: #999999 } /* Name.Builtin.Pseudo */
322
- .highlight .vc { color: #008080 } /* Name.Variable.Class */
323
- .highlight .vg { color: #008080 } /* Name.Variable.Global */
324
- .highlight .vi { color: #008080 } /* Name.Variable.Instance */
325
- .highlight .il { color: #009999 } /* Literal.Number.Integer.Long */
326
-
327
-
328
- /* media queries */
329
- /* ----------------------------------------------------------*/
330
-
331
-
332
- @media screen and (max-width: 750px) {
333
-
334
- .footer-col-1 { width: 50%; }
335
-
336
- .footer-col-2 {
337
- width: 45%; /*fallback*/
338
- width: -webkit-calc(50% - 10px);
339
- width: -moz-calc(50% - 10px);
340
- width: -o-calc(50% - 10px);
341
- width: calc(50% - 10px);
342
- margin-right: 0;
343
- }
344
-
345
- .site-footer .column.footer-col-3 {
346
- width: auto;
347
- float: none;
348
- clear: both;
349
- }
350
-
351
- }
352
-
353
- @media screen and (max-width: 600px) {
354
-
355
- .wrap { padding: 0 12px; }
356
-
357
- .site-nav {
358
- position: fixed;
359
- z-index: 10;
360
- top: 14px; right: 8px;
361
- background-color: white;
362
- -webkit-border-radius: 5px;
363
- -moz-border-radius: 5px;
364
- border-radius: 5px;
365
- border: 1px solid #e8e8e8;
366
- }
367
-
368
- .site-nav .menu-icon {
369
- display: block;
370
- font-size: 24px;
371
- color: #505050;
372
- float: right;
373
- width: 36px;
374
- text-align: center;
375
- line-height: 36px;
376
- }
377
-
378
- .site-nav .menu-icon svg { width: 18px; height: 16px; }
379
-
380
- .site-nav .trigger {
381
- clear: both;
382
- margin-bottom: 5px;
383
- display: none;
384
- }
385
-
386
- .site-nav:hover .trigger { display: block; }
387
-
388
- .site-nav .page-link {
389
- display: block;
390
- text-align: right;
391
- line-height: 1.25;
392
- padding: 5px 10px;
393
- margin: 0;
394
- }
395
-
396
- .post-header h1 { font-size: 36px; }
397
- .post-content h2 { font-size: 28px; }
398
- .post-content h3 { font-size: 22px; }
399
- .post-content h4 { font-size: 18px; }
400
- .post-content blockquote { padding-left: 10px; }
401
- .post-content ul,
402
- .post-content ol { padding-left: 10px; }
403
-
404
- .site-footer .column {
405
- float: none;
406
- clear: both;
407
- width: auto;
408
- margin: 0 0 15px; }
409
-
410
- }
@@ -1,30 +0,0 @@
1
- ---
2
- layout: none
3
- ---
4
- <?xml version="1.0" encoding="UTF-8"?>
5
- <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
6
- <channel>
7
- <title>{{ site.title | xml_escape }}</title>
8
- <description>{{ site.description | xml_escape }}</description>
9
- <link>{{ site.url }}{{ site.baseurl }}/</link>
10
- <atom:link href="{{ "/feed.xml" | prepend: site.baseurl | prepend: site.url }}" rel="self" type="application/rss+xml" />
11
- <pubDate>{{ site.time | date_to_rfc822 }}</pubDate>
12
- <lastBuildDate>{{ site.time | date_to_rfc822 }}</lastBuildDate>
13
- <generator>Jekyll v{{ jekyll.version }}</generator>
14
- {% for post in site.posts limit:10 %}
15
- <item>
16
- <title>{{ post.title | xml_escape }}</title>
17
- <description>{{ post.content | xml_escape }}</description>
18
- <pubDate>{{ post.date | date_to_rfc822 }}</pubDate>
19
- <link>{{ post.url | prepend: site.baseurl | prepend: site.url }}</link>
20
- <guid isPermaLink="true">{{ post.url | prepend: site.baseurl | prepend: site.url }}</guid>
21
- {% for tag in post.tags %}
22
- <category>{{ tag | xml_escape }}</category>
23
- {% endfor %}
24
- {% for cat in post.categories %}
25
- <category>{{ cat | xml_escape }}</category>
26
- {% endfor %}
27
- </item>
28
- {% endfor %}
29
- </channel>
30
- </rss>
@@ -1,20 +0,0 @@
1
- ---
2
- layout: default
3
- ---
4
-
5
- <div class="home">
6
-
7
- <h1>Posts</h1>
8
-
9
- <ul class="posts">
10
- {% for post in site.posts %}
11
- <li>
12
- <span class="post-date">{{ post.date | date: "%b %-d, %Y" }}</span>
13
- <a class="post-link" href="{{ post.url | prepend: site.baseurl }}">{{ post.title }}</a>
14
- </li>
15
- {% endfor %}
16
- </ul>
17
-
18
- <p class="rss-subscribe">subscribe <a href="{{ "/feed.xml" | prepend: site.baseurl }}">via RSS</a></p>
19
-
20
- </div>