Skip to main content

splent_feature_public

The public home page of a SPLENT product, served at / (public.index) inside the theme's public shell.

The home knows nothing about content features. It draws the product's brand copy from the SITE_* settings, and every feature that has something for the home contributes it through a template slot. What this feature provides and requires is listed in the [tool.splent.contract] section of pyproject.toml, which splent feature:contract --write keeps in sync with the source.

Slots

Slot What goes in it
home.hero The whole hero. Only for a feature that owns the headline moment (an edition, a campaign). When nothing renders, the home draws its own hero from SITE_*.
home.section Full-width sections (upcoming events, partners, latest posts), in their registered order.
home.aside A narrower column beside the sections (counters, a call to action). Optional.
layout.sidebar.top Filled by this feature with the "Home" entry of the product sidebar, for one more minor (see Menus).
 no home.aside                    something in home.aside
┌─────────────────────────┐      ┌────────────────┬────────┐
│ home.section            │      │ home.section   │ home.  │
│ home.section            │      │ home.section   │ aside  │
└─────────────────────────┘      └────────────────┴────────┘
                                  under 960px the aside goes
                                  below the sections

The home only splits into two columns when some callback of home.aside returns markup, so a hook can decline on its own (return "") and the sections keep the full width. With an aside and no section, the aside takes the whole width.

A feature fills a slot from its hooks.py, as in this one for home.aside.

from flask import render_template
from splent_framework.hooks.template_hooks import register_template_hook


def home_counters():
    return render_template("hooks/home_counters.html", total=count_items())


register_template_hook("home.aside", home_counters, order=50)

Lower order renders first. Each callback renders a self-contained block (a card, a box). Several of them stack with a gap between them.

The columns are styled by assets/css/home.css (classes home-columns, home-columns__main and home-columns__aside). A skin or a product changes the split with the --home-columns custom property.

.home-columns { --home-columns: minmax(0, 1fr) 20rem; }

Menus

public registers Home in the framework's menu registry.

Key Section Order Icon Opens Shown to
home site 0 home / Everyone

site is the section for visitors and accounts alike, at the top of the sidebar and without a heading, so Home comes before every other entry of the site. A product whose logo already leads to the home page leaves it out by key, like any other entry.

# the product's pyproject.toml
[tool.splent.layout.menu]
hide = ["home"]

For one minor Home is still drawn in layout.sidebar.top as well, for the shells that fill their sidebar from hooks. A shell draws the registry or those slots, never both, or Home shows twice. hide does not reach that slot: a product whose shell still draws it leaves Home out with PUBLIC_SIDEBAR_HOME_LINK (see Configuration).

The home page extends shell('public'), so a product that points the public shell at another layout (SPLENT_SHELL_PUBLIC) moves it too.

Configuration

Declared in [tool.splent.config]. A product overrides them in its own [tool.splent.config].

Key Default What it does
PUBLIC_SIDEBAR_HOME_LINK true Deprecated, and 2.0 removes it. false leaves Home out of layout.sidebar.top and out of the menu registry, and logs a warning at startup. Once the product's shell draws the menu registry, use hide = ["home"] instead; a shell that still draws layout.sidebar.top needs the setting until then.

Use it in a product

splent feature:add splent_feature_public

Develop

splent feature:test splent_feature_public
splent feature:contract splent_feature_public

Metadata

Release files for splent-feature-public 1.10.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for splent-feature-public 1.10.0
File Size Uploaded Provenance
splent_feature_public-1.10.0.tar.gz 23.8 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for splent-feature-public 1.10.0
File Interpreter ABI Platform
splent_feature_public-1.10.0-py3-none-any.whl Python 3 none any Details

Total release size: 51.7 kB

Release files / splent_feature_public-1.10.0.tar.gz

Download URL splent_feature_public-1.10.0.tar.gz
Size 23.8 kB
Tags Source
SHA-256 checksum
How to use checksums
b4eaf5afeead64ee083ac2164ac16dc782de4d0429d36808b03a2e671ca75dc5
BLAKE2b-256 checksum
How to use checksums
d22f83e1e24b4e99d83f166efea12597c691b4acd5cf61b28741917858394299
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.16

Release files / splent_feature_public-1.10.0-py3-none-any.whl

Download URL splent_feature_public-1.10.0-py3-none-any.whl
Size 27.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
39a7d3590484e5c8fc3267385076df5c6818d8fd0757ecad2e6e6f349638cf8f
BLAKE2b-256 checksum
How to use checksums
2fb32eb537e3a83ba3c53e5dfb4b7588e53640059aaee38d7d1791c91ac08648
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.16

Security for splent-feature-public 1.10.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page