djot 0.0.6 → 0.0.7

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