Migrate website to Next.js rebuild (history-preserving)#195
Conversation
feat(authors): add reusable AuthorCard component
…es (#8) feat(authors): add reusable AuthorCard component and fix all linting issues
[feat add]: integrate AuthorCard into news post layout
…#11) feat(news): migrate all posts from old Jekyll site into Next.js contents --------- Co-authored-by: Rudra Pratap Singh <rudransh.iitm@gmail.com>
* feat(posts): add automatic redirect support for previous slugs * fix(posts): decode slug before matching post filenames
…18) Implemented a complete client-side search system with build-time indexing, markdown AST-based content normalization, and MiniSearch integration. Added a responsive search modal with keyboard shortcuts, debounced input, loading states, and improved UI/UX, along with proper typing, production compatibility, and documentation.
…te (#13) Fixed React Server Components CVE vulnerabilities by updating dependencies (next, react-server-dom-webpack, react-server-dom-parcel, and react-server-dom-turbopack) to secure versions using the fix-react2shell-next tool, ensuring all package.json files use patched versions based on the official React advisory. Improved site navigation by replacing scroll-based links with route-based navigation and resolving link/button issues. Implemented and migrated multiple website pages including About Us, Contribute, Contact, Downloads, Documentation, Driverless, and other legacy markdown pages. Added a fully functional projects section, news listing with sidebar and year-based navigation, and homepage improvements such as rendering latest posts and aligning hero/info sections with the live site. Fixed theme behavior to follow the system color scheme, updated author card styling for light mode, aligned the footer globally, corrected homepage interactions, and resolved build issues for Next.js 15 static export. Also cleaned content by removing non-legacy news files, syncing posts, updating dependencies, and adjusting the search index. Co-authored-by: Vercel <vercel[bot]@users.noreply.github.com> Co-authored-by: Rudra Pratap Singh rudransh.iitm@gmail.com
style: Refine UI styling and update color palette Refined the overall UI styling by updating the color palette and adjusting layouts across multiple components and pages to provide a cleaner and more consistent visual refresh. feat: Redesign search modal with spotlight-style interface Redesigned the search modal to follow a spotlight-style interface for a more modern search experience. Added an escape-to-close feature and improved the presentation of search results. feat: Improve search input responsiveness and TOC styling Improved the responsiveness of the search input for better usability and updated the styling of table of contents headings for improved readability. feat(navbar): Improve mobile search button usability Enhanced the styling and spacing of the mobile search button in the navbar to make it easier to access and visually consistent with the rest of the interface. feat(hero): Add subtle banner image to hero section Added a subtle background banner image to the hero section and adjusted its height to improve visual balance and overall page appeal.
… handling Added an environment variable `NEXT_PUBLIC_BASE_PATH` to the Next.js configuration for dynamic image path handling based on the production environment. Updated image sources in the Downloads page and hero section to utilize this variable, ensuring correct image loading in different environments. Removed the hardcoded background image URL in the hero section for improved flexibility. Also updated the generated timestamp in the static search index.
…onment flexibility; update generated timestamp in static index
…sed on environment; update generated timestamp in static index
…th; remove unused CSS comments for cleaner code
…ity and responsiveness; update generated timestamp in static index
…dex generation timestamp.
…on for the embedding process.
|
Another little issue: In the main directory is a file named As it is now, I always have to do If A correct GIT repo does not modify any of the files belonging to the repo during the build, test, and install process. The process can add files, but not modify any file which is under version control. |
Read this article - https://stackoverflow.com/questions/39990017/should-i-commit-the-yarn-lock-file-and-what-is-it-for |
|
Some small issues:
|
|
Also do not forget to mention in the
|
…out, rename Hall of Fame, expand README - Git-ignore and untrack public/search/* (regenerated by yarn build) - Start contributor descriptions on a new line in the website announcement post - Rename 'Hall of Fame' to 'This Website's Hall of Fame' - README: yarn/yarnpkg naming, Debian/Ubuntu setup, build-time data generation, yarn.lock reset; remove migration notes
…rinter Application 1.3.1 and LPrint 1.4.0
|
Issues:
and apply the URI to the test copy of the new site via I get an error:
Old URLs should work on the new site, just ignoring parameters which do not exist on the new site any more. |
|
Also a straight PPD download which works with the old site does not work with the new site: |
|
Problem seems to be the |
- Introduced QueryApiClient to handle printer queries with support for text and XML formats. - Updated legacy redirect logic to resolve paths based on parameters. - Enhanced the generate-query-api script to create static endpoints for printers and drivers. - Improved CSS styles for better text wrapping and hyphenation in prose elements. - Added support for manufacturer filtering in the printer list page. - Updated package.json to include new query API generation script. - Added new legacy redirects for home and database paths.
|
I tried again: This time now obvious error got reported, but the whole download process took rather long time, around 30 sec, and the resulting file was garbage. |
|
Another point is the query API. Please see the examples in the OpenPrinting News November 2021 and September 2022, URLs containing When testing with Please test all the |
|
@tillkamppeter Thanks for testing this carefully — both points come down to the same root cause, and I've fixed what's fixable and want to be transparent about one hard constraint. Why the downloads came back as "garbage"The site is a fully static export on GitHub Pages — there's no PHP/CGI or any server-side code, and that's a deliberate constraint (free, permanent hosting). A static host looks up a file by path and discards the query string before it serves anything. So The machine interface (works with
|
|
OK, thank you very much. I have created the query web API many years ago. I do not know about any user of it. At least I never got bug reports or feature requests concerning it. So mot probably it has no users and we can live without it. If there turn up bug reports because of it missing, we direct the people to the Machine Interface you mention. |
Migrate the OpenPrinting website to the Next.js rebuild
This PR replaces the current Jekyll site with the new Next.js + Tailwind + Framer Motion rebuild, while preserving the complete existing Git history. It is opened as a draft for maintainer review — it does not change
masteror any repo settings on its own.History preservation (most important)
This is a merge of two previously-unrelated histories, not a force-push:
master— 7 years of OpenPrinting site historygit log. Authors such as Michael R Sweet, Till Kamppeter, Zdenek Dohnal, dependabot, etc. are fully preserved on the first-parent history.git log --first-parentcontinues to show the originalmastertimeline, with this merge on top.What changed in config for production
config/site.config.ts): defaults to""(domain root). This is the org root Pages site (https://openprinting.github.io/), so a project-style/openprinting.github.ioprefix would 404 every asset/CSS/JS/link.?? ""keeps an explicitNEXT_PUBLIC_BASE_PATHoverride possible for sub-path previews.OpenPrintingso repo slug, links, and Giscus mapping target this repository.repoIdnow points at this repo. This repo has no "Blog Comments" discussion category, so comments currently map to General.categoryIdinconfig/site.config.ts.build.yml/deploy.ymlnow trigger onmaster(wasmain).GitHub Pages for this repo is currently the legacy Jekyll builder (
build_type: legacy, sourcemaster/root). This PR's tree is Next.js, not Jekyll. Before/when this lands onmaster, Pages "Build and deployment → Source" must be switched to "GitHub Actions" (the includeddeploy.ymlbuilds the static export and publishes it). Otherwise Pages will try to Jekyll-build a Next.js tree and the live site will break. There is no custom domain (cname: null), so no CNAME handling is needed.Validation performed locally
tsc --noEmittypechecknext lint(no warnings/errors)https://openprinting.github.io/...)next buildruns the Foomatic prebuild which needs Linux-only system packages — it runs in CI (build.yml) on this PR.Rollback
Trivial and safe:
masteris untouched. If anything is wrong, close the PR (and, if already merged, the merge can be reverted; the legacy Pages source can be restored). No history is lost either way.