Skip to content

Conversation

@LoveDoLove
Copy link
Owner

This pull request refactors the project showcase to improve maintainability, accessibility, and user experience. The main changes include modularizing the frontend logic into a dedicated index.js file, enhancing the project metadata display, improving accessibility and semantic structure in the HTML, and moving styles to separate CSS files for better performance and maintainability.

Frontend Refactor and Feature Enhancements

  • Moved all project fetching and rendering logic from inline scripts in public/index.html to a new modular public/index.js file, improving maintainability and separation of concerns. The new logic ensures robust handling of project metadata and displays additional fields such as topics, stars, and forks.
  • Enhanced the project cards to display repository topics, star and fork counts, and dynamically show any extra metadata fields not explicitly rendered, providing a richer user experience.

Accessibility and Semantic Improvements

  • Updated public/index.html to use more semantic HTML elements (e.g., <main>, <header>, <section>, <article>) and added ARIA attributes for improved accessibility. Also replaced the inline script with a deferred reference to the new index.min.js.
  • Improved accessibility for interactive elements by adding ARIA labels and tabindex attributes to links in the project cards.

Performance and Maintainability

  • Moved all styles from inline CSS in public/index.html to separate files: public/style.css (readable) and public/style.min.css (minified for production), and updated the HTML to preload and link the minified stylesheet for faster page loads. [1] [2]
  • Updated meta tags in public/index.html for better SEO and social sharing previews.

Data and Version Updates

  • Updated the project list for the user LoveDoLove in data/projects.json, adding the new open-source-projects repo and correcting a project name.
  • Incremented the package version in package.json from 1.0.3 to 1.0.4.

LoveDoLove and others added 30 commits August 28, 2025 12:45
Added .gitattributes for text normalization, .github funding and issue templates, and a LICENSE file with the MIT license. Updated .gitignore to exclude additional files and directories.
Introduces a new projects.json data file and updates index.html to display a dynamic open source projects showcase. The page now fetches project data, renders project cards with links, and includes improved styling and error handling.
Replaced the example project with multiple real project entries, each including name, description, GitHub URL, and hostname where applicable. This update provides a more comprehensive and accurate showcase of available projects.
Update the project version from 0.0.0 to 1.0.0 to indicate a major release or stable version.
Added PNG and WEBP versions of the icon to the images directory and a WEBP favicon to the public/images directory for use in the application.
Added a comprehensive README.md with project details and usage instructions. Replaced .webp favicon and icon images with .ico and .png formats, updated the favicon link in index.html, and removed unused .webp files for better browser compatibility.
Replaced the placeholder logo image URL with a local image (images/icon.png) in the README for improved branding and offline accessibility.
Incremented the package version from 1.0.0 to 1.0.1 to reflect recent changes.
Added a GitHub Actions workflow and a Node.js script to fetch repository metadata from the GitHub API and update public/data/projects.json. Refactored projects.json structure to group projects by provider and account, and updated frontend code to handle the new format.
Update package version for new release or patch.
Added node-fetch to package.json and updated package-lock.json to include node-fetch and its related packages. This enables HTTP request functionality in the project.
Refactored fetch initialization to use global.fetch if available, falling back to dynamic import of node-fetch. This improves compatibility with environments that provide a global fetch implementation.
Added 'contents: write' permissions to the fetch-repo-metadata GitHub Actions workflow to enable actions that require write access to repository contents.
Deleted the public/data/projects.json file, which contained metadata and project listings for various repositories. This change may be part of a data cleanup or a shift to a new data source.
Updated the project version from 1.0.2-1 to 1.0.2 in package.json and package-lock.json for consistency.
Introduces a new projects.json file in the public/data directory to store project-related data.
Update package.json and package-lock.json to version 1.0.3 for release or deployment.
Introduces two GitHub Actions workflows: one for cleaning up all workflow runs and another for cleaning up only failed runs. These workflows use external Python scripts to automate the cleanup process and require write permissions for actions.
Moved JavaScript logic to a separate index.js file for better maintainability and modularity. Replaced inline CSS with a minified external stylesheet for performance. Enhanced index.html with SEO and social meta tags, improved accessibility, and updated markup structure.
Updated project fetching and rendering logic to handle metadata fields as arrays, ensuring all displayed fields are properly formatted as strings or numbers. Improved project card UI to show topics, stargazers, forks, and homepage links, and removed legacy hostname handling. Extra metadata fields are now displayed dynamically if present.
Project topics are now displayed as styled chips in a flex row instead of a list. Added new CSS for improved layout and appearance, including styles for topic chips and project cards.
Introduces public/index.min.js containing async functions to fetch, render, and display project data from /data/projects.json. Includes error handling and dynamic creation of project cards with metadata and links.
Reformatted index.html for improved readability and consistency. Changed script reference from index.js to index.min.js to use the minified JavaScript file.
Added 'open-source-projects' and replaced 'cloudflare-smart-tools' with 'cloudflare-smart-cache' in LoveDoLove's project entries.
Update package.json and package-lock.json to reflect new version 1.0.4.
@LoveDoLove LoveDoLove self-assigned this Sep 9, 2025
@LoveDoLove LoveDoLove merged commit 558339a into main Sep 9, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants