inky-rb 1.3.7.3 → 1.4.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (69) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.rubocop.yml +3 -0
  4. data/.travis.yml +4 -2
  5. data/README.md +1 -1
  6. data/gemfiles/rails_6.gemfile +5 -0
  7. data/inky.gemspec +6 -6
  8. data/lib/inky/component_factory.rb +21 -9
  9. data/lib/inky/configuration.rb +22 -1
  10. data/lib/inky/rails/template_handler.rb +7 -3
  11. data/lib/inky/rails/version.rb +1 -1
  12. data/lib/inky.rb +5 -2
  13. data/spec/_cases_output/button/no_link.inky +1 -0
  14. data/spec/_cases_output/button/with_expand_class.inky +4 -0
  15. data/spec/_cases_output/button/with_extra_attr.inky +3 -0
  16. data/spec/_cases_output/button/with_image.inky +3 -0
  17. data/spec/_cases_output/button/with_link.inky +3 -0
  18. data/spec/_cases_output/button/with_link_and_extra_attr.inky +3 -0
  19. data/spec/_cases_output/button/with_tricky_class.inky +22 -0
  20. data/spec/_cases_output/callout/basic.inky +1 -0
  21. data/spec/_cases_output/callout/with_attributes.inky +3 -0
  22. data/spec/_cases_output/general/empty_attributes.inky +6 -0
  23. data/spec/_cases_output/general/multiple_root.inky +2 -0
  24. data/spec/_cases_output/general/no_tag.inky +1 -0
  25. data/spec/_cases_output/general/root_within_text.inky +7 -0
  26. data/spec/_cases_output/general/void_html_elements.inky +6 -0
  27. data/spec/_cases_output/grid/columns.inky +2 -0
  28. data/spec/_cases_output/grid/container.inky +1 -0
  29. data/spec/_cases_output/grid/container_with_align.inky +1 -0
  30. data/spec/_cases_output/grid/row.inky +1 -0
  31. data/spec/_cases_output/grid/row_with_columns.inky +5 -0
  32. data/spec/_cases_output/h_line/basic.inky +1 -0
  33. data/spec/_cases_output/h_line/h_line.inky +2 -0
  34. data/spec/_cases_output/h_line/multiple.inky +3 -0
  35. data/spec/_cases_output/h_line/with_attr.inky +1 -0
  36. data/spec/_cases_output/menu/item.inky +1 -0
  37. data/spec/_cases_output/menu/menu.inky +2 -0
  38. data/spec/_cases_output/menu/menu_with_align.inky +2 -0
  39. data/spec/_cases_output/menu/menu_with_items.inky +5 -0
  40. data/spec/_cases_output/spacer/basic.inky +5 -0
  41. data/spec/_cases_output/spacer/with_attr.inky +6 -0
  42. data/spec/_cases_output/spacer/with_size.inky +5 -0
  43. data/spec/_cases_output/spacer/with_size_lg.inky +5 -0
  44. data/spec/_cases_output/spacer/with_size_sm.inky +5 -0
  45. data/spec/_cases_output/spacer/with_size_sm_and_lg.inky +5 -0
  46. data/spec/_cases_output/spacer/with_sizes_and_attr.inky +6 -0
  47. data/spec/_cases_output/wrapper/basic.inky +1 -0
  48. data/spec/_cases_output/wrapper/with_align.inky +1 -0
  49. data/spec/_cases_output/wrapper/with_attributes.inky +1 -0
  50. data/spec/cases/button/with_extra_attr.inky +3 -0
  51. data/spec/cases/button/with_link.inky +1 -1
  52. data/spec/cases/button/with_link_and_extra_attr.inky +3 -0
  53. data/spec/cases/h_line/basic.inky +1 -0
  54. data/spec/cases/h_line/multiple.inky +8 -0
  55. data/spec/cases/h_line/with_attr.inky +2 -0
  56. data/spec/cases/spacer/with_attr.inky +6 -0
  57. data/spec/cases/spacer/with_size.inky +1 -1
  58. data/spec/cases/spacer/with_size_lg.inky +1 -1
  59. data/spec/cases/spacer/with_size_sm.inky +1 -1
  60. data/spec/cases/spacer/with_size_sm_and_lg.inky +1 -1
  61. data/spec/cases/spacer/with_sizes_and_attr.inky +6 -0
  62. data/spec/components_spec.rb +48 -48
  63. data/spec/configuration_spec.rb +92 -22
  64. data/spec/grid_spec.rb +38 -38
  65. data/spec/spec_helper.rb +4 -1
  66. data/spec/test_app/log/test.log +5405 -0
  67. data/spec/test_app/spec/features/inky_spec.rb +3 -3
  68. metadata +165 -78
  69. data/Gemfile.lock +0 -188
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6f128cd66f4c50d6498301a720c686a24f75afb6121f7574fcf38ae4e4197e39
4
- data.tar.gz: 9953f571f49f8fe6712a89331726eca0e1c6756129d75d782e12685190549487
3
+ metadata.gz: 8b6292d929c4b925c5767a682f808c6f7f812925fe8769604e266459b19f0afb
4
+ data.tar.gz: 46349b5e9e7901e374e99d51f9bfbcaa1d083550336917629ea434c452ce4c99
5
5
  SHA512:
