octopress-ink 1.0.0.alpha.42 → 1.0.0.alpha.43
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/assets/docs/_configuration.markdown +9 -0
- data/assets/docs/_plugin-template.markdown +25 -0
- data/assets/docs/creating-a-gem.markdown +69 -0
- data/assets/docs/creating-a-plugin.markdown +57 -0
- data/assets/docs/index.markdown +63 -0
- data/assets/docs/plugin-reference.markdown +22 -0
- data/lib/octopress-ink.rb +9 -10
- data/lib/octopress-ink/assets/doc_page.rb +0 -1
- data/lib/octopress-ink/jekyll/page.rb +3 -2
- data/lib/octopress-ink/plugin.rb +1 -1
- data/lib/octopress-ink/plugins.rb +5 -5
- data/lib/octopress-ink/plugins/ink.rb +23 -20
- data/lib/octopress-ink/version.rb +1 -1
- data/octopress-ink.gemspec +1 -1
- metadata +16 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: db0b53411b0e6748e5281e9db9fa6ef247296b9e
|
4
|
+
data.tar.gz: 8ff58d71d3cd6c9b75ba143e072fca4ce169b906
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1c455972095fe4418cfaf5ec2e70c3a6cb1785cf8d0cd29989d433425240532aa3f62b92098c02d9316844bfbe62ee963ae05758fd74d21cfa799303d169eb56
|
7
|
+
data.tar.gz: f9e610a3b80b20731db06b95f43931988167fd2b9b58190703f6d029bc58bb600250085f96497e0e1459f65af08d7d38f313ef6829a106a4659ef21e58d3c8eb
|
@@ -0,0 +1,9 @@
|
|
1
|
+
| Configuration | Description |
|
2
|
+
|:--------------|:------------|
|
3
|
+
| name | The display name for your plugin, e.g. "My Plugin" |
|
4
|
+
| assets_path | Path to your plugin's assets directory |
|
5
|
+
| slug | Optional: The slug is how users will reference your plugin, (Default: sluggified name) |
|
6
|
+
| type | Optional: "plugin" or "theme" (Default: "plugin") |
|
7
|
+
| version | Optional: Version will be displayed with plugin info |
|
8
|
+
| description | Optional: Description will be displayed with plugin info |
|
9
|
+
| website | Optional: Website will be displayed with plugin info |
|
@@ -0,0 +1,25 @@
|
|
1
|
+
```ruby
|
2
|
+
require "octopress-ink"
|
3
|
+
|
4
|
+
module MyPlugin
|
5
|
+
class InkPlugin < Octopress::Ink::Plugin
|
6
|
+
|
7
|
+
# Define the configuration for your plugin
|
8
|
+
#
|
9
|
+
def configuration
|
10
|
+
{
|
11
|
+
name: "My plugin",
|
12
|
+
slug: "my-plugin",
|
13
|
+
assets_path: File.expand_path(File.join(File.dirname(__FILE__), '../assets')),
|
14
|
+
type: "plugin",
|
15
|
+
version: MyPlugin::VERSION,
|
16
|
+
description: "",
|
17
|
+
website: ""
|
18
|
+
}
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
# Register the plugin with Octopress Ink
|
24
|
+
Octopress::Ink.register_plugin(SomePlugin::InkPlugin)
|
25
|
+
```
|
@@ -0,0 +1,69 @@
|
|
1
|
+
---
|
2
|
+
title: "Creating a Gem"
|
3
|
+
permalink: /guides/creating-a-gem/
|
4
|
+
---
|
5
|
+
|
6
|
+
*This guide assumes you have already installed Git, and Ruby 1.9.3 or greater.*
|
7
|
+
|
8
|
+
Octopress Ink plugins are distributed as ruby gems so you'll probably need to create an acconut at [RubyGems.org](https://rubygems.org/sign_up) if you haven't yet. Also, be sure you have [bundler](http://bundler.io) installed.
|
9
|
+
|
10
|
+
### How to Create a Gem
|
11
|
+
|
12
|
+
The [bundler gem](http://bundler.io/) is a great way to manage gems and provides some terrific utilites for gem creators. Go ahead and
|
13
|
+
install it if you haven't yet.
|
14
|
+
|
15
|
+
```sh
|
16
|
+
gem install bundler
|
17
|
+
```
|
18
|
+
|
19
|
+
Now we'll use Bundler to create a gem project for our new plugin.
|
20
|
+
|
21
|
+
```sh
|
22
|
+
bundle gem baconnaise
|
23
|
+
```
|
24
|
+
|
25
|
+
That's right, this plugin will be called `baconnaise`. That command will generate a bunch of files into the new `baconnaise` directory. Take a peek inside and you'll see somethig like this:
|
26
|
+
|
27
|
+
```
|
28
|
+
lib/
|
29
|
+
baconnaise/
|
30
|
+
version.rb
|
31
|
+
baconnaise.rb
|
32
|
+
baconnaise.gemspec
|
33
|
+
Gemfile
|
34
|
+
LICENSE.txt
|
35
|
+
Rakefile
|
36
|
+
README.md
|
37
|
+
```
|
38
|
+
|
39
|
+
First, you'll want to edit your `baconnaise.gemspec` to be sure the information in that is right. Be sure to change the default description and summary. The gem won't build if you have a *TODO* in either of those. Here's what we're gonig to go with.
|
40
|
+
|
41
|
+
```ruby
|
42
|
+
spec.description = %q{Baconnaise, because mistakes have never been this spreadable.}
|
43
|
+
spec.summary = %q{Baconnaise, because #YOLO.}
|
44
|
+
```
|
45
|
+
|
46
|
+
Next you'll want to add Octopress Ink as a runtime dependency. Here's what that looks like.
|
47
|
+
|
48
|
+
```ruby
|
49
|
+
spec.add_runtime_dependency 'octopress-ink', '~> 1.0'
|
50
|
+
```
|
51
|
+
|
52
|
+
#### A note on Version Numbering
|
53
|
+
|
54
|
+
By default the `bundle gem` command starts you off at version `0.0.1`. If you take a look at `lib/baconnaise/version.rb` you'll see this.
|
55
|
+
|
56
|
+
```
|
57
|
+
module Baconnaise
|
58
|
+
VERSION = "0.0.1"
|
59
|
+
end
|
60
|
+
```
|
61
|
+
|
62
|
+
I'd encourage you to change your version number to `1.0.0` as soon as you release your plugin for production use. For a sensible guide on version numbers, refer to [semver.org](http://semver.org/).
|
63
|
+
|
64
|
+
---
|
65
|
+
|
66
|
+
For the next part we'll take a look at creating an Octopress Ink plugin.
|
67
|
+
|
68
|
+
[Creating a Plugin →]({% doc_url /guides/creating-a-plugin/ %})
|
69
|
+
|
@@ -0,0 +1,57 @@
|
|
1
|
+
---
|
2
|
+
title: "Create an Octopress Ink Plugin"
|
3
|
+
permalink: /guides/creating-a-plugin/
|
4
|
+
---
|
5
|
+
|
6
|
+
If you haven't created a ruby gem for your plugin, check out [Creating a Gem]({% doc_url /guides/creating-a-gem/ %}).
|
7
|
+
|
8
|
+
In this section we'll create an Octopress Ink plugin. Take a look at `lib/baconnaise.rb`. You should see
|
9
|
+
something like this:
|
10
|
+
|
11
|
+
```ruby
|
12
|
+
require "baconnaise/version"
|
13
|
+
|
14
|
+
module Baconnaise
|
15
|
+
# Your code goes here...
|
16
|
+
end
|
17
|
+
```
|
18
|
+
|
19
|
+
We'll require octopress-ink add a configuration method, and register the plugin with Octopress Ink plugin. Here's what `lib/baconnaise.rb` after we've done that.
|
20
|
+
|
21
|
+
```ruby
|
22
|
+
require "baconnaise/version"
|
23
|
+
require "octopress-ink"
|
24
|
+
|
25
|
+
module Baconnaise
|
26
|
+
class InkPlugin < Octopress::Ink::Plugin
|
27
|
+
def configuration
|
28
|
+
{
|
29
|
+
# your configuration goes here.
|
30
|
+
}
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
# Register the plugin with Octopress Ink
|
36
|
+
Octopress::Ink.register_plugin(Baconnaise::InkPlugin)
|
37
|
+
```
|
38
|
+
|
39
|
+
Now when Jekyll requires your plugin, it will register with Octopress Ink. The configuration options are as follows:
|
40
|
+
|
41
|
+
{% render ./_configuration.markdown %}
|
42
|
+
|
43
|
+
For Baconnaise, our configuration medthod will look like this:
|
44
|
+
|
45
|
+
```ruby
|
46
|
+
def configuration
|
47
|
+
{
|
48
|
+
name: "Baconnaise",
|
49
|
+
slug: "baconnaise",
|
50
|
+
assets_path: File.expand_path(File.join(File.dirname(__FILE__), '../assets')),
|
51
|
+
type: "plugin",
|
52
|
+
version: Baconnaise::VERSION,
|
53
|
+
description: "Baconnaise, because mistakes have never been this spreadable.",
|
54
|
+
website: "http://baconnaise-craze.info/or/something/"
|
55
|
+
}
|
56
|
+
end
|
57
|
+
```
|
@@ -0,0 +1,63 @@
|
|
1
|
+
---
|
2
|
+
title: Octopress Ink
|
3
|
+
---
|
4
|
+
|
5
|
+
Octopress Ink helps developers create plugins and themes which integrate seamlessly into any Jekyll site.
|
6
|
+
|
7
|
+
#### Benefits For users
|
8
|
+
|
9
|
+
- Go from vanilla Jekyll to a fully featured site in minutes.
|
10
|
+
- Plugins are easy to install and uninstall.
|
11
|
+
- Customization is simple and consistent.
|
12
|
+
- Easily view documentation for your unique setup, even offline.
|
13
|
+
|
14
|
+
[Using Octopress Ink plugins →]({% doc_url for-users %})
|
15
|
+
|
16
|
+
#### Benefits For Developers
|
17
|
+
|
18
|
+
- Automatically integrate with the asset pipeline.
|
19
|
+
- Easily convert plugins you've already written.
|
20
|
+
- Plugins automatically integrate with the Octopress CLI.
|
21
|
+
|
22
|
+
[Developing with Octopress Ink →]({% doc_url for-developers %})
|
23
|
+
|
24
|
+
#### Shipping assets
|
25
|
+
- Asset pipeline
|
26
|
+
- Automatic namespacing
|
27
|
+
- Easy customization
|
28
|
+
- Versioned release
|
29
|
+
- Dependencies (build on others)
|
30
|
+
|
31
|
+
#### Shipping themes
|
32
|
+
- Layouts
|
33
|
+
- Includes
|
34
|
+
- Pages
|
35
|
+
- Files
|
36
|
+
- Easy override
|
37
|
+
- Installable
|
38
|
+
|
39
|
+
#### Customization
|
40
|
+
|
41
|
+
assets/
|
42
|
+
docs/
|
43
|
+
index.markdown
|
44
|
+
stylesheets/
|
45
|
+
plugin.scss
|
46
|
+
javascripts/
|
47
|
+
plugin.js
|
48
|
+
|
49
|
+
lib/
|
50
|
+
furbysaurus/
|
51
|
+
version.rb
|
52
|
+
furbysaurus.rb
|
53
|
+
|
54
|
+
CHANGELOG.md
|
55
|
+
Gemfile
|
56
|
+
LICENSE.txt
|
57
|
+
furbysaurus.gemspec
|
58
|
+
Rakefile
|
59
|
+
README.md
|
60
|
+
```
|
61
|
+
|
62
|
+
## Creating a theme
|
63
|
+
|
@@ -0,0 +1,22 @@
|
|
1
|
+
---
|
2
|
+
title: "Octopress Ink Plugin Reference"
|
3
|
+
permalink: /plugin-reference/
|
4
|
+
---
|
5
|
+
|
6
|
+
Octopress Ink plugins should be distributed as ruby gems. If you don't know how to create a ruby gem, [follow this walkthrough]({% doc_url /guides/create-a-gem/ %}).
|
7
|
+
|
8
|
+
### Plugin Template
|
9
|
+
|
10
|
+
This is the basic template for creating an Octopress Ink plugin.
|
11
|
+
|
12
|
+
{% render ./_plugin-template.markdown %}
|
13
|
+
|
14
|
+
### Configuration Reference
|
15
|
+
|
16
|
+
The configuration options are as follows:
|
17
|
+
|
18
|
+
{% render ./_configuration.markdown %}
|
19
|
+
|
20
|
+
### Plugin Assets
|
21
|
+
|
22
|
+
You can set `assets_path` to point wherever you like insde your gem file, but in this case we have it pointing to the `assets` directiory in root of the gem. There isn't a directory there yet, so we'll need to add one, and while were at it, add any assets that this plugin will need.
|
data/lib/octopress-ink.rb
CHANGED
@@ -135,23 +135,22 @@ module Octopress
|
|
135
135
|
end
|
136
136
|
|
137
137
|
def self.gem_dir(*subdirs)
|
138
|
-
File.expand_path(File.join(File.dirname(__FILE__), '
|
138
|
+
File.expand_path(File.join(File.dirname(__FILE__), '../', *subdirs))
|
139
139
|
end
|
140
140
|
|
141
|
-
def self.copy_doc(source, dest)
|
141
|
+
def self.copy_doc(source, dest, permalink=nil)
|
142
142
|
contents = File.open(source).read
|
143
|
-
contents.sub!(/^# (.*)$/, "#{
|
143
|
+
contents.sub!(/^# (.*)$/, "#{doc_yaml('\1', permalink).strip}")
|
144
144
|
FileUtils.mkdir_p File.dirname(dest)
|
145
145
|
File.open(dest, 'w') {|f| f.write(contents) }
|
146
146
|
puts "Updated #{dest} from #{source}"
|
147
147
|
end
|
148
148
|
|
149
|
-
def self.
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
---
|
154
|
-
YAML
|
149
|
+
def self.doc_yaml(title, permalink)
|
150
|
+
yaml = "---\n"
|
151
|
+
yaml += "title: \"#{title.strip}\"\n"
|
152
|
+
yaml += "permalink: #{permalink.strip}\n" if permalink
|
153
|
+
yaml += "---"
|
155
154
|
end
|
156
155
|
end
|
157
156
|
end
|
@@ -177,6 +176,6 @@ Liquid::Template.register_tag('doc_url', Octopress::Ink::Tags::DocUrlTag)
|
|
177
176
|
require 'octopress-ink/plugins/ink'
|
178
177
|
require 'octopress-ink/plugins/asset_pipeline'
|
179
178
|
|
180
|
-
Octopress::Ink.register_plugin(Ink)
|
179
|
+
Octopress::Ink.register_plugin(Octopress::Ink::InkPlugin)
|
181
180
|
Octopress::Ink.register_plugin(Octopress::Ink::AssetPipelinePlugin)
|
182
181
|
|
@@ -35,6 +35,8 @@ module Octopress
|
|
35
35
|
end
|
36
36
|
rescue; end
|
37
37
|
|
38
|
+
super
|
39
|
+
|
38
40
|
if @url && @url =~ /\/$/
|
39
41
|
if self.ext == '.xml'
|
40
42
|
@url = File.join(@url, "index.xml")
|
@@ -43,10 +45,9 @@ module Octopress
|
|
43
45
|
end
|
44
46
|
end
|
45
47
|
|
46
|
-
|
48
|
+
@url
|
47
49
|
end
|
48
50
|
end
|
49
51
|
end
|
50
52
|
end
|
51
53
|
end
|
52
|
-
|
data/lib/octopress-ink/plugin.rb
CHANGED
@@ -110,7 +110,7 @@ module Octopress
|
|
110
110
|
#
|
111
111
|
def doc_pages
|
112
112
|
if !@docs.empty?
|
113
|
-
@docs.clone.map { |d|
|
113
|
+
@doc_pages ||= @docs.clone.map { |d|
|
114
114
|
page = d.page
|
115
115
|
title = page.data['link_title'] || page.data['title'] || page.basename
|
116
116
|
url = File.join('/', docs_base_path, page.url.sub('index.html', ''))
|
@@ -97,16 +97,16 @@ module Octopress
|
|
97
97
|
# returns: Array of plugin doc pages
|
98
98
|
#
|
99
99
|
def self.doc_pages
|
100
|
-
|
100
|
+
plugin_docs = {}
|
101
|
+
plugins.clone.map do |p|
|
101
102
|
if pages = p.doc_pages
|
102
|
-
{
|
103
|
+
plugin_docs[p.slug] = {
|
103
104
|
"name" => p.name,
|
104
105
|
"pages" => pages
|
105
106
|
}
|
106
|
-
else
|
107
|
-
nil
|
108
107
|
end
|
109
|
-
|
108
|
+
end
|
109
|
+
plugin_docs
|
110
110
|
end
|
111
111
|
|
112
112
|
def self.include(name, file)
|
@@ -1,25 +1,28 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
1
|
+
module Octopress
|
2
|
+
module Ink
|
3
|
+
class InkPlugin < Octopress::Ink::Plugin
|
4
|
+
def configuration
|
5
|
+
{
|
6
|
+
name: "Octopress Ink",
|
7
|
+
slug: "ink",
|
8
|
+
assets_path: Octopress::Ink.gem_dir('assets'),
|
9
|
+
version: Octopress::Ink::VERSION,
|
10
|
+
description: "Octopress Ink is a plugin framework for Jekyll",
|
11
|
+
website: "http://octopress.org/docs/ink"
|
12
|
+
}
|
13
|
+
end
|
12
14
|
|
13
|
-
|
14
|
-
|
15
|
-
|
15
|
+
def docs_base_path
|
16
|
+
'docs/ink'
|
17
|
+
end
|
16
18
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
19
|
+
def info(options)
|
20
|
+
if options['docs']
|
21
|
+
super
|
22
|
+
else
|
23
|
+
''
|
24
|
+
end
|
25
|
+
end
|
22
26
|
end
|
23
27
|
end
|
24
28
|
end
|
25
|
-
|
data/octopress-ink.gemspec
CHANGED
@@ -18,7 +18,7 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
|
-
spec.add_runtime_dependency "jekyll", "~> 1.
|
21
|
+
spec.add_runtime_dependency "jekyll", "~> 1.5", ">= 1.5.0"
|
22
22
|
spec.add_runtime_dependency "sass", "~> 3.3.0"
|
23
23
|
|
24
24
|
spec.add_development_dependency "octopress"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: octopress-ink
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.0.alpha.
|
4
|
+
version: 1.0.0.alpha.43
|
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-03-
|
11
|
+
date: 2014-03-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jekyll
|
@@ -16,14 +16,20 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ~>
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 1.
|
19
|
+
version: '1.5'
|
20
|
+
- - '>='
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 1.5.0
|
20
23
|
type: :runtime
|
21
24
|
prerelease: false
|
22
25
|
version_requirements: !ruby/object:Gem::Requirement
|
23
26
|
requirements:
|
24
27
|
- - ~>
|
25
28
|
- !ruby/object:Gem::Version
|
26
|
-
version: 1.
|
29
|
+
version: '1.5'
|
30
|
+
- - '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 1.5.0
|
27
33
|
- !ruby/object:Gem::Dependency
|
28
34
|
name: sass
|
29
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -108,6 +114,12 @@ files:
|
|
108
114
|
- LICENSE.txt
|
109
115
|
- README.md
|
110
116
|
- Rakefile
|
117
|
+
- assets/docs/_configuration.markdown
|
118
|
+
- assets/docs/_plugin-template.markdown
|
119
|
+
- assets/docs/creating-a-gem.markdown
|
120
|
+
- assets/docs/creating-a-plugin.markdown
|
121
|
+
- assets/docs/index.markdown
|
122
|
+
- assets/docs/plugin-reference.markdown
|
111
123
|
- lib/octopress-ink.rb
|
112
124
|
- lib/octopress-ink/assets.rb
|
113
125
|
- lib/octopress-ink/assets/asset.rb
|