Repository navigation
Release: videos library, inline article videos, advisory CTA rail - #319
Merged
Merged
Conversation
…ark launch The /videos page: explainers and product demos from the YouTube channel, filtered by category and topic, each video playing in place (no per-video page, so nothing competes with the blog or guide on the same topic). Reads the code catalog plus the YouTube feed by default, or the CMS videos collection when VIDEOS_SOURCE=cms. Ships dark: lib/videos-launch.ts (VIDEOS_PAGE_PUBLIC = false) keeps the page noindex and nofollow, out of the sitemap and out of the Resources menu. Flip it on final approval. Also restores the /videos purge entries and the "Purge this page" button on the Videos admin screen that the CMS-only change leaves out until this route exists.
…r, phone filter sheet) Cards carry a colour-coded category tag, topic chips and a clearer length badge. A Quick starts row lists the explainers under two minutes. Playing a video opens a theatre band above the grid with an Up next list, so the grid no longer jumps. Phones get one Filter button that opens a sheet with category, topic and sort.
After a direct load on /videos?topic=x, router.replace('/videos') kept the old
URL, so Clear all, the category tabs and chip removal did nothing. Write the
filters with history.replaceState, which useSearchParams follows and which
needs no request for a static page.
Advisories get the blog's Next steps cards in the right column at xl, and a bottom bar below it. All three cards show at once (an advisory is too short to step through by reading depth). The advisory's technology label picks the catalog image before the text match does. Events are advisory_stacked_rail_*; the blog's names and demo link source are unchanged. StickyRail keeps the last card on screen when the rail is taller than the viewport.
Editors can place a published video from the Videos library in any body rich-text field (slash menu or Add menu). The block stores only the library id. Pages call resolveLexicalVideos after highlightLexical, since the blog body renders in a client component and cannot fetch; it fills each block and drops one whose video is gone, private or unpublished. The renderer draws a poster with a play button and loads YouTube only on click. Wired on blog, guide, advisory, news, resource and knowledge hub pages. Talks are allowed here, unlike on /videos.
…picker Advisories now use the blog's Ladder and bottom bar instead of the stacked version, so the page looks like the live blog. They carry the same two optional editor picks (ctaResource, ctaImage; hand-written, guarded migration 20261102_120000_advisories_cta_picks, checked against a Payload push). The image pick is a searchable picker over the images catalog (CatalogImagePicker, fed by GET /api/catalog-images) instead of a typed name. The automatic-pick hint under both fields and its web route now take a collection, so they work for advisories. Clicks are advisory_ladder_rail_*.
…x order matches CI
|
The latest updates on your projects. Learn more about Vercel for GitHub. 1 Skipped Deployment
|
This branch was previously deployed
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.
What ships
Videos library (dark launch)
/videospage with inline playback, topic rail, Quick starts, theatre player and a phone filter sheet.router.replaceis a no-op after a hard load; nowhistory.replaceState).videosandvideoTopicscollections, YouTube sync job, publish gate (needs a topic and a summary).VIDEOS_PAGE_PUBLICis turned on. Nothing here changes what visitors see on/videos.Videos inside articles
videoEmbedblock in the rich-text editor (Add menu and slash menu). It stores a relationship to a published video plus an optional caption.Advisory pages get the blog's CTA rail
advisory_ladder_rail_<stage>, demo link usessource=advisory.ctaResource,ctaImage). Unset, the automatic match applies as before.GET /api/catalog-images.Deploy notes
IF NOT EXISTS:20261031_100000_add_videosand20261102_120000_advisories_cta_picks.ctaResourceandctaImagefields, which exist only after the migration.VIDEOS_SOURCE=cmsandVIDEOS_PAGE_PUBLICare separate switches and stay off.Checks
On the merged tree (this branch plus
mainat 80f07b4):verify:copy, 704 tests pass.verify:page-registryclean. 2351 tests passed on the branch before themainmerge; the suites touched bymainpass after it.Not verified
Inserting a Video block through the admin editor UI. A scripted headless run left an empty block (the existing CTA card block did the same), so please try it once in a real browser after deploy.
The draft #313 is the same branch aimed at
development.mainanddevelopmentare at the same commit, so this PR carries the same change.