middleman-somemoji 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 9e83faa87fdbd3b98f50bdf215a020a50c5ee91b
4
+ data.tar.gz: 4a54349e7e1b6463495751699024e18027bcdb31
5
+ SHA512:
6
+ metadata.gz: 07ca8da3361ad0f52c3b0d7c419ae1796a342e4a49dc16f3b7389972611d738a6e4788c244a1816eff9bcb1639a60b969d7cb1a151aa02435640de92a5b8617c
7
+ data.tar.gz: 1a66fc18791914a2965bed4f847469337332db09bf1ed0bb20fd65ff9765579d1feebd0a3752108c6e5aa4dc606d4d8e17729f0fda51c11402055089179e989d
@@ -0,0 +1,7 @@
1
+ # Ignore bundler lock file
2
+ /Gemfile.lock
3
+
4
+ # Ignore pkg folder
5
+ /pkg
6
+
7
+ tmp/
@@ -0,0 +1,10 @@
1
+ notifications:
2
+ email: false
3
+ sudo: false
4
+ language: ruby
5
+ rvm:
6
+ - 2.2.7
7
+ - 2.3.4
8
+ - 2.4.1
9
+ - ruby-head
10
+ before_install: gem install bundler -v 1.14.3
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in middleman-somemoji.gemspec
4
+ gemspec
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2017 Yusuke Nakamura
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
@@ -0,0 +1,96 @@
1
+ # middleman-somemoji
2
+
3
+ [![Build Status](https://travis-ci.org/unasuke/middleman-somemoji.svg?branch=master)](https://travis-ci.org/unasuke/middleman-somemoji)
4
+
5
+ middleman-somemoji is a emoji extension for Middleman.
6
+
7
+ Choose emoji provider and convert emoji shorthand (e.g. `:heart:`) to `<img>` tag using somemoji gem.
8
+
9
+ ## usage
10
+ ### 1. bundle install
11
+
12
+ ```ruby
13
+ # Gemfile
14
+ source 'https://rubygems.org'
15
+
16
+ gem 'middleman', '>= 4.0.0'
17
+ gem 'middleman-somemoji'
18
+ ```
19
+
20
+ and run `bundle install`
21
+
22
+ ### 2. download emoji images
23
+
24
+ Download emoji images to your middleman images directory using somemoji gem.
25
+
26
+ ```shell
27
+ # in your middleman root directory (destination path is a example)
28
+ $ bundle exec somemoji extract --provider=twemoji --destination=./source/images/emoji
29
+ ```
30
+
31
+ See also somemoji's readme → [somemoji/README.md](https://github.com/r7kamura/somemoji/blob/master/README.md)
32
+
33
+ ### 3. activate somemoji extension and setting it
34
+
35
+ ```ruby
36
+ # your middleman config.rb
37
+ activate :somemoji,
38
+ provider: 'twemoji',
39
+ emojis_dir: '/images/emoji'
40
+ ```
41
+
42
+ :warning: __note__ :warning:
43
+
44
+ If you using `asset_hash` extension, currentry disable it in emoji images directory please :pray:
45
+
46
+ ```ruby
47
+ # for example
48
+ activate :asset_hash, ignore: 'images/twemoji'
49
+ ```
50
+
51
+ ### 4. write emoji shorthand
52
+
53
+ examples...
54
+
55
+ ```markdown
56
+ # my markdown document
57
+ I'm happy :lauging:
58
+
59
+ ## but
60
+ So sorry... :bow:
61
+ ```
62
+
63
+ ```slim
64
+ h1 my slim document
65
+ div.some-class
66
+ p
67
+ | :eyes:
68
+ small
69
+ | :+1:
70
+ ```
71
+
72
+ See also [Emoji cheat sheet for GitHub, Basecamp and other services](https://www.webpagefx.com/tools/emoji-cheat-sheet/)
73
+
74
+ ### 5. build middleman site!
75
+
76
+ ```shell
77
+ $ bundle exec middleman build
78
+ ```
79
+
80
+ ## Development
81
+
82
+ After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
83
+
84
+ To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
85
+
86
+ ## Contributing
87
+
88
+ Bug reports and pull requests are welcome on GitHub at https://github.com/unasuke/middleman-somemoji.
89
+
90
+
91
+ ## License
92
+
93
+ The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
94
+
95
+ ## Reference
96
+ - [r7kamura/somemoji: A grand unified emoji mapper for some emoji providers.](https://github.com/r7kamura/somemoji)
@@ -0,0 +1,14 @@
1
+ require 'bundler'
2
+ Bundler::GemHelper.install_tasks
3
+
4
+ require 'cucumber/rake/task'
5
+
6
+ Cucumber::Rake::Task.new(:cucumber, 'Run features that should pass') do |t|
7
+ t.cucumber_opts = '--color --tags ~@wip --strict'
8
+ end
9
+
10
+ require 'rake/clean'
11
+
12
+ task test: ['cucumber']
13
+
14
+ task default: :test
@@ -0,0 +1,9 @@
1
+ Feature: Emoji
2
+ Scenario: Should convert :heart: to img tag
3
+ Given a fixture app "emoji-app"
4
+ And the Server is running at "emoji-app"
5
+ When I go to "/index.html"
6
+ Then I should see "❤️"
7
+ Then I should see "emoji"
8
+ Then I should see "/images/emoji/unicode/2764-fe0f.png"
9
+ #Then I should see %(img alt="❤️" class="emoji" src="/images/emoji/unicode/2764-fe0f.png")
@@ -0,0 +1,4 @@
1
+ PROJECT_ROOT_PATH = File.dirname(File.dirname(File.dirname(__FILE__)))
2
+ require 'middleman-core'
3
+ require 'middleman-core/step_definitions'
4
+ require File.join(PROJECT_ROOT_PATH, 'lib', 'middleman-somemoji')
@@ -0,0 +1,8 @@
1
+ Feature: Twemoji
2
+ Scenario: Should convert :smile: to img tag
3
+ Given a fixture app "twemoji-app"
4
+ And the Server is running at "twemoji-app"
5
+ When I go to "/index.html"
6
+ Then I should see "😄"
7
+ Then I should see "twemoji"
8
+ Then I should see "/images/twemoji/unicode/1f604.svg"
@@ -0,0 +1 @@
1
+ activate :somemoji
@@ -0,0 +1 @@
1
+ <p>:heart:</p>
@@ -0,0 +1,9 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>Test App</title>
5
+ </head>
6
+ <body>
7
+ <%= yield %>
8
+ </body>
9
+ </html>
@@ -0,0 +1,6 @@
1
+ activate :somemoji,
2
+ provider: 'twemoji',
3
+ format: 'svg',
4
+ emoji_class: 'twemoji',
5
+ emojis_dir: '/images/twemoji'
6
+
@@ -0,0 +1 @@
1
+ <p>:smile:</p>
@@ -0,0 +1,9 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>Test App</title>
5
+ </head>
6
+ <body>
7
+ <%= yield %>
8
+ </body>
9
+ </html>
@@ -0,0 +1,6 @@
1
+ require 'middleman-core'
2
+
3
+ Middleman::Extensions.register :somemoji do
4
+ require 'middleman-somemoji/extension'
5
+ ::Middleman::Somemoji::Extension
6
+ end
@@ -0,0 +1,21 @@
1
+ require 'somemoji'
2
+
3
+ module Middleman
4
+ module Somemoji
5
+ class Converter
6
+ def initialize(body, options)
7
+ @body = body
8
+ @provider = options[:provider]
9
+ @format = options[:format]
10
+ @emoji_class = options[:emoji_class]
11
+ @emojis_dir = options[:emojis_dir]
12
+ end
13
+
14
+ def convert
15
+ eval("::Somemoji::#{@provider}_emoji_collection").replace_code(@body) do |emoji|
16
+ %(<img alt="#{emoji.character}" class="#{@emoji_class}" src="#{@emojis_dir}/#{emoji.base_path}.#{@format}">)
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,25 @@
1
+ require 'middleman-core'
2
+ require 'middleman-somemoji/converter'
3
+
4
+ module Middleman
5
+ module Somemoji
6
+ class Extension < ::Middleman::Extension
7
+ option :provider, 'apple', %[Emoji provider (default is 'apple')]
8
+ option :format, 'png', %[Emoji format (default is 'png')]
9
+ option :emoji_class, 'emoji', %[<img> tag class (default is 'emoji')]
10
+ option :emojis_dir, '/images/emoji', %[Emoji images directory path (default is '/images/emoji')]
11
+
12
+ def initialize(app, options_hash={}, &block)
13
+ super
14
+
15
+ require 'somemoji'
16
+
17
+ @options = options
18
+
19
+ app.before_render do |body, path, locs, template_class|
20
+ ::Middleman::Somemoji::Converter.new(body, @options).convert
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,5 @@
1
+ module Middleman
2
+ module Somemoji
3
+ VERSION = '0.1.0'.freeze
4
+ end
5
+ end
@@ -0,0 +1,34 @@
1
+ # coding: utf-8
2
+
3
+ lib = File.expand_path('../lib', __FILE__)
4
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
+ require 'middleman-somemoji/version'
6
+
7
+ Gem::Specification.new do |s|
8
+ s.name = 'middleman-somemoji'
9
+ s.version = Middleman::Somemoji::VERSION
10
+ s.platform = Gem::Platform::RUBY
11
+ s.authors = ['Yusuke Nakamura']
12
+ s.email = ['yusuke1994525@gmail.com']
13
+ s.homepage = 'https://github.com/unasuke/middleman-somemoji'
14
+ s.summary = %q{Convert emoji (e.g. :heart:) to <img> tag.}
15
+ s.description = %q{Choose emoji provider and convert emoji shorthand to <img> tag using somemoji gem.}
16
+
17
+ s.files = `git ls-files`.split("\n")
18
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
19
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
20
+ s.require_paths = ['lib']
21
+
22
+ # The version of middleman-core your extension depends on
23
+ s.add_runtime_dependency 'middleman-core', '>= 4'
24
+ s.add_runtime_dependency 'somemoji'
25
+
26
+ s.add_development_dependency 'bundler', '~> 1.14'
27
+ s.add_development_dependency 'rake', '~> 10.0'
28
+ s.add_development_dependency 'rdoc'
29
+ s.add_development_dependency 'yard'
30
+ s.add_development_dependency 'cucumber'
31
+ s.add_development_dependency 'capybara'
32
+ s.add_development_dependency 'aruba'
33
+ s.add_development_dependency 'rspec'
34
+ end
metadata ADDED
@@ -0,0 +1,207 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: middleman-somemoji
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Yusuke Nakamura
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2017-05-17 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'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '4'
27
+ - !ruby/object:Gem::Dependency
28
+ name: somemoji
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
+ - !ruby/object:Gem::Dependency
42
+ name: bundler
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '1.14'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '1.14'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rake
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '10.0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '10.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rdoc
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: yard
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: cucumber
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: capybara
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: aruba
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: rspec
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ description: Choose emoji provider and convert emoji shorthand to <img> tag using
154
+ somemoji gem.
155
+ email:
156
+ - yusuke1994525@gmail.com
157
+ executables: []
158
+ extensions: []
159
+ extra_rdoc_files: []
160
+ files:
161
+ - ".gitignore"
162
+ - ".travis.yml"
163
+ - Gemfile
164
+ - LICENSE.txt
165
+ - README.md
166
+ - Rakefile
167
+ - features/emoji.feature
168
+ - features/support/env.rb
169
+ - features/twemoji.feature
170
+ - fixtures/emoji-app/config.rb
171
+ - fixtures/emoji-app/source/index.html.erb
172
+ - fixtures/emoji-app/source/layout.erb
173
+ - fixtures/twemoji-app/config.rb
174
+ - fixtures/twemoji-app/source/index.html.erb
175
+ - fixtures/twemoji-app/source/layout.erb
176
+ - lib/middleman-somemoji.rb
177
+ - lib/middleman-somemoji/converter.rb
178
+ - lib/middleman-somemoji/extension.rb
179
+ - lib/middleman-somemoji/version.rb
180
+ - middleman-somemoji.gemspec
181
+ homepage: https://github.com/unasuke/middleman-somemoji
182
+ licenses: []
183
+ metadata: {}
184
+ post_install_message:
185
+ rdoc_options: []
186
+ require_paths:
187
+ - lib
188
+ required_ruby_version: !ruby/object:Gem::Requirement
189
+ requirements:
190
+ - - ">="
191
+ - !ruby/object:Gem::Version
192
+ version: '0'
193
+ required_rubygems_version: !ruby/object:Gem::Requirement
194
+ requirements:
195
+ - - ">="
196
+ - !ruby/object:Gem::Version
197
+ version: '0'
198
+ requirements: []
199
+ rubyforge_project:
200
+ rubygems_version: 2.6.11
201
+ signing_key:
202
+ specification_version: 4
203
+ summary: Convert emoji (e.g. :heart:) to <img> tag.
204
+ test_files:
205
+ - features/emoji.feature
206
+ - features/support/env.rb
207
+ - features/twemoji.feature