rails_site_engine 0.6.2
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 +7 -0
- data/MIT-LICENSE +20 -0
- data/README.md +137 -0
- data/Rakefile +6 -0
- data/app/assets/stylesheets/rails_site_engine/application.css +15 -0
- data/app/assets/stylesheets/rails_site_engine/engine.css +2 -0
- data/app/assets/stylesheets/rails_site_engine/engine.tailwind.css +5 -0
- data/app/controllers/rails_site_engine/application_controller.rb +27 -0
- data/app/controllers/rails_site_engine/contacts_controller.rb +35 -0
- data/app/controllers/rails_site_engine/meta_controller.rb +20 -0
- data/app/controllers/rails_site_engine/pages_controller.rb +18 -0
- data/app/helpers/rails_site_engine/application_helper.rb +266 -0
- data/app/javascript/controllers/rails_site_engine/color_mode_controller.js +83 -0
- data/app/javascript/controllers/rails_site_engine/form_submit_controller.js +22 -0
- data/app/javascript/controllers/rails_site_engine/mobile_nav_controller.js +45 -0
- data/app/javascript/rails_site_engine/application.js +8 -0
- data/app/jobs/rails_site_engine/application_job.rb +4 -0
- data/app/mailers/rails_site_engine/application_mailer.rb +6 -0
- data/app/mailers/rails_site_engine/contact_mailer.rb +25 -0
- data/app/models/rails_site_engine/application_record.rb +5 -0
- data/app/models/rails_site_engine/contact_message.rb +16 -0
- data/app/views/layouts/mailer.html.erb +13 -0
- data/app/views/layouts/mailer.text.erb +1 -0
- data/app/views/layouts/rails_site_engine/application.html.erb +54 -0
- data/app/views/rails_site_engine/contact_mailer/notify.text.erb +9 -0
- data/app/views/rails_site_engine/contacts/new.html.erb +1 -0
- data/app/views/rails_site_engine/pages/show.html.erb +15 -0
- data/app/views/rails_site_engine/sections/_contact_form.html.erb +112 -0
- data/app/views/rails_site_engine/sections/_cta_band.html.erb +27 -0
- data/app/views/rails_site_engine/sections/_faq.html.erb +29 -0
- data/app/views/rails_site_engine/sections/_feature_cards.html.erb +30 -0
- data/app/views/rails_site_engine/sections/_hero.html.erb +39 -0
- data/app/views/rails_site_engine/sections/_pricing_cards.html.erb +53 -0
- data/app/views/rails_site_engine/sections/_process_steps.html.erb +35 -0
- data/app/views/rails_site_engine/sections/_project_cards.html.erb +48 -0
- data/app/views/rails_site_engine/sections/_proof_strip.html.erb +16 -0
- data/app/views/rails_site_engine/sections/_rich_text.html.erb +15 -0
- data/app/views/rails_site_engine/sections/_stats.html.erb +34 -0
- data/app/views/rails_site_engine/sections/_testimonials.html.erb +40 -0
- data/app/views/rails_site_engine/sections/_unknown.html.erb +6 -0
- data/app/views/rails_site_engine/shared/_flash.html.erb +18 -0
- data/app/views/rails_site_engine/shared/_footer.html.erb +41 -0
- data/app/views/rails_site_engine/shared/_navbar.html.erb +118 -0
- data/config/importmap.rb +5 -0
- data/config/locales/en.yml +27 -0
- data/config/routes.rb +9 -0
- data/config/site_profiles.yml +23 -0
- data/lib/generators/rails_site_engine/install/install_generator.rb +454 -0
- data/lib/generators/rails_site_engine/install/templates/config/theme.yml +3 -0
- data/lib/generators/rails_site_engine/install/templates/content/pages/about.md +12 -0
- data/lib/generators/rails_site_engine/install/templates/content/pages/contact.md +13 -0
- data/lib/generators/rails_site_engine/install/templates/content/pages/home.md +39 -0
- data/lib/generators/rails_site_engine/install/templates/content/pages/privacy.md +43 -0
- data/lib/generators/rails_site_engine/install/templates/content/pages/services.md +25 -0
- data/lib/generators/rails_site_engine/install/templates/content/site.yml +36 -0
- data/lib/generators/rails_site_engine/install/templates/site_profiles/home-services-carpentry/config/theme.yml +3 -0
- data/lib/generators/rails_site_engine/install/templates/site_profiles/home-services-carpentry/content/pages/about.md +14 -0
- data/lib/generators/rails_site_engine/install/templates/site_profiles/home-services-carpentry/content/pages/contact.md +12 -0
- data/lib/generators/rails_site_engine/install/templates/site_profiles/home-services-carpentry/content/pages/home.md +55 -0
- data/lib/generators/rails_site_engine/install/templates/site_profiles/home-services-carpentry/content/pages/privacy.md +43 -0
- data/lib/generators/rails_site_engine/install/templates/site_profiles/home-services-carpentry/content/pages/services.md +29 -0
- data/lib/generators/rails_site_engine/install/templates/site_profiles/home-services-carpentry/content/site.yml +36 -0
- data/lib/generators/rails_site_engine/install/templates/site_profiles/home-services-electrician/config/theme.yml +3 -0
- data/lib/generators/rails_site_engine/install/templates/site_profiles/home-services-electrician/content/pages/about.md +14 -0
- data/lib/generators/rails_site_engine/install/templates/site_profiles/home-services-electrician/content/pages/contact.md +12 -0
- data/lib/generators/rails_site_engine/install/templates/site_profiles/home-services-electrician/content/pages/home.md +55 -0
- data/lib/generators/rails_site_engine/install/templates/site_profiles/home-services-electrician/content/pages/privacy.md +43 -0
- data/lib/generators/rails_site_engine/install/templates/site_profiles/home-services-electrician/content/pages/services.md +29 -0
- data/lib/generators/rails_site_engine/install/templates/site_profiles/home-services-electrician/content/site.yml +36 -0
- data/lib/generators/rails_site_engine/install/templates/site_profiles/home-services-general/config/theme.yml +3 -0
- data/lib/generators/rails_site_engine/install/templates/site_profiles/home-services-general/content/pages/about.md +14 -0
- data/lib/generators/rails_site_engine/install/templates/site_profiles/home-services-general/content/pages/contact.md +12 -0
- data/lib/generators/rails_site_engine/install/templates/site_profiles/home-services-general/content/pages/home.md +55 -0
- data/lib/generators/rails_site_engine/install/templates/site_profiles/home-services-general/content/pages/privacy.md +43 -0
- data/lib/generators/rails_site_engine/install/templates/site_profiles/home-services-general/content/pages/services.md +29 -0
- data/lib/generators/rails_site_engine/install/templates/site_profiles/home-services-general/content/site.yml +36 -0
- data/lib/generators/rails_site_engine/install/templates/site_profiles/home-services-plumbing/config/theme.yml +3 -0
- data/lib/generators/rails_site_engine/install/templates/site_profiles/home-services-plumbing/content/pages/about.md +14 -0
- data/lib/generators/rails_site_engine/install/templates/site_profiles/home-services-plumbing/content/pages/contact.md +12 -0
- data/lib/generators/rails_site_engine/install/templates/site_profiles/home-services-plumbing/content/pages/home.md +55 -0
- data/lib/generators/rails_site_engine/install/templates/site_profiles/home-services-plumbing/content/pages/privacy.md +43 -0
- data/lib/generators/rails_site_engine/install/templates/site_profiles/home-services-plumbing/content/pages/services.md +29 -0
- data/lib/generators/rails_site_engine/install/templates/site_profiles/home-services-plumbing/content/site.yml +36 -0
- data/lib/generators/rails_site_engine/install/templates/site_profiles/portfolio/config/theme.yml +3 -0
- data/lib/generators/rails_site_engine/install/templates/site_profiles/portfolio/content/pages/about.md +26 -0
- data/lib/generators/rails_site_engine/install/templates/site_profiles/portfolio/content/pages/contact.md +12 -0
- data/lib/generators/rails_site_engine/install/templates/site_profiles/portfolio/content/pages/home.md +43 -0
- data/lib/generators/rails_site_engine/install/templates/site_profiles/portfolio/content/pages/privacy.md +43 -0
- data/lib/generators/rails_site_engine/install/templates/site_profiles/portfolio/content/pages/work.md +27 -0
- data/lib/generators/rails_site_engine/install/templates/site_profiles/portfolio/content/site.yml +36 -0
- data/lib/generators/rails_site_engine/install/templates/site_profiles/software-contracting/config/theme.yml +3 -0
- data/lib/generators/rails_site_engine/install/templates/site_profiles/software-contracting/content/pages/about.md +14 -0
- data/lib/generators/rails_site_engine/install/templates/site_profiles/software-contracting/content/pages/contact.md +12 -0
- data/lib/generators/rails_site_engine/install/templates/site_profiles/software-contracting/content/pages/home.md +48 -0
- data/lib/generators/rails_site_engine/install/templates/site_profiles/software-contracting/content/pages/pricing.md +57 -0
- data/lib/generators/rails_site_engine/install/templates/site_profiles/software-contracting/content/pages/privacy.md +43 -0
- data/lib/generators/rails_site_engine/install/templates/site_profiles/software-contracting/content/pages/projects.md +27 -0
- data/lib/generators/rails_site_engine/install/templates/site_profiles/software-contracting/content/site.yml +38 -0
- data/lib/rails_site_engine/content/store.rb +297 -0
- data/lib/rails_site_engine/engine.rb +15 -0
- data/lib/rails_site_engine/markdown_renderer.rb +37 -0
- data/lib/rails_site_engine/profile_defaults.rb +83 -0
- data/lib/rails_site_engine/site_engine_config.rb +78 -0
- data/lib/rails_site_engine/site_profiles.rb +166 -0
- data/lib/rails_site_engine/sitemap_xml.rb +26 -0
- data/lib/rails_site_engine/theme.rb +54 -0
- data/lib/rails_site_engine/version.rb +3 -0
- data/lib/rails_site_engine.rb +13 -0
- data/lib/tasks/rails_site_engine_tasks.rake +7 -0
- metadata +179 -0
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
require "pathname"
|
|
2
|
+
require "yaml"
|
|
3
|
+
|
|
4
|
+
module RailsSiteEngine
|
|
5
|
+
class SiteProfiles
|
|
6
|
+
DEFAULT_PATH = File.expand_path("../../config/site_profiles.yml", __dir__)
|
|
7
|
+
|
|
8
|
+
def initialize(path: DEFAULT_PATH)
|
|
9
|
+
@path = Pathname.new(path)
|
|
10
|
+
@profiles = load_profiles
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def profile_keys
|
|
14
|
+
@profiles.keys
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def profile(profile_key)
|
|
18
|
+
@profiles[normalize_key(profile_key)]
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def profile_label(profile_key)
|
|
22
|
+
entry = profile(profile_key)
|
|
23
|
+
return normalize_key(profile_key) if entry.nil?
|
|
24
|
+
|
|
25
|
+
label = string_value(entry["label"])
|
|
26
|
+
label.empty? ? normalize_key(profile_key) : label
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def specialty_keys(profile_key)
|
|
30
|
+
specialties_for(profile_key).keys
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def specialty_label(profile_key, specialty_key)
|
|
34
|
+
entry = specialties_for(profile_key)[normalize_key(specialty_key)]
|
|
35
|
+
return normalize_key(specialty_key) if entry.nil?
|
|
36
|
+
|
|
37
|
+
label = string_value(entry["label"])
|
|
38
|
+
label.empty? ? normalize_key(specialty_key) : label
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def default_specialty(profile_key)
|
|
42
|
+
profile_key = normalize_key(profile_key)
|
|
43
|
+
keys = specialty_keys(profile_key)
|
|
44
|
+
return nil if keys.empty?
|
|
45
|
+
|
|
46
|
+
configured = string_value(profile(profile_key)&.dig("default_specialty"))
|
|
47
|
+
return configured if keys.include?(configured)
|
|
48
|
+
|
|
49
|
+
keys.first
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
def requires_specialty?(profile_key)
|
|
53
|
+
specialty_keys(profile_key).any?
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
def concrete_profile_keys
|
|
57
|
+
profile_keys.each_with_object([]) do |key, memo|
|
|
58
|
+
entry = profile(key)
|
|
59
|
+
next unless entry.is_a?(Hash)
|
|
60
|
+
|
|
61
|
+
specialties = normalize_hash(entry["specialties"])
|
|
62
|
+
if specialties.empty?
|
|
63
|
+
template = string_value(entry["template"])
|
|
64
|
+
memo << template unless template.empty?
|
|
65
|
+
next
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
specialties.each_value do |specialty|
|
|
69
|
+
next unless specialty.is_a?(Hash)
|
|
70
|
+
|
|
71
|
+
template = string_value(specialty["template"])
|
|
72
|
+
memo << template unless template.empty?
|
|
73
|
+
end
|
|
74
|
+
end.uniq
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
def valid_concrete_profile?(key)
|
|
78
|
+
concrete_profile_keys.include?(normalize_key(key))
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
def fallback_concrete_profile
|
|
82
|
+
concrete_profile_keys.first
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
def template_root_for(concrete_profile_key)
|
|
86
|
+
key = normalize_key(concrete_profile_key)
|
|
87
|
+
return nil unless valid_concrete_profile?(key)
|
|
88
|
+
|
|
89
|
+
Pathname.new(DEFAULT_PATH)
|
|
90
|
+
.dirname
|
|
91
|
+
.join("../lib/generators/rails_site_engine/install/templates/site_profiles", key)
|
|
92
|
+
.expand_path
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
def resolve_concrete_profile(site_profile:, trade_specialty: nil)
|
|
96
|
+
profile_key = normalize_key(site_profile)
|
|
97
|
+
entry = profile(profile_key)
|
|
98
|
+
return nil unless entry.is_a?(Hash)
|
|
99
|
+
|
|
100
|
+
specialties = normalize_hash(entry["specialties"])
|
|
101
|
+
if specialties.any?
|
|
102
|
+
specialty_key = normalize_key(trade_specialty)
|
|
103
|
+
specialty_key = default_specialty(profile_key) if specialty_key.empty?
|
|
104
|
+
specialty = specialties[specialty_key]
|
|
105
|
+
return nil unless specialty.is_a?(Hash)
|
|
106
|
+
|
|
107
|
+
template = string_value(specialty["template"])
|
|
108
|
+
return nil if template.empty?
|
|
109
|
+
|
|
110
|
+
return template
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
template = string_value(entry["template"])
|
|
114
|
+
return nil if template.empty?
|
|
115
|
+
|
|
116
|
+
template
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
private
|
|
120
|
+
|
|
121
|
+
def specialties_for(profile_key)
|
|
122
|
+
entry = profile(profile_key)
|
|
123
|
+
return {} unless entry.is_a?(Hash)
|
|
124
|
+
|
|
125
|
+
normalize_hash(entry["specialties"])
|
|
126
|
+
end
|
|
127
|
+
|
|
128
|
+
def load_profiles
|
|
129
|
+
payload = load_yaml
|
|
130
|
+
profiles = normalize_hash(payload["profiles"])
|
|
131
|
+
|
|
132
|
+
profiles.each_with_object({}) do |(key, value), memo|
|
|
133
|
+
memo[normalize_key(key)] = normalize_hash(value)
|
|
134
|
+
end
|
|
135
|
+
end
|
|
136
|
+
|
|
137
|
+
def load_yaml
|
|
138
|
+
return {} unless @path.file?
|
|
139
|
+
|
|
140
|
+
YAML.safe_load(
|
|
141
|
+
@path.read,
|
|
142
|
+
permitted_classes: [],
|
|
143
|
+
permitted_symbols: [],
|
|
144
|
+
aliases: false
|
|
145
|
+
) || {}
|
|
146
|
+
rescue Psych::SyntaxError
|
|
147
|
+
{}
|
|
148
|
+
end
|
|
149
|
+
|
|
150
|
+
def normalize_hash(value)
|
|
151
|
+
return {} unless value.is_a?(Hash)
|
|
152
|
+
|
|
153
|
+
value.each_with_object({}) do |(key, nested_value), memo|
|
|
154
|
+
memo[normalize_key(key)] = nested_value
|
|
155
|
+
end
|
|
156
|
+
end
|
|
157
|
+
|
|
158
|
+
def normalize_key(value)
|
|
159
|
+
value.to_s.strip
|
|
160
|
+
end
|
|
161
|
+
|
|
162
|
+
def string_value(value)
|
|
163
|
+
normalize_key(value)
|
|
164
|
+
end
|
|
165
|
+
end
|
|
166
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
require "erb"
|
|
2
|
+
|
|
3
|
+
module RailsSiteEngine
|
|
4
|
+
module SitemapXml
|
|
5
|
+
def self.build(base_url:, paths:)
|
|
6
|
+
base_url = base_url.to_s.sub(%r{/\z}, "")
|
|
7
|
+
paths = Array(paths).map(&:to_s).reject(&:empty?)
|
|
8
|
+
|
|
9
|
+
urls = paths.map do |path|
|
|
10
|
+
loc = path == "/" ? "#{base_url}/" : "#{base_url}#{path}"
|
|
11
|
+
<<~XML
|
|
12
|
+
<url>
|
|
13
|
+
<loc>#{ERB::Util.html_escape(loc)}</loc>
|
|
14
|
+
</url>
|
|
15
|
+
XML
|
|
16
|
+
end.join
|
|
17
|
+
|
|
18
|
+
<<~XML
|
|
19
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
20
|
+
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
|
21
|
+
#{urls}
|
|
22
|
+
</urlset>
|
|
23
|
+
XML
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
require "pathname"
|
|
2
|
+
require "yaml"
|
|
3
|
+
|
|
4
|
+
module RailsSiteEngine
|
|
5
|
+
class Theme
|
|
6
|
+
DEFAULT_DAISYUI_THEME = "corporate"
|
|
7
|
+
|
|
8
|
+
def initialize(
|
|
9
|
+
path: nil,
|
|
10
|
+
host_config: RailsSiteEngine::SiteEngineConfig.new
|
|
11
|
+
)
|
|
12
|
+
if path
|
|
13
|
+
@override_path = Pathname.new(path)
|
|
14
|
+
else
|
|
15
|
+
@override_path = host_config.override_theme_path
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def daisyui_light_theme
|
|
20
|
+
config.dig("daisyui", "theme").to_s.strip.presence || DEFAULT_DAISYUI_THEME
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def daisyui_dark_theme
|
|
24
|
+
config.dig("daisyui", "dark_theme").to_s.strip.presence
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def daisyui_dark_mode_enabled?
|
|
28
|
+
daisyui_dark_theme.present?
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def daisyui_theme
|
|
32
|
+
daisyui_light_theme
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
private
|
|
36
|
+
|
|
37
|
+
def config
|
|
38
|
+
@config ||= load_yaml(@override_path)
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def load_yaml(path)
|
|
42
|
+
return {} unless path.file?
|
|
43
|
+
|
|
44
|
+
YAML.safe_load(
|
|
45
|
+
path.read,
|
|
46
|
+
permitted_classes: [],
|
|
47
|
+
permitted_symbols: [],
|
|
48
|
+
aliases: false
|
|
49
|
+
) || {}
|
|
50
|
+
rescue Psych::SyntaxError
|
|
51
|
+
{}
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
require "rails_site_engine/version"
|
|
2
|
+
require "rails_site_engine/engine"
|
|
3
|
+
require "rails_site_engine/content/store"
|
|
4
|
+
require "rails_site_engine/markdown_renderer"
|
|
5
|
+
require "rails_site_engine/profile_defaults"
|
|
6
|
+
require "rails_site_engine/site_engine_config"
|
|
7
|
+
require "rails_site_engine/site_profiles"
|
|
8
|
+
require "rails_site_engine/theme"
|
|
9
|
+
require "rails_site_engine/sitemap_xml"
|
|
10
|
+
|
|
11
|
+
module RailsSiteEngine
|
|
12
|
+
# Your code goes here...
|
|
13
|
+
end
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
namespace :rails_site_engine do
|
|
2
|
+
desc "Install Rails Site Engine scaffolding into the host app"
|
|
3
|
+
task install: :environment do
|
|
4
|
+
require "rails/generators"
|
|
5
|
+
Rails::Generators.invoke("rails_site_engine:install", [], behavior: :invoke, destination_root: Rails.root.to_s)
|
|
6
|
+
end
|
|
7
|
+
end
|
metadata
ADDED
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: rails_site_engine
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.6.2
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Nicholas Ladefoged
|
|
8
|
+
bindir: bin
|
|
9
|
+
cert_chain: []
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
11
|
+
dependencies:
|
|
12
|
+
- !ruby/object:Gem::Dependency
|
|
13
|
+
name: rails
|
|
14
|
+
requirement: !ruby/object:Gem::Requirement
|
|
15
|
+
requirements:
|
|
16
|
+
- - ">="
|
|
17
|
+
- !ruby/object:Gem::Version
|
|
18
|
+
version: 8.1.1
|
|
19
|
+
type: :runtime
|
|
20
|
+
prerelease: false
|
|
21
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
22
|
+
requirements:
|
|
23
|
+
- - ">="
|
|
24
|
+
- !ruby/object:Gem::Version
|
|
25
|
+
version: 8.1.1
|
|
26
|
+
- !ruby/object:Gem::Dependency
|
|
27
|
+
name: commonmarker
|
|
28
|
+
requirement: !ruby/object:Gem::Requirement
|
|
29
|
+
requirements:
|
|
30
|
+
- - ">="
|
|
31
|
+
- !ruby/object:Gem::Version
|
|
32
|
+
version: 0.23.0
|
|
33
|
+
type: :runtime
|
|
34
|
+
prerelease: false
|
|
35
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
36
|
+
requirements:
|
|
37
|
+
- - ">="
|
|
38
|
+
- !ruby/object:Gem::Version
|
|
39
|
+
version: 0.23.0
|
|
40
|
+
description: Rails engine providing layout, section rendering, content loading, SEO
|
|
41
|
+
defaults, and contact forms for high-velocity business websites.
|
|
42
|
+
email:
|
|
43
|
+
- ladefoged1991@gmail.com
|
|
44
|
+
executables: []
|
|
45
|
+
extensions: []
|
|
46
|
+
extra_rdoc_files: []
|
|
47
|
+
files:
|
|
48
|
+
- MIT-LICENSE
|
|
49
|
+
- README.md
|
|
50
|
+
- Rakefile
|
|
51
|
+
- app/assets/stylesheets/rails_site_engine/application.css
|
|
52
|
+
- app/assets/stylesheets/rails_site_engine/engine.css
|
|
53
|
+
- app/assets/stylesheets/rails_site_engine/engine.tailwind.css
|
|
54
|
+
- app/controllers/rails_site_engine/application_controller.rb
|
|
55
|
+
- app/controllers/rails_site_engine/contacts_controller.rb
|
|
56
|
+
- app/controllers/rails_site_engine/meta_controller.rb
|
|
57
|
+
- app/controllers/rails_site_engine/pages_controller.rb
|
|
58
|
+
- app/helpers/rails_site_engine/application_helper.rb
|
|
59
|
+
- app/javascript/controllers/rails_site_engine/color_mode_controller.js
|
|
60
|
+
- app/javascript/controllers/rails_site_engine/form_submit_controller.js
|
|
61
|
+
- app/javascript/controllers/rails_site_engine/mobile_nav_controller.js
|
|
62
|
+
- app/javascript/rails_site_engine/application.js
|
|
63
|
+
- app/jobs/rails_site_engine/application_job.rb
|
|
64
|
+
- app/mailers/rails_site_engine/application_mailer.rb
|
|
65
|
+
- app/mailers/rails_site_engine/contact_mailer.rb
|
|
66
|
+
- app/models/rails_site_engine/application_record.rb
|
|
67
|
+
- app/models/rails_site_engine/contact_message.rb
|
|
68
|
+
- app/views/layouts/mailer.html.erb
|
|
69
|
+
- app/views/layouts/mailer.text.erb
|
|
70
|
+
- app/views/layouts/rails_site_engine/application.html.erb
|
|
71
|
+
- app/views/rails_site_engine/contact_mailer/notify.text.erb
|
|
72
|
+
- app/views/rails_site_engine/contacts/new.html.erb
|
|
73
|
+
- app/views/rails_site_engine/pages/show.html.erb
|
|
74
|
+
- app/views/rails_site_engine/sections/_contact_form.html.erb
|
|
75
|
+
- app/views/rails_site_engine/sections/_cta_band.html.erb
|
|
76
|
+
- app/views/rails_site_engine/sections/_faq.html.erb
|
|
77
|
+
- app/views/rails_site_engine/sections/_feature_cards.html.erb
|
|
78
|
+
- app/views/rails_site_engine/sections/_hero.html.erb
|
|
79
|
+
- app/views/rails_site_engine/sections/_pricing_cards.html.erb
|
|
80
|
+
- app/views/rails_site_engine/sections/_process_steps.html.erb
|
|
81
|
+
- app/views/rails_site_engine/sections/_project_cards.html.erb
|
|
82
|
+
- app/views/rails_site_engine/sections/_proof_strip.html.erb
|
|
83
|
+
- app/views/rails_site_engine/sections/_rich_text.html.erb
|
|
84
|
+
- app/views/rails_site_engine/sections/_stats.html.erb
|
|
85
|
+
- app/views/rails_site_engine/sections/_testimonials.html.erb
|
|
86
|
+
- app/views/rails_site_engine/sections/_unknown.html.erb
|
|
87
|
+
- app/views/rails_site_engine/shared/_flash.html.erb
|
|
88
|
+
- app/views/rails_site_engine/shared/_footer.html.erb
|
|
89
|
+
- app/views/rails_site_engine/shared/_navbar.html.erb
|
|
90
|
+
- config/importmap.rb
|
|
91
|
+
- config/locales/en.yml
|
|
92
|
+
- config/routes.rb
|
|
93
|
+
- config/site_profiles.yml
|
|
94
|
+
- lib/generators/rails_site_engine/install/install_generator.rb
|
|
95
|
+
- lib/generators/rails_site_engine/install/templates/config/theme.yml
|
|
96
|
+
- lib/generators/rails_site_engine/install/templates/content/pages/about.md
|
|
97
|
+
- lib/generators/rails_site_engine/install/templates/content/pages/contact.md
|
|
98
|
+
- lib/generators/rails_site_engine/install/templates/content/pages/home.md
|
|
99
|
+
- lib/generators/rails_site_engine/install/templates/content/pages/privacy.md
|
|
100
|
+
- lib/generators/rails_site_engine/install/templates/content/pages/services.md
|
|
101
|
+
- lib/generators/rails_site_engine/install/templates/content/site.yml
|
|
102
|
+
- lib/generators/rails_site_engine/install/templates/site_profiles/home-services-carpentry/config/theme.yml
|
|
103
|
+
- lib/generators/rails_site_engine/install/templates/site_profiles/home-services-carpentry/content/pages/about.md
|
|
104
|
+
- lib/generators/rails_site_engine/install/templates/site_profiles/home-services-carpentry/content/pages/contact.md
|
|
105
|
+
- lib/generators/rails_site_engine/install/templates/site_profiles/home-services-carpentry/content/pages/home.md
|
|
106
|
+
- lib/generators/rails_site_engine/install/templates/site_profiles/home-services-carpentry/content/pages/privacy.md
|
|
107
|
+
- lib/generators/rails_site_engine/install/templates/site_profiles/home-services-carpentry/content/pages/services.md
|
|
108
|
+
- lib/generators/rails_site_engine/install/templates/site_profiles/home-services-carpentry/content/site.yml
|
|
109
|
+
- lib/generators/rails_site_engine/install/templates/site_profiles/home-services-electrician/config/theme.yml
|
|
110
|
+
- lib/generators/rails_site_engine/install/templates/site_profiles/home-services-electrician/content/pages/about.md
|
|
111
|
+
- lib/generators/rails_site_engine/install/templates/site_profiles/home-services-electrician/content/pages/contact.md
|
|
112
|
+
- lib/generators/rails_site_engine/install/templates/site_profiles/home-services-electrician/content/pages/home.md
|
|
113
|
+
- lib/generators/rails_site_engine/install/templates/site_profiles/home-services-electrician/content/pages/privacy.md
|
|
114
|
+
- lib/generators/rails_site_engine/install/templates/site_profiles/home-services-electrician/content/pages/services.md
|
|
115
|
+
- lib/generators/rails_site_engine/install/templates/site_profiles/home-services-electrician/content/site.yml
|
|
116
|
+
- lib/generators/rails_site_engine/install/templates/site_profiles/home-services-general/config/theme.yml
|
|
117
|
+
- lib/generators/rails_site_engine/install/templates/site_profiles/home-services-general/content/pages/about.md
|
|
118
|
+
- lib/generators/rails_site_engine/install/templates/site_profiles/home-services-general/content/pages/contact.md
|
|
119
|
+
- lib/generators/rails_site_engine/install/templates/site_profiles/home-services-general/content/pages/home.md
|
|
120
|
+
- lib/generators/rails_site_engine/install/templates/site_profiles/home-services-general/content/pages/privacy.md
|
|
121
|
+
- lib/generators/rails_site_engine/install/templates/site_profiles/home-services-general/content/pages/services.md
|
|
122
|
+
- lib/generators/rails_site_engine/install/templates/site_profiles/home-services-general/content/site.yml
|
|
123
|
+
- lib/generators/rails_site_engine/install/templates/site_profiles/home-services-plumbing/config/theme.yml
|
|
124
|
+
- lib/generators/rails_site_engine/install/templates/site_profiles/home-services-plumbing/content/pages/about.md
|
|
125
|
+
- lib/generators/rails_site_engine/install/templates/site_profiles/home-services-plumbing/content/pages/contact.md
|
|
126
|
+
- lib/generators/rails_site_engine/install/templates/site_profiles/home-services-plumbing/content/pages/home.md
|
|
127
|
+
- lib/generators/rails_site_engine/install/templates/site_profiles/home-services-plumbing/content/pages/privacy.md
|
|
128
|
+
- lib/generators/rails_site_engine/install/templates/site_profiles/home-services-plumbing/content/pages/services.md
|
|
129
|
+
- lib/generators/rails_site_engine/install/templates/site_profiles/home-services-plumbing/content/site.yml
|
|
130
|
+
- lib/generators/rails_site_engine/install/templates/site_profiles/portfolio/config/theme.yml
|
|
131
|
+
- lib/generators/rails_site_engine/install/templates/site_profiles/portfolio/content/pages/about.md
|
|
132
|
+
- lib/generators/rails_site_engine/install/templates/site_profiles/portfolio/content/pages/contact.md
|
|
133
|
+
- lib/generators/rails_site_engine/install/templates/site_profiles/portfolio/content/pages/home.md
|
|
134
|
+
- lib/generators/rails_site_engine/install/templates/site_profiles/portfolio/content/pages/privacy.md
|
|
135
|
+
- lib/generators/rails_site_engine/install/templates/site_profiles/portfolio/content/pages/work.md
|
|
136
|
+
- lib/generators/rails_site_engine/install/templates/site_profiles/portfolio/content/site.yml
|
|
137
|
+
- lib/generators/rails_site_engine/install/templates/site_profiles/software-contracting/config/theme.yml
|
|
138
|
+
- lib/generators/rails_site_engine/install/templates/site_profiles/software-contracting/content/pages/about.md
|
|
139
|
+
- lib/generators/rails_site_engine/install/templates/site_profiles/software-contracting/content/pages/contact.md
|
|
140
|
+
- lib/generators/rails_site_engine/install/templates/site_profiles/software-contracting/content/pages/home.md
|
|
141
|
+
- lib/generators/rails_site_engine/install/templates/site_profiles/software-contracting/content/pages/pricing.md
|
|
142
|
+
- lib/generators/rails_site_engine/install/templates/site_profiles/software-contracting/content/pages/privacy.md
|
|
143
|
+
- lib/generators/rails_site_engine/install/templates/site_profiles/software-contracting/content/pages/projects.md
|
|
144
|
+
- lib/generators/rails_site_engine/install/templates/site_profiles/software-contracting/content/site.yml
|
|
145
|
+
- lib/rails_site_engine.rb
|
|
146
|
+
- lib/rails_site_engine/content/store.rb
|
|
147
|
+
- lib/rails_site_engine/engine.rb
|
|
148
|
+
- lib/rails_site_engine/markdown_renderer.rb
|
|
149
|
+
- lib/rails_site_engine/profile_defaults.rb
|
|
150
|
+
- lib/rails_site_engine/site_engine_config.rb
|
|
151
|
+
- lib/rails_site_engine/site_profiles.rb
|
|
152
|
+
- lib/rails_site_engine/sitemap_xml.rb
|
|
153
|
+
- lib/rails_site_engine/theme.rb
|
|
154
|
+
- lib/rails_site_engine/version.rb
|
|
155
|
+
- lib/tasks/rails_site_engine_tasks.rake
|
|
156
|
+
homepage: https://github.com/your-org/rails_site_engine
|
|
157
|
+
licenses:
|
|
158
|
+
- MIT
|
|
159
|
+
metadata:
|
|
160
|
+
homepage_uri: https://github.com/your-org/rails_site_engine
|
|
161
|
+
source_code_uri: https://github.com/your-org/rails_site_engine
|
|
162
|
+
rdoc_options: []
|
|
163
|
+
require_paths:
|
|
164
|
+
- lib
|
|
165
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
166
|
+
requirements:
|
|
167
|
+
- - ">="
|
|
168
|
+
- !ruby/object:Gem::Version
|
|
169
|
+
version: '0'
|
|
170
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
171
|
+
requirements:
|
|
172
|
+
- - ">="
|
|
173
|
+
- !ruby/object:Gem::Version
|
|
174
|
+
version: '0'
|
|
175
|
+
requirements: []
|
|
176
|
+
rubygems_version: 3.6.9
|
|
177
|
+
specification_version: 4
|
|
178
|
+
summary: Reusable Rails engine for business sites.
|
|
179
|
+
test_files: []
|