gmi2latex 0.1.2 → 0.1.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: 8dd72e2d3b7f550abe60f7101f1c2bdc8a5fe52675511957f73a78a77bb0d225
4
- data.tar.gz: 6760567f6a456155f81e503312ac04dd363c2cfaacd518ff0860daec9d038bd0
3
+ metadata.gz: adcbc0a32303d293d5d1f0c06ddbf8d11979c0e3ca8eae5cfe2d4b6b46748179
4
+ data.tar.gz: ce5c2f24a782c2ad1905af6182d0f7f20642e27fa658ff27317580eb3836e36e
5
5
  SHA512:
6
- metadata.gz: 785cc12f9393f13e3012d10c87f2b98454334728d117e714132f29e121511abd9c10dad7abd3722c7139aa778b65cabbd6e8b13e076beb49f78d529c987b0c66
7
- data.tar.gz: 354036076e6b76a31f77990e784f31ede1a79d698a26801f402c6acffa159031f417a9ac0035796abbcef0068c9369d1e0d31db7cb12e6923f6b33102aa2ddd9
6
+ metadata.gz: 05705ef468ea5d7aac3e54b0610b83be1dbae6a0a0f66efc6240b63f99cd3d65d4742edd608c5528cdf314f3f49e38fa61b10ff8cc1b1ce4b7e6eb02936a8303
7
+ data.tar.gz: a14e3fc7388f4c749133688d59d50754221558bcc6d57a7a249bd876e5fd1169803a5de42b1af9d5ae6825713d59a09e898adf3e5ddcda5eda1e87f9d418ed00
data/.envrc CHANGED
@@ -1,2 +1 @@
1
- #!/bin/sh
2
- eval "$(guix shell --search-paths)"
1
+ use guix ruby ruby-gemtext ruby-rubocop
data/.rubocop.yml CHANGED
@@ -1,13 +1,14 @@
1
1
  AllCops:
2
- TargetRubyVersion: 2.6
2
+ TargetRubyVersion: 3.1
3
+ NewCops: enable
3
4
 
4
5
  Style/StringLiterals:
5
6
  Enabled: true
6
- EnforcedStyle: double_quotes
7
+ EnforcedStyle: single_quotes
7
8
 
8
9
  Style/StringLiteralsInInterpolation:
9
10
  Enabled: true
10
- EnforcedStyle: double_quotes
11
+ EnforcedStyle: single_quotes
11
12
 
12
13
  Layout/LineLength:
13
14
  Max: 120
data/CHANGELOG.md CHANGED
@@ -1,5 +1,14 @@
1
1
  ## [Unreleased]
2
2
 
3
+ ## 0.1.3 - 2026-06-08
4
+
5
+ ### Added
6
+
7
+ - Added link render method
8
+ - Ruby signature file
9
+
10
+ ## [0.1.2] - 2024-08-17
11
+
3
12
  ### Changed
4
13
 
