summaryrefslogtreecommitdiff
path: root/layouts/_default/list.html
diff options
context:
space:
mode:
authorSivaldo <sivaldodavi@disroot.org>2026-06-13 19:20:23 -0300
committerSivaldo <sivaldodavi@disroot.org>2026-06-13 19:20:23 -0300
commit7316238f16655bd127b04476bbf7864b27f940f9 (patch)
tree61f25290b3e5fd14894e52754cfe6dd4e85845ef /layouts/_default/list.html
Commit inicialHEADmain
Diffstat (limited to 'layouts/_default/list.html')
-rw-r--r--layouts/_default/list.html146
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 }}