elisp2any 0.0.2 → 0.0.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: 4aae6ce52e5bdc57b8acb26b343c1d7958f22571e977d15bc092b0ba08b956c5
4
- data.tar.gz: 7183789a0afe41c5d4bcccf55addf8f22fd49e99a524b69fa93ff5b70dd72e33
3
+ metadata.gz: cfaef7d1de4a445f1055d3093dd6afb0b3f87db67dff17b4a3bf17e451e042c6
4
+ data.tar.gz: 3746dd755e216ffda34d037bb3c1070dadb1b8b485426a25c59555d284e7f55a
5
5
  SHA512:
6
- metadata.gz: 11d32b8208f0e1898c5c98482fa2a716bd9156801e0713a0978ed564beb5ac6bd902114599d2d0cb0a6540a8566886f26e24875cd8d09576de33bd792fcd8930
7
- data.tar.gz: 5172b17c091939abb0867c83686e0b918b23c4366644c3c3ac89b89901cedba362acd53077527a649880cc3a1c7ff4021bf9719839b5397a5d1aab20d3b368e2
6
+ metadata.gz: 13d87c5c455d13766deea274183b1a3f32e4165c0f7edbb68e680f977e1c8987eec0808bff8a1285ed9a617d0796e9fdee43784f8955e681feffc41fd0be06d6
7
+ data.tar.gz: 97d5d3ca8dfe1f14a26c21bb5d4062a789ac77e2a05ddeb568a624f2ff16dc3cc2e83415d979e612d504aa883af50cd44275289e633521622049188d8db37bd5
data/.envrc CHANGED
@@ -1 +1,3 @@
1
+ watch_file manifest.scm
1
2
  export ELISP2ANY_GUIX_USE_PROFILE_PATH=yes
3
+ use guix
data/.rubocop.yml CHANGED
@@ -3,14 +3,6 @@ AllCops:
3
3
  NewCops: enable
4
4
  DisabledByDefault: true
5
5
 
6
- Style/StringLiterals:
7
- Enabled: true
8
- EnforcedStyle: single_quotes
9
-
10
- Style/StringLiteralsInInterpolation:
11
- Enabled: true
12
- EnforcedStyle: single_quotes
13
-
14
6
  Layout/LineLength:
15
7
  Enabled: false
16
8
 
data/CHANGELOG.md CHANGED
@@ -2,6 +2,12 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 0.0.3 - 2024-11-16
6
+
7
+ ### Added
8
+
9
+ * The `--css=PATH` option to the `elisp2any` program.
10
+
5
11
  ## 0.0.2 - 2023-11-25
6
12
 
7
13
  ### Fixed
data/Gemfile CHANGED
@@ -1,7 +1,2 @@
1
1
  source 'https://rubygems.org'
2
-
3
2
  gemspec
4
-
5
- gem 'rake', '~> 13.0'
6
- gem 'test-unit', '~> 3.0'
7
- gem 'rubocop', '~> 1.21'
data/exe/elisp2any CHANGED
@@ -1,17 +1,27 @@
1
1
  #!/usr/bin/env ruby
2
+
2
3
  require_relative '../lib/elisp2any'
3
4
  require_relative '../lib/elisp2any/html_renderer'
4
5
  require 'optparse'
6
+
5
7
  input = $stdin
6
8
  output = $stdout
9
+ css = nil
10
+
7
11
  OptionParser.new do |parser|
8
12
  parser.on('--input=PATH') do |path|
9
13
  input = File.open(path)
10
14
  end
15
+
11
16
  parser.on('--output=PATH') do |path|
12
17
  output = File.open(path, 'w')
13
18
  end
19
+
20
+ parser.on('--css=PATH') do |path|
21
+ css = path
22
+ end
14
23
  end.parse!
24
+
15
25
  file = Elisp2any::File.parse(input)
16
- renderer = Elisp2any::HTMLRenderer.new(file)
26
+ renderer = Elisp2any::HTMLRenderer.new(file, css:)
17
27
  output.write(renderer.render)
@@ -4,7 +4,7 @@
4
4
  <meta charset="UTF-8">
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1">
6
6
  <title><%= name %></title>
7
- <link rel="stylesheet" href="https://unpkg.com/mvp.css">
7
+ <link rel="stylesheet" href="<%= @css %>">
8
8
  </head>
9
9
  <body>
10
10
  <main>
@@ -8,8 +8,9 @@ require_relative 'code_block'
8
8
 
9
9
  module Elisp2any
10
10
  class HTMLRenderer
11
- def initialize(file)
11
+ def initialize(file, css: nil)
12
12
  @file = file
13
+ @css = css || "https://unpkg.com/mvp.css"
13
14
  end
14
15
 
15
16
  def render
@@ -19,25 +19,28 @@ module Elisp2any
19
19
  when :comment
20
20
  scanner = StringScanner.new(content)
21
21
  scanner.skip(';') or raise Error, 'no semicolon for comment'
