middleman-widont 1.0.0

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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 2518fa4cf669b948d87bb42da838da72e6154480
4
+ data.tar.gz: 6094ea88be88e2e658eb1e30b1c11a7c31591d5c
5
+ SHA512:
6
+ metadata.gz: fb2408320fab5a80b349cc18ccd52056074fcec45ac4bb40c2c07cb4345992a54d4647a08f8ee31353d4c6d43f8dd9eebc6778206dea4f75e8d1800c4962ae45
7
+ data.tar.gz: 76ca08e93ab5cfedd7458555ce1d6b40b47c7611d4f7bf4a5ebbdb4d25565d77ba27badb0c1f3ddb01f35e52775113d0c5be7dd649ab348d331af1bac3cee13e
@@ -0,0 +1,14 @@
1
+ *.gem
2
+ .bundle
3
+ Gemfile*.lock
4
+ pkg/*
5
+ .rvmrc
6
+ .DS_Store
7
+ .rbenv-version
8
+ .ruby-version
9
+ tmp
10
+ doc
11
+ .yardoc
12
+ build/
13
+ .sass-cache
14
+ coverage
data/Gemfile ADDED
@@ -0,0 +1,6 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem "middleman-cli"
4
+ gem "middleman-core"
5
+
6
+ gem "nokogiri"
File without changes
@@ -0,0 +1,50 @@
1
+ require "middleman-core"
2
+ require "nokogiri"
3
+
4
+ class Widont < ::Middleman::Extension
5
+ VERSION = "1.0.0"
6
+
7
+ option :tags, %w[p h1 h2 h3 h4 h5 h6], "Tags to apply widont"
8
+
9
+ def after_configuration
10
+ app.use Rack, options
11
+ end
12
+
13
+ class Rack
14
+ def initialize(app, options={})
15
+ @app = app
16
+ @tags = options[:tags]
17
+ end
18
+
19
+ def call(env)
20
+ status, headers, response = @app.call(env)
21
+
22
+ type = headers.fetch("Content-Type", "application/octet-stream").split(";").first
23
+ path = env["PATH_INFO"]
24
+
25
+ if type == "text/html"
26
+ html = ::Middleman::Util.extract_response_text(response)
27
+ html_doc = Nokogiri::HTML(html)
28
+
29
+ space = "\u00A0"
30
+ html_doc.css(@tags.join(", ")).each do |tag|
31
+ content = tag.inner_html.strip
32
+ index = content.rindex(" ")
33
+ content = content.insert(index, space)
34
+ content[index + space.length] = ""
35
+ tag.inner_html = content
36
+ end
37
+ response = html_doc.to_html
38
+ end
39
+
40
+ if response.is_a?(String)
41
+ headers["Content-Length"] = ::Rack::Utils.bytesize(response).to_s
42
+ response = [response]
43
+ end
44
+
45
+ [status, headers, response]
46
+ end
47
+ end
48
+ end
49
+
50
+ ::Middleman::Extensions.register(:widont, Widont)
@@ -0,0 +1,22 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "middleman-widont"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "middleman-widont"
7
+ s.version = Widont::VERSION
8
+ s.platform = Gem::Platform::RUBY
9
+ s.authors = ["Jeremy Boles"]
10
+ s.email = ["jeremy@centralstandard.com"]
11
+ s.homepage = "https://git.centralstandard.com/centralstandard/middleman-widont"
12
+ s.summary = %q{Middleman extension for removing widows from HTML elements}
13
+ s.description = %q{Remove widows in Middleman}
14
+ s.license = "MIT"
15
+ s.files = `git ls-files -z`.split("\0")
16
+ s.test_files = `git ls-files -z -- {fixtures,features}/*`.split("\0")
17
+ s.require_paths = ["lib"]
18
+ s.required_ruby_version = '>= 2.0'
19
+
20
+ s.add_dependency("middleman-core", [">= 3.3"])
21
+ s.add_dependency("nokogiri", ["~> 1.6.6.2"])
22
+ end
metadata ADDED
@@ -0,0 +1,77 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: middleman-widont
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Jeremy Boles
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-08-07 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: '3.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.3'
27
+ - !ruby/object:Gem::Dependency
28
+ name: nokogiri
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 1.6.6.2
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 1.6.6.2
41
+ description: Remove widows in Middleman
42
+ email:
43
+ - jeremy@centralstandard.com
44
+ executables: []
45
+ extensions: []
46
+ extra_rdoc_files: []
47
+ files:
48
+ - ".gitignore"
49
+ - Gemfile
50
+ - README.md
51
+ - lib/middleman-widont.rb
52
+ - middleman-widont.gemspec
53
+ homepage: https://git.centralstandard.com/centralstandard/middleman-widont
54
+ licenses:
55
+ - MIT
56
+ metadata: {}
57
+ post_install_message:
58
+ rdoc_options: []
59
+ require_paths:
60
+ - lib
61
+ required_ruby_version: !ruby/object:Gem::Requirement
62
+ requirements:
63
+ - - ">="
64
+ - !ruby/object:Gem::Version
65
+ version: '2.0'
66
+ required_rubygems_version: !ruby/object:Gem::Requirement
67
+ requirements:
68
+ - - ">="
69
+ - !ruby/object:Gem::Version
70
+ version: '0'
71
+ requirements: []
72
+ rubyforge_project:
73
+ rubygems_version: 2.4.5
74
+ signing_key:
75
+ specification_version: 4
76
+ summary: Middleman extension for removing widows from HTML elements
77
+ test_files: []