elisp2any 0.0.2 → 0.0.3

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