Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

feat: theme composition (theme lookup chain)

Abierto
#39 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
35/100
Tipo de issue
Nueva funcionalidad
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
csharp
Área
backend

Línea de trabajo

Start with Fanstatic/Models/Theme.cs and the LiquidPhysicalFileProvider and FileUtils.GetTemplateLookupOrder paths named in the issue; then inspect related tests in Fanstatic.Test/ and fixture sites in .TestSites/. Run ./build.sh test to establish the baseline. Done means a site can override one partial while other assets resolve through the theme chain, with the documented lookup order and stated coverage requirements.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

c:templates p:medium size:M t:feature

Part of the Phase 3 epic (#33).

Current State

A site uses exactly one theme (Theme: → Theme.CreateFromSite, Fanstatic/Models/Theme.cs:63), and template
files are resolved inside that single folder (LiquidPhysicalFileProvider, FileUtils.GetTemplateLookupOrder).
Overriding one partial means forking the theme.

Tasks:
  • Accept Theme: [my-overrides, base-theme] (a single string keeps working)
  • Resolve layouts, partials, shortcodes, render hooks, filters, data, i18n and static files through the chain;
    first match wins; static files from later layers are copied first so earlier layers override
  • Site-level layouts/ folder as the implicit first layer
  • Docs page explaining the lookup order

Tests live in Fanstatic.Test/ (xUnit + NSubstitute); fixture sites in .TestSites/. Run ./build.sh test; new/changed methods need CRAP ≤ 15 and ≥ 75 % line coverage.

Acceptance Criteria:
  • A site overrides one partial of a theme without copying the theme; everything else comes from the theme.
Related:
  • #33 (Phase 3 epic, parent)
Lenguaje dominante
C#
Estrellas
1
Forks
0
Merge medio
10 h 23 min
PR fusionados (30 d)
4

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de MASS4ORG/Fanstatic

Todos los issues de MASS4ORG/Fanstatic

Issues similares

Más issues de C#

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.