tiptap-ruby 0.8.0 → 0.8.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 72933879434ba89c5d8e4098c88742ca7c0cba2695440de87a549583df48241d
4
- data.tar.gz: f54733e71099b36b8cf59b3beb83a36f330930cc687c768ff9fad5256175ef74
3
+ metadata.gz: 6d5aa320891bbc36f97d9a0bcbaf59269285566e8820fcf8078a522c0b2a6d78
4
+ data.tar.gz: 410768b9c65ccd48712d53ca3cad4076897387c9f4f32c5a003e09a7cd32ab2c
5
5
  SHA512:
6
- metadata.gz: ec61a23fa173bf933d2296f7eab32d30192f2d2636004012e22bdf80df985c35dcf8438ef714c119a52e683db22493af03750c961fc2293dfe4486de884f07d4
7
- data.tar.gz: e370161edd3717f8a22641e00a468254962c1cd3e4d3e1c89ff64c90d5d85a90e5872c245dfdd1351acf3f0ad076e0ff55eb8f7a024da21793e92a41868b133e
6
+ metadata.gz: dd2d14f97e03dbede36823313a78b16d2f6824abf7da54327410e9ed2995ffdae607eaa35152242278354325d7b217cbf2d2c4299379f63bbebd5ee2c4b5693f
7
+ data.tar.gz: e8ece329004dc1c77aecaf8a57e325efc849e30f47fd75e63a284c5002bcddc5c7036db785f96f49571ccb460054c8a3d500502c5d768f675c2748fc45c2d75a
@@ -27,6 +27,9 @@ module TipTap
27
27
 
28
28
  def to_html
29
29
  value = text
30
+ value = content_tag(:sup, value) if superscript?
31
+ value = content_tag(:sub, value) if subscript?
32
+ value = highlight_tag(value) if highlight?
30
33
  value = content_tag(:code, value) if code?
31
34
  value = content_tag(:u, value) if underline?
32
35
  value = content_tag(:em, value) if italic?
@@ -65,10 +68,28 @@ module TipTap
65
68
  has_mark_with_type?("code")
66
69
  end
67
70
 
71
+ def superscript?
72
+ has_mark_with_type?("superscript")
73
+ end
74
+
75
+ def subscript?
76
+ has_mark_with_type?("subscript")
77
+ end
78
+
79
+ def highlight?
80
+ has_mark_with_type?("highlight")
81
+ end
82
+
68
83
  def text_style?
69
84
  has_mark_with_type?("textStyle")
70
85
  end
71
86
 
87
+ private
88
+
89
+ def has_mark_with_type?(type)
90
+ marks.any? { |mark| mark["type"] == type }
91
+ end
92
+
72
93
  def link_href
73
94
  marks.find { |mark| mark["type"] == "link" }&.dig("attrs", "href")
74
95
  end
@@ -81,15 +102,25 @@ module TipTap
81
102
  marks.find { |mark| mark["type"] == "textStyle" }&.dig("attrs")
82
103
  end
83
104
 
84
- private
85
-
86
- def has_mark_with_type?(type)
87
- marks.any? { |mark| mark["type"] == type }
105
+ def highlight_color
106
+ marks.find { |mark| mark["type"] == "highlight" }&.dig("attrs", "color")
88
107
  end
89
108
 
90
109
  def inline_style_content(styles)
110
+ return nil if styles.empty?
91
111
  styles.reduce("") { |acc, val| acc + "#{val[0]}:#{val[1]};" }
92
112
  end
113
+
114
+ def highlight_tag(value)
115
+ data = {}
116
+ styles = {}
117
+ if highlight_color
118
+ data[:color] = highlight_color
119
+ styles["background-color"] = highlight_color
120
+ styles[:color] = "inherit"
121
+ end
122
+ content_tag(:mark, text, data: data, style: inline_style_content(styles))
123
+ end
93
124
  end
94
125
  end
95
126
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module TipTap
4
- VERSION = "0.8.0"
4
+ VERSION = "0.8.1"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tiptap-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0
4
+ version: 0.8.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chad Wilken
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-11-02 00:00:00.000000000 Z
11
+ date: 2023-11-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: actionview