middleman-emojifire 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +5 -0
- data/Gemfile +18 -0
- data/README.md +101 -0
- data/Rakefile +10 -0
- data/features/support/env.rb +4 -0
- data/lib/middleman-emojifire.rb +7 -0
- data/lib/middleman-emojifire/content.rb +25 -0
- data/lib/middleman-emojifire/converter.rb +36 -0
- data/lib/middleman-emojifire/ext/emoji_extension.rb +28 -0
- data/lib/middleman-emojifire/extension.rb +17 -0
- data/lib/middleman-emojifire/version.rb +5 -0
- data/middleman-emojifire.gemspec +26 -0
- data/test/content_test.rb +89 -0
- data/test/converter_test.rb +48 -0
- data/test/emoji_extension_test.rb +39 -0
- data/test/test_helper.rb +1 -0
- metadata +134 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: b0349e3910318e00736e605cae6c79aa470aefc7
|
4
|
+
data.tar.gz: 8e44d94bf476e062406d73aa9cac6d03d0d164be
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: b5c0f19925ae34acf8fcabc2b41b611b83b890abf8d4237b353cc994c44658d53ef3a51ebce44fb42620f326ec6dc31b55d1f333ea3e2fa8a9ffc70a85ba6a4f
|
7
|
+
data.tar.gz: b15bed382e54ac7e1a53da68e3de339c48383cc39058b6b615061ca80d23ac2367eecf03af5bad1281aa2ab33692ecaa974f6fdcb19ba26389258771fd2e8c1d
|
data/.gitignore
ADDED
data/Gemfile
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
# If you do not have OpenSSL installed, update
|
2
|
+
# the following line to use "http://" instead
|
3
|
+
source 'https://rubygems.org'
|
4
|
+
|
5
|
+
# Specify your gem's dependencies in middleman-emojifire.gemspec
|
6
|
+
gemspec
|
7
|
+
|
8
|
+
group :development do
|
9
|
+
gem 'rake'
|
10
|
+
gem 'rdoc'
|
11
|
+
gem 'yard'
|
12
|
+
end
|
13
|
+
|
14
|
+
group :test do
|
15
|
+
gem 'cucumber'
|
16
|
+
gem 'aruba'
|
17
|
+
gem 'rspec'
|
18
|
+
end
|
data/README.md
ADDED
@@ -0,0 +1,101 @@
|
|
1
|
+
# middleman-emojifire 🔥
|
2
|
+
|
3
|
+
middleman-emojifire is a quite easy-to-use emoji extension for Middleman.
|
4
|
+
|
5
|
+
Given the below HTML source:
|
6
|
+
|
7
|
+
```html
|
8
|
+
<h3>The love :cat:</h3>
|
9
|
+
<p>I move like cagey :tiger:</p>
|
10
|
+
```
|
11
|
+
|
12
|
+
middleman-emojifire will convert it into like the following:
|
13
|
+
|
14
|
+
```html
|
15
|
+
<h3>The love 🐱</h3>
|
16
|
+
<p>I move like cagey 🐯</p>
|
17
|
+
```
|
18
|
+
|
19
|
+
In fact, emojifire wraps emojis with `<span>` tags for future use (as be described later):
|
20
|
+
|
21
|
+
```html
|
22
|
+
<h3>The love <span class="emoji" data-alias="cat" data-fallback="https://assets-cdn.github.com/images/icons/emoji/unicode/1f431.png">🐱</span></h3>
|
23
|
+
```
|
24
|
+
|
25
|
+
|
26
|
+
Note that these emojis are characters respresented by unicode.
|
27
|
+
Unlike the ways of most extensions to display emoji, they are not replaced by images.
|
28
|
+
This means that modern OS/browsers can display them without extra downloads.
|
29
|
+
|
30
|
+
However, what if you want to put popular emoji which does not have unicode representation like :shipit:?
|
31
|
+
|
32
|
+
When a unicode repsentation for an emoji is not found, emojifire fallbacks it to an image with inline styles:
|
33
|
+
|
34
|
+
```html
|
35
|
+
<span class="emoji" data-alias="shipit" style="overflow: hidden; display: inline-block; width: 1em; height: 1em; margin: 0 0.1em; background-size: 100% 100%; background-image: url('https://assets-cdn.github.com/images/icons/emoji/shipit.png');"></span>
|
36
|
+
```
|
37
|
+
|
38
|
+
## Usage
|
39
|
+
|
40
|
+
Add the following to Gemfile:
|
41
|
+
|
42
|
+
```ruby
|
43
|
+
gem "middleman-emojifire"
|
44
|
+
```
|
45
|
+
|
46
|
+
And add the following to your `config.rb`:
|
47
|
+
|
48
|
+
```ruby
|
49
|
+
activate :emojifire
|
50
|
+
```
|
51
|
+
|
52
|
+
That's all.
|
53
|
+
|
54
|
+
## Fallback on platforms which do not natively support emoji
|
55
|
+
|
56
|
+
Since middleman-emojifire set some data-attributes including an image source URL in tag, you can easily write a fallback script to display images instead of characters.
|
57
|
+
|
58
|
+
Simply adding the below snippet into your JavaScript assets will work:
|
59
|
+
|
60
|
+
```javascript
|
61
|
+
document.addEventListener('DOMContentLoaded', function() {
|
62
|
+
var emojiSupported = (function() {
|
63
|
+
var node = document.createElement('canvas');
|
64
|
+
if (!node.getContext || !node.getContext('2d') ||
|
65
|
+
typeof node.getContext('2d').fillText !== 'function')
|
66
|
+
return false;
|
67
|
+
var ctx = node.getContext('2d');
|
68
|
+
ctx.textBaseline = 'top';
|
69
|
+
ctx.font = '32px Arial';
|
70
|
+
ctx.fillText('\ud83d\ude03', 0, 0);
|
71
|
+
return ctx.getImageData(16, 16, 1, 1).data[0] !== 0;
|
72
|
+
})();
|
73
|
+
|
74
|
+
if (emojiSupported) { return; }
|
75
|
+
|
76
|
+
var emojiElements = document.getElementsByClassName('emoji');
|
77
|
+
|
78
|
+
for (var i = 0; i < emojiElements.length; i++) {
|
79
|
+
var element = emojiElements[i];
|
80
|
+
var srcPath = element.dataset.fallback;
|
81
|
+
if (typeof srcPath !== 'undefined') {
|
82
|
+
element.innerHTML = '';
|
83
|
+
element.style.overflow = 'hidden';
|
84
|
+
element.style.display = 'inline-block';
|
85
|
+
element.style.width = '1em';
|
86
|
+
element.style.height = '1em';
|
87
|
+
element.style.margin = '0 0.1em';
|
88
|
+
element.style.backgroundSize = '100% 100%';
|
89
|
+
element.style.backgroundImage = "url('" + srcPath + "')";
|
90
|
+
delete element.dataset.fallback;
|
91
|
+
}
|
92
|
+
}
|
93
|
+
});
|
94
|
+
```
|
95
|
+
|
96
|
+
It will detect if a platform supports emoji, and fallback to images if it does not.
|
97
|
+
|
98
|
+
## Thanks
|
99
|
+
|
100
|
+
- [middleman-gemoji](https://github.com/yterajima/middleman-gemoji) as reference for both concept and implementation
|
101
|
+
- http://crocodillon.com/blog/parsing-emoji-unicode-in-javascript for native emoji support detection snippet in JS
|
data/Rakefile
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
module Middleman
|
2
|
+
module Emojifire
|
3
|
+
class Content
|
4
|
+
attr_reader :source
|
5
|
+
|
6
|
+
def initialize(source)
|
7
|
+
@source = source.to_s
|
8
|
+
end
|
9
|
+
|
10
|
+
def include_body?
|
11
|
+
source =~ %r{<body.*?>.*?</body>}m ? true : false
|
12
|
+
end
|
13
|
+
|
14
|
+
def body_only
|
15
|
+
source.gsub(%r{<body.*?>(.*?)</body>}m) do |match|
|
16
|
+
yield match
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def to_s
|
21
|
+
source
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require "middleman-emojifire/content"
|
2
|
+
require "middleman-emojifire/ext/emoji_extension"
|
3
|
+
|
4
|
+
module Middleman
|
5
|
+
module Emojifire
|
6
|
+
class Converter
|
7
|
+
attr_reader :content
|
8
|
+
|
9
|
+
using Middleman::Emojifire::EmojiExtension
|
10
|
+
|
11
|
+
def initialize(content)
|
12
|
+
@content = ::Middleman::Emojifire::Content.new(content)
|
13
|
+
end
|
14
|
+
|
15
|
+
def convert
|
16
|
+
if content.include_body?
|
17
|
+
content.body_only { |body| emojify(body) }
|
18
|
+
else
|
19
|
+
emojify(content.to_s)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
private
|
24
|
+
|
25
|
+
def emojify(source)
|
26
|
+
source.gsub(/:([\w+-]+):/) do |match|
|
27
|
+
if (emoji = Emoji.find_by_alias(Regexp.last_match[1]))
|
28
|
+
emoji.raw ? emoji.raw_unicode_character_html : emoji.fallback_image_html
|
29
|
+
else
|
30
|
+
match
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require "gemoji"
|
2
|
+
|
3
|
+
module Middleman
|
4
|
+
module Emojifire
|
5
|
+
module EmojiExtension
|
6
|
+
refine ::Emoji::Character do
|
7
|
+
GITHUB_DOT_COM_ASSET_HOST_URL = "https://assets-cdn.github.com".freeze
|
8
|
+
ASSET_PATH = "/images/icons/emoji".freeze
|
9
|
+
|
10
|
+
def raw_unicode_character_html
|
11
|
+
"<span class=\"emoji\" data-alias=\"#{name}\" " \
|
12
|
+
"data-fallback=\"#{fallback_source}\">" \
|
13
|
+
"#{raw}</span>"
|
14
|
+
end
|
15
|
+
|
16
|
+
def fallback_image_html
|
17
|
+
"<span class=\"emoji\" data-alias=\"#{name}\" " \
|
18
|
+
"style=\"overflow: hidden; display: inline-block; width: 1em; height: 1em; margin: 0 0.1em; background-size: 100% 100%; " \
|
19
|
+
"background-image: url('#{fallback_source}');\"></span>"
|
20
|
+
end
|
21
|
+
|
22
|
+
def fallback_source
|
23
|
+
File.join(GITHUB_DOT_COM_ASSET_HOST_URL, ASSET_PATH, image_filename)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require "middleman-core"
|
2
|
+
require "middleman-emojifire/converter"
|
3
|
+
|
4
|
+
module Middleman
|
5
|
+
module Emojifire
|
6
|
+
class Extension < ::Middleman::Extension
|
7
|
+
def initialize(app, options_hash={}, &block)
|
8
|
+
super
|
9
|
+
require "gemoji"
|
10
|
+
|
11
|
+
app.after_render do |content|
|
12
|
+
::Middleman::Emojifire::Converter.new(content).convert
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "middleman-emojifire/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |spec|
|
6
|
+
spec.name = "middleman-emojifire"
|
7
|
+
spec.version = Middleman::Emojifire::VERSION
|
8
|
+
spec.platform = Gem::Platform::RUBY
|
9
|
+
spec.authors = ["Hirofumi Wakasugi"]
|
10
|
+
spec.email = ["baenej@gmail.com"]
|
11
|
+
spec.homepage = "https://github.com/5t111111/middleman-emojifire"
|
12
|
+
spec.summary = %q{Middleman emoji extension}
|
13
|
+
spec.description = %q{middleman-emojifire is a quite easy-to-use emoji extension for Middleman.}
|
14
|
+
|
15
|
+
spec.files = `git ls-files`.split("\n")
|
16
|
+
spec.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
17
|
+
spec.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
|
18
|
+
spec.require_paths = ["lib"]
|
19
|
+
|
20
|
+
spec.add_runtime_dependency "middleman-core", ">= 4.2.1"
|
21
|
+
spec.add_runtime_dependency "gemoji", ">= 3.0.0"
|
22
|
+
|
23
|
+
spec.add_development_dependency "bundler", "~> 1.10"
|
24
|
+
spec.add_development_dependency "rake", "~> 12.0"
|
25
|
+
spec.add_development_dependency "minitest", ">= 5.10"
|
26
|
+
end
|
@@ -0,0 +1,89 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
require "middleman-emojifire/content"
|
3
|
+
|
4
|
+
describe Middleman::Emojifire::Content do
|
5
|
+
describe "initialize" do
|
6
|
+
it "saves stringified content" do
|
7
|
+
content = Middleman::Emojifire::Content.new(123)
|
8
|
+
expect(content.source).must_be_instance_of String
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
describe "include_body?" do
|
13
|
+
it "returns true if including body tag" do
|
14
|
+
content = Middleman::Emojifire::Content.new(
|
15
|
+
<<~EOS
|
16
|
+
<head>
|
17
|
+
<title>Test</title>
|
18
|
+
</head>
|
19
|
+
<body>
|
20
|
+
Test
|
21
|
+
</body>
|
22
|
+
EOS
|
23
|
+
)
|
24
|
+
expect(content.include_body?).must_equal true
|
25
|
+
end
|
26
|
+
|
27
|
+
it "returns true if including body tag with attributes" do
|
28
|
+
content = Middleman::Emojifire::Content.new(
|
29
|
+
<<~EOS
|
30
|
+
<body class="main">
|
31
|
+
Test
|
32
|
+
</body>
|
33
|
+
EOS
|
34
|
+
)
|
35
|
+
expect(content.include_body?).must_equal true
|
36
|
+
end
|
37
|
+
|
38
|
+
it "returns false if not including body tag" do
|
39
|
+
content = Middleman::Emojifire::Content.new(
|
40
|
+
<<~EOS
|
41
|
+
<head>
|
42
|
+
<title>Test</title>
|
43
|
+
</head>
|
44
|
+
EOS
|
45
|
+
)
|
46
|
+
expect(content.include_body?).must_equal false
|
47
|
+
end
|
48
|
+
|
49
|
+
it "returns false if including body but not tag" do
|
50
|
+
content = Middleman::Emojifire::Content.new(
|
51
|
+
<<~EOS
|
52
|
+
body
|
53
|
+
/body
|
54
|
+
EOS
|
55
|
+
)
|
56
|
+
expect(content.include_body?).must_equal false
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
describe "body_only" do
|
61
|
+
it "yields body of content only" do
|
62
|
+
content = Middleman::Emojifire::Content.new(
|
63
|
+
<<~EOS
|
64
|
+
<head>
|
65
|
+
<title>Test</title>
|
66
|
+
</head>
|
67
|
+
<body>Expect this to be yielded</body>
|
68
|
+
EOS
|
69
|
+
)
|
70
|
+
|
71
|
+
content.body_only do |body|
|
72
|
+
expect(body).must_equal "<body>Expect this to be yielded</body>"
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
it "returns substituted content" do
|
77
|
+
content = Middleman::Emojifire::Content.new("<head></head><body>Expect this to be substituted</body>")
|
78
|
+
substituted_content = content.body_only { |body| "<body>substituted!</body>" }
|
79
|
+
expect(substituted_content).must_equal "<head></head><body>substituted!</body>"
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
describe "to_s" do
|
84
|
+
it "returns source" do
|
85
|
+
content = Middleman::Emojifire::Content.new("pewpewpew")
|
86
|
+
expect(content.to_s).must_equal "pewpewpew"
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
require "middleman-emojifire/converter"
|
3
|
+
|
4
|
+
describe Middleman::Emojifire::Converter do
|
5
|
+
describe "convert" do
|
6
|
+
it "converted emoji aliases in content with body" do
|
7
|
+
converter = Middleman::Emojifire::Converter.new(
|
8
|
+
<<~EOS
|
9
|
+
<head>
|
10
|
+
<title>:cat:</title>
|
11
|
+
</head>
|
12
|
+
<body>
|
13
|
+
:cat:
|
14
|
+
:shipit:
|
15
|
+
</body>
|
16
|
+
EOS
|
17
|
+
)
|
18
|
+
|
19
|
+
html = <<~EOS
|
20
|
+
<head>
|
21
|
+
<title>:cat:</title>
|
22
|
+
</head>
|
23
|
+
<body>
|
24
|
+
<span class="emoji" data-alias="cat" data-fallback="https://assets-cdn.github.com/images/icons/emoji/unicode/1f431.png">🐱</span>
|
25
|
+
<span class="emoji" data-alias="shipit" style="overflow: hidden; display: inline-block; width: 1em; height: 1em; margin: 0 0.1em; background-size: 100% 100%; background-image: url('https://assets-cdn.github.com/images/icons/emoji/shipit.png');"></span>
|
26
|
+
</body>
|
27
|
+
EOS
|
28
|
+
|
29
|
+
expect(converter.convert).must_equal html
|
30
|
+
end
|
31
|
+
|
32
|
+
it "converted emoji aliases in content without body" do
|
33
|
+
converter = Middleman::Emojifire::Converter.new(
|
34
|
+
<<~EOS
|
35
|
+
:cat:
|
36
|
+
:shipit:
|
37
|
+
EOS
|
38
|
+
)
|
39
|
+
|
40
|
+
html = <<~EOS
|
41
|
+
<span class="emoji" data-alias="cat" data-fallback="https://assets-cdn.github.com/images/icons/emoji/unicode/1f431.png">🐱</span>
|
42
|
+
<span class="emoji" data-alias="shipit" style="overflow: hidden; display: inline-block; width: 1em; height: 1em; margin: 0 0.1em; background-size: 100% 100%; background-image: url('https://assets-cdn.github.com/images/icons/emoji/shipit.png');"></span>
|
43
|
+
EOS
|
44
|
+
|
45
|
+
expect(converter.convert).must_equal html
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
require "middleman-emojifire/ext/emoji_extension"
|
3
|
+
|
4
|
+
class Dummy
|
5
|
+
using Middleman::Emojifire::EmojiExtension
|
6
|
+
|
7
|
+
def initialize
|
8
|
+
@emoji = Emoji::Character.new("cat")
|
9
|
+
end
|
10
|
+
|
11
|
+
def raw_unicode_character_html_test
|
12
|
+
@emoji.raw_unicode_character_html
|
13
|
+
end
|
14
|
+
|
15
|
+
def fallback_image_html_test
|
16
|
+
@emoji.fallback_image_html
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
describe Middleman::Emojifire::EmojiExtension do
|
21
|
+
describe "raw_unicode_character_html" do
|
22
|
+
it "returns html for displaying raw unicode emoji character" do
|
23
|
+
dummy_class = Dummy.new
|
24
|
+
html = '<span class="emoji" data-alias="cat" ' \
|
25
|
+
'data-fallback="https://assets-cdn.github.com/images/icons/emoji/cat.png"></span>'
|
26
|
+
expect(dummy_class.raw_unicode_character_html_test).must_equal html
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
describe "fallback_image_html" do
|
31
|
+
it "returns html for displaying fallback image instead of raw unicode emoji character" do
|
32
|
+
dummy_class = Dummy.new
|
33
|
+
html = '<span class="emoji" data-alias="cat" style="overflow: hidden; display: ' \
|
34
|
+
'inline-block; width: 1em; height: 1em; margin: 0 0.1em; background-size: 100% 100%; ' \
|
35
|
+
'background-image: url(\'https://assets-cdn.github.com/images/icons/emoji/cat.png\');"></span>'
|
36
|
+
expect(dummy_class.fallback_image_html_test).must_equal html
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
data/test/test_helper.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require "minitest/autorun"
|
metadata
ADDED
@@ -0,0 +1,134 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: middleman-emojifire
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Hirofumi Wakasugi
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2017-02-20 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: middleman-core
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 4.2.1
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 4.2.1
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: gemoji
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 3.0.0
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 3.0.0
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: bundler
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '1.10'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '1.10'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rake
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '12.0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '12.0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: minitest
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '5.10'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '5.10'
|
83
|
+
description: middleman-emojifire is a quite easy-to-use emoji extension for Middleman.
|
84
|
+
email:
|
85
|
+
- baenej@gmail.com
|
86
|
+
executables: []
|
87
|
+
extensions: []
|
88
|
+
extra_rdoc_files: []
|
89
|
+
files:
|
90
|
+
- ".gitignore"
|
91
|
+
- Gemfile
|
92
|
+
- README.md
|
93
|
+
- Rakefile
|
94
|
+
- features/support/env.rb
|
95
|
+
- lib/middleman-emojifire.rb
|
96
|
+
- lib/middleman-emojifire/content.rb
|
97
|
+
- lib/middleman-emojifire/converter.rb
|
98
|
+
- lib/middleman-emojifire/ext/emoji_extension.rb
|
99
|
+
- lib/middleman-emojifire/extension.rb
|
100
|
+
- lib/middleman-emojifire/version.rb
|
101
|
+
- middleman-emojifire.gemspec
|
102
|
+
- test/content_test.rb
|
103
|
+
- test/converter_test.rb
|
104
|
+
- test/emoji_extension_test.rb
|
105
|
+
- test/test_helper.rb
|
106
|
+
homepage: https://github.com/5t111111/middleman-emojifire
|
107
|
+
licenses: []
|
108
|
+
metadata: {}
|
109
|
+
post_install_message:
|
110
|
+
rdoc_options: []
|
111
|
+
require_paths:
|
112
|
+
- lib
|
113
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
119
|
+
requirements:
|
120
|
+
- - ">="
|
121
|
+
- !ruby/object:Gem::Version
|
122
|
+
version: '0'
|
123
|
+
requirements: []
|
124
|
+
rubyforge_project:
|
125
|
+
rubygems_version: 2.5.2
|
126
|
+
signing_key:
|
127
|
+
specification_version: 4
|
128
|
+
summary: Middleman emoji extension
|
129
|
+
test_files:
|
130
|
+
- features/support/env.rb
|
131
|
+
- test/content_test.rb
|
132
|
+
- test/converter_test.rb
|
133
|
+
- test/emoji_extension_test.rb
|
134
|
+
- test/test_helper.rb
|