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.
Files changed (110) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.md +137 -0
  4. data/Rakefile +6 -0
  5. data/app/assets/stylesheets/rails_site_engine/application.css +15 -0
  6. data/app/assets/stylesheets/rails_site_engine/engine.css +2 -0
  7. data/app/assets/stylesheets/rails_site_engine/engine.tailwind.css +5 -0
  8. data/app/controllers/rails_site_engine/application_controller.rb +27 -0
  9. data/app/controllers/rails_site_engine/contacts_controller.rb +35 -0
  10. data/app/controllers/rails_site_engine/meta_controller.rb +20 -0
  11. data/app/controllers/rails_site_engine/pages_controller.rb +18 -0
  12. data/app/helpers/rails_site_engine/application_helper.rb +266 -0
  13. data/app/javascript/controllers/rails_site_engine/color_mode_controller.js +83 -0
  14. data/app/javascript/controllers/rails_site_engine/form_submit_controller.js +22 -0
  15. data/app/javascript/controllers/rails_site_engine/mobile_nav_controller.js +45 -0
  16. data/app/javascript/rails_site_engine/application.js +8 -0
  17. data/app/jobs/rails_site_engine/application_job.rb +4 -0
  18. data/app/mailers/rails_site_engine/application_mailer.rb +6 -0
  19. data/app/mailers/rails_site_engine/contact_mailer.rb +25 -0
  20. data/app/models/rails_site_engine/application_record.rb +5 -0
  21. data/app/models/rails_site_engine/contact_message.rb +16 -0
  22. data/app/views/layouts/mailer.html.erb +13 -0
  23. data/app/views/layouts/mailer.text.erb +1 -0
  24. data/app/views/layouts/rails_site_engine/application.html.erb +54 -0
  25. data/app/views/rails_site_engine/contact_mailer/notify.text.erb +9 -0
  26. data/app/views/rails_site_engine/contacts/new.html.erb +1 -0
  27. data/app/views/rails_site_engine/pages/show.html.erb +15 -0
  28. data/app/views/rails_site_engine/sections/_contact_form.html.erb +112 -0
  29. data/app/views/rails_site_engine/sections/_cta_band.html.erb +27 -0
  30. data/app/views/rails_site_engine/sections/_faq.html.erb +29 -0
  31. data/app/views/rails_site_engine/sections/_feature_cards.html.erb +30 -0
  32. data/app/views/rails_site_engine/sections/_hero.html.erb +39 -0
  33. data/app/views/rails_site_engine/sections/_pricing_cards.html.erb +53 -0
  34. data/app/views/rails_site_engine/sections/_process_steps.html.erb +35 -0
  35. data/app/views/rails_site_engine/sections/_project_cards.html.erb +48 -0
  36. data/app/views/rails_site_engine/sections/_proof_strip.html.erb +16 -0
  37. data/app/views/rails_site_engine/sections/_rich_text.html.erb +15 -0
  38. data/app/views/rails_site_engine/sections/_stats.html.erb +34 -0
  39. data/app/views/rails_site_engine/sections/_testimonials.html.erb +40 -0
  40. data/app/views/rails_site_engine/sections/_unknown.html.erb +6 -0
  41. data/app/views/rails_site_engine/shared/_flash.html.erb +18 -0
  42. data/app/views/rails_site_engine/shared/_footer.html.erb +41 -0
  43. data/app/views/rails_site_engine/shared/_navbar.html.erb +118 -0
  44. data/config/importmap.rb +5 -0
  45. data/config/locales/en.yml +27 -0
  46. data/config/routes.rb +9 -0
  47. data/config/site_profiles.yml +23 -0
  48. data/lib/generators/rails_site_engine/install/install_generator.rb +454 -0
  49. data/lib/generators/rails_site_engine/install/templates/config/theme.yml +3 -0
  50. data/lib/generators/rails_site_engine/install/templates/content/pages/about.md +12 -0
  51. data/lib/generators/rails_site_engine/install/templates/content/pages/contact.md +13 -0
  52. data/lib/generators/rails_site_engine/install/templates/content/pages/home.md +39 -0
  53. data/lib/generators/rails_site_engine/install/templates/content/pages/privacy.md +43 -0
  54. data/lib/generators/rails_site_engine/install/templates/content/pages/services.md +25 -0
  55. data/lib/generators/rails_site_engine/install/templates/content/site.yml +36 -0
  56. data/lib/generators/rails_site_engine/install/templates/site_profiles/home-services-carpentry/config/theme.yml +3 -0
  57. data/lib/generators/rails_site_engine/install/templates/site_profiles/home-services-carpentry/content/pages/about.md +14 -0
  58. data/lib/generators/rails_site_engine/install/templates/site_profiles/home-services-carpentry/content/pages/contact.md +12 -0
  59. data/lib/generators/rails_site_engine/install/templates/site_profiles/home-services-carpentry/content/pages/home.md +55 -0
  60. data/lib/generators/rails_site_engine/install/templates/site_profiles/home-services-carpentry/content/pages/privacy.md +43 -0
  61. data/lib/generators/rails_site_engine/install/templates/site_profiles/home-services-carpentry/content/pages/services.md +29 -0
  62. data/lib/generators/rails_site_engine/install/templates/site_profiles/home-services-carpentry/content/site.yml +36 -0
  63. data/lib/generators/rails_site_engine/install/templates/site_profiles/home-services-electrician/config/theme.yml +3 -0
  64. data/lib/generators/rails_site_engine/install/templates/site_profiles/home-services-electrician/content/pages/about.md +14 -0
  65. data/lib/generators/rails_site_engine/install/templates/site_profiles/home-services-electrician/content/pages/contact.md +12 -0
  66. data/lib/generators/rails_site_engine/install/templates/site_profiles/home-services-electrician/content/pages/home.md +55 -0
  67. data/lib/generators/rails_site_engine/install/templates/site_profiles/home-services-electrician/content/pages/privacy.md +43 -0
  68. data/lib/generators/rails_site_engine/install/templates/site_profiles/home-services-electrician/content/pages/services.md +29 -0
  69. data/lib/generators/rails_site_engine/install/templates/site_profiles/home-services-electrician/content/site.yml +36 -0
  70. data/lib/generators/rails_site_engine/install/templates/site_profiles/home-services-general/config/theme.yml +3 -0
  71. data/lib/generators/rails_site_engine/install/templates/site_profiles/home-services-general/content/pages/about.md +14 -0
  72. data/lib/generators/rails_site_engine/install/templates/site_profiles/home-services-general/content/pages/contact.md +12 -0
  73. data/lib/generators/rails_site_engine/install/templates/site_profiles/home-services-general/content/pages/home.md +55 -0
  74. data/lib/generators/rails_site_engine/install/templates/site_profiles/home-services-general/content/pages/privacy.md +43 -0
  75. data/lib/generators/rails_site_engine/install/templates/site_profiles/home-services-general/content/pages/services.md +29 -0
  76. data/lib/generators/rails_site_engine/install/templates/site_profiles/home-services-general/content/site.yml +36 -0
  77. data/lib/generators/rails_site_engine/install/templates/site_profiles/home-services-plumbing/config/theme.yml +3 -0
  78. data/lib/generators/rails_site_engine/install/templates/site_profiles/home-services-plumbing/content/pages/about.md +14 -0
  79. data/lib/generators/rails_site_engine/install/templates/site_profiles/home-services-plumbing/content/pages/contact.md +12 -0
  80. data/lib/generators/rails_site_engine/install/templates/site_profiles/home-services-plumbing/content/pages/home.md +55 -0
  81. data/lib/generators/rails_site_engine/install/templates/site_profiles/home-services-plumbing/content/pages/privacy.md +43 -0
  82. data/lib/generators/rails_site_engine/install/templates/site_profiles/home-services-plumbing/content/pages/services.md +29 -0
  83. data/lib/generators/rails_site_engine/install/templates/site_profiles/home-services-plumbing/content/site.yml +36 -0
  84. data/lib/generators/rails_site_engine/install/templates/site_profiles/portfolio/config/theme.yml +3 -0
  85. data/lib/generators/rails_site_engine/install/templates/site_profiles/portfolio/content/pages/about.md +26 -0
  86. data/lib/generators/rails_site_engine/install/templates/site_profiles/portfolio/content/pages/contact.md +12 -0
  87. data/lib/generators/rails_site_engine/install/templates/site_profiles/portfolio/content/pages/home.md +43 -0
  88. data/lib/generators/rails_site_engine/install/templates/site_profiles/portfolio/content/pages/privacy.md +43 -0
  89. data/lib/generators/rails_site_engine/install/templates/site_profiles/portfolio/content/pages/work.md +27 -0
  90. data/lib/generators/rails_site_engine/install/templates/site_profiles/portfolio/content/site.yml +36 -0
  91. data/lib/generators/rails_site_engine/install/templates/site_profiles/software-contracting/config/theme.yml +3 -0
  92. data/lib/generators/rails_site_engine/install/templates/site_profiles/software-contracting/content/pages/about.md +14 -0
  93. data/lib/generators/rails_site_engine/install/templates/site_profiles/software-contracting/content/pages/contact.md +12 -0
  94. data/lib/generators/rails_site_engine/install/templates/site_profiles/software-contracting/content/pages/home.md +48 -0
  95. data/lib/generators/rails_site_engine/install/templates/site_profiles/software-contracting/content/pages/pricing.md +57 -0
  96. data/lib/generators/rails_site_engine/install/templates/site_profiles/software-contracting/content/pages/privacy.md +43 -0
  97. data/lib/generators/rails_site_engine/install/templates/site_profiles/software-contracting/content/pages/projects.md +27 -0
  98. data/lib/generators/rails_site_engine/install/templates/site_profiles/software-contracting/content/site.yml +38 -0
  99. data/lib/rails_site_engine/content/store.rb +297 -0
  100. data/lib/rails_site_engine/engine.rb +15 -0
  101. data/lib/rails_site_engine/markdown_renderer.rb +37 -0
  102. data/lib/rails_site_engine/profile_defaults.rb +83 -0
  103. data/lib/rails_site_engine/site_engine_config.rb +78 -0
  104. data/lib/rails_site_engine/site_profiles.rb +166 -0
  105. data/lib/rails_site_engine/sitemap_xml.rb +26 -0
  106. data/lib/rails_site_engine/theme.rb +54 -0
  107. data/lib/rails_site_engine/version.rb +3 -0
  108. data/lib/rails_site_engine.rb +13 -0
  109. data/lib/tasks/rails_site_engine_tasks.rake +7 -0
  110. 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,3 @@
1
+ module RailsSiteEngine
2
+ VERSION = "0.6.2"
3
+ 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: []