jekyll_oembed 0.0.2
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 +7 -0
- data/.gitignore +3 -0
- data/Gemfile +3 -0
- data/LICENSE.md +32 -0
- data/README.md +63 -0
- data/jekyll_oembed.gemspec +21 -0
- data/lib/jekyll_oembed.rb +50 -0
- metadata +78 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 7fa364245b94c1bfdc9b6a0e76c7a65940958f4f
|
4
|
+
data.tar.gz: 6efbe140f97069e2aa214ca58bb4e2f139e5c4be
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: ddf5ffd28cf060b7aa80691921d3dbdd2790240fdd88929c0f82f93572dc905af8e5600130ae6cd318604ad5480b93384d077c57dc39f845b74039127745de9d
|
7
|
+
data.tar.gz: 1b8bc17a50c862a947e928c04eaf00ac87a85704d4ef79c7aaee398d53a0b248c8c2e2e0a62e0ba17335277ccdd4aba0494b4449952f3d68b86abb2c67ebcc9a
|
data/.gitignore
ADDED
data/Gemfile
ADDED
data/LICENSE.md
ADDED
@@ -0,0 +1,32 @@
|
|
1
|
+
As a work of the United States Government, this project is in the
|
2
|
+
public domain within the United States.
|
3
|
+
|
4
|
+
Additionally, we waive copyright and related rights in the work
|
5
|
+
worldwide through the CC0 1.0 Universal public domain dedication.
|
6
|
+
|
7
|
+
## CC0 1.0 Universal Summary
|
8
|
+
|
9
|
+
This is a human-readable summary of the
|
10
|
+
[Legal Code (read the full text)](https://creativecommons.org/publicdomain/zero/1.0/legalcode).
|
11
|
+
|
12
|
+
### No Copyright
|
13
|
+
|
14
|
+
The person who associated a work with this deed has dedicated the work to
|
15
|
+
the public domain by waiving all of his or her rights to the work worldwide
|
16
|
+
under copyright law, including all related and neighboring rights, to the
|
17
|
+
extent allowed by law.
|
18
|
+
|
19
|
+
You can copy, modify, distribute and perform the work, even for commercial
|
20
|
+
purposes, all without asking permission.
|
21
|
+
|
22
|
+
### Other Information
|
23
|
+
|
24
|
+
In no way are the patent or trademark rights of any person affected by CC0,
|
25
|
+
nor are the rights that other persons may have in the work or in how the
|
26
|
+
work is used, such as publicity or privacy rights.
|
27
|
+
|
28
|
+
Unless expressly stated otherwise, the person who associated a work with
|
29
|
+
this deed makes no warranties about the work, and disclaims liability for
|
30
|
+
all uses of the work, to the fullest extent permitted by applicable law.
|
31
|
+
When using or citing the work, you should not imply endorsement by the
|
32
|
+
author or the affirmer.
|
data/README.md
ADDED
@@ -0,0 +1,63 @@
|
|
1
|
+
# jekyll-oembed
|
2
|
+
|
3
|
+
oEmbed plugin for jekyll that creates an `oembed` liquid tag
|
4
|
+
|
5
|
+
## Installation
|
6
|
+
|
7
|
+
### With bundler
|
8
|
+
Within your project's `Gemfile`, add the following within the `:jekyll_plugins` group:
|
9
|
+
|
10
|
+
```ruby
|
11
|
+
# Gemfile
|
12
|
+
group :jekyll_plugins do
|
13
|
+
gem 'jekyll_oembed'
|
14
|
+
end
|
15
|
+
```
|
16
|
+
|
17
|
+
### Standalone
|
18
|
+
|
19
|
+
Add [the code](lib/jekyll_oembed.rb) directly to your `_plugins` directory
|
20
|
+
Create the following plugin in your projects _plugins directory.
|
21
|
+
|
22
|
+
If you do this, you will also need to add [`ruby-oembed`](https://github.com/ruby-oembed/ruby-oembed) to your `Gemfile`
|
23
|
+
|
24
|
+
```ruby
|
25
|
+
# Gemfile
|
26
|
+
gem "ruby-oembed"
|
27
|
+
```
|
28
|
+
|
29
|
+
## Usage
|
30
|
+
|
31
|
+
To use an oembed, simply do the following. Pass the embedded url as plain text, not wrapped in quotes like a string.
|
32
|
+
|
33
|
+
```liquid
|
34
|
+
# Correct
|
35
|
+
{% oembed https://www.youtube.com/watch?v=GPUaUgjbbsA %}
|
36
|
+
|
37
|
+
# Incorrect
|
38
|
+
{% oembed "https://www.youtube.com/watch?v=GPUaUgjbbsA" %}
|
39
|
+
```
|
40
|
+
|
41
|
+
`jekyll_oembed` does not support customizing width, height, or adding any attributes directly to the embedded HTML.
|
42
|
+
|
43
|
+
|
44
|
+
## Attribution
|
45
|
+
|
46
|
+
Thank you to:
|
47
|
+
- @vanto for the [plugin code](https://gist.github.com/vanto/1455726) that powers the gem
|
48
|
+
- @stereobooster for creating a [different version](https://github.com/stereobooster/jekyll_oembed) of the gem
|
49
|
+
|
50
|
+
This will automatically require all of the gems specified in your Gemfile.
|
51
|
+
|
52
|
+
## Resources
|
53
|
+
|
54
|
+
- [oEmbed providers](http://www.oembed.com/#section7.1)
|
55
|
+
- [`ruby-oembed`](https://github.com/ruby-oembed/ruby-oembed)
|
56
|
+
|
57
|
+
|
58
|
+
## Contributing
|
59
|
+
1. Fork it
|
60
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
61
|
+
3. Commit your changes (`git commit -am 'Added some feature'`)
|
62
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
63
|
+
5. Create new Pull Request
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
|
5
|
+
Gem::Specification.new do |gem|
|
6
|
+
gem.name = "jekyll_oembed"
|
7
|
+
gem.version = '0.0.2'
|
8
|
+
gem.authors = ["18F"]
|
9
|
+
gem.license = 'Nonstandard'
|
10
|
+
gem.email = ["brian.hedberg@gsa.com"]
|
11
|
+
gem.description = %q{Provides an oembed liquid tag for Jekyll}
|
12
|
+
gem.summary = %q{A gem that creates a liquid 'oembed' tag for use in Jekyll sites}
|
13
|
+
gem.homepage = "https://github.com/18F/jekyll-oembed"
|
14
|
+
gem.files = `git ls-files`.split($/)
|
15
|
+
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
16
|
+
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
17
|
+
gem.require_paths = ["lib"]
|
18
|
+
|
19
|
+
gem.add_dependency "jekyll", '~> 3'
|
20
|
+
gem.add_dependency "ruby-oembed", '~> 0'
|
21
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
##
|
2
|
+
# OEmbed Liquid Tag for Jekyll
|
3
|
+
# - requires https://github.com/judofyr/ruby-oembed/
|
4
|
+
#
|
5
|
+
# Copyright 2011 Tammo van Lessen
|
6
|
+
#
|
7
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
8
|
+
# you may not use this file except in compliance with the License.
|
9
|
+
# You may obtain a copy of the License at
|
10
|
+
#
|
11
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
12
|
+
#
|
13
|
+
# Unless required by applicable law or agreed to in writing, software
|
14
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
15
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
16
|
+
# See the License for the specific language governing permissions and
|
17
|
+
# limitations under the License.
|
18
|
+
##
|
19
|
+
|
20
|
+
require 'oembed'
|
21
|
+
|
22
|
+
# register all default OEmbed providers
|
23
|
+
::OEmbed::Providers.register_all()
|
24
|
+
# since register_all does not register all default providers, we need to do this here. See https://github.com/judofyr/ruby-oembed/issues/18
|
25
|
+
::OEmbed::Providers.register(::OEmbed::Providers::Instagram, ::OEmbed::Providers::Slideshare, ::OEmbed::Providers::Yfrog, ::OEmbed::Providers::MlgTv)
|
26
|
+
::OEmbed::Providers.register_fallback(::OEmbed::ProviderDiscovery, ::OEmbed::Providers::Embedly, ::OEmbed::Providers::OohEmbed)
|
27
|
+
|
28
|
+
|
29
|
+
module Jekyll
|
30
|
+
class OEmbedPlugin < Liquid::Tag
|
31
|
+
|
32
|
+
def initialize(tag_name, text, tokens)
|
33
|
+
super
|
34
|
+
@text = text
|
35
|
+
end
|
36
|
+
|
37
|
+
def render(context)
|
38
|
+
# pipe param through liquid to make additional replacements possible
|
39
|
+
url = Liquid::Template.parse(@text).render context
|
40
|
+
url = url.strip! || url.strip
|
41
|
+
|
42
|
+
# oembed look up
|
43
|
+
result = ::OEmbed::Providers.get(url)
|
44
|
+
|
45
|
+
"<div class=\"embed-container #{result.fields['type']} #{result.fields['provider']}\">#{result.html}</div>"
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
Liquid::Template.register_tag('oembed', Jekyll::OEmbedPlugin)
|
metadata
ADDED
@@ -0,0 +1,78 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: jekyll_oembed
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.2
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- 18F
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2017-02-23 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: jekyll
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '3'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '3'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: ruby-oembed
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
description: Provides an oembed liquid tag for Jekyll
|
42
|
+
email:
|
43
|
+
- brian.hedberg@gsa.com
|
44
|
+
executables: []
|
45
|
+
extensions: []
|
46
|
+
extra_rdoc_files: []
|
47
|
+
files:
|
48
|
+
- ".gitignore"
|
49
|
+
- Gemfile
|
50
|
+
- LICENSE.md
|
51
|
+
- README.md
|
52
|
+
- jekyll_oembed.gemspec
|
53
|
+
- lib/jekyll_oembed.rb
|
54
|
+
homepage: https://github.com/18F/jekyll-oembed
|
55
|
+
licenses:
|
56
|
+
- Nonstandard
|
57
|
+
metadata: {}
|
58
|
+
post_install_message:
|
59
|
+
rdoc_options: []
|
60
|
+
require_paths:
|
61
|
+
- lib
|
62
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
63
|
+
requirements:
|
64
|
+
- - ">="
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: '0'
|
67
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
68
|
+
requirements:
|
69
|
+
- - ">="
|
70
|
+
- !ruby/object:Gem::Version
|
71
|
+
version: '0'
|
72
|
+
requirements: []
|
73
|
+
rubyforge_project:
|
74
|
+
rubygems_version: 2.6.7
|
75
|
+
signing_key:
|
76
|
+
specification_version: 4
|
77
|
+
summary: A gem that creates a liquid 'oembed' tag for use in Jekyll sites
|
78
|
+
test_files: []
|