Skip to content

Conversation

@navidshad
Copy link
Collaborator

@navidshad navidshad commented Dec 11, 2025

🏷️ PR Title: Enhance song data handling, add useSchema composable, and improve SEO with dynamic base URLs

📋 Summary

This PR introduces several improvements including enhanced song data handling with better transpose index calculation, the addition of a new useSchema composable for structured data generation and validation, and dynamic base URL handling to improve SEO metadata across pages. Additionally, the language selection UI in the LanguageSwitcher components has been refined, and workspace configuration along with the project roadmap progress has been cleaned up.

🔗 Related Tasks

#86evqd2b9 - Enhance song data handling and transpose index calculation
#86evuzm61 - Add useSchema composable for structured data generation and validation; Implement dynamic base URL handling and enhance SEO metadata across pages; Update LanguageSwitcher components to improve language selection UI

📝 Additional Details

  • Merged latest changes from main branch to dev to keep up to date.
  • Improvements aim to increase maintainability and user experience through better data management and SEO practices.

📜 Commit List

a951334 feat: #86evqd2b9 Enhance song data handling and transpose index calculation
4e38080 feat: #86evuzm61 Add useSchema composable for structured data generation and validation
d08bb89 feat: #86evuzm61 Implement dynamic base URL handling and enhance SEO metadata across pages
f31cc39 Merge branch 'main' into dev
c933583 refactor: #86evuzm61 Update LanguageSwitcher components to improve language selection UI
8810585 chore: Clean up workspace configuration and update roadmap progress

- Remove the chord_library path from the workspace configuration.
- Mark several tasks as completed in the roadmap, including the Search Page, Filtering Logic, Results Grid, and Artists Index, reflecting progress on discovery and search engine features.
…nguage selection UI

- Replace button-based language selection with a SegmentedControl for better user experience.
- Simplify language label retrieval using i18n for dynamic translations.
- Remove deprecated code and streamline the component structure for clarity.
…metadata across pages

- Introduced a new composable `useBaseUrl` to dynamically determine the base URL for both server-side and client-side rendering, improving API integration.
- Updated `nuxt.config.ts` to utilize the new base URL logic.
- Enhanced SEO metadata management in various pages (`discovery.vue`, `index.vue`, `artist/[id]/[[lang]].vue`, `tab/[id]/[[lang]].vue`) to improve search engine visibility and user engagement.
- Added structured data support for better indexing by search engines.
- Implemented middleware for setting Last-Modified headers to optimize caching and improve performance.
…ion and validation

- Introduced a new composable `useSchema` to facilitate the creation, cleaning, and validation of JSON-LD structured data for SEO purposes.
- Integrated `useSchema` into artist and tab pages to enhance structured data handling for artists and music compositions.
- Improved artist name retrieval logic to respect current language settings and fallback options.
- Updated structured data generation to include timestamps and ensure compliance with schema.org standards.
…lation

- Implemented a watcher for song data changes to recalculate transpose indices based on the song's chords.
- Added logic to load saved settings for transpose indices, ensuring user preferences are respected when navigating to new songs.
- Improved handling of server-side fallbacks for original table index when window is not defined.
@navidshad
Copy link
Collaborator Author

@navidshad navidshad merged commit e2055ce into main Dec 11, 2025
1 check passed
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