contentful_converter 0.0.1.22 → 0.0.1.23
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/README.md +10 -0
- data/lib/contentful_converter/configuration.rb +25 -0
- data/lib/contentful_converter/nokogiri_builder.rb +9 -0
- data/lib/contentful_converter/version.rb +1 -1
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 85c33ddb801f9755c49bfb41f96ec9e8ae51ec8d4ec69d5ff2bf7a7ac9af1476
|
4
|
+
data.tar.gz: 1fe744e0153d34094992cb71eb8cd8500415e951ac49839d9804e3d6288fee39
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6964e495b8f4ace1179a0de5e0048dafa93c1fed93c66e803a5ee73f5285942e7a9418cc3fc96d8e89dbd289a785a6c3301d5c9d9b5c459272a622f3fb47938f
|
7
|
+
data.tar.gz: 2a5e04b05af9082d6c11ec6d5d53588662fbfff6d681825059499170f764061416f06203dfbc94ee97098169bc36c6833c648a09bf2ad9e9dca4098a0a7e459d
|
data/README.md
CHANGED
@@ -44,6 +44,16 @@ ContentfulConverter.convert('<h3>hello world</h3>')
|
|
44
44
|
|
45
45
|
### Additional info
|
46
46
|
|
47
|
+
**Exclude Nodes**
|
48
|
+
|
49
|
+
Add nodes to be removed from the conversion
|
50
|
+
|
51
|
+
```ruby
|
52
|
+
ContentfulConverter.configure do |config|
|
53
|
+
config.forbidden_nodes = 'table', 'script'
|
54
|
+
end
|
55
|
+
```
|
56
|
+
|
47
57
|
**`<a>`**
|
48
58
|
|
49
59
|
* HTML hyperlinks with full URL e.g: (`<a href="https://google.com"></a>`), will be converted into URL hyperlinks
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module ContentfulConverter
|
4
|
+
class << self
|
5
|
+
attr_accessor :configuration
|
6
|
+
end
|
7
|
+
|
8
|
+
def self.configure
|
9
|
+
self.configuration ||= Configuration.new
|
10
|
+
yield(configuration) if block_given?
|
11
|
+
self
|
12
|
+
end
|
13
|
+
|
14
|
+
class Configuration
|
15
|
+
attr_reader :forbidden_nodes
|
16
|
+
|
17
|
+
def initialize
|
18
|
+
@forbidden_nodes = []
|
19
|
+
end
|
20
|
+
|
21
|
+
def forbidden_nodes=(*nodes)
|
22
|
+
@forbidden_nodes = nodes.flatten.uniq
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -1,6 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'nokogiri'
|
4
|
+
require 'contentful_converter/configuration'
|
4
5
|
|
5
6
|
module ContentfulConverter
|
6
7
|
class NokogiriBuilder
|
@@ -18,6 +19,7 @@ module ContentfulConverter
|
|
18
19
|
# nokogiri creates a tree that is accepted by contentful.
|
19
20
|
def transform(html)
|
20
21
|
doc = create_nokogiri_fragment(html)
|
22
|
+
remove_forbidden_elements(doc)
|
21
23
|
find_nodes(doc, %w[section div]).each { |elem| elem.name = 'p' }
|
22
24
|
find_nodes(doc, 'img').each { |elem| elem.name = 'embed' }
|
23
25
|
doc.to_html
|
@@ -27,6 +29,13 @@ module ContentfulConverter
|
|
27
29
|
Nokogiri::HTML.fragment(html)
|
28
30
|
end
|
29
31
|
|
32
|
+
def remove_forbidden_elements(doc)
|
33
|
+
forbidden_nodes = ContentfulConverter.configure.configuration.forbidden_nodes
|
34
|
+
return if forbidden_nodes.empty?
|
35
|
+
|
36
|
+
find_nodes(doc, forbidden_nodes).each(&:remove)
|
37
|
+
end
|
38
|
+
|
30
39
|
def normalize_lists(nokogiri_fragment)
|
31
40
|
find_nodes(nokogiri_fragment, 'li').each { |li| wrap_parents_in_ul(li) }
|
32
41
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: contentful_converter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.1.
|
4
|
+
version: 0.0.1.23
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alex Avlonitis
|
@@ -46,6 +46,7 @@ extra_rdoc_files: []
|
|
46
46
|
files:
|
47
47
|
- README.md
|
48
48
|
- lib/contentful_converter.rb
|
49
|
+
- lib/contentful_converter/configuration.rb
|
49
50
|
- lib/contentful_converter/converter.rb
|
50
51
|
- lib/contentful_converter/node_builder.rb
|
51
52
|
- lib/contentful_converter/nodes/base.rb
|