jekyll-gemtext 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: cbf4a6d4f46044b025ad50dfb8020749c1b5104aa3e47966135ca9ef9775d49c
4
+ data.tar.gz: fcffa30a2667a787498172e3a22f3266799bb57e2073f8c26e6cb617a8f24c8b
5
+ SHA512:
6
+ metadata.gz: 15e36bd16854b5a6792addabe08cf1fc1b9f1aa172e4804284e56e59b43ffefbcc689d5bd104ba3ff3363b47ffe710e976468973f074830a56bdcd963a2eeaba
7
+ data.tar.gz: d5dba9f3564e6572d9cb47fad34c085f9246ad484aa8b35de35d299bcac919a869ee63f7cb695901e58a702acc02ad7d6574ebc8e1384109da68eb24a5962c46
data/.editorconfig ADDED
@@ -0,0 +1,9 @@
1
+ root = true
2
+
3
+ [*.{css,erb,js,json,rb,ruby,scss,sh,yml}]
4
+ indent_size = 2
5
+ indent_style = space
6
+ charset = utf-8
7
+ end_of_line = lf
8
+ insert_final_newline = true
9
+ trim_trailing_whitespace = true
data/.gitignore ADDED
@@ -0,0 +1,18 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .coverage
6
+ .yardoc
7
+ Gemfile.lock
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
18
+ bin
data/.rubocop.yml ADDED
@@ -0,0 +1,16 @@
1
+ require:
2
+ - rubocop-rake
3
+ - rubocop-rspec
4
+
5
+ AllCops:
6
+ TargetRubyVersion: 2.5
7
+ NewCops: enable
8
+
9
+ Metrics/BlockLength:
10
+ IgnoredMethods: ['describe']
11
+
12
+ Style/Documentation:
13
+ Enabled: false
14
+
15
+ Style/RegexpLiteral:
16
+ Enabled: false
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 2.7.2
data/Gemfile ADDED
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ source 'https://rubygems.org'
4
+
5
+ ruby RUBY_VERSION
6
+
7
+ gemspec
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2021 Jeremy Wilkins
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.gmi ADDED
@@ -0,0 +1,34 @@
1
+ # Jekyll Gemtext
2
+
3
+ Gemtext convertor for the Jekyll static site generator
4
+ Supports `*.gmi`, `*.gmni` and `*.gemini` files
5
+
6
+ ## Installation
7
+
8
+ Add the gem to your Gemfile
9
+
10
+ ```ruby
11
+ # Gemfile
12
+
13
+ gem 'jekyll-gemtext'
14
+ ```
15
+
16
+ Then install the gems,
17
+
18
+ ```bash
19
+ bundle install
20
+ ```
21
+
22
+ Then you can create `*.gmi` posts in `_posts`, and `bundle exec jekyll build` to convert to HTML
23
+
24
+ ## FAQ
25
+
26
+ Q: Why use Gemtext over Markdown
27
+ A: If you're also publishing to Gemini, it allows you to use the same Gemtext files for your static website and you Gemini capsule
28
+
29
+ ## Links
30
+
31
+ => https://gemini.circumlunar.space/docs/gemtext.gmi Gemtext docs
32
+ => https://gemini.circumlunar.space/ About Gemini
33
+
34
+
data/Rakefile ADDED
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rubygems'
4
+ require 'bundler/gem_tasks'
5
+ require 'rspec/core/rake_task'
6
+ require 'yard'
7
+ require 'rubocop/rake_task'
8
+
9
+ RuboCop::RakeTask.new
10
+
11
+ desc 'Run all examples'
12
+ RSpec::Core::RakeTask.new(:spec) do |t|
13
+ t.rspec_opts = %w[--color]
14
+ end
15
+
16
+ YARD::Rake::YardocTask.new do |t|
17
+ t.files = ['lib/**/*.rb']
18
+ end
19
+
20
+ task default: :spec
@@ -0,0 +1,36 @@
1
+ # frozen_string_literal: true
2
+
3
+ lib = File.expand_path('lib', __dir__)
4
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
+
6
+ Gem::Specification.new do |gem|
7
+ gem.name = 'jekyll-gemtext'
8
+ gem.version = '0.1.0'
9
+ gem.summary = 'Gemtext extension for the Jekyll static site generator'
10
+ gem.description = <<~DESCRIPTION
11
+ Use Gemtext source files (*.gmi and *.gemini) files in the Jekyll static site generator
12
+ DESCRIPTION
13
+ gem.authors = ['Jeremy Wilkins']
14
+ gem.email = ['jeb@jdwilkins.co.uk']
15
+ gem.homepage = 'https://github.com/jebw/jekyll-gemtext'
16
+ gem.license = 'MIT'
17
+
18
+ gem.files = `git ls-files`.split($INPUT_RECORD_SEPARATOR)
19
+ gem.executables = gem.files.grep(%r{^bin/}).map { |f| File.basename(f) }
20
+ gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
21
+ gem.require_paths = %w[lib]
22
+ gem.required_ruby_version = '>= 2.5.0'
23
+
24
+ gem.add_dependency 'gmi2html', '~> 0.1'
25
+
26
+ gem.add_development_dependency 'bundler', '~> 2.2'
27
+ gem.add_development_dependency 'byebug', '~> 11.1'
28
+ gem.add_development_dependency "jekyll", ">= 3.7", "< 5.0"
29
+ gem.add_development_dependency 'rake', '~> 13.0'
30
+ gem.add_development_dependency 'rspec', '~> 3.10'
31
+ gem.add_development_dependency 'rubocop', '~> 1.23'
32
+ gem.add_development_dependency 'rubocop-rake', '~> 0.6'
33
+ gem.add_development_dependency 'rubocop-rspec', '~> 2.6'
34
+ gem.add_development_dependency 'simplecov', '~> 0.21'
35
+ gem.add_development_dependency 'yard', '~> 0.9.26'
36
+ end
@@ -0,0 +1,3 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'jekyll_gemtext'
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'gmi2html'
4
+
5
+ class JekyllGemtext < Jekyll::Converter
6
+ def matches(ext)
7
+ extname_list.include?(ext.downcase)
8
+ end
9
+
10
+ def output_ext(_ext)
11
+ '.html'
12
+ end
13
+
14
+ def extname_list
15
+ %w[.gemini .gmni .gmi]
16
+ end
17
+
18
+ def convert(content)
19
+ ::Gmi2html::Document.new(content).to_html
20
+ end
21
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ RSpec.describe JekyllGemtext do
6
+ describe '#convert' do
7
+ subject { described_class.new.convert gemtext }
8
+
9
+ let(:gemtext) { "# Title\nParagraph content" }
10
+ let(:html) { "<h1>Title</h1>\n<p>Paragraph content</p>\n" }
11
+
12
+ it { is_expected.to eq html }
13
+ end
14
+ end
@@ -0,0 +1,38 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'simplecov'
4
+ SimpleCov.start do
5
+ add_filter '/spec/'
6
+ end
7
+
8
+ require 'jekyll'
9
+ require 'jekyll-gemtext'
10
+
11
+ Jekyll.logger.log_level = :info
12
+
13
+ RSpec.configure do |config|
14
+ config.run_all_when_everything_filtered = true
15
+ config.filter_run :focus
16
+ config.order = :random
17
+ Kernel.srand config.seed
18
+ config.disable_monkey_patching!
19
+ config.raise_errors_for_deprecations!
20
+
21
+ if config.files_to_run.one?
22
+ # Use the documentation formatter for detailed output,
23
+ # unless a formatter has already been configured
24
+ # (e.g. via a command-line flag).
25
+ config.default_formatter = 'doc'
26
+ end
27
+
28
+ def capture_stdout(level = :debug)
29
+ buffer = StringIO.new
30
+ Jekyll.logger = Logger.new(buffer)
31
+ Jekyll.logger.log_level = level
32
+ result = yield
33
+ buffer.rewind
34
+ [result, buffer.string.to_s]
35
+ ensure
36
+ Jekyll.logger = Logger.new(StringIO.new, :error)
37
+ end
38
+ end
metadata ADDED
@@ -0,0 +1,221 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: jekyll-gemtext
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Jeremy Wilkins
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2021-11-28 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: gmi2html
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '0.1'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '0.1'
27
+ - !ruby/object:Gem::Dependency
28
+ name: bundler
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '2.2'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '2.2'
41
+ - !ruby/object:Gem::Dependency
42
+ name: byebug
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '11.1'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '11.1'
55
+ - !ruby/object:Gem::Dependency
56
+ name: jekyll
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '3.7'
62
+ - - "<"
63
+ - !ruby/object:Gem::Version
64
+ version: '5.0'
65
+ type: :development
66
+ prerelease: false
67
+ version_requirements: !ruby/object:Gem::Requirement
68
+ requirements:
69
+ - - ">="
70
+ - !ruby/object:Gem::Version
71
+ version: '3.7'
72
+ - - "<"
73
+ - !ruby/object:Gem::Version
74
+ version: '5.0'
75
+ - !ruby/object:Gem::Dependency
76
+ name: rake
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: '13.0'
82
+ type: :development
83
+ prerelease: false
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - "~>"
87
+ - !ruby/object:Gem::Version
88
+ version: '13.0'
89
+ - !ruby/object:Gem::Dependency
90
+ name: rspec
91
+ requirement: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - "~>"
94
+ - !ruby/object:Gem::Version
95
+ version: '3.10'
96
+ type: :development
97
+ prerelease: false
98
+ version_requirements: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - "~>"
101
+ - !ruby/object:Gem::Version
102
+ version: '3.10'
103
+ - !ruby/object:Gem::Dependency
104
+ name: rubocop
105
+ requirement: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - "~>"
108
+ - !ruby/object:Gem::Version
109
+ version: '1.23'
110
+ type: :development
111
+ prerelease: false
112
+ version_requirements: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - "~>"
115
+ - !ruby/object:Gem::Version
116
+ version: '1.23'
117
+ - !ruby/object:Gem::Dependency
118
+ name: rubocop-rake
119
+ requirement: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - "~>"
122
+ - !ruby/object:Gem::Version
123
+ version: '0.6'
124
+ type: :development
125
+ prerelease: false
126
+ version_requirements: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - "~>"
129
+ - !ruby/object:Gem::Version
130
+ version: '0.6'
131
+ - !ruby/object:Gem::Dependency
132
+ name: rubocop-rspec
133
+ requirement: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - "~>"
136
+ - !ruby/object:Gem::Version
137
+ version: '2.6'
138
+ type: :development
139
+ prerelease: false
140
+ version_requirements: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - "~>"
143
+ - !ruby/object:Gem::Version
144
+ version: '2.6'
145
+ - !ruby/object:Gem::Dependency
146
+ name: simplecov
147
+ requirement: !ruby/object:Gem::Requirement
148
+ requirements:
149
+ - - "~>"
150
+ - !ruby/object:Gem::Version
151
+ version: '0.21'
152
+ type: :development
153
+ prerelease: false
154
+ version_requirements: !ruby/object:Gem::Requirement
155
+ requirements:
156
+ - - "~>"
157
+ - !ruby/object:Gem::Version
158
+ version: '0.21'
159
+ - !ruby/object:Gem::Dependency
160
+ name: yard
161
+ requirement: !ruby/object:Gem::Requirement
162
+ requirements:
163
+ - - "~>"
164
+ - !ruby/object:Gem::Version
165
+ version: 0.9.26
166
+ type: :development
167
+ prerelease: false
168
+ version_requirements: !ruby/object:Gem::Requirement
169
+ requirements:
170
+ - - "~>"
171
+ - !ruby/object:Gem::Version
172
+ version: 0.9.26
173
+ description: 'Use Gemtext source files (*.gmi and *.gemini) files in the Jekyll static
174
+ site generator
175
+
176
+ '
177
+ email:
178
+ - jeb@jdwilkins.co.uk
179
+ executables: []
180
+ extensions: []
181
+ extra_rdoc_files: []
182
+ files:
183
+ - ".editorconfig"
184
+ - ".gitignore"
185
+ - ".rubocop.yml"
186
+ - ".ruby-version"
187
+ - Gemfile
188
+ - LICENSE.txt
189
+ - README.gmi
190
+ - Rakefile
191
+ - jekyll-gemtext.gemspec
192
+ - lib/jekyll-gemtext.rb
193
+ - lib/jekyll_gemtext.rb
194
+ - spec/jekyll_gemtext_spec.rb
195
+ - spec/spec_helper.rb
196
+ homepage: https://github.com/jebw/jekyll-gemtext
197
+ licenses:
198
+ - MIT
199
+ metadata: {}
200
+ post_install_message:
201
+ rdoc_options: []
202
+ require_paths:
203
+ - lib
204
+ required_ruby_version: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - ">="
207
+ - !ruby/object:Gem::Version
208
+ version: 2.5.0
209
+ required_rubygems_version: !ruby/object:Gem::Requirement
210
+ requirements:
211
+ - - ">="
212
+ - !ruby/object:Gem::Version
213
+ version: '0'
214
+ requirements: []
215
+ rubygems_version: 3.1.4
216
+ signing_key:
217
+ specification_version: 4
218
+ summary: Gemtext extension for the Jekyll static site generator
219
+ test_files:
220
+ - spec/jekyll_gemtext_spec.rb
221
+ - spec/spec_helper.rb