Skip to content

feat: migrate fastled.io and redirect documentation to dox - #7

Merged
zackees merged 1 commit into
gh-pagesfrom
feat/migrate-fastled-site
Oct 21, 2026
Merged

zackees merged 1 commit into
gh-pagesfrom
feat/migrate-fastled-site

Conversation

@zackees

@zackees zackees commented Oct 21, 2026 •

Copy link
Copy Markdown
Member

Move the existing fastled.io site out of FastLED/FastLED so its generated-documentation branch can be retired. Import only the 156 non-documentation files from the current live site, retain PaletteKnife's newer script fixes, and point documentation links to https://fastled.github.io/dox/.

The existing Pages workflow now deploys the static files directly. The /docs/ landing and custom 404 redirect old documentation URLs to corresponding dox pages, preserving queries and fragments. Legacy deep links use browser redirects from a 404 response.

Validation: source snapshot audit preserves all 156 files (152 byte-identical, four intentional homepage/tool differences); no generated docs imported. Sixteen redirect cases, Actionlint, authored-file whitespace checks, and the combined local review pass. After merge, verify the preview deployment before transferring the fastled.io custom domain. Existing DNS already points to GitHub Pages.

Coordinated with FastLED/FastLED#4878 and the main-repo publisher retirement PR. Merge this first to validate the preview before domain cutover.

Main publisher retirement: FastLED/FastLED#4880.

Summary by CodeRabbit

  • New Features

    • Added a refreshed FastLED homepage with feature highlights, supported platforms, and getting-started links.
    • Added FastLED blog pages, archives, RSS/Atom feeds, sitemap, and crawler guidance.
    • Added a custom fastled.io domain configuration for the website and blog.
    • Added a styled PaletteKnife documentation and usage page.
    • Added a custom 404 page with documentation-aware redirects.
  • Bug Fixes

    • Corrected homepage and community redirect destinations.
    • Documentation links now preserve paths, queries, and fragments when redirecting.

@coderabbitai

coderabbitai Bot commented Oct 21, 2026

Copy link
Copy Markdown

Review in Change Stack →

Note

Currently processing new changes in this PR. This may take a few minutes, please wait...

⚙️ Run configuration
  • Configuration used: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: a018dbe4-84ef-4110-bad5-c7d1574fac7e
📥 Commits

Reviewing files that changed from the base of the PR and between 5ec3b39 and 8c0426d.

