From f82e3c8aab6a55e1e5db7f88ded53a28da28baf3 Mon Sep 17 00:00:00 2001 From: Carlos Date: Mon, 9 Mar 2026 13:19:22 +0100 Subject: [PATCH] Add flag dont show blog in the gallery --- pcweb/pages/about/views/news.py | 4 ++-- pcweb/pages/blog/blog.py | 9 +++++---- pcweb/pages/blog/page.py | 4 ++-- pcweb/pages/blog/paths.py | 9 +++++++++ pcweb/views/marketing_navbar.py | 10 ++++++---- 5 files changed, 24 insertions(+), 12 deletions(-) diff --git a/pcweb/pages/about/views/news.py b/pcweb/pages/about/views/news.py index 4b31b8eda..2b3e09730 100644 --- a/pcweb/pages/about/views/news.py +++ b/pcweb/pages/about/views/news.py @@ -3,7 +3,7 @@ from pcweb.components.marketing_button import button from pcweb.pages.blog import blogs -from pcweb.pages.blog.paths import blog_data +from pcweb.pages.blog.paths import blog_data_visible def news_item(title: str, date: str, description: str, url: str) -> rx.Component: @@ -80,7 +80,7 @@ def news() -> rx.Component: blog.metadata["description"], path, ) - for path, blog in list(blog_data.items())[:3] + for path, blog in blog_data_visible()[:3] ], class_name="grid lg:grid-cols-3 grid-cols-1 gap-12", ), diff --git a/pcweb/pages/blog/blog.py b/pcweb/pages/blog/blog.py index 3a3f0e0ef..c50ced774 100644 --- a/pcweb/pages/blog/blog.py +++ b/pcweb/pages/blog/blog.py @@ -9,7 +9,7 @@ from pcweb.templates.marketing_page import marketing_page from .page import page -from .paths import blog_data +from .paths import blog_data, blog_data_visible blog_filter_cs = ClientStateVar.create("blog_filter", default="All") @@ -145,9 +145,10 @@ def card_content(meta: dict, path: str, class_name: str = "") -> rx.Component: def component_grid() -> rx.Component: - posts = [] - for path, document in list(blog_data.items()): - posts.append(card_content(meta=document.metadata, path=f"/blog/{path}")) + posts = [ + card_content(meta=doc.metadata, path=f"/blog/{path}") + for path, doc in blog_data_visible() + ] return rx.el.div( *posts, rx.el.div( diff --git a/pcweb/pages/blog/page.py b/pcweb/pages/blog/page.py index 14891c1cf..5c0db5c97 100644 --- a/pcweb/pages/blog/page.py +++ b/pcweb/pages/blog/page.py @@ -10,7 +10,7 @@ from pcweb.meta.meta import blog_jsonld from pcweb.templates.docpage import get_toc, right_sidebar_item_highlight -from .paths import blog_data +from .paths import blog_data_visible def share_post_button(icon: str, href: str, aria_label: str) -> rx.Component: @@ -136,7 +136,7 @@ def more_posts(current_post: dict) -> rx.Component: from pcweb.pages.blog.blog import card_inner posts = [] - blog_items = list(blog_data.items()) + blog_items = blog_data_visible() current_index = next( ( i diff --git a/pcweb/pages/blog/paths.py b/pcweb/pages/blog/paths.py index 794a45568..7a3afaf48 100644 --- a/pcweb/pages/blog/paths.py +++ b/pcweb/pages/blog/paths.py @@ -20,3 +20,12 @@ def get_route(path: str): paths = flexdown.utils.get_flexdown_files(PAGES_PATH) blog_data = get_blog_data(paths) + + +def blog_data_visible() -> list[tuple[str, Document]]: + """Blog posts with show_in_cards not explicitly False (default True).""" + return [ + (path, doc) + for path, doc in blog_data.items() + if doc.metadata.get("show_in_cards", True) + ] diff --git a/pcweb/views/marketing_navbar.py b/pcweb/views/marketing_navbar.py index 77d943ea7..3d1381bc5 100644 --- a/pcweb/views/marketing_navbar.py +++ b/pcweb/views/marketing_navbar.py @@ -16,7 +16,7 @@ REFLEX_BUILD_URL, ) from pcweb.pages.blog import blogs -from pcweb.pages.blog.paths import blog_data +from pcweb.pages.blog.paths import blog_data_visible from pcweb.pages.customers.landing import customers from pcweb.pages.docs import ai_builder from pcweb.pages.faq import faq @@ -292,10 +292,12 @@ def blog_item(blog: dict, path: str) -> rx.Component: def blog_column() -> rx.Component: - first_blog = next(iter(blog_data.values())) + visible = blog_data_visible() + if not visible: + return rx.fragment() + items = [blog_item(doc, path) for path, doc in visible[:2]] return rx.el.div( - blog_item(first_blog, next(iter(blog_data.keys()))), - blog_item(list(blog_data.values())[1], list(blog_data.keys())[1]), + *items, rx.el.a( "Read All in Blog", ui.icon("ArrowRight01Icon", class_name="ml-auto"),