--- ### ALL PAGES ### layout: themes/[ site.theme.id ]/frontend/core/base ### PAGE CONFIG ### # Hero Section — the front-page lead. News voice: the brand IS the publication. hero: tagline: "{{ site.brand.name }} — independent journalism" headline: "News with a" headline_accent: "pulse" description: "Sharp reporting and zero noise — the stories that matter, delivered before your coffee gets cold." primary_button: text: "Read the latest" icon: "bolt" href: "/blog" secondary_button: text: "Get the newsletter" icon: "envelope" href: "#signup" # The Latest — the front-page feed (posts-driven; newsflash-specific section) latest: superheadline: icon: "bolt" text: "The latest" view_all: text: "View the firehose" href: "/blog" # More to Chew On — extra stories before the big read (posts-driven) more_stories: superheadline: icon: "newspaper" text: "More to chew on" # The Rundown — the newsroom's three-step playbook (newsflash-specific section) rundown: superheadline: icon: "list" text: "The rundown" headline: "Journalism worth your" headline_accent: "morning" subheadline: "What you get from the {{ site.brand.name }} newsroom every single day" items: - title: "Original reporting" description: "Stories researched and written by people who pick up the phone — not rewrites of someone else's scoop." - title: "The daily briefing" description: "The five stories that actually matter, distilled into a five-minute read and delivered before sunrise." - title: "Deep dives" description: "Long-form features that follow the money, the people, and the consequences long after the headlines move on." # Newsletter Rail (sidebar signup) newsletter: headline: "{{ site.brand.name }}, daily." subheadline: "One ridiculously good email every morning. The stories that matter, minus the noise." button: text: "Join" form: placeholder: "you@example.com" disclaimer: "Free forever. Unsubscribe anytime." # The Desks — coverage areas (newsflash-specific section) desks: superheadline: icon: "newspaper" text: "The desks" headline: "Coverage with" headline_accent: "teeth" subheadline: "Three desks, one standard: report it right, write it sharp." cta_button: text: "Browse all stories" icon: "arrow-right" href: "/blog" items: - title: "Tech" description: "The machines, the makers, and the money rewiring how we live and work." icon: "microchip" href: "/blog/categories/tech" - title: "Culture" description: "What we watch, wear, and argue about — and why it matters more than you think." icon: "masks-theater" href: "/blog/categories/culture" - title: "Money" description: "Markets, paychecks, and the economics hiding inside everyday decisions." icon: "chart-line" href: "/blog/categories/money" # Stats Section — the masthead numbers stats: - number: "2M+" label: "Monthly readers" sublabel: "Across 120+ countries" - number: "12k+" label: "Stories published" sublabel: "And counting" - number: "5 min" label: "Daily briefing" sublabel: "Fully caught up" - number: "0" label: "Clickbait headlines" sublabel: "We checked" # CTA Section — the big-read band cta: superheadline: icon: "bolt" text: "The big read" headline: "Don't just scroll the news." headline_accent: "Understand it." description: "Join the readers who start their day with {{ site.brand.name }} — reporting with teeth, context with heart, and zero filler." primary_button: text: "Start reading" icon: "bolt" href: "/blog" secondary_button: text: "Get the newsletter" icon: "envelope" href: "#signup" --- {% comment %} NEWSFLASH HOMEPAGE A newspaper front page: a featured-story hero (publication pitch left, the latest post as the framed cover story right), top-story tiles, "the latest" as an editorial post feed (square art + kicker + headline + dek) with a sticky rail sidebar (most-read + newsletter signup), "the rundown" as the newsroom's numbered three-step playbook, coverage-desk cards (linked to their category pages), a masthead numbers strip, "more to chew on" story tiles, and a dark big-read CTA band. (Reader quotes live on the about page.) Every section is rendered by this layout — no classy includes. The frontmatter defaults are NEWS-genre copy — a theme's defaults are part of its identity (see docs/themes.md "Frontmatter defaults are part of the theme's identity"). Universal sections (hero, stats, cta, newsletter) keep the shared key names; `latest`, `rundown`, `desks`, and `more_stories` are newsflash-specific. Posts-driven sections disappear gracefully when site.posts is empty. {% endcomment %}
{% iftruthy page.resolved.hero.tagline %} {{ page.resolved.hero.tagline }} {% endiftruthy %}