⛔ Files ignored due to path filters: 107
  • assets/jwplayer/glow/controlbar/background.png is excluded by !**/*.png
  • assets/jwplayer/glow/controlbar/blankButton.png is excluded by !**/*.png
  • assets/jwplayer/glow/controlbar/divider.png is excluded by !**/*.png
  • assets/jwplayer/glow/controlbar/fullscreenButton.png is excluded by !**/*.png
  • assets/jwplayer/glow/controlbar/fullscreenButtonOver.png is excluded by !**/*.png
  • assets/jwplayer/glow/controlbar/muteButton.png is excluded by !**/*.png
  • assets/jwplayer/glow/controlbar/muteButtonOver.png is excluded by !**/*.png
  • assets/jwplayer/glow/controlbar/normalscreenButton.png is excluded by !**/*.png
  • assets/jwplayer/glow/controlbar/normalscreenButtonOver.png is excluded by !**/*.png
  • assets/jwplayer/glow/controlbar/pauseButton.png is excluded by !**/*.png
  • assets/jwplayer/glow/controlbar/pauseButtonOver.png is excluded by !**/*.png
  • assets/jwplayer/glow/controlbar/playButton.png is excluded by !**/*.png
  • assets/jwplayer/glow/controlbar/playButtonOver.png is excluded by !**/*.png
  • assets/jwplayer/glow/controlbar/timeSliderBuffer.png is excluded by !**/*.png
  • assets/jwplayer/glow/controlbar/timeSliderCapLeft.png is excluded by !**/*.png
  • assets/jwplayer/glow/controlbar/timeSliderCapRight.png is excluded by !**/*.png
  • assets/jwplayer/glow/controlbar/timeSliderProgress.png is excluded by !**/*.png
  • assets/jwplayer/glow/controlbar/timeSliderRail.png is excluded by !**/*.png
  • assets/jwplayer/glow/controlbar/unmuteButton.png is excluded by !**/*.png
  • assets/jwplayer/glow/controlbar/unmuteButtonOver.png is excluded by !**/*.png
  • assets/jwplayer/glow/display/background.png is excluded by !**/*.png
  • assets/jwplayer/glow/display/bufferIcon.png is excluded by !**/*.png
  • assets/jwplayer/glow/display/muteIcon.png is excluded by !**/*.png
  • assets/jwplayer/glow/display/playIcon.png is excluded by !**/*.png
  • assets/jwplayer/glow/dock/button.png is excluded by !**/*.png
  • assets/jwplayer/glow/playlist/item.png is excluded by !**/*.png
  • assets/jwplayer/glow/playlist/itemOver.png is excluded by !**/*.png
  • assets/jwplayer/glow/playlist/sliderCapBottom.png is excluded by !**/*.png
  • assets/jwplayer/glow/playlist/sliderCapTop.png is excluded by !**/*.png
  • assets/jwplayer/glow/playlist/sliderRail.png is excluded by !**/*.png
  • assets/jwplayer/glow/playlist/sliderThumb.png is excluded by !**/*.png
  • assets/jwplayer/glow/sharing/embedIcon.png is excluded by !**/*.png
  • assets/jwplayer/glow/sharing/embedScreen.png is excluded by !**/*.png
  • assets/jwplayer/glow/sharing/shareIcon.png is excluded by !**/*.png
  • assets/jwplayer/glow/sharing/shareScreen.png is excluded by !**/*.png
  • assets/jwplayer/player.swf is excluded by !**/*.swf
  • attic/FastSPI_LED.zip is excluded by !**/*.zip
  • blog/assets/jwplayer/glow/controlbar/background.png is excluded by !**/*.png
  • blog/assets/jwplayer/glow/controlbar/blankButton.png is excluded by !**/*.png
  • blog/assets/jwplayer/glow/controlbar/divider.png is excluded by !**/*.png
  • blog/assets/jwplayer/glow/controlbar/fullscreenButton.png is excluded by !**/*.png
  • blog/assets/jwplayer/glow/controlbar/fullscreenButtonOver.png is excluded by !**/*.png
  • blog/assets/jwplayer/glow/controlbar/muteButton.png is excluded by !**/*.png
  • blog/assets/jwplayer/glow/controlbar/muteButtonOver.png is excluded by !**/*.png
  • blog/assets/jwplayer/glow/controlbar/normalscreenButton.png is excluded by !**/*.png
  • blog/assets/jwplayer/glow/controlbar/normalscreenButtonOver.png is excluded by !**/*.png
  • blog/assets/jwplayer/glow/controlbar/pauseButton.png is excluded by !**/*.png
  • blog/assets/jwplayer/glow/controlbar/pauseButtonOver.png is excluded by !**/*.png
  • blog/assets/jwplayer/glow/controlbar/playButton.png is excluded by !**/*.png
  • blog/assets/jwplayer/glow/controlbar/playButtonOver.png is excluded by !**/*.png
  • blog/assets/jwplayer/glow/controlbar/timeSliderBuffer.png is excluded by !**/*.png
  • blog/assets/jwplayer/glow/controlbar/timeSliderCapLeft.png is excluded by !**/*.png
  • blog/assets/jwplayer/glow/controlbar/timeSliderCapRight.png is excluded by !**/*.png
  • blog/assets/jwplayer/glow/controlbar/timeSliderProgress.png is excluded by !**/*.png
  • blog/assets/jwplayer/glow/controlbar/timeSliderRail.png is excluded by !**/*.png
  • blog/assets/jwplayer/glow/controlbar/unmuteButton.png is excluded by !**/*.png
  • blog/assets/jwplayer/glow/controlbar/unmuteButtonOver.png is excluded by !**/*.png
  • blog/assets/jwplayer/glow/display/background.png is excluded by !**/*.png
  • blog/assets/jwplayer/glow/display/bufferIcon.png is excluded by !**/*.png
  • blog/assets/jwplayer/glow/display/muteIcon.png is excluded by !**/*.png
  • blog/assets/jwplayer/glow/display/playIcon.png is excluded by !**/*.png
  • blog/assets/jwplayer/glow/dock/button.png is excluded by !**/*.png
  • blog/assets/jwplayer/glow/playlist/item.png is excluded by !**/*.png
  • blog/assets/jwplayer/glow/playlist/itemOver.png is excluded by !**/*.png
  • blog/assets/jwplayer/glow/playlist/sliderCapBottom.png is excluded by !**/*.png
  • blog/assets/jwplayer/glow/playlist/sliderCapTop.png is excluded by !**/*.png
  • blog/assets/jwplayer/glow/playlist/sliderRail.png is excluded by !**/*.png
  • blog/assets/jwplayer/glow/playlist/sliderThumb.png is excluded by !**/*.png
  • blog/assets/jwplayer/glow/sharing/embedIcon.png is excluded by !**/*.png
  • blog/assets/jwplayer/glow/sharing/embedScreen.png is excluded by !**/*.png
  • blog/assets/jwplayer/glow/sharing/shareIcon.png is excluded by !**/*.png
  • blog/assets/jwplayer/glow/sharing/shareScreen.png is excluded by !**/*.png
  • blog/assets/jwplayer/player.swf is excluded by !**/*.swf
  • blog/favicon.png is excluded by !**/*.png
  • blog/images/bird_32_gray.png is excluded by !**/*.png
  • blog/images/bird_32_gray_fail.png is excluded by !**/*.png
  • blog/images/code_bg.png is excluded by !**/*.png
  • blog/images/dotted-border.png is excluded by !**/*.png
  • blog/images/email.png is excluded by !**/*.png
  • blog/images/line-tile.png is excluded by !**/*.png
  • blog/images/noise.png is excluded by !**/*.png
  • blog/images/rss.png is excluded by !**/*.png
  • blog/images/search.png is excluded by !**/*.png
  • blog/javascripts/libs/jquery.min.js is excluded by !**/*.min.js
  • favicon.ico is excluded by !**/*.ico
  • favicon.png is excluded by !**/*.png
  • homepage/css/img/bg-bright.jpg is excluded by !**/*.jpg
  • homepage/css/img/bg.jpg is excluded by !**/*.jpg
  • homepage/css/normalize.min.css is excluded by !**/*.min.css
  • homepage/js/vendor/jquery-1.10.1.min.js is excluded by !**/*.min.js
  • homepage/js/vendor/modernizr-2.6.2-respond-1.1.0.min.js is excluded by !**/*.min.js
  • images/HSV-rainbow-with-desc.jpg is excluded by !**/*.jpg
  • images/HSV-spectrum-with-desc.jpg is excluded by !**/*.jpg
  • images/HSV-wheel-with-desc.jpg is excluded by !**/*.jpg
  • images/bird_32_gray.png is excluded by !**/*.png
  • images/bird_32_gray_fail.png is excluded by !**/*.png
  • images/code_bg.png is excluded by !**/*.png
  • images/dotted-border.png is excluded by !**/*.png
  • images/email.png is excluded by !**/*.png
  • images/gradient-palette-1.png is excluded by !**/*.png
  • images/leds.jpg is excluded by !**/*.jpg
  • images/line-tile.png is excluded by !**/*.png
  • images/noise.png is excluded by !**/*.png
  • images/rss.png is excluded by !**/*.png
  • images/search.png is excluded by !**/*.png
  • javascripts/libs/jquery.min.js is excluded by !**/*.min.js
  • tools/paletteknife/cpt-city-examples.png is excluded by !**/*.png
📒 Files selected for processing: 51
  • +/index.html
  • .github/workflows/jekyll-gh-pages.yml
  • .nojekyll
  • 404.html
  • CNAME
  • README.md
  • assets/jwplayer/glow/glow.xml
  • atom.xml
  • blog/CNAME
  • blog/assets/jwplayer/glow/glow.xml
  • blog/atom.xml
  • blog/blog/2014/01/10/first-post/index.html
  • blog/blog/2014/01/13/fastled-2-released-slash/index.html
  • blog/blog/2015/10/08/fastled-3-dot-1-released/index.html
  • blog/blog/archives/index.html
  • blog/index.html
  • blog/javascripts/github.js
  • blog/javascripts/libs/jXHR.js
  • blog/javascripts/libs/swfobject-dynamic.js
  • blog/javascripts/modernizr-2.0.js
  • blog/javascripts/octopress.js
  • blog/javascripts/pinboard.js
  • blog/javascripts/twitter.js
  • blog/robots.txt
  • blog/sitemap.xml
  • blog/stylesheets/screen.css
  • chat/index.html
  • code/index.html
  • docs/index.html
  • faq/index.html
  • homepage/css/main.css
  • homepage/css/normalize.css
  • homepage/js/main.js
  • index.html
  • issues/index.html
  • javascripts/github.js
  • javascripts/libs/jXHR.js
  • javascripts/libs/swfobject-dynamic.js
  • javascripts/modernizr-2.0.js
  • javascripts/octopress.js
  • javascripts/pinboard.js
  • javascripts/twitter.js
  • r/index.html
  • reddit/index.html
  • releases/index.html
  • robots.txt
  • sitemap.xml
  • stylesheets/screen.css
  • tools/paletteknife/index.html
  • tools/paletteknife/minimal.css
  • wiki/index.html
+-----------------------------------------------------------------------------------------------------+
| Trained in all forms of code review, from the ancient art of waterfall to the modern ways of agile. |
+-----------------------------------------------------------------------------------------------------+
  \
   \     /)/)
        ( '')
        /  |
      o(___)
✨ Finishing Touches
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@zackees
zackees merged commit f842fc8 into gh-pages Oct 21, 2026
1 of 2 checks passed
@zackees
zackees deleted the feat/migrate-fastled-site branch October 21, 2026 22:18
@fastled-project-sync fastled-project-sync Bot moved this to Triage in FastLED Tracker Oct 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Triage

Development

Successfully merging this pull request may close these issues.

1 participant