summaryrefslogtreecommitdiff
path: root/layouts/quizzes
diff options
context:
space:
mode:
Diffstat (limited to 'layouts/quizzes')
-rw-r--r--layouts/quizzes/list.html57
-rw-r--r--layouts/quizzes/single.html60
2 files changed, 117 insertions, 0 deletions
diff --git a/layouts/quizzes/list.html b/layouts/quizzes/list.html
new file mode 100644
index 0000000..c37a486
--- /dev/null
+++ b/layouts/quizzes/list.html
@@ -0,0 +1,57 @@
+{{ define "title" }}{{ .Title }} · {{ .Site.Title }}{{ end }}
+
+{{ define "header" }}
+ <a class="site-name" href="{{ "/" | relURL }}">direito</a>
+ <span class="header-sep">/</span>
+ <span class="breadcrumb">{{ .Title }}</span>
+{{ end }}
+
+{{ define "main" }}
+{{ $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>
+
+ {{/* Separa simulados (frontmatter `simulado: true` OU nome contendo "simulado") dos quizzes
+ desta disciplina, usando .File.Dir já que as subpastas de quizzes/ não são sections. */}}
+ {{ $simulados := slice }}
+ {{ $quizzes := slice }}
+ {{ range .RegularPages }}
+ {{ if or (.Params.simulado) (in (.File.BaseFileName | lower) "simulado") }}
+ {{ $simulados = $simulados | append . }}
+ {{ else }}
+ {{ $quizzes = $quizzes | append . }}
+ {{ 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 }}
+
+ {{ with $quizzes }}
+ <div class="subject-list">
+ <div class="sq-label" style="margin-bottom:.65rem;">exercícios</div>
+ {{ range . }}
+ <a class="subject-row" href="{{ .RelPermalink }}">
+ <span class="subject-row-name">{{ .Title }}</span>
+ <span class="subject-row-meta">quiz</span>
+ </a>
+ {{ end }}
+ </div>
+ {{ end }}
+
+ {{ if and (not $simulados) (not $quizzes) }}
+ <p class="empty-note">sem conteúdo ainda</p>
+ {{ end }}
+</div>
+{{ end }}
diff --git a/layouts/quizzes/single.html b/layouts/quizzes/single.html
new file mode 100644
index 0000000..0a51a9c
--- /dev/null
+++ b/layouts/quizzes/single.html
@@ -0,0 +1,60 @@
+{{ define "title" }}{{ .Title }} · {{ .Site.Title }}{{ end }}
+{{ define "header" }}
+ {{ $discSlug := .File.Dir | path.Dir | path.Base }}
+ <a class="site-name" href="{{ "/" | relURL }}">direito</a>
+ <span class="header-sep">/</span>
+ {{ $discPage := $.Site.GetPage (printf "/txts/%s" $discSlug) }}
+ {{ if $discPage }}
+ <a class="breadcrumb-link" href="{{ $discPage.RelPermalink }}">{{ $discPage.Title }}</a>
+ <span class="header-sep">/</span>
+ {{ end }}
+ <span class="breadcrumb">{{ .Title }}</span>
+{{ end }}
+{{ define "main" }}
+{{ $discSlug := .File.Dir | path.Dir | path.Base }}
+{{ $discPage := $.Site.GetPage (printf "/txts/%s" $discSlug) }}
+<div class="fade">
+ {{ if $discPage }}
+ <div class="disc-back"><a href="{{ $discPage.RelPermalink }}">← {{ $discPage.Title }}</a></div>
+ {{ else }}
+ <div class="disc-back"><a href="{{ "/" | relURL }}">← disciplinas</a></div>
+ {{ end }}
+ <div class="discipline-name" style="margin-bottom:1.5rem;">{{ .Title }}</div>
+ <div id="quiz-wrap">
+ <div class="progress-wrap"><div class="progress-fill" id="prog"></div></div>
+ <div class="q-meta" id="q-counter"></div>
+ <div id="quiz-body"></div>
+ <div class="next-row">
+ <button class="btn" id="btn-next" onclick="nextQuestion()" style="display:none">próxima →</button>
+ </div>
+ </div>
+ <div id="quiz-result" style="display:none;">
+ <div class="res-score" id="res-pct">0%</div>
+ <div class="res-subtitle"><span id="res-a">0</span> de <span id="res-t">0</span> acertos</div>
+ <div class="res-divider"></div>
+ <div class="res-stats">
+ <div class="rs-item"><div class="rs-num g" id="res-a2">0</div><div class="rs-label">acertos</div></div>
+ <div class="rs-item"><div class="rs-num r" id="res-e">0</div><div class="rs-label">erros</div></div>
+ </div>
+ <div class="res-msg">
+ <div class="res-msg-label">diagnóstico</div>
+ <div id="res-msg-body"></div>
+ </div>
+ <div class="res-btns">
+ <button class="btn" onclick="restartQuiz()">refazer</button>
+ {{ if $discPage }}
+ <a class="btn" href="{{ $discPage.RelPermalink }}">voltar</a>
+ {{ end }}
+ </div>
+ </div>
+</div>
+
+<script>
+ // Definir a chave única para este quiz
+ window.QUIZ_KEY = '{{ $discSlug }}_{{ .File.BaseFileName }}';
+ // Conteúdo bruto do quiz em JSON (sem notas de rodapé Markdown)
+ const RAW_CONTENT = {{ .RawContent | jsonify | safeJS }};
+ // Remover notas de rodapé Markdown ([^1]: ...)
+ const RAW_QUIZ = RAW_CONTENT.replace(/\n\[\^\d+\]:[^\n]*/g, '');
+</script>
+{{ end }}