html2slim2 0.3.0 → 0.3.1
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.
- checksums.yaml +4 -4
- data/bin/erb2slim +2 -2
- data/bin/html2slim +2 -2
- data/lib/{html2slim → html2slim2}/command.rb +4 -5
- data/lib/{html2slim → html2slim2}/converter.rb +2 -2
- data/lib/{html2slim/nokogiri_monkeypatches.rb → html2slim2/nokogiri_monkey_patches.rb} +26 -10
- data/lib/html2slim2/version.rb +3 -0
- data/lib/html2slim2.rb +12 -0
- metadata +15 -68
- data/lib/html2slim/version.rb +0 -3
- data/lib/html2slim.rb +0 -12
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: a545d55f7ec6dd7f97e609446fa01d6da140a689d51b6be921b4c15c8b6667f4
|
|
4
|
+
data.tar.gz: 6e5e6b61b863f62c1a88f97e9ae588f8bc766159fcff347eae98a44157a9892b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 196406fc4f69748e6bea1e0743b3a5171dd90e015d7d13026b8466999d55f0ad37d3d2279801d49df7a4a30f81be7107118b3c76d3f4a2c3690066bc4c2327f3
|
|
7
|
+
data.tar.gz: d1344a4283b17bfdd8b1dd5a6844e4769b731a63aa5ed3faed6e8c587fb89a92748b5e65a51ba9368f784846f2e7ab2aa52f64cddb6d2f4fa200d24d0e27e526
|
data/bin/erb2slim
CHANGED
data/bin/html2slim
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
require 'optparse'
|
|
2
|
-
require '
|
|
2
|
+
require 'html2slim2'
|
|
3
3
|
|
|
4
|
-
module
|
|
4
|
+
module HTML2Slim2
|
|
5
5
|
class Command
|
|
6
|
-
|
|
7
6
|
def initialize(args)
|
|
8
7
|
@args = args
|
|
9
8
|
@options = {}
|
|
@@ -85,7 +84,7 @@ module HTML2Slim
|
|
|
85
84
|
else
|
|
86
85
|
slim_file = destination || slim_file
|
|
87
86
|
end
|
|
88
|
-
|
|
87
|
+
|
|
89
88
|
fail(ArgumentError, "Source and destination files can't be the same.") if @options[:input] != '-' && file == slim_file
|
|
90
89
|
|
|
91
90
|
in_file = if @options[:input] == "-"
|
|
@@ -95,7 +94,7 @@ module HTML2Slim
|
|
|
95
94
|
end
|
|
96
95
|
|
|
97
96
|
@options[:output] = slim_file && slim_file != '-' ? File.open(slim_file, 'w') : $stdout
|
|
98
|
-
@options[:output].puts
|
|
97
|
+
@options[:output].puts HTML2Slim2.convert!(in_file, format)
|
|
99
98
|
@options[:output].close
|
|
100
99
|
|
|
101
100
|
File.delete(file) if @options[:delete]
|
|
@@ -51,7 +51,7 @@ class Nokogiri::XML::Element
|
|
|
51
51
|
end
|
|
52
52
|
|
|
53
53
|
def to_slim(lvl = 0)
|
|
54
|
-
if children.
|
|
54
|
+
if children.any?
|
|
55
55
|
%(#{slim(lvl)}\n#{children.filter_map { |c| c.to_slim(lvl + 1) }.join("\n")})
|
|
56
56
|
else
|
|
57
57
|
slim(lvl)
|
|
@@ -60,8 +60,8 @@ class Nokogiri::XML::Element
|
|
|
60
60
|
|
|
61
61
|
private
|
|
62
62
|
|
|
63
|
-
def slim_ruby_code(
|
|
64
|
-
(code.strip[0] == '=' ? '' : '- ') + code.strip.gsub('\\n', "\n#{
|
|
63
|
+
def slim_ruby_code(indent)
|
|
64
|
+
(code.strip[0] == '=' ? '' : '- ') + code.strip.gsub('\\n', "\n#{indent}- ")
|
|
65
65
|
end
|
|
66
66
|
|
|
67
67
|
def code
|
|
@@ -86,15 +86,15 @@ class Nokogiri::XML::Element
|
|
|
86
86
|
has_attributes? ? "[#{attributes_as_html.to_s.strip}]" : ''
|
|
87
87
|
end
|
|
88
88
|
|
|
89
|
-
def has_attributes? # rubocop:disable Naming/
|
|
89
|
+
def has_attributes? # rubocop:disable Naming/PredicatePrefix
|
|
90
90
|
attributes.to_hash.any?
|
|
91
91
|
end
|
|
92
92
|
|
|
93
|
-
def has_id? # rubocop:disable Naming/
|
|
93
|
+
def has_id? # rubocop:disable Naming/PredicatePrefix
|
|
94
94
|
has_attribute?('id') && !(BLANK_RE === self['id'])
|
|
95
95
|
end
|
|
96
96
|
|
|
97
|
-
def has_class? # rubocop:disable Naming/
|
|
97
|
+
def has_class? # rubocop:disable Naming/PredicatePrefix
|
|
98
98
|
has_attribute?('class') && !(BLANK_RE === self['class'])
|
|
99
99
|
end
|
|
100
100
|
|
|
@@ -111,15 +111,15 @@ class Nokogiri::XML::Element
|
|
|
111
111
|
end
|
|
112
112
|
|
|
113
113
|
def attributes_as_html
|
|
114
|
-
attributes.map do |
|
|
115
|
-
" #{
|
|
114
|
+
attributes.map do |attr_name, attr_val|
|
|
115
|
+
" #{attr_name}" + (attr_val ? "=#{html_quote attr_val.to_s}" : '')
|
|
116
116
|
end.join
|
|
117
117
|
end
|
|
118
118
|
end
|
|
119
119
|
|
|
120
120
|
class Nokogiri::XML::DocumentFragment
|
|
121
121
|
def to_slim
|
|
122
|
-
if children.
|
|
122
|
+
if children.any?
|
|
123
123
|
children.filter_map(&:to_slim).join("\n")
|
|
124
124
|
else
|
|
125
125
|
''
|
|
@@ -129,10 +129,26 @@ end
|
|
|
129
129
|
|
|
130
130
|
class Nokogiri::XML::Document
|
|
131
131
|
def to_slim
|
|
132
|
-
if children.
|
|
132
|
+
if children.any?
|
|
133
133
|
children.filter_map(&:to_slim).join("\n")
|
|
134
134
|
else
|
|
135
135
|
''
|
|
136
136
|
end
|
|
137
137
|
end
|
|
138
138
|
end
|
|
139
|
+
|
|
140
|
+
class Nokogiri::XML::Comment
|
|
141
|
+
def to_slim(lvl = 0)
|
|
142
|
+
r = ' ' * lvl
|
|
143
|
+
|
|
144
|
+
# Render as a Slim comment, multiline if necessary
|
|
145
|
+
str = content.strip
|
|
146
|
+
return nil if str.empty?
|
|
147
|
+
|
|
148
|
+
if str.include?("\n")
|
|
149
|
+
"#{r}/\n#{r} " + str.gsub("\n", "\n#{r} ")
|
|
150
|
+
else
|
|
151
|
+
"#{r}/ #{str}"
|
|
152
|
+
end
|
|
153
|
+
end
|
|
154
|
+
end
|
data/lib/html2slim2.rb
ADDED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: html2slim2
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.3.
|
|
4
|
+
version: 0.3.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- sanadan
|
|
8
8
|
- Maiz Lulkin
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2026-02-09 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: nokogiri
|
|
@@ -24,62 +24,6 @@ dependencies:
|
|
|
24
24
|
- - ">="
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
26
|
version: '0'
|
|
27
|
-
- !ruby/object:Gem::Dependency
|
|
28
|
-
name: minitest
|
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
|
30
|
-
requirements:
|
|
31
|
-
- - ">="
|
|
32
|
-
- !ruby/object:Gem::Version
|
|
33
|
-
version: '0'
|
|
34
|
-
type: :development
|
|
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: rake
|
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
|
44
|
-
requirements:
|
|
45
|
-
- - ">="
|
|
46
|
-
- !ruby/object:Gem::Version
|
|
47
|
-
version: '0'
|
|
48
|
-
type: :development
|
|
49
|
-
prerelease: false
|
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
51
|
-
requirements:
|
|
52
|
-
- - ">="
|
|
53
|
-
- !ruby/object:Gem::Version
|
|
54
|
-
version: '0'
|
|
55
|
-
- !ruby/object:Gem::Dependency
|
|
56
|
-
name: rubocop-rails-omakase
|
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
|
58
|
-
requirements:
|
|
59
|
-
- - ">="
|
|
60
|
-
- !ruby/object:Gem::Version
|
|
61
|
-
version: '0'
|
|
62
|
-
type: :development
|
|
63
|
-
prerelease: false
|
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
65
|
-
requirements:
|
|
66
|
-
- - ">="
|
|
67
|
-
- !ruby/object:Gem::Version
|
|
68
|
-
version: '0'
|
|
69
|
-
- !ruby/object:Gem::Dependency
|
|
70
|
-
name: slim
|
|
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
27
|
description: Convert HTML to Slim templates. Because HTML sux and Slim rules. That's
|
|
84
28
|
why.
|
|
85
29
|
email:
|
|
@@ -95,14 +39,17 @@ files:
|
|
|
95
39
|
- README.md
|
|
96
40
|
- bin/erb2slim
|
|
97
41
|
- bin/html2slim
|
|
98
|
-
- lib/
|
|
99
|
-
- lib/
|
|
100
|
-
- lib/
|
|
101
|
-
- lib/
|
|
102
|
-
- lib/
|
|
103
|
-
homepage: https://github.com/sanadan/
|
|
104
|
-
licenses:
|
|
105
|
-
|
|
42
|
+
- lib/html2slim2.rb
|
|
43
|
+
- lib/html2slim2/command.rb
|
|
44
|
+
- lib/html2slim2/converter.rb
|
|
45
|
+
- lib/html2slim2/nokogiri_monkey_patches.rb
|
|
46
|
+
- lib/html2slim2/version.rb
|
|
47
|
+
homepage: https://github.com/sanadan/html2slim2
|
|
48
|
+
licenses:
|
|
49
|
+
- MIT
|
|
50
|
+
metadata:
|
|
51
|
+
homepage_uri: https://github.com/sanadan/html2slim2
|
|
52
|
+
rubygems_mfa_required: 'true'
|
|
106
53
|
rdoc_options:
|
|
107
54
|
- "--charset=UTF-8"
|
|
108
55
|
require_paths:
|
|
@@ -111,14 +58,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
111
58
|
requirements:
|
|
112
59
|
- - ">="
|
|
113
60
|
- !ruby/object:Gem::Version
|
|
114
|
-
version: '
|
|
61
|
+
version: '3.2'
|
|
115
62
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
116
63
|
requirements:
|
|
117
64
|
- - ">="
|
|
118
65
|
- !ruby/object:Gem::Version
|
|
119
66
|
version: '0'
|
|
120
67
|
requirements: []
|
|
121
|
-
rubygems_version:
|
|
68
|
+
rubygems_version: 4.0.3
|
|
122
69
|
specification_version: 4
|
|
123
70
|
summary: HTML to Slim converter.
|
|
124
71
|
test_files: []
|
data/lib/html2slim/version.rb
DELETED
data/lib/html2slim.rb
DELETED