djot 0.0.6 → 0.0.7

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: 2419533ac547deab5c4ec161d2147c47895839050151bf1233c093d03c7f6202
4
- data.tar.gz: 2aae784074f6b9df2827d6dfc6ce05cb4a53fb9ad117b1c8a1141bc18234f6df
3
+ metadata.gz: b05a8f0740be3ef7a6d70beef262278b751c2c2bf7b199831857a00ea1209b15
4
+ data.tar.gz: b4f037b12f3c5f96807b3b4b089df2f2b266b4e8b3cec58c4a96016b653fa143
5
5
  SHA512:
6
- metadata.gz: d3e5caed7e26dd27fea38c2c323024d64803ed88de74ed37e81020d6cb8117a810b6926c3e4b0d877781989d526e83916ba441be7a81c8f8ee7074413e50de0d
7
- data.tar.gz: aa3fa15f1deb0b930779806e0cad85b2a7a65be32a252825b8211089e38341c59f29fb9713a1755aef514b2a540067e706f022188571a35725190f94128654f6
6
+ metadata.gz: 7c51a726fe392ac8085ea2014aab561bff1596d6f70b28583c8147fecfa2e5b8e10e70df8c0420d92cf8f997f9ac7a714c7ddab22707dccd51e14626516c9473
7
+ data.tar.gz: 1ef8cc01d4a8076d1763799d304a3b7bf67a383bdd1abe9ff3b47ddde419474175bcbf7310552be00c1bd95a2e50ef96abfc8dbe9f044e6b3c84daf202cba313
data/.rubocop.yml CHANGED
@@ -26,5 +26,11 @@ Style/DocumentDynamicEvalDefinition:
26
26
  Metrics/ClassLength:
27
27
  Enabled: false
28
28
 
29
+ Metrics/BlockLength:
30
+ Enabled: false
31
+
32
+ Metrics/MethodLength:
33
+ Enabled: false
34
+
29
35
  require:
30
36
  - rubocop-rake
data/.rubocop_todo.yml CHANGED
@@ -1,23 +1,15 @@
1
1
  # This configuration was generated by
2
2
  # `rubocop --auto-gen-config`
3
- # on 2023-01-30 13:50:23 UTC using RuboCop version 1.44.1.
3
+ # on 2023-05-25 12:41:00 UTC using RuboCop version 1.50.2.
4
4
  # The point is for the user to remove these configuration records
5
5
  # one by one as the offenses are removed from the code base.
6
6
  # Note that changes in the inspected code, or installation of new
7
7
  # versions of RuboCop, may require this file to be generated again.
8
8
 
9
9
  # Offense count: 1
10
- # Configuration parameters: AllowedMethods, AllowedPatterns, IgnoredMethods, CountRepeatedAttributes.
11
- Metrics/AbcSize:
12
- Max: 18
13
-
14
- # Offense count: 2
15
- # Configuration parameters: CountComments, CountAsOne, ExcludedMethods, AllowedMethods, AllowedPatterns, IgnoredMethods.
16
- # AllowedMethods: refine
17
- Metrics/BlockLength:
18
- Max: 37
19
-
20
- # Offense count: 2
21
- # Configuration parameters: CountComments, CountAsOne, ExcludedMethods, AllowedMethods, AllowedPatterns, IgnoredMethods.
22
- Metrics/MethodLength:
23
- Max: 22
10
+ # Configuration parameters: AllowedConstants.
11
+ Style/Documentation:
12
+ Exclude:
13
+ - 'spec/**/*'
14
+ - 'test/**/*'
15
+ - 'lib/djot/pure.rb'
data/CHANGELOG.md CHANGED
@@ -2,6 +2,27 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [0.0.7] - 2023-05-25
6
+
7
+ ### Removed
8
+
9
+ * References to Lua implementation (djot.lua)
10
+
11
+ ### Changed
12
+
13
+ * Update djot.js to v0.2.1.
14
+
15
+ ### Fixed
16
+
17
+ * `Djot.render_html` to accept `warn` option
18
+ * Remove `Djot.render_matches`
19
+ * `Djot.render_ast` to accept `source_positions` option
20
+ * `Djot::JavaScript` to accept `source_positions` option
21
+
22
+ ### Added
23
+
24
+ * Sckelton `Djot::Pure` module for pure Ruby implementation
25
+
5
26
  ## [0.0.6] - 2023-01-31
6
27
 
7
28
  Note again that the default parser might be changed from djot.lua to djot.js in future version.
