diff options
Diffstat (limited to 'layouts/_default/list.html')
| -rw-r--r-- | layouts/_default/list.html | 146 |
1 files changed, 146 insertions, 0 deletions
diff --git a/layouts/_default/list.html b/layouts/_default/list.html new file mode 100644 index 0000000..09804c9 --- /dev/null +++ b/layouts/_default/list.html @@ -0,0 +1,146 @@ +{{ define "title" }} + {{ if .IsHome }}{{ .Site.Title }}{{ else }}{{ .Title }} · {{ .Site.Title }}{{ end }} +{{ end }} + +{{ define "header" }} + <a class="site-name" href="{{ "/" | relURL }}">direito</a> + {{ if not .IsHome }} + <span class="header-sep">/</span> + <span class="breadcrumb">{{ .Title }}</span> + {{ end }} +{{ end }} + +{{ define "main" }} +{{ if .IsHome }} + + {{/* Mapas por slug de disciplina */}} + {{ $simMap := dict }} + {{ $quizMap := dict }} + {{ $discsQz := slice }} + {{ range .Site.RegularPages }} + {{ if eq .Section "quizzes" }} + {{ $slug := .File.Dir | strings.TrimSuffix "/" | path.Base }} + {{ if not (in $discsQz $slug) }}{{ $discsQz = $discsQz | append $slug }}{{ end }} + {{ $isSim := or (.Params.simulado) (in (.File.BaseFileName | lower) "simulado") }} + {{ if $isSim }} + {{ $simMap = merge $simMap (dict $slug (add (index $simMap $slug | default 0) 1)) }} + {{ else }} + {{ $quizMap = merge $quizMap (dict $slug (add (index $quizMap $slug | default 0) 1)) }} + {{ end }} + {{ end }} + {{ end }} + + <div class="disc-grid"> + {{ $txtsSlugs := slice }} + {{ range .Site.Sections }} + {{ if eq .Section "txts" }} + {{ range .Sections }} + {{ $slug := .RelPermalink | strings.TrimSuffix "/" | path.Base }} + {{ $txtsSlugs = $txtsSlugs | append $slug }} + {{ $sims := index $simMap $slug | default 0 }} + {{ $qz := index $quizMap $slug | default 0 }} + <a class="disc-card fade" href="{{ .RelPermalink }}" data-filterable> + <div class="disc-card-name">{{ .Title }}</div> + <div class="disc-card-meta"> + {{ $n := len .RegularPages }} + {{ if $n }}{{ $n }} assunto{{ if gt $n 1 }}s{{ end }}{{ else }}sem textos{{ end }} + {{ if $sims }} · simulado{{ end }} + {{ if $qz }} · {{ $qz }} exercício{{ if gt $qz 1 }}s{{ end }}{{ end }} + </div> + </a> + {{ end }} + {{ end }} + {{ end }} + + {{/* Disciplinas que só existem em quizzes (sem txts) */}} + {{ range $slug := $discsQz }} + {{ if not (in $txtsSlugs $slug) }} + {{ $sims := index $simMap $slug | default 0 }} + {{ $qz := index $quizMap $slug | default 0 }} + <a class="disc-card fade" href="/{{ $slug }}/" data-filterable> + <div class="disc-card-name">{{ humanize (replace $slug "-" " ") }}</div> + <div class="disc-card-meta"> + {{ if $sims }}simulado · {{ end }}{{ $qz }} exercício{{ if gt $qz 1 }}s{{ end }} + </div> + </a> + {{ end }} + {{ end }} + </div> + +{{ else }} + {{/* Página de disciplina */}} + {{ $discSlug := .RelPermalink | strings.TrimSuffix "/" | path.Base }} + <div class="discipline fade"> + <div class="disc-back"><a href="{{ "/" | relURL }}">← disciplinas</a></div> + <div class="discipline-name">{{ .Title }}</div> + + {{ if .Content }} + <div class="disc-intro"> + <article class="prose disc-intro-prose">{{ .Content }}</article> + </div> + {{ end }} + + <div class="disc-extras-wrap"> + {{ partial "disc-extras.html" . }} + </div> + + {{/* Simulados desta disciplina */}} + {{ $simulados := slice }} + {{ range $.Site.RegularPages }} + {{ if eq .Section "quizzes" }} + {{ $parent := .File.Dir | strings.TrimSuffix "/" | path.Base }} + {{ if eq $parent $discSlug }} + {{ if or (.Params.simulado) (in (.File.BaseFileName | lower) "simulado") }} + {{ $simulados = $simulados | append . }} + {{ end }} + {{ end }} + {{ end }} + {{ end }} + {{ with $simulados }} + <div class="subject-group" style="margin-bottom:1.5rem;"> + <div class="sq-label" style="margin-bottom:.65rem;">simulados</div> + <div class="sq-list"> + {{ range . }} + <a class="sq-item" href="{{ .RelPermalink }}"> + <span class="sq-name" style="color:var(--amber);">{{ .Title }}</span> + <span class="sq-meta">simulado</span> + </a> + {{ end }} + </div> + </div> + {{ end }} + + {{/* Assuntos com vínculo aos exercícios */}} + {{ $exercises := slice }} + {{ range $.Site.RegularPages }} + {{ if eq .Section "quizzes" }} + {{ $parent := .File.Dir | strings.TrimSuffix "/" | path.Base }} + {{ if eq $parent $discSlug }} + {{ if not (or (.Params.simulado) (in (.File.BaseFileName | lower) "simulado")) }} + {{ $exercises = $exercises | append . }} + {{ end }} + {{ end }} + {{ end }} + {{ end }} + + <div class="subject-list"> + {{ range .RegularPages }} + {{ $assuntoSlug := .File.BaseFileName }} + {{ $linkedQuiz := false }} + {{ range $exercises }} + {{ if eq .File.BaseFileName $assuntoSlug }} + {{ $linkedQuiz = . }} + {{ end }} + {{ end }} + <a class="subject-row" href="{{ .RelPermalink }}"> + <span class="subject-row-name">{{ .Title }}</span> + <span class="subject-row-meta"> + texto{{ if $linkedQuiz }} · exercícios{{ end }} + </span> + </a> + {{ end }} + {{ if not .RegularPages }}<p class="empty-note">sem assuntos ainda</p>{{ end }} + </div> + </div> +{{ end }} +{{ end }} |
