tiptap-ruby 0.8.0 → 0.8.1

Sign up to get free protection for your applications and to get access to all the features.
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