perron 0.18.0 → 1.0.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 +1 -1
- data/app/controllers/perron/concierge_controller.rb +13 -0
- data/app/helpers/perron/markdown_helper.rb +2 -2
- 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/configuration.rb +4 -0
- data/lib/perron/data_source/class_methods.rb +8 -0
- data/lib/perron/data_source.rb +14 -29
- data/lib/perron/development_feed_server.rb +69 -0
- data/lib/perron/engine.rb +29 -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.rb +23 -0
- data/lib/perron/markdown.rb +2 -2
- data/lib/perron/output_server.rb +9 -0
- data/lib/perron/resource/adjacency.rb +70 -0
- data/lib/perron/resource/associations.rb +1 -1
- data/lib/perron/resource/configuration.rb +9 -4
- data/lib/perron/resource/metadata.rb +10 -1
- data/lib/perron/resource/publishable.rb +2 -0
- data/lib/perron/resource/related.rb +32 -31
- data/lib/perron/resource/sourceable.rb +39 -9
- data/lib/perron/resource.rb +2 -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/paths.rb +58 -14
- 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 +1 -1
- data/lib/perron/site/validate.rb +1 -2
- data/lib/perron/site.rb +7 -0
- data/lib/perron/tasks/build.rake +6 -7
- data/lib/perron/tasks/install.rake +12 -0
- data/lib/perron/version.rb +1 -1
- metadata +18 -5
- 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
data/lib/perron/site/validate.rb
CHANGED
data/lib/perron/site.rb
CHANGED
|
@@ -23,6 +23,13 @@ module Perron
|
|
|
23
23
|
|
|
24
24
|
def collection(name) = Collection.new(name)
|
|
25
25
|
|
|
26
|
+
def find_collection(name)
|
|
27
|
+
collection_path = File.join(Perron.configuration.input, name)
|
|
28
|
+
return nil unless File.exist?(collection_path) && File.directory?(collection_path)
|
|
29
|
+
|
|
30
|
+
Collection.new(name)
|
|
31
|
+
end
|
|
32
|
+
|
|
26
33
|
def data(name = nil)
|
|
27
34
|
Perron.deprecator.deprecation_warning(:data, "Use Content::Data::ClassName instead, e.g. `Content::Data::Users.all`")
|
|
28
35
|
|
data/lib/perron/tasks/build.rake
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
namespace :perron do
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
puts "
|
|
2
|
+
desc "Generate static HTML files from Perron collections"
|
|
3
|
+
task build: :environment do
|
|
4
|
+
unless Rails.env.production?
|
|
5
|
+
puts "⚠️ Not running in production mode. Unpublished content will be included in the build."
|
|
6
|
+
puts " └─> Run in production mode using: RAILS_ENV=production bin/rails perron:build"
|
|
7
|
+
puts ""
|
|
6
8
|
end
|
|
7
|
-
end
|
|
8
9
|
|
|
9
|
-
desc "Generate static HTML files from Perron collections"
|
|
10
|
-
task build: [:set_production_env, :environment] do
|
|
11
10
|
Perron::Site.build
|
|
12
11
|
end
|
|
13
12
|
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
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: 0.
|
|
4
|
+
version: 1.0.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Rails Designer Developers
|
|
@@ -92,18 +92,17 @@ 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/views/perron/concierge/show.html.erb
|
|
100
102
|
- bin/console
|
|
101
103
|
- bin/rails
|
|
102
104
|
- bin/release
|
|
103
105
|
- 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
106
|
- lib/generators/rails/content/USAGE
|
|
108
107
|
- lib/generators/rails/content/content_generator.rb
|
|
109
108
|
- lib/generators/rails/content/templates/controller.rb.tt
|
|
@@ -112,6 +111,8 @@ files:
|
|
|
112
111
|
- lib/generators/rails/content/templates/root.erb.tt
|
|
113
112
|
- lib/generators/rails/content/templates/show.html.erb.tt
|
|
114
113
|
- lib/perron.rb
|
|
114
|
+
- lib/perron/assets/icon.png
|
|
115
|
+
- lib/perron/assets/icon.svg
|
|
115
116
|
- lib/perron/collection.rb
|
|
116
117
|
- lib/perron/configuration.rb
|
|
117
118
|
- lib/perron/content/data.rb
|
|
@@ -121,20 +122,25 @@ files:
|
|
|
121
122
|
- lib/perron/data_source/item.rb
|
|
122
123
|
- lib/perron/data_source/proxy.rb
|
|
123
124
|
- lib/perron/deprecator.rb
|
|
125
|
+
- lib/perron/development_feed_server.rb
|
|
124
126
|
- lib/perron/engine.rb
|
|
125
127
|
- lib/perron/errors.rb
|
|
126
128
|
- lib/perron/feeds.rb
|
|
127
129
|
- lib/perron/html_processor.rb
|
|
130
|
+
- lib/perron/html_processor/absolute_urls.rb
|
|
128
131
|
- lib/perron/html_processor/base.rb
|
|
129
132
|
- lib/perron/html_processor/lazy_load_images.rb
|
|
130
|
-
- lib/perron/html_processor/syntax_highlight.rb
|
|
131
133
|
- lib/perron/html_processor/target_blank.rb
|
|
134
|
+
- lib/perron/install.rb
|
|
135
|
+
- lib/perron/install/README.md.tt
|
|
136
|
+
- lib/perron/install/initializer.rb.tt
|
|
132
137
|
- lib/perron/markdown.rb
|
|
133
138
|
- lib/perron/metatags.rb
|
|
134
139
|
- lib/perron/output_server.rb
|
|
135
140
|
- lib/perron/refinements/delete_suffixes.rb
|
|
136
141
|
- lib/perron/relation.rb
|
|
137
142
|
- lib/perron/resource.rb
|
|
143
|
+
- lib/perron/resource/adjacency.rb
|
|
138
144
|
- lib/perron/resource/associations.rb
|
|
139
145
|
- lib/perron/resource/class_methods.rb
|
|
140
146
|
- lib/perron/resource/configuration.rb
|
|
@@ -158,16 +164,23 @@ files:
|
|
|
158
164
|
- lib/perron/site/builder/additional_routes.rb
|
|
159
165
|
- lib/perron/site/builder/assets.rb
|
|
160
166
|
- lib/perron/site/builder/feeds.rb
|
|
167
|
+
- lib/perron/site/builder/feeds/atom.erb
|
|
168
|
+
- lib/perron/site/builder/feeds/atom.rb
|
|
161
169
|
- lib/perron/site/builder/feeds/author.rb
|
|
170
|
+
- lib/perron/site/builder/feeds/json.erb
|
|
162
171
|
- lib/perron/site/builder/feeds/json.rb
|
|
172
|
+
- lib/perron/site/builder/feeds/rss.erb
|
|
163
173
|
- lib/perron/site/builder/feeds/rss.rb
|
|
174
|
+
- lib/perron/site/builder/feeds/template.rb
|
|
164
175
|
- lib/perron/site/builder/page.rb
|
|
165
176
|
- lib/perron/site/builder/paths.rb
|
|
166
177
|
- lib/perron/site/builder/public_files.rb
|
|
178
|
+
- lib/perron/site/builder/route_resources.rb
|
|
167
179
|
- lib/perron/site/builder/sitemap.rb
|
|
168
180
|
- lib/perron/site/validate.rb
|
|
169
181
|
- lib/perron/tasks/build.rake
|
|
170
182
|
- lib/perron/tasks/clobber.rake
|
|
183
|
+
- lib/perron/tasks/install.rake
|
|
171
184
|
- lib/perron/tasks/sync_sources.rake
|
|
172
185
|
- lib/perron/tasks/validate.rake
|
|
173
186
|
- lib/perron/version.rb
|
|
@@ -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
|