{{ page.resolved.hero.headline }} {% iftruthy page.resolved.hero.headline_accent %} {{ page.resolved.hero.headline_accent }} {% endiftruthy %}

{% iftruthy page.resolved.hero.description %}

{{ page.resolved.hero.description }}

{% endiftruthy %}
{% if site.posts.size > 1 %}
{% endif %} {% comment %} Post slots are strictly deduplicated down the page: hero = post 1, top stories = 2-4, this feed = 5-9, most-read rail = 10-14, "more to chew on" = 15-17. Sections disappear gracefully when the site doesn't have enough posts to fill their slice (only the ticker repeats the latest — it's chrome, not content). {% endcomment %} {% if site.posts.size > 4 %}
{% iftruthy page.resolved.latest.superheadline.text %}

{{ page.resolved.latest.superheadline.text }}

{% endiftruthy %} {% iftruthy page.resolved.latest.view_all %} {{ page.resolved.latest.view_all.text }} {% uj_icon "arrow-right", "ms-1" %} {% endiftruthy %}
{% endif %}
{% iftruthy page.resolved.rundown.superheadline.text %}

{{ page.resolved.rundown.superheadline.text }}

{% endiftruthy %}

{{ page.resolved.rundown.headline }} {% iftruthy page.resolved.rundown.headline_accent %} {{ page.resolved.rundown.headline_accent }} {% endiftruthy %}

{% iftruthy page.resolved.rundown.subheadline %}

{{ page.resolved.rundown.subheadline }}

{% endiftruthy %}
{% for item in page.resolved.rundown.items %}

{{ item.title }}

{{ item.description }}

{% endfor %}
{% iftruthy page.resolved.desks.superheadline.text %}

{{ page.resolved.desks.superheadline.text }}

{% endiftruthy %}

{{ page.resolved.desks.headline }} {% iftruthy page.resolved.desks.headline_accent %} {{ page.resolved.desks.headline_accent }} {% endiftruthy %}

{% iftruthy page.resolved.desks.subheadline %}

{{ page.resolved.desks.subheadline }}

{% endiftruthy %}
{% for desk in page.resolved.desks.items %} {% comment %} Each desk card links to its category page (href overrides the slugified title) {% endcomment %} {% capture desk_href %}{% if desk.href %}{{ desk.href }}{% else %}/blog/categories/{{ desk.title | slugify }}{% endif %}{% endcapture %} {% endfor %}
{% iftruthy page.resolved.desks.cta_button %} {% endiftruthy %}
{% iftruthy page.resolved.stats %}

By the numbers

{% for stat in page.resolved.stats %}
{{ stat.number }}
{{ stat.label }}
{% iftruthy stat.sublabel %}
{{ stat.sublabel }}
{% endiftruthy %}
{% endfor %}
{% endiftruthy %} {% comment %} More to chew on: posts 15-17 — the slice after the most-read rail (no duplicates) {% endcomment %} {% if site.posts.size > 14 %}
{% iftruthy page.resolved.more_stories.superheadline.text %}

{{ page.resolved.more_stories.superheadline.text }}

{% endiftruthy %}
{% endif %}
{% iftruthy page.resolved.cta.superheadline.text %} {% uj_icon page.resolved.cta.superheadline.icon, "me-1" %}{{ page.resolved.cta.superheadline.text }} {% endiftruthy %}

{{ page.resolved.cta.headline }} {% iftruthy page.resolved.cta.headline_accent %} {{ page.resolved.cta.headline_accent }} {% endiftruthy %}

{% iftruthy page.resolved.cta.description %}

{{ page.resolved.cta.description }}

{% endiftruthy %}
{{ content | uj_content_format }}