fuji_markdown 0.3.1 → 0.4.0

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: ad62ed44244c8054d2755a8b51709a6955f9a3f8d4934a32aae561c7c1fa22c7
4
- data.tar.gz: 67b6b4b9d760c29027c9c8f0410a94965586b9b1836a35450ccee4257506be62
3
+ metadata.gz: 0e641373ec793135f6072dc2525b081db86b590618260ced757ba79a9e92604c
4
+ data.tar.gz: 52ea47ffb8b02107bc7071c9895ec111d1763d38c46bbde0f1d37e99509f3aab
5
5
  SHA512:
6
- metadata.gz: 134866d32bce81be64a6a43f5ba84488f5961c05c49fa46c6d3523987517ef8a2fdb51db932ec3b99243a60c057fde72caa5fb6b0d4c95c5a226aa7b247c6974
7
- data.tar.gz: 2d5970164fd3d4bfcde695792faae8d359abc34888cb649bcdf90e2a029f81842827b8397b22c0f7260869aab379793efbfb99ef7a8d961a03b9b3666ebf8c4f
6
+ metadata.gz: 10eb84854b743bdf5d17af4b386a974b9523f106c2d8d905a14df9dbef7bc3571fcad4823f3fc473dd12529a9223deb3b8f461eb97f4c6e594bbb828ea42ec92
7
+ data.tar.gz: 9d6a3ddc3b9518b967f7ce4afa02a6de998d323c779dcdbba24d2ff41f43997b2dd5b492dcc01fe8adbe7450ab4ee78a40bf40b026dae7dd565c38cc399f05cb
@@ -0,0 +1 @@
1
+ github: fuji-nakahara
@@ -0,0 +1,31 @@
1
+ name: Ruby Gem
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - v*
7
+
8
+ jobs:
9
+ build:
10
+ name: Build + Publish
11
+ runs-on: ubuntu-latest
12
+
13
+ steps:
14
+ - uses: actions/checkout@v2
15
+
16
+ - name: Set up Ruby
17
+ uses: ruby/setup-ruby@v1
18
+ with:
19
+ ruby-version: 2.7
20
+
21
+ - name: Publish to GPR
22
+ run: |
23
+ mkdir -p $HOME/.gem
24
+ touch $HOME/.gem/credentials
25
+ chmod 0600 $HOME/.gem/credentials
26
+ printf -- "---\n:github: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
27
+ gem build *.gemspec
28
+ gem push --key github --host https://rubygems.pkg.github.com/${OWNER} *.gem
29
+ env:
30
+ GEM_HOST_API_KEY: "Bearer ${{secrets.GITHUB_TOKEN}}"
31
+ OWNER: ${{ github.repository_owner }}
@@ -0,0 +1,33 @@
1
+ name: Ruby
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - master
7
+ pull_request:
8
+ branches:
9
+ - master
10
+
11
+ jobs:
12
+ test:
13
+ runs-on: ubuntu-latest
14
+
15
+ strategy:
16
+ matrix:
17
+ ruby:
18
+ - 2.6
19
+ - 2.7
20
+
21
+ steps:
22
+ - uses: actions/checkout@v2
23
+
24
+ - name: Set up Ruby
25
+ uses: ruby/setup-ruby@v1
26
+ with:
27
+ ruby-version: ${{ matrix.ruby }}
28
+
29
+ - name: Install dependencies
30
+ run: bundle install
31
+
32
+ - name: Run tests
33
+ run: bundle exec rake
@@ -1,6 +1,20 @@
1
- inherit_gem:
2
- meowcop:
3
- - config/rubocop.yml
1
+ require:
2
+ - rubocop-rspec
4
3
 
5
4
  AllCops:
6
- TargetRubyVersion: 2.5
5
+ TargetRubyVersion: 2.6
6
+ NewCops: enable
7
+
8
+ # rubocop
9
+
10
+ Metrics/BlockLength:
11
+ Exclude:
12
+ - spec/**/*
13
+
14
+ Style/Documentation:
15
+ Enabled: false
16
+
17
+ # rubocop-rspec
18
+
19
+ RSpec/ExampleLength:
20
+ Enabled: false
@@ -0,0 +1,22 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [Unreleased]
9
+
10
+ ## [0.4.0] - 2020-10-12
11
+
12
+ ### Added
13
+
14
+ - Add CHANGELOG.md.
15
+
16
+ ### Changed
17
+
18
+ - Specify required_ruby_version to '>= 2.6'.
19
+ - Make preprocessors not to change given text destructively.
20
+
21
+ [Unreleased]: https://github.com/olivierlacan/keep-a-changelog/compare/v0.4.0...HEAD
22
+ [0.4.0]: https://github.com/olivierlacan/keep-a-changelog/compare/v0.3.1...v0.4.0
data/Gemfile CHANGED
@@ -1,4 +1,11 @@
1
- source "https://rubygems.org"
1
+ # frozen_string_literal: true
2
+
3
+ source 'https://rubygems.org'
2
4
 
3
5
  # Specify your gem's dependencies in fuji_markdown.gemspec
4
6
  gemspec
7
+
8
+ gem 'rake'
9
+ gem 'rspec'
10
+ gem 'rubocop'
11
+ gem 'rubocop-rspec'
data/Rakefile CHANGED
@@ -1,6 +1,8 @@
1
- require "bundler/gem_tasks"
2
- require "rspec/core/rake_task"
1
+ # frozen_string_literal: true
2
+
3
+ require 'bundler/gem_tasks'
4
+ require 'rspec/core/rake_task'
3
5
 
4
6
  RSpec::Core::RakeTask.new(:spec)
5
7
 
6
- task :default => :spec
8
+ task default: :spec
@@ -1,7 +1,15 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
4
  require 'bundler/setup'
4
5
  require 'fuji_markdown'
5
6
 
6
- require 'pry'
7
- Pry.start
7
+ # You can add fixtures and/or initialization code here to make experimenting
8
+ # with your gem easier. You can also use a different console, if you like.
9
+
10
+ # (If you use this, don't forget to add pry to your Gemfile!)
11
+ # require "pry"
12
+ # Pry.start
13
+
14
+ require 'irb'
15
+ IRB.start(__FILE__)
data/exe/fujimd CHANGED
@@ -1,7 +1,9 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
4
  require 'optparse'
4
5
  require 'fuji_markdown'
6
+ require 'fuji_markdown/version'
5
7
 
6
8
  option = :HTML
7
9
 
@@ -1,7 +1,6 @@
1
+ # frozen_string_literal: true
1
2
 
2
- lib = File.expand_path('../lib', __FILE__)
3
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'fuji_markdown/version'
3
+ require_relative 'lib/fuji_markdown/version'
5
4
 
6
5
  Gem::Specification.new do |spec|
7
6
  spec.name = 'fuji_markdown'
@@ -13,19 +12,20 @@ Gem::Specification.new do |spec|
13
12
  spec.description = 'FujiMarkdown is the dialect of Markdown supporting extensions for Japanese novels.'
14
13
  spec.homepage = 'https://github.com/fuji-nakahara/fuji_markdown'
15
14
  spec.license = 'MIT'
15
+ spec.required_ruby_version = Gem::Requirement.new('>= 2.6')
16
16
 
