fuji_markdown 0.3.1 → 0.4.0

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: 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