6
- metadata.gz: a0c09ee38d1611662c935d09e4326fde73ff2261ff1cd45f457e693d37b640f4303da063269ae663fdf574564cdc368f0877a8219ade38a174d0f474e6e2ca61
7
- data.tar.gz: b3154afa14af608c817f92b20a2763de1e681eb8b253aae12e76c85b5c7859e937afd7da7cee3243a86842f20611b69e151ae15291301f0a6d907f2dc66e745c
6
+ metadata.gz: d7c9410bd6ff9a642ccd5c51d8435a077234334c6dcfe23054f72bd6dc330a2cd4d07cd02bd2084dc0f65bed18ba08d82b904d5b08ced59e23b0f553b3daf22e
7
+ data.tar.gz: 1479e4b652d006b7a37092a05ee72d1177e0ab97ea514f0eb646acc25900da9799f887176cee1bef2f9527ebd13936d208ed5818bad3a44fee0b88da1ebbfcf5
data/.gitignore CHANGED
@@ -3,3 +3,4 @@ pkg
3
3
  spec/_cases_output
4
4
  spec/test_app/log/*.log
5
5
  spec/test_app/tmp/
6
+ Gemfile.lock
data/.rubocop.yml CHANGED
@@ -153,5 +153,8 @@ Metrics/BlockLength:
153
153
  - 'Rakefile'
154
154
  - 'spec/**/*.rb'
155
155
 
156
+ Style/MutableConstant:
157
+ Enabled: false
158
+
156
159
  Style/Encoding:
157
160
  Enabled: false
data/.travis.yml CHANGED
@@ -2,15 +2,17 @@ sudo: false
2
2
  language: ruby
3
3
  rvm:
4
4
  - 2.0.0
5
- - 2.4.1
5
+ - 2.6.1
6
6
  gemfile:
7
7
  - gemfiles/rails_3.gemfile
8
8
  - gemfiles/rails_4.gemfile
9
9
  - gemfiles/rails_5.gemfile
10
+ - gemfiles/rails_6.gemfile
10
11
  matrix:
11
12
  exclude:
12
13
  - rvm: 2.0.0
13
14
  gemfile: gemfiles/rails_5.gemfile
15
+ - rvm: 2.0.0
16
+ gemfile: gemfiles/rails_6.gemfile
14
17
  before_install:
15
- - gem install bundler
16
18
  - 'npm install -g inky-cli'
data/README.md CHANGED
@@ -163,4 +163,4 @@ The Inky parser can be accessed directly for programmatic use.
163
163
  Inky-rb currently requires:
164
164
 
165
165
  * Ruby 2.0+
166
- * Rails 3, 4 or 5
166
+ * Rails 3, 4, 5 or 6
@@ -0,0 +1,5 @@
1
+ source "https://rubygems.org"
2
+
3
+ gem "rails", ">=6.0.0.beta"
4
+
5
+ gemspec path: "../"
data/inky.gemspec CHANGED
@@ -5,11 +5,11 @@ require 'inky/rails/version'
5
5
  Gem::Specification.new do |s|
