perron 0.18.0 → 1.1.0
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 +4 -4
- data/Gemfile.lock +11 -15
- data/app/controllers/perron/concierge_controller.rb +16 -0
- data/app/helpers/perron/markdown_helper.rb +3 -2
- data/app/helpers/perron/meta_tags_helper.rb +3 -9
- data/app/helpers/perron/paginate_helper.rb +40 -0
- data/app/views/perron/concierge/show.html.erb +271 -0
- data/lib/generators/rails/content/USAGE +21 -4
- data/lib/generators/rails/content/content_generator.rb +16 -12
- data/lib/generators/rails/content/templates/controller.rb.tt +6 -0
- data/lib/generators/rails/content/templates/model.rb.tt +1 -1
- data/lib/perron/assets/icon.png +0 -0
- data/lib/perron/assets/icon.svg +1 -0
- data/lib/perron/collection.rb +2 -1
- data/lib/perron/configuration.rb +27 -2
- data/lib/perron/data_source/class_methods.rb +8 -0
- data/lib/perron/data_source.rb +20 -33
- data/lib/perron/development_feed_server.rb +69 -0
- data/lib/perron/engine.rb +32 -1
- data/lib/perron/errors.rb +2 -0
- data/lib/perron/feeds.rb +4 -3
- data/lib/perron/html_processor/absolute_urls.rb +27 -0
- data/lib/perron/html_processor/base.rb +2 -2
- data/lib/perron/html_processor.rb +7 -11
- data/lib/{generators/perron/templates → perron/install}/README.md.tt +7 -9
- data/lib/perron/install/deploy.yml +15 -0
- data/lib/perron/install.rb +26 -0
- data/lib/perron/markdown.rb +2 -2
- data/lib/perron/output_server.rb +9 -0
- data/lib/perron/paginate.rb +58 -0
- data/lib/perron/relation.rb +24 -6
- data/lib/perron/resource/adjacency.rb +70 -0
- data/lib/perron/resource/associations.rb +1 -1
- data/lib/perron/resource/class_methods.rb +6 -0
- data/lib/perron/resource/configuration.rb +12 -4
- data/lib/perron/resource/metadata.rb +19 -4
- data/lib/perron/resource/publishable.rb +2 -0
- data/lib/perron/resource/related.rb +32 -31
- data/lib/perron/resource/sourceable.rb +98 -16
- data/lib/perron/resource.rb +8 -0
- data/lib/perron/site/builder/assets.rb +1 -1
- data/lib/perron/site/builder/feeds/atom.erb +44 -0
- data/lib/perron/site/builder/feeds/atom.rb +41 -0
- data/lib/perron/site/builder/feeds/json.erb +19 -0
- data/lib/perron/site/builder/feeds/json.rb +7 -33
- data/lib/perron/site/builder/feeds/rss.erb +28 -0
- data/lib/perron/site/builder/feeds/rss.rb +6 -28
- data/lib/perron/site/builder/feeds/template.rb +63 -0
- data/lib/perron/site/builder/feeds.rb +8 -3
- data/lib/perron/site/builder/page.rb +19 -4
- data/lib/perron/site/builder/paths.rb +75 -13
- data/lib/perron/site/builder/route_resources.rb +79 -0
- data/lib/perron/site/builder/sitemap.rb +71 -20
- data/lib/perron/site/builder.rb +25 -1
- data/lib/perron/site/validate.rb +19 -7
- data/lib/perron/site.rb +7 -0
- data/lib/perron/tasks/build.rake +6 -7
- data/lib/perron/tasks/deploy.rake +58 -0
- data/lib/perron/tasks/install.rake +12 -0
- data/lib/perron/version.rb +1 -1
- data/lib/perron.rb +1 -0
- data/perron.gemspec +1 -1
- metadata +25 -8
- data/lib/generators/perron/install_generator.rb +0 -32
- data/lib/perron/html_processor/syntax_highlight.rb +0 -32
- /data/lib/{generators/perron/templates → perron/install}/initializer.rb.tt +0 -0
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
namespace :perron do
|
|
2
|
+
desc "Deploy static site using Beam Up"
|
|
3
|
+
task deploy: :environment do
|
|
4
|
+
begin
|
|
5
|
+
require "beam_up"
|
|
6
|
+
rescue LoadError
|
|
7
|
+
raise LoadError, <<~MSG
|
|
8
|
+
Beam Up is required for the deploy task to run.
|
|
9
|
+
|
|
10
|
+
Add it to your Gemfile:
|
|
11
|
+
gem "beam_up"
|
|
12
|
+
|
|
13
|
+
Read more: https://perron.railsdesigner.com/docs/deploy/
|
|
14
|
+
MSG
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
config = Rails.root.join("config/deploy.yml")
|
|
18
|
+
|
|
19
|
+
unless config.exist?
|
|
20
|
+
template = File.expand_path("../install/deploy.yml", __dir__)
|
|
21
|
+
FileUtils.cp(template, config)
|
|
22
|
+
|
|
23
|
+
puts "Created config/deploy.yml"
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
beamed = BeamUp.with_progress do
|
|
27
|
+
BeamUp.deploy!(
|
|
28
|
+
Perron.configuration.output,
|
|
29
|
+
config_file: "config/deploy.yml"
|
|
30
|
+
)
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
puts beamed.message
|
|
34
|
+
puts "Deploy ID: #{beamed.deploy_id}" if beamed.deploy_id
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
namespace :deploy do
|
|
38
|
+
desc "Initialize deploy configuration with Beam Up"
|
|
39
|
+
task :init, [:provider] do |task, arguments|
|
|
40
|
+
begin
|
|
41
|
+
require "beam_up"
|
|
42
|
+
rescue LoadError
|
|
43
|
+
raise LoadError, <<~MSG
|
|
44
|
+
Beam Up is required for the deploy task to run.
|
|
45
|
+
|
|
46
|
+
Add it to your Gemfile:
|
|
47
|
+
gem "beam_up"
|
|
48
|
+
|
|
49
|
+
See for more: https://perron.railsdesigner.com/docs/deploy/
|
|
50
|
+
MSG
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
path = BeamUp.init!(arguments[:provider], config_file: "config/deploy.yml")
|
|
54
|
+
|
|
55
|
+
puts "Configured Beam Up in #{path}"
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
end
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
namespace :perron do
|
|
2
|
+
desc "Setup Perron"
|
|
3
|
+
task :install do
|
|
4
|
+
previous_location = ENV["LOCATION"]
|
|
5
|
+
|
|
6
|
+
ENV["LOCATION"] = File.expand_path("../install.rb", __dir__)
|
|
7
|
+
|
|
8
|
+
Rake::Task["app:template"].invoke
|
|
9
|
+
|
|
10
|
+
ENV["LOCATION"] = previous_location
|
|
11
|
+
end
|
|
12
|
+
end
|
data/lib/perron/version.rb
CHANGED
data/lib/perron.rb
CHANGED
data/perron.gemspec
CHANGED
|
@@ -19,7 +19,7 @@ Gem::Specification.new do |spec|
|
|
|
19
19
|
spec.required_ruby_version = ">= 3.4.0"
|
|
20
20
|
|
|
21
21
|
spec.add_dependency "rails", ">= 7.2.0"
|
|
22
|
-
spec.add_dependency "mata", "~> 0.
|
|
22
|
+
spec.add_dependency "mata", "~> 0.10.0"
|
|
23
23
|
|
|
24
24
|
spec.add_runtime_dependency "csv"
|
|
25
25
|
spec.add_runtime_dependency "json"
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: perron
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 1.1.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Rails Designer Developers
|
|
@@ -29,14 +29,14 @@ dependencies:
|
|
|
29
29
|
requirements:
|
|
30
30
|
- - "~>"
|
|
31
31
|
- !ruby/object:Gem::Version
|
|
32
|
-
version: 0.
|
|
32
|
+
version: 0.10.0
|
|
33
33
|
type: :runtime
|
|
34
34
|
prerelease: false
|
|
35
35
|
version_requirements: !ruby/object:Gem::Requirement
|
|
36
36
|
requirements:
|
|
37
37
|
- - "~>"
|
|
38
38
|
- !ruby/object:Gem::Version
|
|
39
|
-
version: 0.
|
|
39
|
+
version: 0.10.0
|
|
40
40
|
- !ruby/object:Gem::Dependency
|
|
41
41
|
name: csv
|
|
42
42
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -92,18 +92,18 @@ files:
|
|
|
92
92
|
- Gemfile.lock
|
|
93
93
|
- README.md
|
|
94
94
|
- Rakefile
|
|
95
|
+
- app/controllers/perron/concierge_controller.rb
|
|
95
96
|
- app/controllers/perron/searches_controller.rb
|
|
96
97
|
- app/helpers/perron/erb_helper.rb
|
|
97
98
|
- app/helpers/perron/feeds_helper.rb
|
|
98
99
|
- app/helpers/perron/markdown_helper.rb
|
|
99
100
|
- app/helpers/perron/meta_tags_helper.rb
|
|
101
|
+
- app/helpers/perron/paginate_helper.rb
|
|
102
|
+
- app/views/perron/concierge/show.html.erb
|
|
100
103
|
- bin/console
|
|
101
104
|
- bin/rails
|
|
102
105
|
- bin/release
|
|
103
106
|
- bin/setup
|
|
104
|
-
- lib/generators/perron/install_generator.rb
|
|
105
|
-
- lib/generators/perron/templates/README.md.tt
|
|
106
|
-
- lib/generators/perron/templates/initializer.rb.tt
|
|
107
107
|
- lib/generators/rails/content/USAGE
|
|
108
108
|
- lib/generators/rails/content/content_generator.rb
|
|
109
109
|
- lib/generators/rails/content/templates/controller.rb.tt
|
|
@@ -112,6 +112,8 @@ files:
|
|
|
112
112
|
- lib/generators/rails/content/templates/root.erb.tt
|
|
113
113
|
- lib/generators/rails/content/templates/show.html.erb.tt
|
|
114
114
|
- lib/perron.rb
|
|
115
|
+
- lib/perron/assets/icon.png
|
|
116
|
+
- lib/perron/assets/icon.svg
|
|
115
117
|
- lib/perron/collection.rb
|
|
116
118
|
- lib/perron/configuration.rb
|
|
117
119
|
- lib/perron/content/data.rb
|
|
@@ -121,20 +123,27 @@ files:
|
|
|
121
123
|
- lib/perron/data_source/item.rb
|
|
122
124
|
- lib/perron/data_source/proxy.rb
|
|
123
125
|
- lib/perron/deprecator.rb
|
|
126
|
+
- lib/perron/development_feed_server.rb
|
|
124
127
|
- lib/perron/engine.rb
|
|
125
128
|
- lib/perron/errors.rb
|
|
126
129
|
- lib/perron/feeds.rb
|
|
127
130
|
- lib/perron/html_processor.rb
|
|
131
|
+
- lib/perron/html_processor/absolute_urls.rb
|
|
128
132
|
- lib/perron/html_processor/base.rb
|
|
129
133
|
- lib/perron/html_processor/lazy_load_images.rb
|
|
130
|
-
- lib/perron/html_processor/syntax_highlight.rb
|
|
131
134
|
- lib/perron/html_processor/target_blank.rb
|
|
135
|
+
- lib/perron/install.rb
|
|
136
|
+
- lib/perron/install/README.md.tt
|
|
137
|
+
- lib/perron/install/deploy.yml
|
|
138
|
+
- lib/perron/install/initializer.rb.tt
|
|
132
139
|
- lib/perron/markdown.rb
|
|
133
140
|
- lib/perron/metatags.rb
|
|
134
141
|
- lib/perron/output_server.rb
|
|
142
|
+
- lib/perron/paginate.rb
|
|
135
143
|
- lib/perron/refinements/delete_suffixes.rb
|
|
136
144
|
- lib/perron/relation.rb
|
|
137
145
|
- lib/perron/resource.rb
|
|
146
|
+
- lib/perron/resource/adjacency.rb
|
|
138
147
|
- lib/perron/resource/associations.rb
|
|
139
148
|
- lib/perron/resource/class_methods.rb
|
|
140
149
|
- lib/perron/resource/configuration.rb
|
|
@@ -158,16 +167,24 @@ files:
|
|
|
158
167
|
- lib/perron/site/builder/additional_routes.rb
|
|
159
168
|
- lib/perron/site/builder/assets.rb
|
|
160
169
|
- lib/perron/site/builder/feeds.rb
|
|
170
|
+
- lib/perron/site/builder/feeds/atom.erb
|
|
171
|
+
- lib/perron/site/builder/feeds/atom.rb
|
|
161
172
|
- lib/perron/site/builder/feeds/author.rb
|
|
173
|
+
- lib/perron/site/builder/feeds/json.erb
|
|
162
174
|
- lib/perron/site/builder/feeds/json.rb
|
|
175
|
+
- lib/perron/site/builder/feeds/rss.erb
|
|
163
176
|
- lib/perron/site/builder/feeds/rss.rb
|
|
177
|
+
- lib/perron/site/builder/feeds/template.rb
|
|
164
178
|
- lib/perron/site/builder/page.rb
|
|
165
179
|
- lib/perron/site/builder/paths.rb
|
|
166
180
|
- lib/perron/site/builder/public_files.rb
|
|
181
|
+
- lib/perron/site/builder/route_resources.rb
|
|
167
182
|
- lib/perron/site/builder/sitemap.rb
|
|
168
183
|
- lib/perron/site/validate.rb
|
|
169
184
|
- lib/perron/tasks/build.rake
|
|
170
185
|
- lib/perron/tasks/clobber.rake
|
|
186
|
+
- lib/perron/tasks/deploy.rake
|
|
187
|
+
- lib/perron/tasks/install.rake
|
|
171
188
|
- lib/perron/tasks/sync_sources.rake
|
|
172
189
|
- lib/perron/tasks/validate.rake
|
|
173
190
|
- lib/perron/version.rb
|
|
@@ -192,7 +209,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
192
209
|
- !ruby/object:Gem::Version
|
|
193
210
|
version: '0'
|
|
194
211
|
requirements: []
|
|
195
|
-
rubygems_version: 4.0.
|
|
212
|
+
rubygems_version: 4.0.14
|
|
196
213
|
specification_version: 4
|
|
197
214
|
summary: Rails-based static site generator
|
|
198
215
|
test_files: []
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Perron
|
|
4
|
-
class InstallGenerator < Rails::Generators::Base
|
|
5
|
-
source_root File.expand_path("templates", __dir__)
|
|
6
|
-
|
|
7
|
-
desc "Install Perron in your Rails app"
|
|
8
|
-
|
|
9
|
-
def copy_initializer
|
|
10
|
-
template "initializer.rb.tt", "config/initializers/perron.rb"
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
def create_data_directory
|
|
14
|
-
template "README.md.tt", "app/content/data/README.md"
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
def add_markdown_gems
|
|
18
|
-
append_to_file "Gemfile", <<~RUBY
|
|
19
|
-
|
|
20
|
-
# Perron supports Markdown rendering using one of the following gems.
|
|
21
|
-
# Uncomment your preferred choice and run `bundle install`
|
|
22
|
-
# gem "commonmarker"
|
|
23
|
-
# gem "kramdown"
|
|
24
|
-
# gem "redcarpet"
|
|
25
|
-
RUBY
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
def gitignore_output_folder
|
|
29
|
-
append_to_file ".gitignore", "/#{Perron.configuration.output}/\n"
|
|
30
|
-
end
|
|
31
|
-
end
|
|
32
|
-
end
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require "rouge"
|
|
4
|
-
require "perron/html_processor/base"
|
|
5
|
-
|
|
6
|
-
module Perron
|
|
7
|
-
class HtmlProcessor
|
|
8
|
-
class SyntaxHighlight < HtmlProcessor::Base
|
|
9
|
-
def process
|
|
10
|
-
Perron.deprecator.deprecation_warning(:syntax_highlight)
|
|
11
|
-
|
|
12
|
-
@html.css('pre > code[class*="language-"]').each do |code_block|
|
|
13
|
-
language = code_block[:class][/(?<=language-)\S+/]
|
|
14
|
-
|
|
15
|
-
next if language.blank?
|
|
16
|
-
|
|
17
|
-
code_block.parent.replace(
|
|
18
|
-
highlight(code_block.text, with: language)
|
|
19
|
-
)
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
private
|
|
24
|
-
|
|
25
|
-
def highlight(code_block, with:)
|
|
26
|
-
lexer = Rouge::Lexer.find(with) || Rouge::Lexers::PlainText.new
|
|
27
|
-
|
|
28
|
-
Rouge::Formatters::HTMLPygments.new(::Rouge::Formatters::HTML.new).format(lexer.lex(code_block))
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
end
|
|
32
|
-
end
|
|
File without changes
|