5
14
  - Escape hash (#), percent, angle brackets, and backquotes character.
data/Rakefile CHANGED
@@ -1,16 +1,23 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "bundler/gem_tasks"
4
- require "rake/testtask"
3
+ require 'bundler/gem_tasks'
4
+ require 'rake/testtask'
5
5
 
6
6
  Rake::TestTask.new(:test) do |t|
7
- t.libs << "test"
8
- t.libs << "lib"
9
- t.test_files = FileList["test/**/*_test.rb"]
7
+ t.libs << 'test'
8
+ t.libs << 'lib'
9
+ t.test_files = FileList['test/**/*_test.rb']
10
10
  end
11
11
 
12
- require "rubocop/rake_task"
12
+ require 'rubocop/rake_task'
13
13
 
14
14
  RuboCop::RakeTask.new
15
15
 
16
16
  task default: %i[test rubocop]
17
+
18
+ hand_written_signatures = Dir['sig/**/*.rbs'] - Dir['sig/**/*.gen.rbs']
19
+
20
+ desc 'generate signatures'
21
+ task :sig do
22
+ sh 'typeprof', '-o', 'sig/gmi2latex.gen.rbs', '-r', 'gemtext', *Dir['lib/**/*.rb'], *hand_written_signatures
23
+ end
data/exe/gmi2latex CHANGED
@@ -1,3 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
- require_relative "../lib/gmi2latex/command"
2
+ # frozen_string_literal: true
3
+
4
+ require_relative '../lib/gmi2latex/command'
3
5
  Gmi2LaTeX::Command.run
@@ -1,6 +1,8 @@
1
- require "gemtext"
2
- require "optparse"
3
- require_relative "renderer"
1
+ # frozen_string_literal: true
2
+
3
+ require 'gemtext'
4
+ require 'optparse'
5
+ require_relative 'renderer'
4
6
 
5
7
  module Gmi2LaTeX
6
8
  class Command
@@ -9,17 +11,17 @@ module Gmi2LaTeX
9
11
  end
10
12
 
11
13
  def run
12
- header = <<~LaTeX
14
+ header = <<~LATEX
13
15
  \\RequirePackage{plautopatch}
14
16
  \\documentclass[a4paper,article,dvipdfmx]{jlreq}
15
17
  \\usepackage{hyperref}
16
18
  \\begin{document}
17
- LaTeX
19
+ LATEX
18
20
  footer = "\\end{document}\n"
19
21
 
20
22
  OptionParser.new do |parser|
21
- parser.on("--header=SOURCE") { |source| header = source }
22
- parser.on("--footer=SOURCE") { |source| footer = source }
23
+ parser.on('--header=SOURCE') { |source| header = source }
24
+ parser.on('--footer=SOURCE') { |source| footer = source }
23
25
  end.parse!
24
26
 
25
27
  doc = Gemtext::Parser.new($stdin).parse
@@ -1,4 +1,4 @@
1
- require_relative "gemtext_refinements"
1
+ # frozen_string_literal: true
2
2
 
3
3
  module Gmi2LaTeX
4
4
  class Renderer
@@ -8,8 +8,6 @@ module Gmi2LaTeX
8
8
  @footer = footer
9
9
  end
10
10
 
11
- using Gmi2LaTeX::GemtextRefinements
12
-
13
11
  def render
14
12
  @header and print @header
15
13
  @document.nodes.each { |node| render_node(node) }
@@ -38,17 +36,15 @@ module Gmi2LaTeX
38
36
  in Gemtext::Text[content:]
39
37
  render_text(content)
40
38
  in Gemtext::Link[target:, description:]
41
- end_text
42
- end_itemize
43
- print "#{description} (\\url{#{target}})\n"
39
+ render_link(target, description:)
44
40
  in Gemtext::Preformatted[content:]
45
41
  end_text
46
42
  end_itemize
47
- print <<~LaTeX
43
+ print <<~LATEX
48
44
  \\begin{verbatim}
49
45
  #{content}
50
46
  \\end{verbatim}
51
- LaTeX
47
+ LATEX
52
48
  in Gemtext::ListItem[content:]
53
49
  end_text
54
50
  render_list_item(content)
@@ -66,18 +62,18 @@ module Gmi2LaTeX
66
62
  @was_text and print "\\\\\n"
67
63
  content.each_char do |char|
68
64
  case char
69
- in "_"
70
- print "\\_"
71
- in "#"
72
- print "\\#"
73
- in "%"
74
- print "\\%"
75
- in "<"
76
- print "\\textlangle{}"
77
- in ">"
78
- print "\\textrangle{}"
79
- in "`"
80
- print "\\`{}"
65
+ in '_'
66
+ print '\\_'
67
+ in '#'
68
+ print '\\#'
69
+ in '%'
70
+ print '\\%'
71
+ in '<'
72
+ print '\\textlangle{}'
73
+ in '>'
74
+ print '\\textrangle{}'
75
+ in '`'
76
+ print '\\`{}'
81
77
  else
82
78
  print char
83
79
  end
@@ -88,20 +84,30 @@ module Gmi2LaTeX
88
84
 
89
85
  def render_list_item(content)
90
86
  if @listing
91
- print <<~LaTeX
87
+ print <<~LATEX
92
88
  \\item{}
93
89
  #{content}
94
- LaTeX
90
+ LATEX
95
91
  else
96
- print <<~LaTeX
92
+ print <<~LATEX
97
93
  \\begin{itemize}
98
94
  \\item{}
99
95
  #{content}
100
- LaTeX
96
+ LATEX
101
97
  @listing = true
102
98
  end
103
99
  end
104
100
 
101
+ def render_link(target, description:)
102
+ end_text
103
+ end_itemize
104
+ if description.empty?
105
+ print "☞ \\url{#{target}}\n"
106
+ else
107
+ print "☞ #{description} (\\url{#{target}})\n"
108
+ end
109
+ end
110
+
105
111
  def end_text
106
112
  @was_text or return
107
113
  print "\n"
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Gmi2LaTeX
4
- VERSION = "0.1.2"
4
+ VERSION = '0.1.3'
5
5
  end
data/lib/gmi2latex.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative "gmi2latex/version"
4
- require_relative "gmi2latex/renderer"
3
+ require_relative 'gmi2latex/version'
4
+ require_relative 'gmi2latex/renderer'
5
5
 
6
6
  module Gmi2LaTeX
7
7
  Error = Class.new(StandardError)
@@ -0,0 +1,7 @@
1
+ # TypeProf 0.21.3
2
+
3
+ # Classes
4
+ module Gmi2LaTeX
5
+ VERSION: String
6
+ Error: Class
7
+ end
data/sig/gmi2latex.rbs CHANGED
@@ -1,4 +1,62 @@
1
- module Gmi2latex
1
+ module Gemtext
2
+ class Document
3
+ end
4
+
5
+ class Heading
6
+ end
7
+
8
+ class SubHeading
9
+ end
10
+
11
+ class SubSubHeading
12
+ end
13
+
14
+ class Whitespace
15
+ end
16
+
17
+ class Text
18
+ end
19
+
20
+ class Link
21
+ end
22
+
23
+ class Preformatted
24
+ end
25
+
26
+ class ListItem
27
+ end
28
+ end
29
+
30
+ module Gmi2LaTeX
2
31
  VERSION: String
3
- # See the writing guide of rbs: https://github.com/ruby/rbs#guides
32
+ Error: Class
33
+
34
+ class Renderer
35
+ @document: Gemtext::Document
36
+ @header: String?
37
+ @footer: String?
38
+ @listing: bool
39
+ @was_text: bool
40
+
41
+ def initialize: (Gemtext::Document document, ?header: String?, ?footer: String?) -> void
42
+ def render: -> nil
43
+ def render_node: (Gemtext::Heading |
44
+ Gemtext::SubHeading |
45
+ Gemtext::SubSubHeading |
46
+ Gemtext::Whitespace |
47
+ Gemtext::Text |
48
+ Gemtext::Link |
49
+ Gemtext::Preformatted |
50
+ Gemtext::ListItem node) -> void
51
+ def render_text: (String content) -> void
52
+ def render_list_item: (String content) -> void
53
+ def render_link: (String target, description: String) -> void
54
+ def end_text: -> void
55
+ def end_itemize: -> void
56
+ end
57
+
58
+ class Command
59
+ def self.run: -> void
60
+ def run: -> void
61
+ end
4
62
  end
metadata CHANGED
@@ -1,29 +1,28 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gmi2latex
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - gemmaro
8
- autorequire:
9
8
  bindir: exe
10
9
  cert_chain: []
11
- date: 2024-08-17 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: gemtext
15
14
  requirement: !ruby/object:Gem::Requirement
16
15
  requirements:
17
- - - ">="
16
+ - - "~>"
18
17
  - !ruby/object:Gem::Version
19
- version: '0'
18
+ version: 1.0.3
20
19
  type: :runtime
21
20
  prerelease: false
22
21
  version_requirements: !ruby/object:Gem::Requirement
23
22
  requirements:
24
- - - ">="
23
+ - - "~>"
25
24
  - !ruby/object:Gem::Version
26
- version: '0'
25
+ version: 1.0.3
27
26
  description: Gmi2LaTeX is a Gemtext (Gemini naitive text format, suffix .gmi) to LaTeX
28
27
  converter.
29
28
  email:
@@ -42,10 +41,9 @@ files:
42
41
  - exe/gmi2latex
43
42
  - lib/gmi2latex.rb
44
43
  - lib/gmi2latex/command.rb
45
- - lib/gmi2latex/gemtext_refinements.rb
46
44
  - lib/gmi2latex/renderer.rb
47
45
  - lib/gmi2latex/version.rb
48
- - manifest.scm
46
+ - sig/gmi2latex.gen.rbs
49
47
  - sig/gmi2latex.rbs
50
48
  homepage: https://codeberg.org/gemmaro/gmi2latex
51
49
  licenses:
@@ -54,7 +52,7 @@ metadata:
54
52
  homepage_uri: https://codeberg.org/gemmaro/gmi2latex
55
53
  source_code_uri: https://codeberg.org/gemmaro/gmi2latex.git
56
54
  changelog_uri: https://codeberg.org/gemmaro/gmi2latex/src/branch/main/CHANGELOG.md
57
- post_install_message:
55
+ rubygems_mfa_required: 'true'
58
56
  rdoc_options: []
59
57
  require_paths:
60
58
  - lib
@@ -69,8 +67,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
69
67
  - !ruby/object:Gem::Version
70
68
  version: '0'
71
69
  requirements: []
72
- rubygems_version: 3.3.26
73
- signing_key:
70
+ rubygems_version: 4.0.10
74
71
  specification_version: 4
75
72
  summary: Gemtext to LaTeX converter
76
73
  test_files: []
@@ -1,17 +0,0 @@
1
- require "gemtext"
2
-
3
- module Gmi2LaTeX
4
- module GemtextRefinements
5
- refine Gemtext::Node do
6
- def deconstruct_keys(*_keys)
7
- { content: }
8
- end
9
- end
10
-
11
- refine Gemtext::Link do
12
- def deconstruct_keys(*_keys)
13
- { **super, target:, description: }
14
- end
15
- end
16
- end
17
- end
data/manifest.scm DELETED
@@ -1 +0,0 @@
1
- (specifications->manifest (list "ruby@3.1" "ruby-gemtext" "ruby-rubocop"))