6
6
  s.name = 'inky-rb'
7
7
  s.version = Inky::Rails::VERSION
8
- s.summary = 'Inky is an HTML-based templating language that converts simple HTML into complex, responsive email-ready HTML. Designed for Foundation for Emails, a responsive email framework from ZURB. '
9
- s.description = 'Inky is an HTML-based templating language that converts simple HTML into complex, responsive email-ready HTML. Designed for Foundation for Emails, a responsive email framework from ZURB. '
10
- s.authors = ["ZURB"]
11
- s.email = ['foundation@zurb.com']
12
- s.homepage = 'https://github.com/zurb/inky-rb'
8
+ s.summary = 'Inky is an HTML-based templating language that converts simple HTML into complex, responsive email-ready HTML. Designed for Foundation for Emails'
9
+ s.description = 'Inky is an HTML-based templating language that converts simple HTML into complex, responsive email-ready HTML. Designed for Foundation for Emails'
10
+ s.authors = ["Foundation"]
11
+ s.email = ['contact@get.foundation']
12
+ s.homepage = 'https://github.com/foundation/inky-rb'
13
13
  s.licenses = ['MIT']
14
14
 
15
15
  s.files = `git ls-files -z`.split("\x0")
@@ -18,7 +18,7 @@ Gem::Specification.new do |s|
18
18
 
19
19
  s.add_dependency "foundation_emails", "~> 2"
20
20
  s.add_dependency "nokogiri"
21
- s.add_development_dependency "bundler", "~> 1.6"
21
+ s.add_development_dependency "bundler"
22
22
  s.add_development_dependency "capybara"
23
23
  s.add_development_dependency "rails"
24
24
  s.add_development_dependency "rake"
@@ -12,6 +12,11 @@ module Inky
12
12
  tags = tags.to_set if tags.respond_to? :to_set
13
13
  IGNORED_ON_PASSTHROUGH = tags.freeze
14
14
 