22
- if scanner.skip(';')
23
- if (level = scanner.skip(/;+/))
24
- scanner.skip(' ') or raise Error, 'no space after heading semicolons'
25
- nodes << Heading.new(node, level, scanner.rest.chomp)
26
- elsif scanner.skip("\n")
27
- # nop
28
- else
29
- scanner.skip(' ') or raise Error, "no space after semicolons: #{scanner.inspect}"
30
- line = Line.parse(scanner.rest)
31
- if (last_node = nodes.last) && last_node.is_a?(Paragraph) && last_node.end_row + 1 == top_level_node.start_point.row
32
- last_node << line
33
- else
34
- paragraph = Paragraph.new(node, [line], top_level_node.end_point.row)
35
- nodes << paragraph
36
- end
22
+ scanner.skip(';') or
23
+ begin
24
+ (last_node = nodes.last) && last_node.is_a?(CodeBlock) or raise Error, 'no prior code for single semicolon comment'
25
+ last_node.append(source, range.end)
26
+ next
37
27
  end
28
+
29
+ if (level = scanner.skip(/;+/))
30
+ scanner.skip(' ') or raise Error, 'no space after heading semicolons'
31
+ nodes << Heading.new(node, level, scanner.rest.chomp)
32
+ next
33
+ elsif scanner.skip("\n")
34
+ next
35
+ end
36
+
37
+ scanner.skip(' ') or raise Error, "no space after semicolons: #{scanner.inspect}"
38
+ line = Line.parse(scanner.rest)
39
+ if (last_node = nodes.last) && last_node.is_a?(Paragraph) && last_node.end_row + 1 == top_level_node.start_point.row
40
+ last_node << line
38
41
  else
39
- (last_node = nodes.last) && last_node.is_a?(CodeBlock) or raise Error, 'no prior code for single semicolon comment'
40
- last_node.append(source, range.end)
42
+ paragraph = Paragraph.new(node, [line], top_level_node.end_point.row)
43
+ nodes << paragraph
41
44
  end
42
45
  else
43
46
  if (last_node = nodes.last) && last_node.is_a?(CodeBlock)
@@ -1,3 +1,3 @@
1
1
  module Elisp2any
2
- VERSION = '0.0.2'
2
+ VERSION = '0.0.3'
3
3
  end
data/manifest.scm CHANGED
@@ -3,4 +3,4 @@
3
3
  "tree-sitter-elisp"
4
4
  "ruby-webrick"
5
5
  "ruby-rubocop"
6
- "ruby-asciidoctor"))
6
+ "ruby-asciidoctor"))
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: elisp2any
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - gemmaro
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-11-25 00:00:00.000000000 Z
11
+ date: 2024-11-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ruby_tree_sitter
@@ -25,7 +25,7 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: 0.20.8.1
27
27
  - !ruby/object:Gem::Dependency
28
- name: webrick
28
+ name: asciidoctor
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - ">="
@@ -38,22 +38,50 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '13.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '13.0'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: rubocop
43
57
  requirement: !ruby/object:Gem::Requirement
44
58
  requirements:
45
- - - ">="
59
+ - - "~>"
46
60
  - !ruby/object:Gem::Version
47
- version: '0'
61
+ version: '1.21'
48
62
  type: :development
49
63
  prerelease: false
50
64
  version_requirements: !ruby/object:Gem::Requirement
51
65
  requirements:
52
- - - ">="
66
+ - - "~>"
53
67
  - !ruby/object:Gem::Version
54
- version: '0'
68
+ version: '1.21'
55
69
  - !ruby/object:Gem::Dependency
56
- name: asciidoctor
70
+ name: test-unit
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '3.0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '3.0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: webrick
57
85
  requirement: !ruby/object:Gem::Requirement
58
86
  requirements:
59
87
  - - ">="
@@ -67,7 +95,7 @@ dependencies:
67
95
  - !ruby/object:Gem::Version
68
96
  version: '0'
69
97
  description: elisp2any is a command line tool and library for converting Emacs Lisp
70
- source to some document markup, such as HTML or Markdown.
98
+ source to some document markup, such as HTML or AsciiDoc.
71
99
  email:
72
100
  - gemmaro.dev@gmail.com
73
101
  executables:
@@ -101,10 +129,16 @@ files:
101
129
  - manifest.scm
102
130
  - sig/elisp2any.gen.rbs
103
131
  - sig/elisp2any.rbs
104
- homepage:
132
+ homepage: https://codeberg.org/gemmaro/elisp2any
105
133
  licenses: []
106
134
  metadata:
107
135
  rubygems_mfa_required: 'true'
136
+ bug_tracker_uri: https://codeberg.org/gemmaro/elisp2any/issues
137
+ changelog_uri: https://codeberg.org/gemmaro/elisp2any/src/branch/main/CHANGELOG.md
138
+ documentation_uri: https://www.rubydoc.info/gems/elisp2any
139
+ homepage_uri: https://codeberg.org/gemmaro/elisp2any
140
+ source_code_uri: https://codeberg.org/gemmaro/elisp2any
141
+ wiki_uri: https://codeberg.org/gemmaro/elisp2any/wiki
108
142
  post_install_message:
109
143
  rdoc_options: []
110
144
  require_paths: