direito

Repositório direito
git clone git://git.sivaldodavi.com/direito.git
Log | Files | Refs

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 }}