feat: theme composition (theme lookup chain)
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 35/100
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
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
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de MASS4ORG/Fanstatic
-
c:templates p:low size:S t:task
Dificultad 5/5 Más de una semana Aptitud para principiantes 45/100
-
c:content good first issue p:low size:S t:feature
Dificultad 4/5 3-5 días Aptitud para principiantes 58/100
-
c:content p:medium size:L t:feature
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
-
c:templates p:medium size:S t:feature
Dificultad 4/5 3-5 días Aptitud para principiantes 57/100
-
c:templates p:high size:M t:feature
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
Todos los issues de MASS4ORG/Fanstatic
Issues similares
-
documentation
Dificultad 1/5 1-3 horas Aptitud para principiantes 62/100
-
bug misleading tooling trivial
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Los mantenedores suelen responder en 1 día
-
Docs example projects pinned to a literal library version instead of 3.*Posiblemente ocupada @DaveSkender la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
facioquo/stock-indicators-dotnet#2372 ·
Los mantenedores suelen responder en 1 día
-
[Docs] officecli-docx SKILL.md still describes `\n` as a soft line break after #262Posiblemente ocupada @giprime la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
Facepunch/sbox-public#12097 ·
Los mantenedores suelen responder en 2 días