Conversation
Add VideoFrontmatter interface extending SharedFrontmatter with video-specific fields (youtubeId, uploadDate, duration, topic as string[], etc). Replace Video/VideoMeta/VideoWithMeta with VideoData and VideoCardData types. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Rename transcript.md to index.md for all 42 videos. Merge metadata from videos.json into YAML frontmatter (youtubeId, uploadDate, duration, educationLevel, topic as array, format, author, lang, breadcrumb). This consolidates the split data model into a single source of truth per video. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Rewrite videos.ts to read video data from index.md frontmatter via readdir + gray-matter instead of videos.json. Delete videos.json and videoTranscripts.ts (logic merged into videos.ts). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add optional boolean parameter to preserve paragraph structure instead of collapsing all whitespace. Used by video JSON-LD transcript output. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Update VideoWatch to use getVideoData and conditionally hide transcript link. Delete Transcript, TranscriptContent (inlined into page.tsx), VideoGalleryFilter (moved to _components/), and barrel export from src/components/Videos/. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add VideoGalleryFilter, constants.ts (VIDEO_CATEGORIES), and utils.ts (getVideosByCategory) under the /videos route. Update listing page to use filesystem-based getVideos() and colocated imports. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Rewrite video detail page to use getVideoData with frontmatter, SimpleHero, Breadcrumbs, formatDate, renderSimpleMarkdown for transcript, and forceMount accordion for SEO. Update JSON-LD to accept VideoFrontmatter and use shared stripMarkdown. Update translation keys. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Remove PR-added Playwright test files for video utilities. These tested the old JSON-based data layer and are not needed for production. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Remove unused CSS classes from VideoWatch, delete e2e video tests from PR, and remove 5 unused i18n keys from page-videos.json. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add CollectionPage + ItemList structured data to /videos/ following the established pattern from tutorials and wallets pages. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add in-memory caches for getVideoData and getVideos to deduplicate filesystem reads during static generation. Limit generateStaticParams to English-only (42 pages instead of 1,050); other locales render on-demand via SSR. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
dateTimeFormat called from within formatDate function VideoFrontmatter not used via layout Frontmatter type
Emit inline VideoObject structured data when videos are embedded on content pages via VideoWatch, making them eligible for rich results on the host page. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
VideoObject should only exist on watch pages. Strip VideoObject nesting from the /videos/ ItemList to avoid duplication, keeping just ListItem with name + url. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
VideoObject structured data should only live on the dedicated watch pages, not on host pages that embed videos via VideoWatch. Reverts the inline JSON-LD addition. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Generate video detail pages for all 25 locales at build time instead of only English. Removes SSR on-demand rendering for non-English video pages. Updates sitemap to include all locale variants for video pages with proper hreflang alternates. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Co-Authored-By: wackerow <54227730+wackerow@users.noreply.github.com>
Dead code: - Remove unused getTranscript() and getVideoMeta() - Remove unused minVideos from category config - Trim VideoCardData of 4 unused client fields DRY: - Extract cached getVideoSlugs(), reuse in getVideos() Performance: - Use string comparison for YYYY-MM-DD date sorting - Sort videos by date in JSON-LD before slice(0, 10) Patterns: - Remove unnecessary cn() on static class strings - Fix SimpleHero to use barrel import - Rename view-transcript key to page-videos- prefix - Remove redundant transcript trim check Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Co-Authored-By: wackerow <54227730+wackerow@users.noreply.github.com>
Collaborator
Review cleanupPerformance
Dead code removed
DRY / cleanup
Reviewed by Claude Opus 4.6 |
Member
Author
|
@pettinarip Wouldn't merge this without checking with @mnelsonBT but marking it for code review |
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Co-Authored-By: wackerow <54227730+wackerow@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Refactors the video data architecture and page structure to align with site conventions.
Data layer
videos.jsoninto markdown frontmatter (index.md)transcript.mdtoindex.mdfor each videoVideoFrontmattertype, replaced oldVideo/VideoMeta/VideoWithMetatypesvideos.jsonandvideoTranscripts.ts(merged intovideos.ts)breadcrumbfrontmatter to all 42 videosstripMarkdowninstead of duplicatestripMdxComponents and organization
src/components/intoapp/[locale]/videos/_components/page.tsxVIDEO_CATEGORIESto colocatedconstants.ts,getVideosByCategorytoutils.tsVideoWatchshared component for new data layerSEO preserved
VideoObjectschema on every video detail pageforceMountgenerateStaticParamspre-renders all video pages at build timegenerateMetadatafor title and description meta tagsPreview links
Schema Markup Validator