{% extends "public_base.html" %} {% import "marketplace/_macros.html" as mk %} {% block title %}{{ feature.short }}{% endblock %} {% block content %} {#- Every section below reads one part of the sheet (MarketplaceService.sheet) and is left out when the index entry carries nothing for it, so a sheet built from an older index is shorter, never broken. -#} {% set provides = feature.provides %} {% set deps = sheet.dependencies %} {% set known = known_shorts %}
{{ feature.org }}/{{ feature.repo }}
{{ feature.description or _("No description yet.") }}
{{ m.target }} {{ _("with") }} {{ m.mixin }}{% endfor %}
{{ r.module }} {{ _("to") }} {{ r.blueprint }}{% endfor %}
{{ o.target }} {{ _("with") }} {{ o.replacement }}{% else %}{{ o.target }}{% endif %}{% endfor %}
{{ _("It changes %(feature)s in place, without a fork, so the product installs both.", feature=rf.base) }}
{{ _("This feature declares no public contract surface.") }}
{% endif %}{{ mk.command(cmd.invocation) }}
{{ mk.copy_button("mk-cmd-" ~ loop.index, _("Copy the %(command)s command", command=cmd.name)) }}
{{ cmd.help }}
{% endif %}{{ _("Run them in your workspace once the feature is installed in the selected product.") }}
| {{ _("Setting") }} | {{ _("Default") }} | {{ _("What it does") }} |
|---|---|---|
{{ s.key }} |
{% if s.required %}{{ _("Required") }}
{% elif s.default %}{{ s.default }}
{% else %}{{ _("empty") }}{% endif %}
|
{% if s.help %}{{ s.help }}{% else %}{{ _("No description yet.") }}{% endif %} {% if s.required %}{{ _("Has no default, so the product must set a value.") }}{% endif %} |
{{ _("These are the defaults. A product changes them in its own pyproject.toml, under [tool.splent.config], or in .env.deploy in production.") }}{% if settings.per_product %} {{ _("%(name)s stands for the name of the product that takes the feature.", name="
{{ _("The code reads these variables. This version publishes no defaults or descriptions for them, so check the feature's documentation before relying on one.") }}
{% endif %}{{ port.container }}
{% if port.host_var %}{{ _("on the host port set in") }} {{ port.host_var }}
{% elif port.host %}{{ _("on host port") }} {{ port.host }}{% endif %}
{% endfor %}
{{ _("These containers start with the product in development only. A production build leaves the feature and its containers out.") }}
{% elif install_env == "prod" %}{{ _("These containers run in production builds only.") }}
{% else %}{{ _("They start with the product. Host ports come from variables, so two products on one machine never collide.") }}
{% endif %}{{ _("No hard dependencies.") }}
{% endif %}{{ mk.icon("alert-triangle") }}{{ _("Collisions") }}
{{ c.item }} ({{ c.kind }}) {{ _("also provided by") }}
{% for other in c.features if other != feature.short %}{{ mk.feature_chip(other, external=other not in known) }}{% endfor %}
{{ other }}{% if not loop.last %} {% endif %}{% endfor %}
{% endif %}
{{ _("Other features fill its hook slots. A refinement can override its templates and services or extend its models without forking it.") }}
{{ cp.framework }}
{% else %}{{ _("No range declared") }}{% endif %}