17
- spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
17
+ spec.metadata['homepage_uri'] = spec.homepage
18
+ spec.metadata['source_code_uri'] = 'https://github.com/fuji-nakahara/fuji_markdown'
19
+ spec.metadata['changelog_uri'] = 'https://github.com/fuji-nakahara/fuji_markdown/blob/master/CHANGELOG.md'
20
+
21
+ # Specify which files should be added to the gem when it is released.
22
+ # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
23
+ spec.files = Dir.chdir(File.expand_path(__dir__)) do
18
24
  `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
19
25
  end
20
26
  spec.bindir = 'exe'
21
- spec.executables = ['fujimd']
27
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
22
28
  spec.require_paths = ['lib']
23
29
 
24
30
  spec.add_dependency 'commonmarker', '~> 0.17'
25
-
26
- spec.add_development_dependency 'bundler', '~> 2.0'
27
- spec.add_development_dependency 'meowcop'
28
- spec.add_development_dependency 'pry'
29
- spec.add_development_dependency 'rake', '~> 12.3'
30
- spec.add_development_dependency 'rspec', '~> 3.7'
31
31
  end
@@ -1,8 +1,7 @@
1
- require 'commonmarker'
1
+ # frozen_string_literal: true
2
2
 
3
+ require_relative 'fuji_markdown/error'
3
4
  require_relative 'fuji_markdown/processor'
4
- require_relative 'fuji_markdown/version'
5
-
6
5
  require_relative 'fuji_markdown/postprocessors/ruby'
7
6
  require_relative 'fuji_markdown/preprocessors/ruby'
8
7
  require_relative 'fuji_markdown/preprocessors/escape_narou'
@@ -11,44 +10,36 @@ require_relative 'fuji_markdown/renderers/kakuyomu_renderer'
11
10
  require_relative 'fuji_markdown/renderers/narou_renderer'
12
11
 
13
12
  module FujiMarkdown
14
- class << self
15
- def parse(text, option = :HTML)
16
- processor(option).parse(text)
17
- end
13
+ PRESETS = {
14
+ HTML: {
15
+ preprocessors: [Preprocessors::Ruby.new],
16
+ renderer: CommonMarker::HtmlRenderer.new(options: %i[HARDBREAKS UNSAFE])
17
+ },
18
+ KAKUYOMU: {
19
+ preprocessors: [Preprocessors::Ruby.new, proc { |text| text.gsub(/《/, '|《') }],
20
+ postprocessors: [Postprocessors::Ruby.new],
21
+ renderer: Renderers::KakuyomuRenderer.new
22
+ },
23
+ NAROU: {
24
+ preprocessors: [Preprocessors::Ruby.new, Preprocessors::EscapeNarou.new],
25
+ postprocessors: [Postprocessors::Ruby.new],
26
+ renderer: Renderers::NarouRenderer.new
27
+ }
28
+ }.freeze
18
29
 
19
- def render(text, option = :HTML)
20
- processor(option).render(text)
21
- end
22
-
23
- private
24
-
25
- def processor(option)
26
- args = processor_args(option)
27
- Processor.new(args)
30
+ class << self
31
+ def parse(text, preset = :HTML)
32
+ options = PRESETS.fetch(preset)
33
+ Processor.new(**options).parse(text)
34
+ rescue KeyError => e
35
+ raise InvalidPresetError, "Invalid preset: #{e.key}"
28
36
  end
29
37
 
30
- def processor_args(option)
31
- case option
32
- when :HTML
33
- {
34
- preprocessors: [Preprocessors::Ruby.new],
35
- renderer: CommonMarker::HtmlRenderer.new(options: [:HARDBREAKS, :UNSAFE]),
36
- }
37
- when :KAKUYOMU
38
- {
39
- preprocessors: [Preprocessors::Ruby.new, Proc.new { |text| text.gsub!(/《/, '|《') }],
40
- postprocessors: [Postprocessors::Ruby.new],
41
- renderer: Renderers::KakuyomuRenderer.new,
42
- }
43
- when :NAROU
44
- {
45
- preprocessors: [Preprocessors::Ruby.new, Preprocessors::EscapeNarou.new],
46
- postprocessors: [Postprocessors::Ruby.new],
47
- renderer: Renderers::NarouRenderer.new,
48
- }
49
- else
50
- raise ArgumentError, "Invalid option #{option}"
51
- end
38
+ def render(text, preset = :HTML)
39
+ options = PRESETS.fetch(preset)
40
+ Processor.new(**options).render(text)
41
+ rescue KeyError => e
42
+ raise InvalidPresetError, "Invalid preset: #{e.key}"
52
43
  end
53
44
  end
54
45
  end
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ module FujiMarkdown
4
+ Error = Class.new(StandardError)
5
+ InvalidPresetError = Class.new(StandardError)
6
+ end
@@ -1,10 +1,10 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module FujiMarkdown
2
4
  module Postprocessors
3
5
  class Ruby
4
6
  KANJI_REGEXP = /\A[一-龠々]+\z/.freeze
5
7
 
6
- attr_reader :omit_start_symbol
7
-
8
8
  def initialize(omit_start_symbol: false)
9
9
  @ruby = false
10
10
  @omit_start_symbol = omit_start_symbol
@@ -12,15 +12,13 @@ module FujiMarkdown
12
12
 
13
13
  def call(doc)
14
14
  doc.walk do |node|
15
- if node.type == :inline_html
16
- process_ruby_node!(node)
17
- end
15
+ process_ruby_node!(node) if node.type == :inline_html
18
16
  end
19
17
  end
20
18
 
21
19
  private
22
20
 
23
- def process_ruby_node!(node)
21
+ def process_ruby_node!(node) # rubocop:disable Metrics/MethodLength
24
22
  case node.string_content
25
23
  when '<ruby>'
26
24
  @ruby = true
@@ -31,24 +29,22 @@ module FujiMarkdown
31
29
  when '<rt>'
32
30
  kanji_node = node.previous
33
31
  kana_node = node.next
34
- if @ruby && kana_node.next.string_content == '</rt>'
35
- convert_to_kakuyomu_ruby!(kanji_node, kana_node)
36
- end
32
+ convert_to_kakuyomu_ruby!(kanji_node, kana_node) if @ruby && kana_node.next.string_content == '</rt>'
37
33
  node.delete
38
34
  when '</rt>'
39
35
  node.delete
40
- else
41
- # do nothing
42
36
  end
43
37
  end
44
38
 
45
39
  def convert_to_kakuyomu_ruby!(kanji_node, kana_node)
46
- kanji_node.string_content = "|#{kanji_node.string_content}" if kanji_node.type == :text && !(omit_start_symbol && start_symbol_omittable?(kanji_node))
47
- kana_node.string_content = "《#{kana_node.string_content}" if kana_node.type == :text
40
+ if kanji_node.type == :text && !(@omit_start_symbol && start_symbol_omittable?(kanji_node))
41
+ kanji_node.string_content = "|#{kanji_node.string_content}"
42
+ end
43
+ kana_node.string_content = "《#{kana_node.string_content}》" if kana_node.type == :text
48
44
  end
49
45
 
50
46
  def start_symbol_omittable?(kanji_node)
51
- kanji_node.string_content.match(KANJI_REGEXP) && !kanji_node.previous.string_content[-1].match(KANJI_REGEXP)
47
+ kanji_node.string_content.match?(KANJI_REGEXP) && !kanji_node.previous.string_content[-1].match?(KANJI_REGEXP)
52
48
  end
53
49
  end
54
50
  end
@@ -1,10 +1,12 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module FujiMarkdown
2
4
  module Preprocessors
3
5
  class EscapeNarou
4
6
  def call(text)
5
- text.gsub!(/([一-龠々])(([\p{Hiragana}\p{Katakana}]+))/, '\1|(\2)')
6
- text.gsub!(/([一-龠々])\(([\p{Hiragana}\p{Katakana}]+)\)/, '\1|(\2)')
7
- text.gsub!(/《([\p{Hiragana}\p{Katakana}]+)》/, '|《\1》')
7
+ text.gsub(/([一-龠々])(([\p{Hiragana}\p{Katakana}]+))/, '\1|(\2)')
8
+ .gsub(/([一-龠々])\(([\p{Hiragana}\p{Katakana}]+)\)/, '\1|(\2)')
9
+ .gsub(/《([\p{Hiragana}\p{Katakana}]+)》/, '|《\1》')
8
10
  end
9
11
  end
10
12
  end
@@ -1,24 +1,31 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module FujiMarkdown
2
4
  module Preprocessors
3
5
  class Ruby
4
- RUBY_PATTERN = %r({(?<kanji>[^{}|]*)\|(?<kana>[^{}]*)})
6
+ RUBY_REGEXP = /(?<!\\){(?<kanji>.*?)\|(?<kana>.*?)}/.freeze
5
7
 
6
8
  def call(text)
7
- text.gsub!(RUBY_PATTERN) do |match|
8
- kanji, *kanas = match.slice(1...-1).split('|')
9
- return "<ruby>#{kanji}<rt></rt></ruby>" if kanas.empty?
9
+ text.gsub(RUBY_REGEXP) do |ruby_pattern|
10
+ convert_to_html(ruby_pattern)
11
+ end
12
+ end
10
13
 
11
- pairs = []
12
- kanas.each_with_index do |kana, i|
13
- if i == kanas.size - 1
14
- pairs << [kanji.slice(i..-1), kana]
15
- else
16
- pairs << [kanji.slice(i), kana]
17
- end
18
- end
14
+ private
19
15
 
20
- "<ruby>#{pairs.map { |k, kana| "#{k}<rt>#{kana}</rt>" }.join}</ruby>"
16
+ def convert_to_html(ruby_pattern)
17
+ kanji_chars, *kanas = ruby_pattern[/\A{(.*)}\z/, 1].split('|')
18
+ return "<ruby>#{kanji_chars}<rt></rt></ruby>" if kanas.empty?
19
+
20
+ pairs = kanas.each_with_object([]).with_index do |(kana, arr), i|
21
+ arr << if i == kanas.size - 1
22
+ [kanji_chars[i..], kana]
23
+ else
24
+ [kanji_chars[i], kana]
25
+ end
21
26
  end
27
+
28
+ "<ruby>#{pairs.map { |kanji, kana| "#{kanji}<rt>#{kana}</rt>" }.join}</ruby>"
22
29
  end
23
30
  end
24
31
  end
@@ -1,32 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'commonmarker'
4
+
1
5
  module FujiMarkdown
2
6
  class Processor
3
- attr_reader :preprocessors, :parser, :postprocessors, :renderer
4
-
5
- def initialize(preprocessors: [], parser: CommonMarker, postprocessors: [], renderer: CommonMarker::HtmlRenderer.new)
7
+ def initialize(preprocessors: [], postprocessors: [], renderer: CommonMarker::HtmlRenderer.new)
6
8
  @preprocessors = preprocessors
7
- @parser = parser
8
9
  @postprocessors = postprocessors
9
10
  @renderer = renderer
10
11
  end
11
12
 
12
13
  def parse(text)
13
- processed_text = text.dup
14
-
15
- preprocessors.each do |preprocessor|
16
- preprocessor.call(processed_text)
14
+ processed_text = @preprocessors.inject(text) do |result, preprocessor|
15
+ preprocessor.call(result)
17
16
  end
18
17
 
19
- parser.render_doc(processed_text)
18
+ CommonMarker.render_doc(processed_text)
20
19
  end
21
20
 
22
21
  def render(text)
23
22
  doc = parse(text)
24
23
 
25
- postprocessors.each do |postprocessor|
24
+ @postprocessors.each do |postprocessor|
26
25
  postprocessor.call(doc)
27
26
  end
28
27
 
29
- renderer.render(doc)
28
+ @renderer.render(doc)
30
29
  end
31
30
  end
32
31
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module FujiMarkdown
2
4
  module Renderers
3
5
  class KakuyomuRenderer < TextRenderer
@@ -13,7 +15,7 @@ module FujiMarkdown
13
15
  out('《《', :children, '》》')
14
16
  end
15
17
 
16
- def link(node)
18
+ def link(_node)
17
19
  out(:children)
18
20
  end
19
21
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module FujiMarkdown
2
4
  module Renderers
3
5
  class NarouRenderer < TextRenderer
@@ -11,14 +13,12 @@ module FujiMarkdown
11
13
 
12
14
  def emph(node)
13
15
  node.walk do |n|
14
- if n.type == :text
15
- n.string_content = n.string_content.chars.map { |char| "|#{char}《・》"}.join
16
- end
16
+ n.string_content = n.string_content.chars.map { |char| "|#{char}《・》" }.join if n.type == :text
17
17
  end
18
18
  out(:children)
19
19
  end
20
20
 
21
- def link(node)
21
+ def link(_node)
22
22
  out(:children)
23
23
  end
24
24
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module FujiMarkdown
2
4
  module Renderers
3
5
  class TextRenderer < CommonMarker::HtmlRenderer
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module FujiMarkdown
2
- VERSION = '0.3.1'
4
+ VERSION = '0.4.0'
3
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fuji_markdown
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Fuji Nakahara
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-01-12 00:00:00.000000000 Z
11
+ date: 2020-10-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: commonmarker
@@ -24,76 +24,6 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0.17'
27
- - !ruby/object:Gem::Dependency
28
- name: bundler
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - "~>"
32
- - !ruby/object:Gem::Version
33
- version: '2.0'
34
- type: :development
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - "~>"
39
- - !ruby/object:Gem::Version
40
- version: '2.0'
41
- - !ruby/object:Gem::Dependency
42
- name: meowcop
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: pry
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: rake
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - "~>"
74
- - !ruby/object:Gem::Version
75
- version: '12.3'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - "~>"
81
- - !ruby/object:Gem::Version
82
- version: '12.3'
83
- - !ruby/object:Gem::Dependency
84
- name: rspec
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - "~>"
88
- - !ruby/object:Gem::Version
89
- version: '3.7'
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - "~>"
95
- - !ruby/object:Gem::Version
96
- version: '3.7'
97
27
  description: FujiMarkdown is the dialect of Markdown supporting extensions for Japanese
98
28
  novels.
99
29
  email:
@@ -103,10 +33,13 @@ executables:
103
33
  extensions: []
104
34
  extra_rdoc_files: []
105
35
  files:
36
+ - ".github/FUNDING.yml"
37
+ - ".github/workflows/gem-push.yml"
38
+ - ".github/workflows/ruby.yml"
106
39
  - ".gitignore"
107
40
  - ".rspec"
108
41
  - ".rubocop.yml"
109
- - ".travis.yml"
42
+ - CHANGELOG.md
110
43
  - CODE_OF_CONDUCT.md
111
44
  - Gemfile
112
45
  - LICENSE.txt
@@ -117,6 +50,7 @@ files:
117
50
  - exe/fujimd
118
51
  - fuji_markdown.gemspec
119
52
  - lib/fuji_markdown.rb
53
+ - lib/fuji_markdown/error.rb
120
54
  - lib/fuji_markdown/postprocessors/ruby.rb
121
55
  - lib/fuji_markdown/preprocessors/escape_narou.rb
122
56
  - lib/fuji_markdown/preprocessors/ruby.rb
@@ -128,7 +62,10 @@ files:
128
62
  homepage: https://github.com/fuji-nakahara/fuji_markdown
129
63
  licenses:
130
64
  - MIT
131
- metadata: {}
65
+ metadata:
66
+ homepage_uri: https://github.com/fuji-nakahara/fuji_markdown
67
+ source_code_uri: https://github.com/fuji-nakahara/fuji_markdown
68
+ changelog_uri: https://github.com/fuji-nakahara/fuji_markdown/blob/master/CHANGELOG.md
132
69
  post_install_message:
133
70
  rdoc_options: []
134
71
  require_paths:
@@ -137,14 +74,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
137
74
  requirements:
138
75
  - - ">="
139
76
  - !ruby/object:Gem::Version
140
- version: '0'
77
+ version: '2.6'
141
78
  required_rubygems_version: !ruby/object:Gem::Requirement
142
79
  requirements:
143
80
  - - ">="
144
81
  - !ruby/object:Gem::Version
145
82
  version: '0'
146
83
  requirements: []
147
- rubygems_version: 3.0.1
84
+ rubygems_version: 3.1.4
148
85
  signing_key:
149
86
  specification_version: 4
150
87
  summary: Markdown processor for Japanese novels
@@ -1,9 +0,0 @@
1
- sudo: false
2
- language: ruby
3
- rvm:
4
- - 2.6
5
- - 2.5
6
- - 2.4
7
- before_install:
8
- - gem update --system
9
- - gem install bundler