octopress-hooks 2.1.0 → 2.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -1
- data/README.md +26 -13
- data/lib/octopress-hooks/version.rb +1 -1
- data/lib/octopress-hooks.rb +20 -0
- data/test/.clash.yml +10 -2
- data/test/_expected/post_read +1 -0
- data/test/_expected/{2014 → site/2014}/05/21/hi-guys.html +0 -0
- data/test/_expected/{boom → site/boom} +0 -0
- data/test/_expected/{magic → site/magic} +0 -0
- data/test/_expected/{merge_payload.html → site/merge_payload.html} +0 -0
- data/test/_expected/{post_render_page.html → site/post_render_page.html} +0 -0
- data/test/_expected/{post_write_page.html → site/post_write_page.html} +0 -0
- data/test/_expected/site/pre_read +1 -0
- data/test/_expected/{pre_render_page.html → site/pre_render_page.html} +0 -0
- data/test/_plugins/test.rb +10 -0
- metadata +11 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5e3bd95b88b25cb56b6a5bbd8f7c34fca11d523f
|
4
|
+
data.tar.gz: 106875c913792ed39b59775a987179d90486de30
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4f268204aef608a201f1f1ee5de87bd904f35ba2874fbdc9ca84c6e392e1c5d67d3ddce2a739be6d436fee17b3032f60038b3adda6e7b4c092cf91e2a4098373
|
7
|
+
data.tar.gz: f055592a699b4573b0898393d4227037cb5d8c1e47f47e75d8be50c91c67c722df4146fb2c685bb5a410a4dfaaf039fd82a1dfb111984b2fec895175ff09bda0
|
data/CHANGELOG.md
CHANGED
@@ -1,6 +1,10 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
-
### 2.
|
3
|
+
### 2.2.0 - 2014-07-28
|
4
|
+
- New: Site hook - pre_read, runs before site reads items
|
5
|
+
- New: Site hook - post_read, runs after site reads items
|
6
|
+
|
7
|
+
### 2.1.0 - 2014-07-28
|
4
8
|
- New: Added Post hooks.
|
5
9
|
- Change: Page hooks now only target pages.
|
6
10
|
- New: Added post_init hooks for pages and posts which is triggered after initialization.
|
data/README.md
CHANGED
@@ -34,9 +34,15 @@ Then add a method based on when you want to trigger your hooks.
|
|
34
34
|
|
35
35
|
The Site class has three methods. Here's an example.
|
36
36
|
|
37
|
-
```
|
37
|
+
```ruby
|
38
38
|
class MySiteHook < Octopress::Hooks::Site
|
39
39
|
|
40
|
+
def pre_read(site)
|
41
|
+
end
|
42
|
+
|
43
|
+
def post_read(site)
|
44
|
+
end
|
45
|
+
|
40
46
|
def pre_render(site)
|
41
47
|
end
|
42
48
|
|
@@ -48,6 +54,10 @@ class MySiteHook < Octopress::Hooks::Site
|
|
48
54
|
end
|
49
55
|
```
|
50
56
|
|
57
|
+
Use the `pre_read` hook to modify the site instance before posts, pages and static files are read.
|
58
|
+
|
59
|
+
Use the `pre_read` hook to modify the site instance after posts, pages and static files are read but before generators are triggered.
|
60
|
+
|
51
61
|
Use the `pre_render` hook to modify the site instance before posts and pages are rendered.
|
52
62
|
|
53
63
|
Use the `merge_paylod` hook to modify the site payload or merge custom data into it. This data will be available to all documents when they are rendered. This method must return a hash.
|
@@ -59,8 +69,8 @@ Use the `post_write` to trigger and action after all documents have been written
|
|
59
69
|
The Page and Post hooks have four methods and are identical except that Post hooks only operate on posts, and Page hooks only operate on
|
60
70
|
pages. Here's an example of a Page hook.
|
61
71
|
|
62
|
-
```
|
63
|
-
class
|
72
|
+
```ruby
|
73
|
+
class MyPageHook < Octopress::Hooks::Page
|
64
74
|
|
65
75
|
def post_init(page)
|
66
76
|
end
|
@@ -99,9 +109,9 @@ module MyModule
|
|
99
109
|
end
|
100
110
|
end
|
101
111
|
|
102
|
-
|
103
|
-
def pre_render(
|
104
|
-
MyModule.do_awesome(
|
112
|
+
MyPageHook < Octopress::Hooks::Page
|
113
|
+
def pre_render(page)
|
114
|
+
MyModule.do_awesome(page)
|
105
115
|
end
|
106
116
|
end
|
107
117
|
end
|
@@ -111,13 +121,16 @@ end
|
|
111
121
|
|
112
122
|
Just to be clear, this is the order in which these hooks are triggered.
|
113
123
|
|
114
|
-
1.
|
115
|
-
2. Site `
|
116
|
-
3.
|
117
|
-
4. Post/Page `
|
118
|
-
5.
|
119
|
-
6.
|
120
|
-
7.
|
124
|
+
1. Site `pre_read`
|
125
|
+
2. Site `post_read`
|
126
|
+
3. Post/Page `post_init`
|
127
|
+
4. Post/Page `post_init`
|
128
|
+
5. Site `pre_render`
|
129
|
+
6. Site `merge_payload`
|
130
|
+
7. Post/Page `pre_render`
|
131
|
+
8. Post/Page `post_render`
|
132
|
+
9. Post/Page `post_write`
|
133
|
+
10. Site `post_write`
|
121
134
|
|
122
135
|
## Contributing
|
123
136
|
|
data/lib/octopress-hooks.rb
CHANGED
@@ -6,6 +6,18 @@ module Octopress
|
|
6
6
|
|
7
7
|
class Site < Jekyll::Plugin
|
8
8
|
|
9
|
+
# Called before after Jekyll reads in items
|
10
|
+
# Returns nothing
|
11
|
+
#
|
12
|
+
def pre_read(site)
|
13
|
+
end
|
14
|
+
|
15
|
+
# Called right after Jekyll reads in all items, but before generators
|
16
|
+
# Returns nothing
|
17
|
+
#
|
18
|
+
def post_read(site)
|
19
|
+
end
|
20
|
+
|
9
21
|
# Called before Jekyll renders posts and pages
|
10
22
|
# Returns nothing
|
11
23
|
#
|
@@ -101,7 +113,15 @@ module Jekyll
|
|
101
113
|
#
|
102
114
|
def read
|
103
115
|
self.load_hooks
|
116
|
+
self.site_hooks.each do |hook|
|
117
|
+
hook.pre_read(self)
|
118
|
+
end
|
119
|
+
|
104
120
|
old_read
|
121
|
+
|
122
|
+
self.site_hooks.each do |hook|
|
123
|
+
hook.post_read(self)
|
124
|
+
end
|
105
125
|
end
|
106
126
|
|
107
127
|
# Allows site hooks to get access to the site before
|
data/test/.clash.yml
CHANGED
@@ -1,2 +1,10 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
-
|
2
|
+
build: true
|
3
|
+
before: rm pre_read post_read
|
4
|
+
compare: _expected/site _site
|
5
|
+
-
|
6
|
+
name: Test post_read
|
7
|
+
enforce_missing: _site/post_read
|
8
|
+
compare: _expected/post_read post_read
|
9
|
+
after: rm pre_read post_read
|
10
|
+
|
@@ -0,0 +1 @@
|
|
1
|
+
pages: 4
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -0,0 +1 @@
|
|
1
|
+
pages: 0
|
File without changes
|
data/test/_plugins/test.rb
CHANGED
@@ -2,6 +2,16 @@ require 'octopress-hooks'
|
|
2
2
|
|
3
3
|
module TestingHooks
|
4
4
|
class SiteHookTest < Octopress::Hooks::Site
|
5
|
+
def pre_read(site)
|
6
|
+
file = File.join(site.source, 'pre_read')
|
7
|
+
File.open(file, 'w') { |f| f.write("pages: #{site.pages.size}") }
|
8
|
+
end
|
9
|
+
|
10
|
+
def post_read(site)
|
11
|
+
file = File.join(site.source, 'post_read')
|
12
|
+
File.open(file, 'w') { |f| f.write("pages: #{site.pages.size}") }
|
13
|
+
end
|
14
|
+
|
5
15
|
def pre_render(site)
|
6
16
|
file = File.join(site.source, 'magic')
|
7
17
|
File.open(file, 'w') { |f| f.write('MAGIC') }
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: octopress-hooks
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brandon Mathis
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-08-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jekyll
|
@@ -60,13 +60,15 @@ files:
|
|
60
60
|
- test/.gitignore
|
61
61
|
- test/Gemfile
|
62
62
|
- test/_config.yml
|
63
|
-
- test/_expected/
|
64
|
-
- test/_expected/
|
65
|
-
- test/_expected/
|
66
|
-
- test/_expected/
|
67
|
-
- test/_expected/
|
68
|
-
- test/_expected/
|
69
|
-
- test/_expected/
|
63
|
+
- test/_expected/post_read
|
64
|
+
- test/_expected/site/2014/05/21/hi-guys.html
|
65
|
+
- test/_expected/site/boom
|
66
|
+
- test/_expected/site/magic
|
67
|
+
- test/_expected/site/merge_payload.html
|
68
|
+
- test/_expected/site/post_render_page.html
|
69
|
+
- test/_expected/site/post_write_page.html
|
70
|
+
- test/_expected/site/pre_read
|
71
|
+
- test/_expected/site/pre_render_page.html
|
70
72
|
- test/_plugins/test.rb
|
71
73
|
- test/_posts/2014-05-21-hi-guys.md
|
72
74
|
- test/merge_payload.md
|