middleman-x_helpers 0.0.1
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/Rakefile +14 -0
- data/features/support/env.rb +4 -0
- data/lib/middleman-x_helpers/extension.rb +28 -0
- data/lib/middleman-x_helpers/helpers/amp/amp_img.rb +11 -0
- data/lib/middleman-x_helpers/helpers/amp/amp_video.rb +23 -0
- data/lib/middleman-x_helpers/helpers/elements/views/x_break_area.erb +8 -0
- data/lib/middleman-x_helpers/helpers/elements/views/x_image.erb +4 -0
- data/lib/middleman-x_helpers/helpers/elements/x_break_area.rb +9 -0
- data/lib/middleman-x_helpers/helpers/elements/x_button.rb +15 -0
- data/lib/middleman-x_helpers/helpers/elements/x_image.rb +35 -0
- data/lib/middleman-x_helpers/helpers/light_slider/light_slider.rb +22 -0
- data/lib/middleman-x_helpers/helpers/light_slider/logo_slider.rb +21 -0
- data/lib/middleman-x_helpers/helpers/light_slider/views/x_logo_slider.erb +3 -0
- data/lib/middleman-x_helpers/helpers/light_slider/views/x_slider.erb +3 -0
- data/lib/middleman-x_helpers/helpers/misc/lorem.rb +10 -0
- data/lib/middleman-x_helpers/helpers/nav/views/x_nav.erb +28 -0
- data/lib/middleman-x_helpers/helpers/nav/x_nav.rb +21 -0
- data/lib/middleman-x_helpers/helpers/seo/seo.rb +53 -0
- data/lib/middleman-x_helpers.rb +15 -0
- data/middleman-x_helpers.gemspec +24 -0
- metadata +80 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: e15921825f19f2b93d26daa0179bfbd041066ab2
|
4
|
+
data.tar.gz: de3ef2b0ad34d2274ed855e534952c7d79fc316b
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 788f850abea72288f3c0a2ff631ba40f624dbf0fe2a69668f1cc079f8e67534351bc257d493b9f30f80446068a45e6259528f2427df32685d1adabe37238ed92
|
7
|
+
data.tar.gz: 754a72a16920429d76c35c157af0d4fa5e6ce20ca0be09bd1e335a4b8e11666c89e6719fe34838c2ed889bbb010574790dac567d880fa82b3d4f75538bdcbb12
|
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-x_helpers.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/Rakefile
ADDED
@@ -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,28 @@
|
|
1
|
+
# # Require core library
|
2
|
+
# require 'middleman-core'
|
3
|
+
|
4
|
+
# # Extension namespace
|
5
|
+
# class XHelpers < ::Middleman::Extension
|
6
|
+
# option :my_option, 'default', 'An example option'
|
7
|
+
|
8
|
+
# def initialize(app, options_hash={}, &block)
|
9
|
+
# # Call super to build options from the options_hash
|
10
|
+
# super
|
11
|
+
|
12
|
+
# # Require libraries only when activated
|
13
|
+
# # require 'necessary/library'
|
14
|
+
|
15
|
+
# # set up your extension
|
16
|
+
# # puts options.my_option
|
17
|
+
# end
|
18
|
+
|
19
|
+
# def after_configuration
|
20
|
+
# # Do something
|
21
|
+
# end
|
22
|
+
|
23
|
+
# helpers do
|
24
|
+
# Dir["middleman-x_helpers/helpers/**/*.rb"].sort.each do |file|
|
25
|
+
# require file
|
26
|
+
# end
|
27
|
+
# end
|
28
|
+
# end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
################# AMP Image #################
|
2
|
+
def x_amp_img(src:"",width:"",height:"",layout:"responsive",alt:"")
|
3
|
+
img =<<EOS
|
4
|
+
<amp-img src="#{src}"
|
5
|
+
width="#{width}"
|
6
|
+
height="#{height}"
|
7
|
+
layout="#{layout}"
|
8
|
+
alt="#{alt}"></amp-img>
|
9
|
+
EOS
|
10
|
+
img
|
11
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
################# AMP Video #################
|
2
|
+
def x_amp_video(width:"400",height:"300",src:"",poster:"",fallback_msg:"Your browser doesn’t support HTML5 video",mp4:"",webm:"")
|
3
|
+
|
4
|
+
unless mp4 == ""
|
5
|
+
mp4 = "<source type='video/mp4' src='#{mp4}'>"
|
6
|
+
end
|
7
|
+
|
8
|
+
unless webm == ""
|
9
|
+
webm = "<source type='video/webm' src='#{webm}'>"
|
10
|
+
end
|
11
|
+
|
12
|
+
video =<<EOS
|
13
|
+
<amp-video width=400 height=300 src="https://yourhost.com/videos/myvideo.mp4"
|
14
|
+
poster="myvideo-poster.jpg">
|
15
|
+
<div fallback>
|
16
|
+
<p>Your browser doesn’t support HTML5 video</p>
|
17
|
+
</div>
|
18
|
+
#{mp4}
|
19
|
+
#{webm}
|
20
|
+
</amp-video>
|
21
|
+
EOS
|
22
|
+
video
|
23
|
+
end
|
@@ -0,0 +1,4 @@
|
|
1
|
+
<!-- -->
|
2
|
+
<% unless link == "" %><a href="<%= link %>" target="<%= link_target %>" css="<% "thumbnail" if corners == "thumbnail" %>"><% end %>
|
3
|
+
<img src="<%= src %>" width="<%= width %>" height="<%= height %>" css="<%= css %>" alt="">
|
4
|
+
<% unless link == "" %></a><% end %>
|
@@ -0,0 +1,9 @@
|
|
1
|
+
########################################################
|
2
|
+
#
|
3
|
+
# Break Area
|
4
|
+
#
|
5
|
+
########################################################
|
6
|
+
def x_break_area(title:"", background_image: "", body: "")
|
7
|
+
template = File.read(File.expand_path('../views/x_break_area.erb', __FILE__))
|
8
|
+
ERB.new(template).result(binding)
|
9
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
########################################################
|
2
|
+
#
|
3
|
+
# Button
|
4
|
+
#
|
5
|
+
########################################################
|
6
|
+
def x_button(url: "", icon: "", color: "primary", target: "_self", css: "", text: "")
|
7
|
+
|
8
|
+
unless icon == ""
|
9
|
+
icon = "<i class='fa #{icon}'></i> "
|
10
|
+
else
|
11
|
+
icon = ""
|
12
|
+
end
|
13
|
+
|
14
|
+
"<a href='#{url}' target='#{target}' class='#{css} btn-#{color}'>#{icon}#{text}</a>"
|
15
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
########################################################
|
2
|
+
#
|
3
|
+
# x Image
|
4
|
+
#
|
5
|
+
########################################################
|
6
|
+
def x_image(
|
7
|
+
src: "http://www.fillmurray.com/360/480",
|
8
|
+
width: "280",
|
9
|
+
height: "360",
|
10
|
+
corners: "none", #circle, rounded, thumbnail
|
11
|
+
link: "",
|
12
|
+
link_target: "",
|
13
|
+
responsive: true,
|
14
|
+
css: "",
|
15
|
+
alt: ""
|
16
|
+
)
|
17
|
+
|
18
|
+
|
19
|
+
# corners
|
20
|
+
if corners == "rounded"
|
21
|
+
css = css + " img-rounded"
|
22
|
+
elsif corners == "circle"
|
23
|
+
css = css + " img-circle"
|
24
|
+
elsif corners == "thumbnail"
|
25
|
+
css = css + " img-thumbnail"
|
26
|
+
end
|
27
|
+
|
28
|
+
# responsive
|
29
|
+
if responsive == true
|
30
|
+
css = css + " img-responsive"
|
31
|
+
end
|
32
|
+
|
33
|
+
template = File.read(File.expand_path('../views/x_image.erb', __FILE__))
|
34
|
+
ERB.new(template).result(binding)
|
35
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
########################################################
|
2
|
+
#
|
3
|
+
# X Light Slider
|
4
|
+
#
|
5
|
+
########################################################
|
6
|
+
def x_slider(id: "", slides: array)
|
7
|
+
|
8
|
+
@slide_builder = ""
|
9
|
+
slides.each do |el|
|
10
|
+
n = ""
|
11
|
+
n =<<EOS
|
12
|
+
<li class="x_slide-item">
|
13
|
+
<h3>#{el[:h3]}</h3>
|
14
|
+
<p>#{el[:p]}</p>
|
15
|
+
</li>
|
16
|
+
EOS
|
17
|
+
@slide_builder << n
|
18
|
+
end
|
19
|
+
|
20
|
+
template = File.read(File.expand_path('../views/x_slider.erb', __FILE__))
|
21
|
+
ERB.new(template).result(binding)
|
22
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
########################################################
|
2
|
+
#
|
3
|
+
# X Logo Slider
|
4
|
+
#
|
5
|
+
########################################################
|
6
|
+
def x_logo_slider(id: "", slides: array)
|
7
|
+
|
8
|
+
@slide_builder = ""
|
9
|
+
slides.each do |el|
|
10
|
+
n = ""
|
11
|
+
n =<<EOS
|
12
|
+
<li class="x_slide-item">
|
13
|
+
<img src="#{el[:img]}" alt="">
|
14
|
+
</li>
|
15
|
+
EOS
|
16
|
+
@slide_builder << n
|
17
|
+
end
|
18
|
+
|
19
|
+
template = File.read(File.expand_path('../views/x_slider.erb', __FILE__))
|
20
|
+
ERB.new(template).result(binding)
|
21
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
########################################################
|
2
|
+
#
|
3
|
+
# Lorem
|
4
|
+
#
|
5
|
+
########################################################
|
6
|
+
def x_lorem(repeat: 1)
|
7
|
+
repeat.times do
|
8
|
+
"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
|
9
|
+
end
|
10
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
<!-- Navigation -->
|
2
|
+
<nav class="navbar navbar-default navbar-fixed-top" role="navigation" id="x_nav">
|
3
|
+
<div class="container-fluid">
|
4
|
+
<div class="navbar-header page-scroll">
|
5
|
+
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse">
|
6
|
+
<span class="sr-only">Toggle navigation</span>
|
7
|
+
<span class="icon-bar"></span>
|
8
|
+
<span class="icon-bar"></span>
|
9
|
+
<span class="icon-bar"></span>
|
10
|
+
</button>
|
11
|
+
<a class="navbar-brand page-scroll" href="/" id="page_top" name="page_top" id="x_logo_wrapper">
|
12
|
+
<img src="<%= logo %>" alt="<%= logo_alt %>" id="x_logo">
|
13
|
+
</a>
|
14
|
+
</div>
|
15
|
+
<!-- Collect the nav links, forms, and other content for toggling -->
|
16
|
+
<div class="collapse navbar-collapse navbar-ex1-collapse pull-right">
|
17
|
+
<ul class="nav navbar-nav">
|
18
|
+
<!-- Hidden li included to remove active class from about link when scrolled up past about section -->
|
19
|
+
<li class="hidden">
|
20
|
+
<a class="page-scroll" href="#page-top"></a>
|
21
|
+
</li>
|
22
|
+
<%= @nav_builder %>
|
23
|
+
</ul>
|
24
|
+
</div>
|
25
|
+
<!-- /.navbar-collapse -->
|
26
|
+
</div>
|
27
|
+
<!-- /.container -->
|
28
|
+
</nav>
|
@@ -0,0 +1,21 @@
|
|
1
|
+
########################################################
|
2
|
+
#
|
3
|
+
# X Nav
|
4
|
+
#
|
5
|
+
########################################################
|
6
|
+
def x_nav(logo: "", logo_alt: "", nav: array)
|
7
|
+
|
8
|
+
@nav_builder = ""
|
9
|
+
nav.each do |el|
|
10
|
+
n = ""
|
11
|
+
n =<<EOS
|
12
|
+
<li class="x_nav-item">
|
13
|
+
<a class="#{el[:css]}" href="#{el[:link]}" class="x_nav-item-a">#{el[:name]}</a>
|
14
|
+
</li>
|
15
|
+
EOS
|
16
|
+
@nav_builder << n
|
17
|
+
end
|
18
|
+
|
19
|
+
template = File.read(File.expand_path('../views/x_nav.erb', __FILE__))
|
20
|
+
ERB.new(template).result(binding)
|
21
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
def x_page_title
|
2
|
+
current_page.data.title || data.site.title
|
3
|
+
end
|
4
|
+
|
5
|
+
def x_page_description
|
6
|
+
current_page.data.description || data.site.description
|
7
|
+
end
|
8
|
+
|
9
|
+
def x_current_page_url
|
10
|
+
"#{data.site.url}#{current_page.url}"
|
11
|
+
end
|
12
|
+
|
13
|
+
def x_page_url page
|
14
|
+
"#{data.site.url}#{page.url}"
|
15
|
+
end
|
16
|
+
|
17
|
+
def x_page_twitter_card_type
|
18
|
+
current_page.data.twitter_card_type || 'summary'
|
19
|
+
end
|
20
|
+
|
21
|
+
def x_page_image
|
22
|
+
current_page.data.image_path || data.site.logo_image_path
|
23
|
+
end
|
24
|
+
|
25
|
+
# Social share URLs
|
26
|
+
def x_twitter_url
|
27
|
+
"https://twitter.com/share?text=“#{page_title}”" +
|
28
|
+
"&url=#{current_page_url}" +
|
29
|
+
"&via=#{data.site.twitter_handle}"
|
30
|
+
end
|
31
|
+
|
32
|
+
def x_facebook_url
|
33
|
+
"https://www.facebook.com/dialog/feed?app_id=#{data.site.facebook_app_id}" +
|
34
|
+
"&caption=#{page_title}" +
|
35
|
+
"&picture=#{page_image}" +
|
36
|
+
"&name=“#{page_title}”" +
|
37
|
+
"&description=#{page_description}" +
|
38
|
+
"&display=popup" +
|
39
|
+
"&link=#{current_page_url}" +
|
40
|
+
"&redirect_uri=#{current_page_url}"
|
41
|
+
end
|
42
|
+
|
43
|
+
def x_google_plus_url
|
44
|
+
"https://plus.google.com/share?url=#{current_page_url}"
|
45
|
+
end
|
46
|
+
|
47
|
+
def x_linkedin_url
|
48
|
+
"http://www.linkedin.com/shareArticle?mini=true" +
|
49
|
+
"&url=#{current_page_url}" +
|
50
|
+
"&title=#{page_title}" +
|
51
|
+
"&summary=#{page_description}" +
|
52
|
+
"&source=#{data.site.url}"
|
53
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require "middleman-core"
|
2
|
+
|
3
|
+
class XHelpers < Middleman::Extension
|
4
|
+
def initialize(app, options_hash={}, &block)
|
5
|
+
super
|
6
|
+
end
|
7
|
+
|
8
|
+
helpers do
|
9
|
+
Dir[File.join(File.dirname(__FILE__), '..', "lib/middleman-x_helpers/helpers", '**/*.rb')].sort.each do |file|
|
10
|
+
require file
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
::Middleman::Extensions.register(:x_helpers, XHelpers)
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
|
4
|
+
Gem::Specification.new do |s|
|
5
|
+
s.name = "middleman-x_helpers"
|
6
|
+
s.version = "0.0.1"
|
7
|
+
s.platform = Gem::Platform::RUBY
|
8
|
+
s.authors = ["Tim Mushen"]
|
9
|
+
s.email = ["tim.mushen@gmail.com"]
|
10
|
+
# s.homepage = "http://example.com"
|
11
|
+
s.summary = %q{Helpers for Middleman}
|
12
|
+
s.description = %q{Helpers for Middleman}
|
13
|
+
|
14
|
+
s.files = `git ls-files`.split("\n")
|
15
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
16
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
17
|
+
s.require_paths = ["lib"]
|
18
|
+
|
19
|
+
# The version of middleman-core your extension depends on
|
20
|
+
s.add_runtime_dependency("middleman-core")
|
21
|
+
|
22
|
+
# Additional dependencies
|
23
|
+
# s.add_runtime_dependency("gem-name", "gem-version")
|
24
|
+
end
|
metadata
ADDED
@@ -0,0 +1,80 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: middleman-x_helpers
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Tim Mushen
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2016-08-01 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: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
description: Helpers for Middleman
|
28
|
+
email:
|
29
|
+
- tim.mushen@gmail.com
|
30
|
+
executables: []
|
31
|
+
extensions: []
|
32
|
+
extra_rdoc_files: []
|
33
|
+
files:
|
34
|
+
- ".gitignore"
|
35
|
+
- Gemfile
|
36
|
+
- Rakefile
|
37
|
+
- features/support/env.rb
|
38
|
+
- lib/middleman-x_helpers.rb
|
39
|
+
- lib/middleman-x_helpers/extension.rb
|
40
|
+
- lib/middleman-x_helpers/helpers/amp/amp_img.rb
|
41
|
+
- lib/middleman-x_helpers/helpers/amp/amp_video.rb
|
42
|
+
- lib/middleman-x_helpers/helpers/elements/views/x_break_area.erb
|
43
|
+
- lib/middleman-x_helpers/helpers/elements/views/x_image.erb
|
44
|
+
- lib/middleman-x_helpers/helpers/elements/x_break_area.rb
|
45
|
+
- lib/middleman-x_helpers/helpers/elements/x_button.rb
|
46
|
+
- lib/middleman-x_helpers/helpers/elements/x_image.rb
|
47
|
+
- lib/middleman-x_helpers/helpers/light_slider/light_slider.rb
|
48
|
+
- lib/middleman-x_helpers/helpers/light_slider/logo_slider.rb
|
49
|
+
- lib/middleman-x_helpers/helpers/light_slider/views/x_logo_slider.erb
|
50
|
+
- lib/middleman-x_helpers/helpers/light_slider/views/x_slider.erb
|
51
|
+
- lib/middleman-x_helpers/helpers/misc/lorem.rb
|
52
|
+
- lib/middleman-x_helpers/helpers/nav/views/x_nav.erb
|
53
|
+
- lib/middleman-x_helpers/helpers/nav/x_nav.rb
|
54
|
+
- lib/middleman-x_helpers/helpers/seo/seo.rb
|
55
|
+
- middleman-x_helpers.gemspec
|
56
|
+
homepage:
|
57
|
+
licenses: []
|
58
|
+
metadata: {}
|
59
|
+
post_install_message:
|
60
|
+
rdoc_options: []
|
61
|
+
require_paths:
|
62
|
+
- lib
|
63
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
64
|
+
requirements:
|
65
|
+
- - ">="
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: '0'
|
68
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
69
|
+
requirements:
|
70
|
+
- - ">="
|
71
|
+
- !ruby/object:Gem::Version
|
72
|
+
version: '0'
|
73
|
+
requirements: []
|
74
|
+
rubyforge_project:
|
75
|
+
rubygems_version: 2.4.8
|
76
|
+
signing_key:
|
77
|
+
specification_version: 4
|
78
|
+
summary: Helpers for Middleman
|
79
|
+
test_files:
|
80
|
+
- features/support/env.rb
|