15
+ # These constants are used to circumvent an issue with JRuby Nokogiri.
16
+ # For more details see https://github.com/zurb/inky-rb/pull/94
17
+ INTERIM_TH_TAG = 'inky-interim-th'.freeze
18
+ INTERIM_TH_TAG_REGEX = %r{(?<=\<|\<\/)#{Regexp.escape(INTERIM_TH_TAG)}}
19
+
15
20
  def _pass_through_attributes(elem)
16
21
  elem.attributes.reject { |e| IGNORED_ON_PASSTHROUGH.include?(e.downcase) }.map do |name, value|
17
22
  %{#{name}="#{value}" }
@@ -40,27 +45,28 @@ module Inky
40
45
 
41
46
  def _transform_button(component, inner)
42
47
  expand = _has_class(component, 'expand')
48
+ attributes = _pass_through_attributes(component)
43
49
  if component.attr('href')
44
50
  target = _target_attribute(component)
45
51
  extra = ' align="center" class="float-center"' if expand
46
- inner = %{<a href="#{component.attr('href')}"#{target}#{extra}>#{inner}</a>}
52
+ inner = %{<a #{attributes}href="#{component.attr('href')}"#{target}#{extra}>#{inner}</a>}
47
53
  end
48
54
  inner = "<center>#{inner}</center>" if expand
49
55
 
50
56
  classes = _combine_classes(component, 'button')
51
57
  expander = '<td class="expander"></td>' if expand
52
- %{<table class="#{classes}"><tr><td><table><tr><td>#{inner}</td></tr></table></td>#{expander}</tr></table>}
58
+ %{<table class="#{classes}"><tbody><tr><td><table><tbody><tr><td>#{inner}</td></tr></tbody></table></td>#{expander}</tr></tbody></table>}
53
59
  end
54
60
 
55
61
  def _transform_menu(component, inner)
56
62
  attributes = _combine_attributes(component, 'menu')
57
- %{<table #{attributes}><tr><td><table><tr>#{inner}</tr></table></td></tr></table>}
63
+ %{<table #{attributes}><tbody><tr><td><table><tbody><tr>#{inner}</tr></tbody></table></td></tr></tbody></table>}
58
64
  end
59
65
 
60
66
  def _transform_menu_item(component, inner)
61
67
  target = _target_attribute(component)
62
68
  attributes = _combine_attributes(component, 'menu-item')
63
- %{<th #{attributes}><a href="#{component.attr('href')}"#{target}>#{inner}</a></th>}
69
+ %{<#{INTERIM_TH_TAG} #{attributes}><a href="#{component.attr('href')}"#{target}>#{inner}</a></#{INTERIM_TH_TAG}>}
64
70
  end
65
71
 
66
72
  def _transform_container(component, inner)
@@ -91,12 +97,12 @@ module Inky
91
97
  subrows = component.elements.css(".row").to_a.concat(component.elements.css("row").to_a)
92
98
  expander = %{<th class="expander"></th>} if large_size.to_i == column_count && subrows.empty?
93
99
 
94
- %{<th class="#{classes}" #{_pass_through_attributes(component)}><table><tr><th>#{inner}</th>#{expander}</tr></table></th>}
100
+ %{<#{INTERIM_TH_TAG} class="#{classes}" #{_pass_through_attributes(component)}><table><tbody><tr><th>#{inner}</th>#{expander}</tr></tbody></table></#{INTERIM_TH_TAG}>}
95
101
  end
96
102
 
97
103
  def _transform_block_grid(component, inner)
98
104
  classes = _combine_classes(component, "block-grid up-#{component.attr('up')}")
99
- %{<table class="#{classes}"><tr>#{inner}</tr></table>}
105
+ %{<table class="#{classes}"><tbody><tr>#{inner}</tr></tbody></table>}
100
106
  end
101
107
 
102
108
  def _transform_center(component, _inner)
@@ -116,12 +122,12 @@ module Inky
116
122
  def _transform_callout(component, inner)
117
123
  classes = _combine_classes(component, 'callout-inner')
118
124
  attributes = _pass_through_attributes(component)
119
- %{<table #{attributes}class="callout"><tr><th class="#{classes}">#{inner}</th><th class="expander"></th></tr></table>}
125
+ %{<table #{attributes}class="callout"><tbody><tr><th class="#{classes}">#{inner}</th><th class="expander"></th></tr></tbody></table>}
120
126
  end
121
127
 
122
128
  def _transform_spacer(component, _inner)
123
129
  classes = _combine_classes(component, 'spacer')
124
- build_table = ->(size, extra) { %{<table class="#{classes} #{extra}"><tbody><tr><td height="#{size}px" style="font-size:#{size}px;line-height:#{size}px;">&#xA0;</td></tr></tbody></table>} }
130
+ build_table = ->(size, extra) { %{<table class="#{classes} #{extra}"><tbody><tr><td height="#{size}" style="font-size:#{size}px;line-height:#{size}px;">&nbsp;</td></tr></tbody></table>} }
125
131
  size = component.attr('size')
126
132
  size_sm = component.attr('size-sm')
127
133
  size_lg = component.attr('size-lg')
@@ -135,9 +141,15 @@ module Inky
135
141
  end
136
142
  end
137
143
 
144
+ def _transform_h_line(component, _inner)
145
+ classes = _combine_classes(component, 'h-line')
146
+ attributes = _pass_through_attributes(component)
147
+ %{<table #{attributes}class="#{classes}"><tr><th>&nbsp;</th></tr></table>}
148
+ end
149
+
138
150
  def _transform_wrapper(component, inner)
139
151
  attributes = _combine_attributes(component, 'wrapper')
140
- %{<table #{attributes} align="center"><tr><td class="wrapper-inner">#{inner}</td></tr></table>}
152
+ %{<table #{attributes} align="center"><tbody><tr><td class="wrapper-inner">#{inner}</td></tr></tbody></table>}
141
153
  end
142
154
  end
143
155
  end
@@ -7,6 +7,8 @@ module Inky
7
7
  # Set Inky's configuration
8
8
  # @param config [Inky::Configuration]
9
9
  def self.configuration=(config)
10
+ raise TypeError, "Not an Inky::Configuration" unless config.is_a?(Configuration)
11
+
10
12
  @configuration = config
11
13
  end
12
14
 
@@ -23,11 +25,30 @@ module Inky
23
25
  end
24
26
 
25
27
  class Configuration
26
- attr_accessor :template_engine, :column_count
28
+ attr_reader :template_engine, :column_count, :components
27
29
 
28
30
  def initialize
29
31
  @template_engine = :erb
30
32
  @column_count = 12
33
+ @components = {}
34
+ end
35
+
36
+ def template_engine=(value)
37
+ raise TypeError, "#{value.inspect} (#{value.class}) does not respond to 'to_sym'" unless value.respond_to?(:to_sym)
38
+
39
+ @template_engine = value.to_sym
40
+ end
41
+
42
+ def components=(value)
43
+ raise TypeError, "#{value.inspect} (#{value.class}) does not respond to 'to_hash'" unless value.respond_to?(:to_hash)
44
+
45
+ @components = value.to_hash
46
+ end
47
+
48
+ def column_count=(value)
49
+ raise TypeError, "#{value.inspect} (#{value.class}) does not respond to 'to_int'" unless value.respond_to?(:to_int)
50
+
51
+ @column_count = value.to_int
31
52
  end
32
53
  end
33
54
  end
@@ -13,9 +13,13 @@ module Inky
13
13
  raise("No template handler found for #{type}")
14
14
  end
15
15
 
16
- def call(template)
17
- compiled_source = engine_handler.call(template)
18
-
16
+ def call(template, source = nil)
17
+ compiled_source =
18
+ if source
19
+ engine_handler.call(template, source)
20
+ else
21
+ engine_handler.call(template)
22
+ end
19
23
  "Inky::Core.new.release_the_kraken(begin; #{compiled_source};end)"
20
24
  end
21
25
 
@@ -1,6 +1,6 @@
1
1
  module Inky
2
2
  module Rails
3
- VERSION = '1.3.7.3'.freeze
3
+ VERSION = '1.4.2.0'.freeze
4
4
  end
5
5
  NODE_VERSION, GEM_VERSION = Rails::VERSION.rpartition('.').map(&:freeze)
6
6
  end
data/lib/inky.rb CHANGED
@@ -20,8 +20,9 @@ module Inky
20
20
  callout: 'callout',
21
21
  spacer: 'spacer',
22
22
  wrapper: 'wrapper',
23
- menu_item: 'item'
24
- }.merge(options[:components] || {})
23
+ menu_item: 'item',
24
+ h_line: 'h-line',
25
+ }.merge(::Inky.configuration.components).merge(options[:components] || {})
25
26
 
26
27
  self.component_lookup = components.invert
27
28
 
@@ -40,6 +41,8 @@ module Inky
40
41
  html = Nokogiri::HTML.public_send(parse_cmd, str)
41
42
  transform_doc(html)
42
43
  string = html.to_html
44
+ string.gsub!(INTERIM_TH_TAG_REGEX, 'th')
45
+ string.gsub!(' ', '&nbsp;') # Convert non-breaking spaces to explicit &nbsp; entity
43
46
  Inky::Core.re_inject_raws(string, raws)
44
47
  end
45
48
 
@@ -0,0 +1 @@
1
+ <table class="button"><tbody><tr><td><table><tbody><tr><td>I'm missing an href</td></tr></tbody></table></td></tr></tbody></table>
@@ -0,0 +1,4 @@
1
+ <table class="button expand foo"><tbody><tr><td><table><tbody><tr><td><center><a href="http://example.com" align="center" class="float-center">
2
+ A label
3
+ </a></center></td></tr></tbody></table></td>
4
+ <td class="expander"></td></tr></tbody></table>
@@ -0,0 +1,3 @@
1
+ <table class="button"><tbody><tr><td><table><tbody><tr><td>
2
+ A label
3
+ </td></tr></tbody></table></td></tr></tbody></table>
@@ -0,0 +1,3 @@
1
+ <table class="button"><tbody><tr><td><table><tbody><tr><td><a href="#">
2
+ <img src="http://www.example.com/" width="600" height="400">
3
+ </a></td></tr></tbody></table></td></tr></tbody></table>
@@ -0,0 +1,3 @@
1
+ <table class="button some classes"><tbody><tr><td><table><tbody><tr><td><a href="http://example.com">
2
+ A label
3
+ </a></td></tr></tbody></table></td></tr></tbody></table>
@@ -0,0 +1,3 @@
1
+ <table class="button"><tbody><tr><td><table><tbody><tr><td><a foo="bar" href="http://example.com">
2
+ A label
3
+ </a></td></tr></tbody></table></td></tr></tbody></table>
@@ -0,0 +1,22 @@
1
+ <table class="button noexpand"><tbody><tr><td><table><tbody><tr><td><a href="http://example.com">
2
+ A label
3
+ </a></td></tr></tbody></table></td></tr></tbody></table>
4
+
5
+ <table class="button expand-niet"><tbody><tr><td><table><tbody><tr><td><a href="http://example.com">
6
+ A label
7
+ </a></td></tr></tbody></table></td></tr></tbody></table>
8
+
9
+ <table class="button expand foo"><tbody><tr><td><table><tbody><tr><td><center><a href="http://example.com" align="center" class="float-center">
10
+ A label
11
+ </a></center></td></tr></tbody></table></td>
12
+ <td class="expander"></td></tr></tbody></table>
13
+
14
+ <table class="button foo expand"><tbody><tr><td><table><tbody><tr><td><center><a href="http://example.com" align="center" class="float-center">
15
+ A label
16
+ </a></center></td></tr></tbody></table></td>
17
+ <td class="expander"></td></tr></tbody></table>
18
+
19
+ <table class="button foo expand bar"><tbody><tr><td><table><tbody><tr><td><center><a href="http://example.com" align="center" class="float-center">
20
+ A label
21
+ </a></center></td></tr></tbody></table></td>
22
+ <td class="expander"></td></tr></tbody></table>
@@ -0,0 +1 @@
1
+ <table class="callout"><tbody><tr><th class="callout-inner">Simple callout</th><th class="expander"></th></tr></tbody></table>
@@ -0,0 +1,3 @@
1
+ <table foo="bar" class="callout"><tbody><tr><th class="callout-inner some klasses">
2
+ <p>I'm in a callout!</p>
3
+ </th><th class="expander"></th></tr></tbody></table>
@@ -0,0 +1,6 @@
1
+ <!-- pending -->
2
+
3
+ <table class="button"><tr><td><table><tr><td>
4
+ <span data-foo="" data-bar="">
5
+ </span></td></tr></table></td></tr></table>
6
+
@@ -0,0 +1,2 @@
1
+ <table class="callout"><tbody><tr><th class="callout-inner">Hey</th><th class="expander"></th></tr></tbody></table>
2
+ <table class="callout"><tbody><tr><th class="callout-inner">You</th><th class="expander"></th></tr></tbody></table>
@@ -0,0 +1 @@
1
+ Very simple test...
@@ -0,0 +1,7 @@
1
+ Text before
2
+ <table class="callout"><tbody><tr><th class="callout-inner">Ho</th><th class="expander"></th></tr></tbody></table>
3
+ Text after
4
+ <table class="callout"><tbody><tr><th class="callout-inner">Ho</th><th class="expander"></th></tr></tbody></table>
5
+ Text after
6
+ <table class="callout"><tbody><tr><th class="callout-inner">Ho</th><th class="expander"></th></tr></tbody></table>
7
+ Text after
@@ -0,0 +1,6 @@
1
+ <table class="callout"><tbody><tr><th class="callout-inner">
2
+ Hello
3
+ <br>
4
+ Here's an image:
5
+ <img src="http://www.example.com" width="400" height="200">
6
+ </th><th class="expander"></th></tr></tbody></table>
@@ -0,0 +1,2 @@
1
+ <th class="some classes small-12 large-12 columns first last" foo="bar"><table><tbody><tr><th>First column</th>
2
+ <th class="expander"></th></tr></tbody></table></th>
@@ -0,0 +1 @@
1
+ <table foo="bar" align="center" class="container klass"><tbody><tr><td>some content</td></tr></tbody></table>
@@ -0,0 +1 @@
1
+ <table align="left" class="container"><tbody><tr><td>some content</td></tr></tbody></table>
@@ -0,0 +1 @@
1
+ <table foo="bar" class="row some klasses"><tbody><tr>columns here</tr></tbody></table>
@@ -0,0 +1,5 @@
1
+ <table class="row collapse"><tbody><tr>
2
+ <th class="small-12 large-4 columns first"><table><tbody><tr><th>First column</th></tr></tbody></table></th>
3
+ <th class="small-12 large-4 columns"><table><tbody><tr><th>Second column</th></tr></tbody></table></th>
4
+ <th class="small-12 large-4 columns last"><table><tbody><tr><th>Last column</th></tr></tbody></table></th>
5
+ </tr></tbody></table>
@@ -0,0 +1 @@
1
+ <table class="h-line"><tr><th>&nbsp;</th></tr></table>
@@ -0,0 +1,2 @@
1
+ Hello
2
+ <table class="h-line"><tr><th>&nbsp;</th></tr></table>
@@ -0,0 +1,3 @@
1
+ <!-- pending https://github.com/foundation/inky/issues/137 --->
2
+ Hello
3
+ <table class="h-line"><tr><th>&nbsp;</th></tr></table>
@@ -0,0 +1 @@
1
+ <table class="h-line"><tr><th>&nbsp;</th></tr></table>
@@ -0,0 +1 @@
1
+ <th foo="bar" class="menu-item some classes"><a href="http://example.com">An item</a></th>
@@ -0,0 +1,2 @@
1
+ <table foo="bar" class="menu some classes"><tbody><tr><td><table><tbody><tr>
2
+ </tr></tbody></table></td></tr></tbody></table>
@@ -0,0 +1,2 @@
1
+ <table align="left" class="menu"><tbody><tr><td><table><tbody><tr>
2
+ </tr></tbody></table></td></tr></tbody></table>
@@ -0,0 +1,5 @@
1
+ <table class="menu small-vertical"><tbody><tr><td><table><tbody><tr>
2
+ <th class="menu-item"><a href="http://example.com/1">An item</a></th>
3
+ <th class="menu-item"><a href="http://example.com/2">Another Item</a></th>
4
+ <th class="menu-item"><a href="http://example.com/3">Last Item</a></th>
5
+ </tr></tbody></table></td></tr></tbody></table>
@@ -0,0 +1,5 @@
1
+ <div>
2
+ Stuff on top
3
+ <table class="spacer"><tbody><tr><td height="16" style="font-size:16px;line-height:16px;">&nbsp;</td></tr></tbody></table>
4
+ Stuff on bottom
5
+ </div>
@@ -0,0 +1,6 @@
1
+ <!-- pending https://github.com/foundation/inky/issues/135 --->
2
+ <div>
3
+ Stuff on top
4
+ <table foo="bar" class="spacer"><tbody><tr><td height="16" style="font-size:16px;line-height:16px;">&nbsp;</td></tr></tbody></table>
5
+ Stuff on bottom
6
+ </div>
@@ -0,0 +1,5 @@
1
+ <div>
2
+ Stuff on top
3
+ <table class="spacer some classes"><tbody><tr><td height="42" style="font-size:42px;line-height:42px;">&nbsp;</td></tr></tbody></table>
4
+ Stuff on bottom
5
+ </div>
@@ -0,0 +1,5 @@
1
+ <div>
2
+ Stuff on top
3
+ <table class="spacer some classes show-for-large"><tbody><tr><td height="666" style="font-size:666px;line-height:666px;">&nbsp;</td></tr></tbody></table>
4
+ <p>Stuff on bottom</p>
5
+ </div>
@@ -0,0 +1,5 @@
1
+ <div>
2
+ Stuff on top
3
+ <table class="spacer some classes hide-for-large"><tbody><tr><td height="42" style="font-size:42px;line-height:42px;">&nbsp;</td></tr></tbody></table>
4
+ Stuff on bottom
5
+ </div>
@@ -0,0 +1,5 @@
1
+ <div>
2
+ Stuff on top
3
+ <table class="spacer some classes hide-for-large"><tbody><tr><td height="42" style="font-size:42px;line-height:42px;">&nbsp;</td></tr></tbody></table><table class="spacer some classes show-for-large"><tbody><tr><td height="666" style="font-size:666px;line-height:666px;">&nbsp;</td></tr></tbody></table>
4
+ Stuff on bottom
5
+ </div>
@@ -0,0 +1,6 @@
1
+ <!-- pending https://github.com/foundation/inky/issues/135 --->
2
+ <div>
3
+ Stuff on top
4
+ <table foo="bar" class="spacer some classes hide-for-large"><tbody><tr><td height="42" style="font-size:42px;line-height:42px;">&nbsp;</td></tr></tbody></table><table foo="bar" class="spacer some classes show-for-large"><tbody><tr><td height="666" style="font-size:666px;line-height:666px;">&nbsp;</td></tr></tbody></table>
5
+ Stuff on bottom
6
+ </div>
@@ -0,0 +1 @@
1
+ <table class="wrapper" align="center"><tbody><tr><td class="wrapper-inner">In the wrap</td></tr></tbody></table>
@@ -0,0 +1 @@
1
+ <table align="left" class="wrapper"><tbody><tr><td class="wrapper-inner">In the wrap</td></tr></tbody></table>
@@ -0,0 +1 @@
1
+ <table foo="bar" class="wrapper some classes" align="center"><tbody><tr><td class="wrapper-inner">In the wrap</td></tr></tbody></table>
@@ -0,0 +1,3 @@
1
+ <button foo="bar">
2
+ A label
3
+ </button>
@@ -1,3 +1,3 @@
1
- <button href="http://example.com" class="some classes" foo="bar">
1
+ <button href="http://example.com" class="some classes">
2
2
  A label
3
3
  </button>
@@ -0,0 +1,3 @@
1
+ <button href="http://example.com" foo="bar">
2
+ A label
3
+ </button>
@@ -0,0 +1 @@
1
+ <h-line/>
@@ -0,0 +1,8 @@
1
+ <!-- pending https://github.com/foundation/inky/issues/137 --->
2
+ Hello
3
+ <h-line/>
4
+ World
5
+ <h-line foo="bar"/>
6
+ Bye
7
+ <h-line class="x" foo="bar"/>
8
+ Zzz
@@ -0,0 +1,2 @@
1
+ <!-- pending https://github.com/foundation/inky/issues/137 --->
2
+ <h-line foo="bar"/>
@@ -0,0 +1,6 @@
1
+ <!-- pending https://github.com/foundation/inky/issues/135 --->
2
+ <div>
3
+ Stuff on top
4
+ <spacer foo="bar"/>
5
+ Stuff on bottom
6
+ </div>
@@ -1,5 +1,5 @@
1
1
  <div>
2
2
  Stuff on top
3
- <spacer class="some classes" foo="bar" size="42"/>
3
+ <spacer class="some classes" size="42"/>
4
4
  Stuff on bottom
5
5
  </div>
@@ -1,4 +1,4 @@
1
1
  <div>
2
2
  Stuff on top
3
- <spacer class="some classes" foo="bar" size-lg="666"/>
3
+ <spacer class="some classes" size-lg="666"/>
4
4
  <p>Stuff on bottom</p>
@@ -1,5 +1,5 @@
1
1
  <div>
2
2
  Stuff on top
3
- <spacer class="some classes" foo="bar" size-sm="42"></spacer>
3
+ <spacer class="some classes" size-sm="42"></spacer>
4
4
  Stuff on bottom
5
5
  </div>
@@ -1,5 +1,5 @@
1
1
  <div>
2
2
  Stuff on top
3
- <spacer class="some classes" foo="bar" size-sm="42" size-lg="666"/>
3
+ <spacer class="some classes" size-sm="42" size-lg="666"/>
4
4
  Stuff on bottom
5
5
  </div>
@@ -0,0 +1,6 @@
1
+ <!-- pending https://github.com/foundation/inky/issues/135 --->
2
+ <div>
3
+ Stuff on top
4
+ <spacer class="some classes" foo="bar" size-sm="42" size-lg="666"/>
5
+ Stuff on bottom
6
+ </div>