data/Dockerfile ADDED
@@ -0,0 +1,10 @@
1
+ FROM ruby
2
+ ARG WORKDIR=/app
3
+ RUN mkdir $WORKDIR
4
+ WORKDIR $WORKDIR
5
+ COPY djot.gemspec ./djot.gemspec
6
+ COPY lib/djot/version.rb ./lib/djot/version.rb
7
+ COPY Gemfile ./Gemfile
8
+ RUN bundle -j$(nproc)
9
+ COPY . .
10
+ RUN rake
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Djot
2
2
 
3
- [Djot](https://djot.net/) parser for Ruby, using original JavaScript ([jdm/djot.js](https://github.com/jgm/djot.js)) and Lua ([djot.lua](https://github.com/jgm/djot.lua)) implementations.
3
+ [Djot](https://djot.net/) parser for Ruby, using original JavaScript ([jdm/djot.js](https://github.com/jgm/djot.js)) implementation.
4
4
 
5
5
  ## Installation
6
6
 
@@ -57,8 +57,6 @@ and push the `.gem` file to [rubygems.org](https://rubygems.org).
57
57
 
58
58
  * Create document class (and more) for idiomatic control in Ruby.
59
59
  * Write parser in pure Ruby.
60
- * Make JavaScript version as default. Currently the default is Lua version.
61
- * Update Lua implementation from djot to djot.lua.
62
60
 
63
61
  ## Contributing
64
62
 
@@ -70,9 +68,8 @@ to the [code of conduct](CODE_OF_CONDUCT.md).
70
68
 
71
69
  ## Acknowledgement
72
70
 
73
- As mentioned earlier, this library only calls the original JavaScript and Lua implementations; the important work is done in those libraries.
74
- The Lua implementation was sufficient to render in HTML, but thanks to the more Ruby-friendly JavaScript implementation, even more flexible operations can now be performed in Ruby.
75
- This gem also uses [MiniRacer](https://github.com/rubyjs/mini_racer) and [ruby-lua](https://github.com/glejeune/ruby-lua) to call JavaScript and Lua source codes respectibly.
71
+ As mentioned earlier, this library only calls the original JavaScript implementation; the important work is done in that library.
72
+ This gem also uses [MiniRacer](https://github.com/rubyjs/mini_racer) to call JavaScript source code.
76
73
 
77
74
  ## License
78
75
 
data/Rakefile CHANGED
@@ -11,7 +11,7 @@ require "rubocop/rake_task"
11
11
 
12
12
  RuboCop::RakeTask.new
13
13
 
14
- task default: %i[copy copy_js test rubocop sig mdl]
14
+ task default: %i[copy_js test rubocop sig mdl]
15
15
 
16
16
  desc "Copy JavaScript files"
17
17
  task copy_js: "lib/js/djot.js"
@@ -30,22 +30,6 @@ end
30
30
 
31
31
  directory "lib/js"
32
32
 
33
- desc "Copy Lua files"
34
- task copy: "lib/lua/djot" do
35
- license = File.read("vendor/djot/LICENSE")
36
- (["vendor/djot/djot.lua"] + Dir["vendor/djot/djot/*.lua"]).each do |file|
37
- File.write(file.sub(%r{vendor/djot}, "lib/lua"), <<~END_LUA)
38
- #{File.read(file)}
39
-
40
- --[[
41
- #{license}
42
- ]]
43
- END_LUA
44
- end
45
- end
46
-
47
- directory "lib/lua/djot"
48
-
49
33
  require "rdoc/task"
50
34
 
51
35
  RDoc::Task.new do |rdoc|
data/djot.gemspec CHANGED
@@ -7,7 +7,7 @@ Gem::Specification.new do |spec|
7
7
  spec.email = ["gemmaro.dev@gmail.com"]
8
8
 
9
9
  spec.summary = "Djot parser"
10
- spec.description = "djot gem provides parsing functions using original JavaScript and Lua implementations"
10
+ spec.description = "djot gem provides parsing functions using original JavaScript implementation"
11
11
  spec.homepage = "https://gitlab.com/gemmaro/ruby-djot"
12
12
  spec.license = "MIT"
13
13
  spec.required_ruby_version = ">= 2.6.0"
@@ -26,7 +26,7 @@ Gem::Specification.new do |spec|
26
26
  end
27
27
 
28
28
  spec.require_paths = ["lib"]
29
+ spec.rdoc_options << "--include" << "lib"
29
30
 
30
31
  spec.add_dependency "mini_racer", "~> 0.6.3"
31
- spec.add_dependency "ruby-lua", "~> 0.4"
32
32
  end
@@ -70,8 +70,10 @@ module Djot
70
70
 
71
71
  # Correspond to +djot.renderAST+
72
72
  # (https://github.com/jgm/djot.js#pretty-printing-the-djot-ast)
73
- def self.render_ast(doc)
74
- call("renderAST", doc)
73
+ def self.render_ast(doc, source_positions: false)
74
+ args = [doc]
75
+ args << { "sourcePositions" => source_positions } if source_positions
76
+ context.eval("djot.renderAST.apply(this, #{JSON.generate(args)})")
75
77
  end
76
78
 
77
79
  # Correspond to +djot.renderHTML+
data/lib/djot/pure.rb ADDED
@@ -0,0 +1,4 @@
1
+ module Djot
2
+ module Pure
3
+ end
4
+ end
data/lib/djot/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Djot
2
- VERSION = "0.0.6".freeze
2
+ VERSION = "0.0.7".freeze
3
3
  end
data/lib/djot.rb CHANGED
@@ -1,22 +1,18 @@
1
1
  require_relative "djot/version"
2
2
  require_relative "djot/javascript"
3
- require_relative "djot/lua"
3
+ require_relative "djot/pure"
4
4
 
5
5
  # Provides Djot parsing functionalities.
6
- # +Djot.*+ methods are pointing to Lua implementation now.
6
+ # +Djot.*+ methods are pointing to JavaScript implementation now.
7
7
  # See also Djot::JavaScript for ones pointing to JavaScript implementation.
8
8
  module Djot
9
9
  class Error < StandardError; end
10
10
 
11
- def self.render_html(input)
12
- Lua.render_html(input)
11
+ def self.render_html(doc, warn: nil)
12
+ JavaScript.render_html(doc, warn: warn)
13
13
  end
14
14
 
15
- def self.render_matches(input)
16
- Lua.render_matches(input)
17
- end
18
-
19
- def self.render_ast(input)
20
- Lua.render_ast(input)
15
+ def self.render_ast(input, source_positions: false)
16
+ JavaScript.render_ast(input, source_positions: source_positions)
21
17
  end
22
18
  end
data/manifest.scm ADDED
@@ -0,0 +1,2 @@
1
+ (specifications->manifest (list "ruby-test-unit" "ruby-rubocop"
2
+ "ruby-rubocop-rake" "ruby" "node"))
data/sig/djot.gen.rbs CHANGED
@@ -1,12 +1,12 @@
1
- # TypeProf 0.21.4
1
+ # TypeProf 0.21.7
2
2
 
3
3
  # Classes
4
4
  module Djot
5
5
  VERSION: String
6
6
 
7
- def self.render_html: (untyped input) -> untyped
7
+ def self.render_html: (untyped input) -> ((Array[untyped] | Hash[untyped, untyped] | MiniRacer::JavaScriptFunction | Time)?)
8
8
  def self.render_matches: (untyped input) -> untyped
9
- def self.render_ast: (untyped input) -> untyped
9
+ def self.render_ast: (untyped input) -> ((Array[untyped] | Hash[untyped, untyped] | MiniRacer::JavaScriptFunction | Time)?)
10
10
 
11
11
  module JavaScript
12
12
  PATH: Pathname
@@ -29,14 +29,4 @@ module Djot
29
29
  def self.version: -> ((Array[untyped] | Hash[untyped, untyped] | MiniRacer::JavaScriptFunction | Time)?)
30
30
  def self.call: (String name, *Hash[String, untyped] args) -> ((Array[untyped] | Hash[untyped, untyped] | MiniRacer::JavaScriptFunction | Time)?)
31
31
  end
32
-
33
- module Lua
34
- LUA: untyped
35
- ROOT: Pathname
36
-
37
- def self.render_html: (untyped input) -> untyped
38
- def self.render_matches: (untyped input) -> untyped
39
- def self.render_ast: (untyped input) -> untyped
40
- def self.run_at_root: { (String) -> untyped } -> untyped
41
- end
42
32
  end
data/sig/djot.rbs CHANGED
@@ -3,9 +3,6 @@ module Djot
3
3
  module JavaScript
4
4
  end
5
5
 
6
- module Lua
7
- end
8
-
9
6
  class Error < StandardError
10
7
  end
11
8
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: djot
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - gemmaro
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-01-31 00:00:00.000000000 Z
11
+ date: 2023-05-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mini_racer
@@ -24,22 +24,7 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: 0.6.3
27
- - !ruby/object:Gem::Dependency
28
- name: ruby-lua
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - "~>"
32
- - !ruby/object:Gem::Version
33
- version: '0.4'
34
- type: :runtime
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - "~>"
39
- - !ruby/object:Gem::Version
40
- version: '0.4'
41
- description: djot gem provides parsing functions using original JavaScript and Lua
42
- implementations
27
+ description: djot gem provides parsing functions using original JavaScript implementation
43
28
  email:
44
29
  - gemmaro.dev@gmail.com
45
30
  executables: []
@@ -52,6 +37,7 @@ files:
52
37
  - ".rubocop_todo.yml"
53
38
  - CHANGELOG.md
54
39
  - CODE_OF_CONDUCT.md
40
+ - Dockerfile
55
41
  - Gemfile
56
42
  - LICENSE.txt
57
43
  - README.md
@@ -60,17 +46,10 @@ files:
60
46
  - djot.gemspec
61
47
  - lib/djot.rb
62
48
  - lib/djot/javascript.rb
63
- - lib/djot/lua.rb
49
+ - lib/djot/pure.rb
64
50
  - lib/djot/version.rb
65
51
  - lib/js/djot.js
66
- - lib/lua/djot.lua
67
- - lib/lua/djot/ast.lua
68
- - lib/lua/djot/attributes.lua
69
- - lib/lua/djot/block.lua
70
- - lib/lua/djot/emoji.lua
71
- - lib/lua/djot/html.lua
72
- - lib/lua/djot/inline.lua
73
- - lib/lua/djot/match.lua
52
+ - manifest.scm
74
53
  - sig/djot.gen.rbs
75
54
  - sig/djot.rbs
76
55
  homepage: https://gitlab.com/gemmaro/ruby-djot
@@ -81,8 +60,10 @@ metadata:
81
60
  source_code_uri: https://gitlab.com/gemmaro/ruby-djot
82
61
  changelog_uri: https://gitlab.com/gemmaro/ruby-djot/blob/main/CHANGELOG.md
83
62
  rubygems_mfa_required: 'true'
84
- post_install_message:
85
- rdoc_options: []
63
+ post_install_message:
64
+ rdoc_options:
65
+ - "--include"
66
+ - lib
86
67
  require_paths:
87
68
  - lib
88
69
  required_ruby_version: !ruby/object:Gem::Requirement
@@ -96,8 +77,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
96
77
  - !ruby/object:Gem::Version
97
78
  version: '0'
98
79
  requirements: []
99
- rubygems_version: 3.4.1
100
- signing_key:
80
+ rubygems_version: 3.4.10
81
+ signing_key:
101
82
  specification_version: 4
102
83
  summary: Djot parser
103
84
  test_files: []
data/lib/djot/lua.rb DELETED
@@ -1,52 +0,0 @@
1
- require "language/lua"
2
- require "pathname"
3
-
4
- module Djot
5
- # Functionalities of djot (Lua implementation)
6
- module Lua
7
- LUA = Language::Lua.new # :nodoc:
8
- LUA.eval(<<~END_LUA)
9
- function djot_parser(input)
10
- local parser = require("djot").Parser:new(input)
11
- parser:parse()
12
- return parser
13
- end
14
-
15
- function djot_render_html(input)
16
- return djot_parser(input):render_html()
17
- end
18
-
19
- function djot_render_matches(input)
20
- return djot_parser(input):render_matches()
21
- end
22
-
23
- function djot_render_ast(input)
24
- return djot_parser(input):render_ast()
25
- end
26
- END_LUA
27
-
28
- ROOT = Pathname(__dir__ || (raise Error)) / ".." / "lua" # :nodoc:
29
-
30
- def self.render_html(input)
31
- run_at_root do
32
- LUA.djot_render_html(input)
33
- end
34
- end
35
-
36
- def self.render_matches(input)
37
- run_at_root do
38
- LUA.djot_render_matches(input)
39
- end
40
- end
41
-
42
- def self.render_ast(input)
43
- run_at_root do
44
- LUA.djot_render_ast(input)
45
- end
46
- end
47
-
48
- def self.run_at_root(&block) # :nodoc:
49
- Dir.chdir(ROOT.to_s, &block)
50
- end
51
- end
52
- end