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 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
@@ -0,0 +1,5 @@
1
+ # Ignore bundler lock file
2
+ /Gemfile.lock
3
+
4
+ # Ignore pkg folder
5
+ /pkg
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,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-x_helpers')
@@ -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,8 @@
1
+ <div class="container-fluid" id="<%= id %>" style="background-image:url(<%= image %>); text-align:left;">
2
+ <div class="row">
3
+ <div class="col-md-12">
4
+ <h3><%= title %></h3>
5
+ <p><%= body %></p>
6
+ </div>
7
+ </div>
8
+ </div>
@@ -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,3 @@
1
+ <ul id="<%= id %>">
2
+ <%= @slide_builder %>
3
+ </ul>
@@ -0,0 +1,3 @@
1
+ <ul id="<%= id %>">
2
+ <%= @slide_builder %>
3
+ </ul>
@@ -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