list.html (5244B)
1 {{ define "title" }} 2 {{ if .IsHome }}{{ .Site.Title }}{{ else }}{{ .Title }} · {{ .Site.Title }}{{ end }} 3 {{ end }} 4 5 {{ define "header" }} 6 <a class="site-name" href="{{ "/" | relURL }}">direito</a> 7 {{ if not .IsHome }} 8 <span class="header-sep">/</span> 9 <span class="breadcrumb">{{ .Title }}</span> 10 {{ end }} 11 {{ end }} 12 13 {{ define "main" }} 14 {{ if .IsHome }} 15 16 {{/* Mapas por slug de disciplina */}} 17 {{ $simMap := dict }} 18 {{ $quizMap := dict }} 19 {{ $discsQz := slice }} 20 {{ range .Site.RegularPages }} 21 {{ if eq .Section "quizzes" }} 22 {{ $slug := .File.Dir | strings.TrimSuffix "/" | path.Base }} 23 {{ if not (in $discsQz $slug) }}{{ $discsQz = $discsQz | append $slug }}{{ end }} 24 {{ $isSim := or (.Params.simulado) (in (.File.BaseFileName | lower) "simulado") }} 25 {{ if $isSim }} 26 {{ $simMap = merge $simMap (dict $slug (add (index $simMap $slug | default 0) 1)) }} 27 {{ else }} 28 {{ $quizMap = merge $quizMap (dict $slug (add (index $quizMap $slug | default 0) 1)) }} 29 {{ end }} 30 {{ end }} 31 {{ end }} 32 33 <div class="disc-grid"> 34 {{ $txtsSlugs := slice }} 35 {{ range .Site.Sections }} 36 {{ if eq .Section "txts" }} 37 {{ range .Sections }} 38 {{ $slug := .RelPermalink | strings.TrimSuffix "/" | path.Base }} 39 {{ $txtsSlugs = $txtsSlugs | append $slug }} 40 {{ $sims := index $simMap $slug | default 0 }} 41 {{ $qz := index $quizMap $slug | default 0 }} 42 <a class="disc-card fade" href="{{ .RelPermalink }}" data-filterable> 43 <div class="disc-card-name">{{ .Title }}</div> 44 <div class="disc-card-meta"> 45 {{ $n := len .RegularPages }} 46 {{ if $n }}{{ $n }} assunto{{ if gt $n 1 }}s{{ end }}{{ else }}sem textos{{ end }} 47 {{ if $sims }} · simulado{{ end }} 48 {{ if $qz }} · {{ $qz }} exercício{{ if gt $qz 1 }}s{{ end }}{{ end }} 49 </div> 50 </a> 51 {{ end }} 52 {{ end }} 53 {{ end }} 54 55 {{/* Disciplinas que só existem em quizzes (sem txts) */}} 56 {{ range $slug := $discsQz }} 57 {{ if not (in $txtsSlugs $slug) }} 58 {{ $sims := index $simMap $slug | default 0 }} 59 {{ $qz := index $quizMap $slug | default 0 }} 60 <a class="disc-card fade" href="/{{ $slug }}/" data-filterable> 61 <div class="disc-card-name">{{ humanize (replace $slug "-" " ") }}</div> 62 <div class="disc-card-meta"> 63 {{ if $sims }}simulado · {{ end }}{{ $qz }} exercício{{ if gt $qz 1 }}s{{ end }} 64 </div> 65 </a> 66 {{ end }} 67 {{ end }} 68 </div> 69 70 {{ else }} 71 {{/* Página de disciplina */}} 72 {{ $discSlug := .RelPermalink | strings.TrimSuffix "/" | path.Base }} 73 <div class="discipline fade"> 74 <div class="disc-back"><a href="{{ "/" | relURL }}">← disciplinas</a></div> 75 <div class="discipline-name">{{ .Title }}</div> 76 77 {{ if .Content }} 78 <div class="disc-intro"> 79 <article class="prose disc-intro-prose">{{ .Content }}</article> 80 </div> 81 {{ end }} 82 83 <div class="disc-extras-wrap"> 84 {{ partial "disc-extras.html" . }} 85 </div> 86 87 {{/* Simulados desta disciplina */}} 88 {{ $simulados := slice }} 89 {{ range $.Site.RegularPages }} 90 {{ if eq .Section "quizzes" }} 91 {{ $parent := .File.Dir | strings.TrimSuffix "/" | path.Base }} 92 {{ if eq $parent $discSlug }} 93 {{ if or (.Params.simulado) (in (.File.BaseFileName | lower) "simulado") }} 94 {{ $simulados = $simulados | append . }} 95 {{ end }} 96 {{ end }} 97 {{ end }} 98 {{ end }} 99 {{ with $simulados }} 100 <div class="subject-group" style="margin-bottom:1.5rem;"> 101 <div class="sq-label" style="margin-bottom:.65rem;">simulados</div> 102 <div class="sq-list"> 103 {{ range . }} 104 <a class="sq-item" href="{{ .RelPermalink }}"> 105 <span class="sq-name" style="color:var(--amber);">{{ .Title }}</span> 106 <span class="sq-meta">simulado</span> 107 </a> 108 {{ end }} 109 </div> 110 </div> 111 {{ end }} 112 113 {{/* Assuntos com vínculo aos exercícios */}} 114 {{ $exercises := slice }} 115 {{ range $.Site.RegularPages }} 116 {{ if eq .Section "quizzes" }} 117 {{ $parent := .File.Dir | strings.TrimSuffix "/" | path.Base }} 118 {{ if eq $parent $discSlug }} 119 {{ if not (or (.Params.simulado) (in (.File.BaseFileName | lower) "simulado")) }} 120 {{ $exercises = $exercises | append . }} 121 {{ end }} 122 {{ end }} 123 {{ end }} 124 {{ end }} 125 126 <div class="subject-list"> 127 {{ range .RegularPages }} 128 {{ $assuntoSlug := .File.BaseFileName }} 129 {{ $linkedQuiz := false }} 130 {{ range $exercises }} 131 {{ if eq .File.BaseFileName $assuntoSlug }} 132 {{ $linkedQuiz = . }} 133 {{ end }} 134 {{ end }} 135 <a class="subject-row" href="{{ .RelPermalink }}"> 136 <span class="subject-row-name">{{ .Title }}</span> 137 <span class="subject-row-meta"> 138 texto{{ if $linkedQuiz }} · exercícios{{ end }} 139 </span> 140 </a> 141 {{ end }} 142 {{ if not .RegularPages }}<p class="empty-note">sem assuntos ainda</p>{{ end }} 143 </div> 144 </div> 145 {{ end }} 146 {{ end }}