hitomalu_formatter 0.1.0 → 0.1.3

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: f3e95abbecfbc81d825e27b8e524fa921c3a12a436b0eac095585eaf0dd97d6c
4
- data.tar.gz: c95385f93c2cf3e45d57d6c0cd568d1702a1f3092507245817b39894bbe1e39e
3
+ metadata.gz: '04239c9c7d366f97db31ee7a67a15936ad16fe3900d0816b32409b9b6d944dec'
4
+ data.tar.gz: 6a26df5123e66d197952a98c30e1179a2d2c9c5620d07d1c5916aaddda9afd50
5
5
  SHA512:
6
- metadata.gz: a0251928b56f472a33b1811e5311d1a322710ccdceb243aec84f1169887082290340b6b7be6f16701ae0395a49cebd42f976ae8211b46825a6acb8209a4d7baa
7
- data.tar.gz: 1c264419e16ac70dba68deca621008363503dc23a2db64fef9d6d84ad3f2cec9508eb6c3e8268b5cabcd1ae9a466da8fb9fb8267bb25bfaf303f82ec4a71cf53
6
+ metadata.gz: b2999cc3946c94771090f582c649359fac349209fe5aa953173767f9ab1235ec366c4b5dcb6c8d6432411527694970aae15663a749a8358c5f8e90d4a9a57e2b
7
+ data.tar.gz: bc946c6f1cea4481ca105cd42dc6cef6993baaa64d76e1b58e9a9644fb5f1a9effb1dbf40a527a11f5c9f386f427e5bde117523b57ce2006ec96dcd30be531d7
data/CHANGELOG.md CHANGED
@@ -1,5 +1,10 @@
1
1
  ## [Unreleased]
2
2
 
3
- ## [0.1.0] - 2022-07-21
3
+ ## [0.1.3] - 2022-08-04
4
+ ## [0.1.2] - 2022-08-03
5
+
6
+ - a little fix
7
+
8
+ ## [0.1.1] - 2022-07-30
4
9
 
5
10
  - Initial release
data/Gemfile.lock CHANGED
@@ -1,13 +1,13 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- hitomalu_formatter (0.1.0)
4
+ hitomalu_formatter (0.1.3)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
8
8
  specs:
9
9
  diff-lcs (1.5.0)
10
- nokogiri (1.13.7-x86_64-linux)
10
+ nokogiri (1.13.8-x86_64-linux)
11
11
  racc (~> 1.4)
12
12
  racc (1.6.0)
13
13
  rake (13.0.6)
@@ -6,7 +6,9 @@ module Hitomalu
6
6
 
7
7
  # cf. https://developer.mozilla.org/ja/docs/Web/HTML/Inline_elements
8
8
  # rp と rt は上に記載がないが、改行させたくないので追加
9
- INLINE_TAGS = [ 'a', 'abbr', 'acronym', 'audio', 'b', 'bdi', 'bdo', 'big', 'br', 'button', 'canvas', 'cite', 'code', 'data', 'datalist', 'del', 'dfn', 'em', 'embed', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'label', 'map', 'mark', 'meter', 'noscript', 'object', 'output', 'picture', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'script', 'select', 'slot', 'small', 'span', 'strong', 'sub', 'sup', 'svg', 'template', 'textarea', 'time', 'u', 'tt', 'var', 'video', 'wbr' ]
9
+ # node.name 'comment' であるコメントノードもインライン扱い
10
+ INLINE_TAGS = [ 'a', 'abbr', 'acronym', 'audio', 'b', 'bdi', 'bdo', 'big', 'br', 'button', 'canvas', 'cite', 'code', 'comment', 'data', 'datalist', 'del', 'dfn', 'em', 'embed', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'label', 'map', 'mark', 'meter', 'noscript', 'object', 'output', 'picture', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'script', 'select', 'slot', 'small', 'span', 'strong', 'sub', 'sup', 'svg', 'template', 'textarea', 'time', 'u', 'tt', 'var', 'video', 'wbr' ]
11
+ INLINE_TAGS_REGEXP = INLINE_TAGS.join('|')
10
12
 
11
13
  def self.format(html)
12
14
  # 改行コード \n を \r\n に統一しておく
@@ -72,11 +74,11 @@ module Hitomalu
72
74
  body_str = body.to_s.gsub(/(\|mykaigyo\|)+/, "\r\n").gsub('|myspace|', ' ').gsub(/(<\/wbr>|\|mykaramojiretsu\||\A<body>(\n|\r\n)*|(\n|\r\n)*<\/body>\Z)/, "").gsub(/(?<!\r)\n/, "\r\n")
73
75
 
74
76
  # </span></div> のような閉じタグの間に改行が無かったら改行を入れる (Nokogiri の add_next_sibling は 20000回するとメモリを6GB以上使うので文字列処理でやる)
75
- # ただし、</ruby>の前には入れない(</rp>などの短いインライン要素が来るため)
77
+ # ただし、片方または両方がインライン要素の閉じタグだったら入れない
76
78
  prev_str = ""
77
79
  while body_str != prev_str do
78
80
  prev_str = body_str
79
- body_str = body_str.gsub(/(<\/[a-z]+>)(<\/(?!ruby))/, "\\1\r\n\\2")
81
+ body_str = body_str.gsub(/(<\/(?!(#{INLINE_TAGS_REGEXP}))[a-z]+>)(<\/(?!(#{INLINE_TAGS_REGEXP}))[a-z]+>)/, "\\1\r\n\\3")
80
82
  end
81
83
 
82
84
  # 開始タグの前に改行がなければ改行を入れる (add_prev_sibling は重いので文字列処理でやる) (文章の先頭からは消す)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module HitomaluFormatter
4
- VERSION = "0.1.0"
4
+ VERSION = "0.1.3"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hitomalu_formatter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - t-hazawa
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-07-30 00:00:00.000000000 Z
11
+ date: 2022-08-04 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description:
14
14
  email: []