diff --git a/.gitmodules b/.gitmodules
index 04cf2ae3..aff03497 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,3 +1,81 @@
-[submodule "app/content/pages/documentation/turbo/turbo-site"]
- path = app/content/pages/documentation/turbo/turbo-site
+[submodule "modules/turbo-site"]
+ path = modules/turbo-site
url = https://github.com/hotwired/turbo-site
+[submodule "modules/stimulus-parser"]
+ path = modules/stimulus-parser
+ url = https://github.com/marcoroth/stimulus-parser
+[submodule "modules/turbo_power"]
+ path = modules/turbo_power
+ url = https://github.com/marcoroth/turbo_power
+[submodule "modules/turbo-morph"]
+ path = modules/turbo-morph
+ url = https://github.com/marcoroth/turbo-morph
+[submodule "modules/stimulus-use"]
+ path = modules/stimulus-use
+ url = https://github.com/stimulus-use/stimulus-use
+[submodule "modules/current.js"]
+ path = modules/current.js
+ url = https://github.com/marcoroth/current.js
+[submodule "modules/turbo-ruby"]
+ path = modules/turbo-ruby
+ url = https://github.com/marcoroth/turbo-ruby
+[submodule "modules/debounced"]
+ path = modules/debounced
+ url = https://github.com/hopsoft/debounced
+[submodule "modules/tailwindcss-stimulus-components"]
+ path = modules/tailwindcss-stimulus-components
+ url = https://github.com/excid3/tailwindcss-stimulus-components
+[submodule "modules/stimulus-components"]
+ path = modules/stimulus-components
+ url = https://github.com/stimulus-components/.github
+[submodule "modules/js-cookie"]
+ path = modules/js-cookie
+ url = https://github.com/js-cookie/js-cookie
+[submodule "modules/formulus"]
+ path = modules/formulus
+ url = https://github.com/marcoroth/formulus
+[submodule "modules/turbo_boost-commands"]
+ path = modules/turbo_boost-commands
+ url = https://github.com/hopsoft/turbo_boost-commands
+[submodule "modules/request.js"]
+ path = modules/request.js
+ url = https://github.com/rails/request.js
+[submodule "modules/local_time"]
+ path = modules/local_time
+ url = https://github.com/basecamp/local_time
+[submodule "modules/relative-time-element"]
+ path = modules/relative-time-element
+ url = https://github.com/github/relative-time-element
+[submodule "modules/tom-select"]
+ path = modules/tom-select
+ url = https://github.com/orchidjs/tom-select
+[submodule "modules/tippyjs"]
+ path = modules/tippyjs
+ url = https://github.com/atomiks/tippyjs
+[submodule "modules/chartkick"]
+ path = modules/chartkick
+ url = https://github.com/ankane/chartkick
+[submodule "modules/kredis"]
+ path = modules/kredis
+ url = https://github.com/rails/kredis
+[submodule "modules/phlex"]
+ path = modules/phlex
+ url = https://github.com/phlex-ruby/phlex
+[submodule "modules/view_component"]
+ path = modules/view_component
+ url = https://github.com/viewcomponent/view_component
+[submodule "modules/chart.js"]
+ path = modules/chart.js
+ url = https://github.com/chartjs/chart.js
+[submodule "modules/list.js"]
+ path = modules/list.js
+ url = https://github.com/javve/list.js
+[submodule "modules/anycable"]
+ path = modules/anycable
+ url = https://github.com/anycable/anycable
+[submodule "modules/turbo-native-initializer"]
+ path = modules/turbo-native-initializer
+ url = https://github.com/lazaronixon/turbo-native-initializer
+[submodule "modules/turbonavigator"]
+ path = modules/turbonavigator
+ url = https://github.com/joemasilotti/turbonavigator
diff --git a/app/content/pages/documentation/formulus.html.erb b/app/content/pages/documentation/formulus.html.erb
index 1747120f..2923899b 100644
--- a/app/content/pages/documentation/formulus.html.erb
+++ b/app/content/pages/documentation/formulus.html.erb
@@ -6,4 +6,8 @@ title: Formulus
<% page.with_title(title: current_page.data.fetch("title")) %>
<%= render Page::ContributeComponent.new(file: current_page.asset.path.path) %>
+
+
+ <%== render_markdown(File.read("modules/formulus/README.md")) %>
+
<% end %>
diff --git a/app/content/pages/documentation/turbo-boost.html.erb b/app/content/pages/documentation/turbo-boost.html.erb
index 6341bdcd..cf314d05 100644
--- a/app/content/pages/documentation/turbo-boost.html.erb
+++ b/app/content/pages/documentation/turbo-boost.html.erb
@@ -6,4 +6,8 @@ title: Turbo Boost
<% page.with_title(title: current_page.data.fetch("title")) %>
<%= render Page::ContributeComponent.new(file: current_page.asset.path.path) %>
+
+
+ <%== render_markdown(File.read("modules/turbo_boost-commands/README.md")) %>
+
<% end %>
diff --git a/app/content/pages/documentation/turbo/handbook/01_introduction.html.erb b/app/content/pages/documentation/turbo/handbook/01_introduction.html.erb
index f1f147e8..5594dc8c 100644
--- a/app/content/pages/documentation/turbo/handbook/01_introduction.html.erb
+++ b/app/content/pages/documentation/turbo/handbook/01_introduction.html.erb
@@ -4,7 +4,7 @@ title: Introduction
<%= render Page::ContainerComponent.new(page: current_page) do |page| %>
- <%== render_markdown(File.read(Rails.root.join("app/content/pages/documentation/turbo/turbo-site/_source/handbook/01_introduction.md")).split("---").last) %>
+ <%== render_markdown(File.read(Rails.root.join("modules/turbo-site/_source/handbook/01_introduction.md")).split("---").last) %>
<%= render partial: "turbo_site_navigation", locals: { current_page: current_page, model: TurboHandbookModel } %>
diff --git a/app/content/pages/documentation/turbo/handbook/02_drive.html.erb b/app/content/pages/documentation/turbo/handbook/02_drive.html.erb
index 815045bd..b388948f 100644
--- a/app/content/pages/documentation/turbo/handbook/02_drive.html.erb
+++ b/app/content/pages/documentation/turbo/handbook/02_drive.html.erb
@@ -4,7 +4,7 @@ title: Drive
<%= render Page::ContainerComponent.new(page: current_page) do |page| %>
- <%== render_markdown(File.read(Rails.root.join("app/content/pages/documentation/turbo/turbo-site/_source/handbook/02_drive.md")).split("---").last) %>
+ <%== render_markdown(File.read(Rails.root.join("modules/turbo-site/_source/handbook/02_drive.md")).split("---").last) %>
<%= render partial: "turbo_site_navigation", locals: { current_page: current_page, model: TurboHandbookModel } %>
diff --git a/app/content/pages/documentation/turbo/handbook/03_frames.html.erb b/app/content/pages/documentation/turbo/handbook/03_frames.html.erb
index a7b5c50d..ec3bbe67 100644
--- a/app/content/pages/documentation/turbo/handbook/03_frames.html.erb
+++ b/app/content/pages/documentation/turbo/handbook/03_frames.html.erb
@@ -4,7 +4,7 @@ title: Frames
<%= render Page::ContainerComponent.new(page: current_page) do |page| %>
- <%== render_markdown(File.read(Rails.root.join("app/content/pages/documentation/turbo/turbo-site/_source/handbook/03_frames.md")).split("---").last) %>
+ <%== render_markdown(File.read(Rails.root.join("modules/turbo-site/_source/handbook/03_frames.md")).split("---").last) %>
<%= render partial: "turbo_site_navigation", locals: { current_page: current_page, model: TurboHandbookModel } %>
diff --git a/app/content/pages/documentation/turbo/handbook/04_streams.html.erb b/app/content/pages/documentation/turbo/handbook/04_streams.html.erb
index 4be21986..2e343b41 100644
--- a/app/content/pages/documentation/turbo/handbook/04_streams.html.erb
+++ b/app/content/pages/documentation/turbo/handbook/04_streams.html.erb
@@ -4,7 +4,7 @@ title: Streams
<%= render Page::ContainerComponent.new(page: current_page) do |page| %>
- <%== render_markdown(File.read(Rails.root.join("app/content/pages/documentation/turbo/turbo-site/_source/handbook/04_streams.md")).split("---").last) %>
+ <%== render_markdown(File.read(Rails.root.join("modules/turbo-site/_source/handbook/04_streams.md")).split("---").last) %>
<%= render partial: "turbo_site_navigation", locals: { current_page: current_page, model: TurboHandbookModel } %>
diff --git a/app/content/pages/documentation/turbo/handbook/05_native.html.erb b/app/content/pages/documentation/turbo/handbook/05_native.html.erb
index 84e57e5b..910dd9ed 100644
--- a/app/content/pages/documentation/turbo/handbook/05_native.html.erb
+++ b/app/content/pages/documentation/turbo/handbook/05_native.html.erb
@@ -4,7 +4,7 @@ title: Native
<%= render Page::ContainerComponent.new(page: current_page) do |page| %>
- <%== render_markdown(File.read(Rails.root.join("app/content/pages/documentation/turbo/turbo-site/_source/handbook/05_native.md")).split("---").last) %>
+ <%== render_markdown(File.read(Rails.root.join("modules/turbo-site/_source/handbook/05_native.md")).split("---").last) %>
<%= render partial: "turbo_site_navigation", locals: { current_page: current_page, model: TurboHandbookModel } %>
diff --git a/app/content/pages/documentation/turbo/handbook/06_building.html.erb b/app/content/pages/documentation/turbo/handbook/06_building.html.erb
index c4636010..310953a6 100644
--- a/app/content/pages/documentation/turbo/handbook/06_building.html.erb
+++ b/app/content/pages/documentation/turbo/handbook/06_building.html.erb
@@ -4,7 +4,7 @@ title: Building
<%= render Page::ContainerComponent.new(page: current_page) do |page| %>
- <%== render_markdown(File.read(Rails.root.join("app/content/pages/documentation/turbo/turbo-site/_source/handbook/06_building.md")).split("---").last) %>
+ <%== render_markdown(File.read(Rails.root.join("modules/turbo-site/_source/handbook/06_building.md")).split("---").last) %>
<%= render partial: "turbo_site_navigation", locals: { current_page: current_page, model: TurboHandbookModel } %>
diff --git a/app/content/pages/documentation/turbo/handbook/07_installing.html.erb b/app/content/pages/documentation/turbo/handbook/07_installing.html.erb
index fb6cfb88..5d08b6ff 100644
--- a/app/content/pages/documentation/turbo/handbook/07_installing.html.erb
+++ b/app/content/pages/documentation/turbo/handbook/07_installing.html.erb
@@ -4,7 +4,7 @@ title: Installing
<%= render Page::ContainerComponent.new(page: current_page) do |page| %>
- <%== render_markdown(File.read(Rails.root.join("app/content/pages/documentation/turbo/turbo-site/_source/handbook/07_installing.md")).split("---").last) %>
+ <%== render_markdown(File.read(Rails.root.join("modules/turbo-site/_source/handbook/07_installing.md")).split("---").last) %>
<%= render partial: "turbo_site_navigation", locals: { current_page: current_page, model: TurboHandbookModel } %>
diff --git a/app/content/pages/documentation/turbo/reference/01_drive.html.erb b/app/content/pages/documentation/turbo/reference/01_drive.html.erb
index 83928d12..ffb71531 100644
--- a/app/content/pages/documentation/turbo/reference/01_drive.html.erb
+++ b/app/content/pages/documentation/turbo/reference/01_drive.html.erb
@@ -4,7 +4,7 @@ title: Drive
<%= render Page::ContainerComponent.new(page: current_page) do |page| %>
- <%== render_markdown(File.read(Rails.root.join("app/content/pages/documentation/turbo/turbo-site/_source/reference/drive.md")).split("---").last) %>
+ <%== render_markdown(File.read(Rails.root.join("modules/turbo-site/_source/reference/drive.md")).split("---").last) %>
<%= render partial: "turbo_site_navigation", locals: { current_page: current_page, model: TurboReferenceModel } %>
diff --git a/app/content/pages/documentation/turbo/reference/02_frames.html.erb b/app/content/pages/documentation/turbo/reference/02_frames.html.erb
index 9f705c88..f2985548 100644
--- a/app/content/pages/documentation/turbo/reference/02_frames.html.erb
+++ b/app/content/pages/documentation/turbo/reference/02_frames.html.erb
@@ -4,7 +4,7 @@ title: Frames
<%= render Page::ContainerComponent.new(page: current_page) do |page| %>
- <%== render_markdown(File.read(Rails.root.join("app/content/pages/documentation/turbo/turbo-site/_source/reference/frames.md")).split("---").last) %>
+ <%== render_markdown(File.read(Rails.root.join("modules/turbo-site/_source/reference/frames.md")).split("---").last) %>
<%= render partial: "turbo_site_navigation", locals: { current_page: current_page, model: TurboReferenceModel } %>
diff --git a/app/content/pages/documentation/turbo/reference/03_streams.html.erb b/app/content/pages/documentation/turbo/reference/03_streams.html.erb
index 676ef0d5..19f7f57d 100644
--- a/app/content/pages/documentation/turbo/reference/03_streams.html.erb
+++ b/app/content/pages/documentation/turbo/reference/03_streams.html.erb
@@ -4,7 +4,7 @@ title: Streams
<%= render Page::ContainerComponent.new(page: current_page) do |page| %>
- <%== render_markdown(File.read(Rails.root.join("app/content/pages/documentation/turbo/turbo-site/_source/reference/streams.md")).split("---").last) %>
+ <%== render_markdown(File.read(Rails.root.join("modules/turbo-site/_source/reference/streams.md")).split("---").last) %>
<%= render partial: "turbo_site_navigation", locals: { current_page: current_page, model: TurboReferenceModel } %>
diff --git a/app/content/pages/documentation/turbo/reference/04_events.html.erb b/app/content/pages/documentation/turbo/reference/04_events.html.erb
index 131f86d6..93ae690a 100644
--- a/app/content/pages/documentation/turbo/reference/04_events.html.erb
+++ b/app/content/pages/documentation/turbo/reference/04_events.html.erb
@@ -4,7 +4,7 @@ title: Events
<%= render Page::ContainerComponent.new(page: current_page) do |page| %>
- <%== render_markdown(File.read(Rails.root.join("app/content/pages/documentation/turbo/turbo-site/_source/reference/events.md")).split("---").last) %>
+ <%== render_markdown(File.read(Rails.root.join("modules/turbo-site/_source/reference/events.md")).split("---").last) %>
<%= render partial: "turbo_site_navigation", locals: { current_page: current_page, model: TurboReferenceModel } %>
diff --git a/app/content/pages/documentation/turbo/reference/05_attributes.html.erb b/app/content/pages/documentation/turbo/reference/05_attributes.html.erb
index 5695ae57..847b67ba 100644
--- a/app/content/pages/documentation/turbo/reference/05_attributes.html.erb
+++ b/app/content/pages/documentation/turbo/reference/05_attributes.html.erb
@@ -4,7 +4,7 @@ title: Attributes
<%= render Page::ContainerComponent.new(page: current_page) do |page| %>
- <%== render_markdown(File.read(Rails.root.join("app/content/pages/documentation/turbo/turbo-site/_source/reference/attributes.md")).split("---").last) %>
+ <%== render_markdown(File.read(Rails.root.join("modules/turbo-site/_source/reference/attributes.md")).split("---").last) %>
<%= render partial: "turbo_site_navigation", locals: { current_page: current_page, model: TurboReferenceModel } %>
diff --git a/app/content/pages/documentation/turbo/turbo-site b/app/content/pages/documentation/turbo/turbo-site
deleted file mode 160000
index c378124d..00000000
--- a/app/content/pages/documentation/turbo/turbo-site
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit c378124d94cc025c0f4d7b13215bc90ae1c62ad1
diff --git a/app/content/pages/ecosystem/components/stimulus-components.html.erb b/app/content/pages/ecosystem/components/stimulus-components.html.erb
index bcdff5a1..4aa68bae 100644
--- a/app/content/pages/ecosystem/components/stimulus-components.html.erb
+++ b/app/content/pages/ecosystem/components/stimulus-components.html.erb
@@ -7,4 +7,8 @@ title: Stimulus Components
<%= link_to "stimulus-components", "https://github.com/stimulus-components", target: :_blank %>
<%= link_to "Documentation", "https://www.stimulus-components.com", target: :_blank %>
+
+
+ <%== render_markdown(File.read("modules/stimulus-components/profile/README.md")) %>
+
<% end %>
diff --git a/app/content/pages/ecosystem/components/tailwindcss-stimulus-components.html.erb b/app/content/pages/ecosystem/components/tailwindcss-stimulus-components.html.erb
index 52351dcb..a32532bb 100644
--- a/app/content/pages/ecosystem/components/tailwindcss-stimulus-components.html.erb
+++ b/app/content/pages/ecosystem/components/tailwindcss-stimulus-components.html.erb
@@ -7,4 +7,8 @@ title: Tailwindcss Stimulus Components
<%= link_to "excid3/tailwindcss-stimulus-components", "https://github.com/excid3/tailwindcss-stimulus-components", target: :_blank %>
<%= link_to "Documentation", "https://excid3.github.io/tailwindcss-stimulus-components/", target: :_blank %>
+
+
+ <%== render_markdown(File.read("modules/tailwindcss-stimulus-components/README.md")) %>
+
<% end %>
diff --git a/app/content/pages/ecosystem/extensions/stimulus-use.html.erb b/app/content/pages/ecosystem/extensions/stimulus-use.html.erb
index 085f89b8..5501b70f 100644
--- a/app/content/pages/ecosystem/extensions/stimulus-use.html.erb
+++ b/app/content/pages/ecosystem/extensions/stimulus-use.html.erb
@@ -7,4 +7,8 @@ title: Stimulus Use
<%= link_to "stimulus-use/stimulus-use", "https://github.com/stimulus-use/stimulus-use", target: :_blank %>
<%= link_to "Documentation", "https://stimulus-use.github.io/stimulus-use", target: :_blank %>
+
+
+ <%== render_markdown(File.read("modules/stimulus-use/README.md")) %>
+
<% end %>
diff --git a/app/content/pages/ecosystem/extensions/turbo-morph.html.erb b/app/content/pages/ecosystem/extensions/turbo-morph.html.erb
index d7f0e0ed..de227d43 100644
--- a/app/content/pages/ecosystem/extensions/turbo-morph.html.erb
+++ b/app/content/pages/ecosystem/extensions/turbo-morph.html.erb
@@ -7,4 +7,8 @@ image: morph.png
<% page.with_title(title: current_page.data.fetch("title")) %>
<%= link_to "marcoroth/turbo-morph", "https://github.com/marcoroth/turbo-morph", target: :_blank %>
+
+
+ <%== render_markdown(File.read("modules/turbo-morph/README.md")) %>
+
<% end %>
diff --git a/app/content/pages/ecosystem/extensions/turbo-power.html.erb b/app/content/pages/ecosystem/extensions/turbo-power.html.erb
index b1563a6c..7b88a19a 100644
--- a/app/content/pages/ecosystem/extensions/turbo-power.html.erb
+++ b/app/content/pages/ecosystem/extensions/turbo-power.html.erb
@@ -8,4 +8,8 @@ image: power.png
<%= link_to "marcoroth/turbo_power", "https://github.com/marcoroth/turbo_power", target: :_blank %>
<%= link_to "marcoroth/turbo_power-rails", "https://github.com/marcoroth/turbo_power-rails", target: :_blank %>
+
+
+ <%== render_markdown(File.read("modules/turbo_power/README.md")) %>
+
<% end %>
diff --git a/app/content/pages/ecosystem/gems/kredis.html.erb b/app/content/pages/ecosystem/gems/kredis.html.erb
index 3916364a..e31d6389 100644
--- a/app/content/pages/ecosystem/gems/kredis.html.erb
+++ b/app/content/pages/ecosystem/gems/kredis.html.erb
@@ -6,4 +6,8 @@ title: Kredis
<% page.with_title(title: current_page.data.fetch("title")) %>
<%= link_to "rails/kredis", "https://github.com/rails/kredis", target: :_blank %>
+
+
+ <%== render_markdown(File.read("modules/kredis/README.md")) %>
+
<% end %>
diff --git a/app/content/pages/ecosystem/gems/phlex.html.erb b/app/content/pages/ecosystem/gems/phlex.html.erb
index fb62c74e..e1f36e03 100644
--- a/app/content/pages/ecosystem/gems/phlex.html.erb
+++ b/app/content/pages/ecosystem/gems/phlex.html.erb
@@ -7,4 +7,8 @@ title: Phlex
<%= link_to "phlex-ruby/phlex", "https://github.com/phlex-ruby/phlex", target: :_blank %>
<%= link_to "phlex-ruby/phlex-rails", "https://github.com/phlex-ruby/phlex-rails", target: :_blank %>
+
+
+ <%== render_markdown(File.read("modules/phlex/README.md")) %>
+
<% end %>
diff --git a/app/content/pages/ecosystem/gems/turbo-ruby.html.erb b/app/content/pages/ecosystem/gems/turbo-ruby.html.erb
index 23fa75f8..e902d0c1 100644
--- a/app/content/pages/ecosystem/gems/turbo-ruby.html.erb
+++ b/app/content/pages/ecosystem/gems/turbo-ruby.html.erb
@@ -3,7 +3,10 @@ title: Turbo Ruby
---
<%= render Page::ContainerComponent.new(page: current_page) do |page| %>
- <% page.with_title(title: current_page.data.fetch("title")) %>
<%= link_to "marcoroth/turbo-ruby", "https://github.com/marcoroth/turbo-ruby", target: :_blank %>
+
+
+ <%== render_markdown(File.read("modules/turbo-ruby/README.md")) %>
+
<% end %>
diff --git a/app/content/pages/ecosystem/gems/viewcomponent.html.erb b/app/content/pages/ecosystem/gems/viewcomponent.html.erb
index ba998ecd..ccb8545d 100644
--- a/app/content/pages/ecosystem/gems/viewcomponent.html.erb
+++ b/app/content/pages/ecosystem/gems/viewcomponent.html.erb
@@ -7,4 +7,8 @@ title: ViewComponent
<%= link_to "viewcomponent/view_component", "https://github.com/viewcomponent/view_component", target: :_blank %>
<%= link_to "Documentation", "https://viewcomponent.org", target: :_blank %>
+
+
+ <%== render_markdown(File.read("modules/view_component/README.md")) %>
+
<% end %>
diff --git a/app/content/pages/ecosystem/helpers/currentjs.html.erb b/app/content/pages/ecosystem/helpers/currentjs.html.erb
index 33556679..03d84b8f 100644
--- a/app/content/pages/ecosystem/helpers/currentjs.html.erb
+++ b/app/content/pages/ecosystem/helpers/currentjs.html.erb
@@ -6,4 +6,8 @@ title: Current.js
<% page.with_title(title: current_page.data.fetch("title")) %>
<%= link_to "marcoroth/current.js", "https://github.com/marcoroth/current.js", target: :_blank %>
+
+
+ <%== render_markdown(File.read("modules/current.js/README.md")) %>
+
<% end %>
diff --git a/app/content/pages/ecosystem/helpers/debounced.html.erb b/app/content/pages/ecosystem/helpers/debounced.html.erb
index a5b06dbf..ad5ddbe7 100644
--- a/app/content/pages/ecosystem/helpers/debounced.html.erb
+++ b/app/content/pages/ecosystem/helpers/debounced.html.erb
@@ -6,4 +6,8 @@ title: Debounced
<% page.with_title(title: current_page.data.fetch("title")) %>
<%= link_to "hopsoft/debounced", "https://github.com/hopsoft/debounced", target: :_blank %>
+
+
+ <%== render_markdown(File.read("modules/debounced/README.md")) %>
+
<% end %>
diff --git a/app/content/pages/ecosystem/helpers/requestjs.html.erb b/app/content/pages/ecosystem/helpers/requestjs.html.erb
index 6cc463e6..be2498a7 100644
--- a/app/content/pages/ecosystem/helpers/requestjs.html.erb
+++ b/app/content/pages/ecosystem/helpers/requestjs.html.erb
@@ -7,4 +7,8 @@ title: Request.js
<%= link_to "rails/request.js", "https://github.com/rails/request.js", target: :_blank %>
<%= link_to "rails/requestjs-rails", "https://github.com/rails/requestjs-rails", target: :_blank %>
+
+
+ <%== render_markdown(File.read("modules/request.js/README.md")) %>
+
<% end %>
diff --git a/app/content/pages/ecosystem/new-concepts/formulus.html.erb b/app/content/pages/ecosystem/new-concepts/formulus.html.erb
index 5284b0ac..d44b885b 100644
--- a/app/content/pages/ecosystem/new-concepts/formulus.html.erb
+++ b/app/content/pages/ecosystem/new-concepts/formulus.html.erb
@@ -8,4 +8,8 @@ image: formulus.png
<%= link_to "marcoroth/formulus", "https://github.com/marcoroth/formulus", target: :_blank %>
<%= link_to "marcoroth/formulus-rails", "https://github.com/marcoroth/formulus-rails", target: :_blank %>
+
+
+ <%== render_markdown(File.read("modules/formulus/README.md")) %>
+
<% end %>
diff --git a/app/content/pages/ecosystem/new-concepts/turbo-boost.html.erb b/app/content/pages/ecosystem/new-concepts/turbo-boost.html.erb
index 7ce18f4e..c56dde7e 100644
--- a/app/content/pages/ecosystem/new-concepts/turbo-boost.html.erb
+++ b/app/content/pages/ecosystem/new-concepts/turbo-boost.html.erb
@@ -8,4 +8,8 @@ image: boost.png
<%= link_to "hopsoft/turbo_boost-commands", "https://github.com/hopsoft/turbo_boost-commands", target: :_blank %>
<%= link_to "Documentation", "https://hopsoft.io/@turbo-boost/commands", target: :_blank %>
+
+
+ <%== render_markdown(File.read("modules/turbo_boost-commands/README.md")) %>
+
<% end %>
diff --git a/app/content/pages/ecosystem/npm/chartjs.html.erb b/app/content/pages/ecosystem/npm/chartjs.html.erb
index aac4a805..78735d09 100644
--- a/app/content/pages/ecosystem/npm/chartjs.html.erb
+++ b/app/content/pages/ecosystem/npm/chartjs.html.erb
@@ -5,6 +5,10 @@ title: Chart.js
<%= render Page::ContainerComponent.new(page: current_page) do |page| %>
<% page.with_title(title: current_page.data.fetch("title")) %>
- <%= link_to "chartjs/Chart.js", "https://github.com/chartjs/Chart.js", target: :_blank %>
+ <%= link_to "chartjs/chart.js", "https://github.com/chartjs/chart.js", target: :_blank %>
<%= link_to "Documentation", "https://www.chartjs.org", target: :_blank %>
+
+
+ <%== render_markdown(File.read("modules/chart.js/README.md")) %>
+
<% end %>
diff --git a/app/content/pages/ecosystem/npm/chartkick.html.erb b/app/content/pages/ecosystem/npm/chartkick.html.erb
index c0d79751..3652485b 100644
--- a/app/content/pages/ecosystem/npm/chartkick.html.erb
+++ b/app/content/pages/ecosystem/npm/chartkick.html.erb
@@ -5,5 +5,10 @@ title: Chartkick
<%= render Page::ContainerComponent.new(page: current_page) do |page| %>
<% page.with_title(title: current_page.data.fetch("title")) %>
- <%= link_to "basecamp/local_time", "https://github.com/basecamp/local_time", target: :_blank %>
+ <%= link_to "ankane/chartkick", "https://github.com/ankane/chartkick", target: :_blank %>
+ <%= link_to "Documentation", "https://chartkick.com", target: :_blank %>
+
+
+ <%== render_markdown(File.read("modules/chartkick/README.md")) %>
+
<% end %>
diff --git a/app/content/pages/ecosystem/npm/js-cookie.html.erb b/app/content/pages/ecosystem/npm/js-cookie.html.erb
index 8103f2f6..ecea4584 100644
--- a/app/content/pages/ecosystem/npm/js-cookie.html.erb
+++ b/app/content/pages/ecosystem/npm/js-cookie.html.erb
@@ -6,4 +6,8 @@ title: JS Cookie
<% page.with_title(title: current_page.data.fetch("title")) %>
<%= link_to "js-cookie/js-cookie", "https://github.com/js-cookie/js-cookie", target: :_blank %>
+
+
+ <%== render_markdown(File.read("modules/js-cookie/README.md")) %>
+
<% end %>
diff --git a/app/content/pages/ecosystem/npm/listjs.html.erb b/app/content/pages/ecosystem/npm/listjs.html.erb
new file mode 100644
index 00000000..05170369
--- /dev/null
+++ b/app/content/pages/ecosystem/npm/listjs.html.erb
@@ -0,0 +1,14 @@
+---
+title: List.js
+---
+
+<%= render Page::ContainerComponent.new(page: current_page) do |page| %>
+ <% page.with_title(title: current_page.data.fetch("title")) %>
+
+ <%= link_to "javve/list.js", "https://github.com/javve/list.js", target: :_blank %>
+ <%= link_to "Documentation", "https://listjs.com", target: :_blank %>
+
+
+ <%== render_markdown(File.read("modules/list.js/README.md")) %>
+
+<% end %>
diff --git a/app/content/pages/ecosystem/npm/local-time.html.erb b/app/content/pages/ecosystem/npm/local-time.html.erb
index 2005aa81..707a9c9e 100644
--- a/app/content/pages/ecosystem/npm/local-time.html.erb
+++ b/app/content/pages/ecosystem/npm/local-time.html.erb
@@ -6,4 +6,8 @@ title: Local Time
<% page.with_title(title: current_page.data.fetch("title")) %>
<%= link_to "basecamp/local_time", "https://github.com/basecamp/local_time", target: :_blank %>
+
+
+ <%== render_markdown(File.read("modules/local_time/README.md")) %>
+
<% end %>
diff --git a/app/content/pages/ecosystem/npm/relative-time-element.html.erb b/app/content/pages/ecosystem/npm/relative-time-element.html.erb
index 8863e969..f5803891 100644
--- a/app/content/pages/ecosystem/npm/relative-time-element.html.erb
+++ b/app/content/pages/ecosystem/npm/relative-time-element.html.erb
@@ -6,4 +6,8 @@ title: Relative Time Element
<% page.with_title(title: current_page.data.fetch("title")) %>
<%= link_to "github/relative-time-element", "https://github.com/github/relative-time-element", target: :_blank %>
+
+
+ <%== render_markdown(File.read("modules/relative-time-element/README.md")) %>
+
<% end %>
diff --git a/app/content/pages/ecosystem/npm/tippyjs.html.erb b/app/content/pages/ecosystem/npm/tippyjs.html.erb
index 3d8ab891..b703f724 100644
--- a/app/content/pages/ecosystem/npm/tippyjs.html.erb
+++ b/app/content/pages/ecosystem/npm/tippyjs.html.erb
@@ -8,4 +8,7 @@ title: Tippy.js
<%= link_to "atomiks/tippyjs", "https://github.com/atomiks/tippyjs", target: :_blank %>
<%= link_to "Documentation", "https://tippyjs.bootcss.com", target: :_blank %>
+
+ <%== render_markdown(File.read("modules/tippyjs/README.md")) %>
+
<% end %>
diff --git a/app/content/pages/ecosystem/npm/tom-select.html.erb b/app/content/pages/ecosystem/npm/tom-select.html.erb
index 38bd17f6..eea0710f 100644
--- a/app/content/pages/ecosystem/npm/tom-select.html.erb
+++ b/app/content/pages/ecosystem/npm/tom-select.html.erb
@@ -7,4 +7,8 @@ title: Tom Select
<%= link_to "orchidjs/tom-select", "https://github.com/orchidjs/tom-select", target: :_blank %>
<%= link_to "Documentation", "https://tom-select.js.org", target: :_blank %>
+
+
+ <%== render_markdown(File.read("modules/tom-select/README.md")) %>
+
<% end %>
diff --git a/app/content/pages/ecosystem/tooling/stimulus-parser.html.erb b/app/content/pages/ecosystem/tooling/stimulus-parser.html.erb
index 39d22d02..974e5f06 100644
--- a/app/content/pages/ecosystem/tooling/stimulus-parser.html.erb
+++ b/app/content/pages/ecosystem/tooling/stimulus-parser.html.erb
@@ -6,4 +6,8 @@ title: Stimulus Parser
<% page.with_title(title: current_page.data.fetch("title")) %>
<%= link_to "marcoroth/stimulus-parser", "https://github.com/marcoroth/stimulus-parser", target: :_blank %>
+
+
+ <%== render_markdown(File.read("modules/stimulus-parser/README.md")) %>
+
<% end %>
diff --git a/app/content/pages/ecosystem/turbo-native/turbo-native-initializer.html.erb b/app/content/pages/ecosystem/turbo-native/turbo-native-initializer.html.erb
index 780e456b..ffc0effa 100644
--- a/app/content/pages/ecosystem/turbo-native/turbo-native-initializer.html.erb
+++ b/app/content/pages/ecosystem/turbo-native/turbo-native-initializer.html.erb
@@ -6,4 +6,8 @@ title: Turbo Native Initializer
<% page.with_title(title: current_page.data.fetch("title")) %>
<%= link_to "lazaronixon/turbo-native-initializer", "https://github.com/lazaronixon/turbo-native-initializer", target: :_blank %>
+
+
+ <%== render_markdown(File.read("modules/turbo-native-initializer/README.md")) %>
+
<% end %>
diff --git a/app/content/pages/ecosystem/turbo-native/turbo-navigator.html.erb b/app/content/pages/ecosystem/turbo-native/turbo-navigator.html.erb
index 838650ae..cfb28f63 100644
--- a/app/content/pages/ecosystem/turbo-native/turbo-navigator.html.erb
+++ b/app/content/pages/ecosystem/turbo-native/turbo-navigator.html.erb
@@ -6,4 +6,8 @@ title: Turbo Navigator
<% page.with_title(title: current_page.data.fetch("title")) %>
<%= link_to "joemasilotti/TurboNavigator", "https://github.com/joemasilotti/TurboNavigator", target: :_blank %>
+
+
+ <%== render_markdown(File.read("modules/turbonavigator/README.md")) %>
+
<% end %>
diff --git a/app/content/pages/ecosystem/websockets/anycable.html.erb b/app/content/pages/ecosystem/websockets/anycable.html.erb
index 7bf5d679..2220d3a5 100644
--- a/app/content/pages/ecosystem/websockets/anycable.html.erb
+++ b/app/content/pages/ecosystem/websockets/anycable.html.erb
@@ -8,4 +8,8 @@ title: AnyCable
<%= link_to "anycable/anycable", "https://github.com/anycable/anycable", target: :_blank %>
<%= link_to "anycable.io", "https://anycable.io", target: :_blank %>
<%= link_to "Documentation", "https://docs.anycable.io/guides/hotwire", target: :_blank %>
+
+
+ <%== render_markdown(File.read("modules/anycable/README.md")) %>
+
<% end %>
diff --git a/app/content/pages/use-cases/charts.html.erb b/app/content/pages/use-cases/charts.html.erb
new file mode 100644
index 00000000..d246c846
--- /dev/null
+++ b/app/content/pages/use-cases/charts.html.erb
@@ -0,0 +1,9 @@
+---
+title: Charts
+---
+
+<%= render Page::ContainerComponent.new(page: current_page) do |page| %>
+ <%= render UI::TitleComponent.new(title: current_page.data.fetch("title")) %>
+
+ <%= render Page::ContributeComponent.new(file: current_page.asset.path.path) %>
+<% end %>
diff --git a/app/content/pages/use-cases/cookies.html.erb b/app/content/pages/use-cases/cookies.html.erb
new file mode 100644
index 00000000..8cbb1cb2
--- /dev/null
+++ b/app/content/pages/use-cases/cookies.html.erb
@@ -0,0 +1,9 @@
+---
+title: Cookies
+---
+
+<%= render Page::ContainerComponent.new(page: current_page) do |page| %>
+ <%= render UI::TitleComponent.new(title: current_page.data.fetch("title")) %>
+
+ <%= render Page::ContributeComponent.new(file: current_page.asset.path.path) %>
+<% end %>
diff --git a/app/content/pages/use-cases/drawing-on-images.html.erb b/app/content/pages/use-cases/drawing-on-images.html.erb
index 13934378..67a1914b 100644
--- a/app/content/pages/use-cases/drawing-on-images.html.erb
+++ b/app/content/pages/use-cases/drawing-on-images.html.erb
@@ -1,11 +1,10 @@
---
-title: Interacting with HTML5 Canvas
+title: HTML5 Canvas
+subtitle: Interacting with the HTML5 Canvas
---
<%= render Page::ContainerComponent.new(page: current_page) do |page| %>
- <% page.with_title(title: current_page.data.fetch("title")) %>
+ <% page.with_title(title: current_page.data.fetch("subtitle")) %>
-
+ <%= link_to "HTML5 Canvas on Rails - Series (Ariel Fogel)", "https://www.fogel.dev/canvas_on_rails_1", target: "_blank" %>
<% end %>
diff --git a/modules/anycable b/modules/anycable
new file mode 160000
index 00000000..0d762fa1
--- /dev/null
+++ b/modules/anycable
@@ -0,0 +1 @@
+Subproject commit 0d762fa1556a3434d0f7aef710903655d2a0061f
diff --git a/modules/chart.js b/modules/chart.js
new file mode 160000
index 00000000..6516b0a1
--- /dev/null
+++ b/modules/chart.js
@@ -0,0 +1 @@
+Subproject commit 6516b0a150eebf3fb9eab596f89d63e27e1bc6d5
diff --git a/modules/chartkick b/modules/chartkick
new file mode 160000
index 00000000..e6b11076
--- /dev/null
+++ b/modules/chartkick
@@ -0,0 +1 @@
+Subproject commit e6b11076a3196b1a820ab54dbd8d1ef448e7a2b7
diff --git a/modules/current.js b/modules/current.js
new file mode 160000
index 00000000..d7688b1f
--- /dev/null
+++ b/modules/current.js
@@ -0,0 +1 @@
+Subproject commit d7688b1fe05e404fcbbc3d9ae456646100ac1d1c
diff --git a/modules/debounced b/modules/debounced
new file mode 160000
index 00000000..a2c3dd68
--- /dev/null
+++ b/modules/debounced
@@ -0,0 +1 @@
+Subproject commit a2c3dd68cb3802539604b5e892a53d40a7ccc6dd
diff --git a/modules/formulus b/modules/formulus
new file mode 160000
index 00000000..db376ae8
--- /dev/null
+++ b/modules/formulus
@@ -0,0 +1 @@
+Subproject commit db376ae83bffef197166e896ecfc801a17347d27
diff --git a/modules/js-cookie b/modules/js-cookie
new file mode 160000
index 00000000..0ce42f2f
--- /dev/null
+++ b/modules/js-cookie
@@ -0,0 +1 @@
+Subproject commit 0ce42f2f749ed6d680736a12281e2d02b2e4a265
diff --git a/modules/kredis b/modules/kredis
new file mode 160000
index 00000000..cc15c2f5
--- /dev/null
+++ b/modules/kredis
@@ -0,0 +1 @@
+Subproject commit cc15c2f5d2b635cabf7a0643d3582145be687366
diff --git a/modules/list.js b/modules/list.js
new file mode 160000
index 00000000..0c947162
--- /dev/null
+++ b/modules/list.js
@@ -0,0 +1 @@
+Subproject commit 0c947162b5fc7af515ba2b9340b7e5e45a63fee5
diff --git a/modules/local_time b/modules/local_time
new file mode 160000
index 00000000..28a2d685
--- /dev/null
+++ b/modules/local_time
@@ -0,0 +1 @@
+Subproject commit 28a2d685b88a3985beebfb4d8bdb5cf965866163
diff --git a/modules/phlex b/modules/phlex
new file mode 160000
index 00000000..5a4002f9
--- /dev/null
+++ b/modules/phlex
@@ -0,0 +1 @@
+Subproject commit 5a4002f906dbf20e09fd087f51a5841e85187064
diff --git a/modules/relative-time-element b/modules/relative-time-element
new file mode 160000
index 00000000..d0da95b8
--- /dev/null
+++ b/modules/relative-time-element
@@ -0,0 +1 @@
+Subproject commit d0da95b8c69bd22b76781d50d6143f7427844380
diff --git a/modules/request.js b/modules/request.js
new file mode 160000
index 00000000..03d484c4
--- /dev/null
+++ b/modules/request.js
@@ -0,0 +1 @@
+Subproject commit 03d484c4ebf00e4f7ef3086dd67a0eeb75a060ef
diff --git a/modules/stimulus-components b/modules/stimulus-components
new file mode 160000
index 00000000..f3dca8f0
--- /dev/null
+++ b/modules/stimulus-components
@@ -0,0 +1 @@
+Subproject commit f3dca8f08ab9c46648121b7d4ecbc22d9b2ecc4f
diff --git a/modules/stimulus-parser b/modules/stimulus-parser
new file mode 160000
index 00000000..eff958b6
--- /dev/null
+++ b/modules/stimulus-parser
@@ -0,0 +1 @@
+Subproject commit eff958b625414305af971cd0f4e14e6d91de5af6
diff --git a/modules/stimulus-use b/modules/stimulus-use
new file mode 160000
index 00000000..e9a36724
--- /dev/null
+++ b/modules/stimulus-use
@@ -0,0 +1 @@
+Subproject commit e9a367245521840439df7e8a3ad6da72af8d3c7a
diff --git a/modules/tailwindcss-stimulus-components b/modules/tailwindcss-stimulus-components
new file mode 160000
index 00000000..1ba935f4
--- /dev/null
+++ b/modules/tailwindcss-stimulus-components
@@ -0,0 +1 @@
+Subproject commit 1ba935f4256e40a3602c88e30f3db77ae50624c0
diff --git a/modules/tippyjs b/modules/tippyjs
new file mode 160000
index 00000000..ad85f6fe
--- /dev/null
+++ b/modules/tippyjs
@@ -0,0 +1 @@
+Subproject commit ad85f6feb79cf6c5853c43bf1b2a50c4fa98e7a1
diff --git a/modules/tom-select b/modules/tom-select
new file mode 160000
index 00000000..4d88fdce
--- /dev/null
+++ b/modules/tom-select
@@ -0,0 +1 @@
+Subproject commit 4d88fdce102a8e34e6274c274b2f96ca32b7d26e
diff --git a/modules/turbo-morph b/modules/turbo-morph
new file mode 160000
index 00000000..7ecb2b23
--- /dev/null
+++ b/modules/turbo-morph
@@ -0,0 +1 @@
+Subproject commit 7ecb2b23b739d46b483686f40666cdd6b45ef505
diff --git a/modules/turbo-native-initializer b/modules/turbo-native-initializer
new file mode 160000
index 00000000..2a6df7ac
--- /dev/null
+++ b/modules/turbo-native-initializer
@@ -0,0 +1 @@
+Subproject commit 2a6df7acd188b7f2eab21a2f86bf36b53b7e287f
diff --git a/modules/turbo-ruby b/modules/turbo-ruby
new file mode 160000
index 00000000..35fd5c15
--- /dev/null
+++ b/modules/turbo-ruby
@@ -0,0 +1 @@
+Subproject commit 35fd5c15812f8a6d981576d31c1f840b7bfe6e2d
diff --git a/modules/turbo-site b/modules/turbo-site
new file mode 160000
index 00000000..661a2299
--- /dev/null
+++ b/modules/turbo-site
@@ -0,0 +1 @@
+Subproject commit 661a22993de8e16817472dabdfde9dfd6dc150f8
diff --git a/modules/turbo_boost-commands b/modules/turbo_boost-commands
new file mode 160000
index 00000000..38a71944
--- /dev/null
+++ b/modules/turbo_boost-commands
@@ -0,0 +1 @@
+Subproject commit 38a71944be1e0a16435d547262b239f32107bfd0
diff --git a/modules/turbo_power b/modules/turbo_power
new file mode 160000
index 00000000..ce9b0ac4
--- /dev/null
+++ b/modules/turbo_power
@@ -0,0 +1 @@
+Subproject commit ce9b0ac4e780ca3b1d3b84288aece0081ba3e86e
diff --git a/modules/turbonavigator b/modules/turbonavigator
new file mode 160000
index 00000000..98700ea9
--- /dev/null
+++ b/modules/turbonavigator
@@ -0,0 +1 @@
+Subproject commit 98700ea99e05307233b866576f0ac5838d37981c
diff --git a/modules/view_component b/modules/view_component
new file mode 160000
index 00000000..2427ce79
--- /dev/null
+++ b/modules/view_component
@@ -0,0 +1 @@
+Subproject commit 2427ce79a93cef4b7cccbefe63bd78a29c1f58aa