bootstrap: iniciar bitácora operativa
This commit is contained in:
@@ -0,0 +1,3 @@
|
||||
{% extends "base.html" %}
|
||||
{% block title %}404 · {{ config.title }}{% endblock title %}
|
||||
{% block content %}<section class="ops-hero"><p class="ops-eyebrow">ERROR 404</p><h1>Ruta no encontrada</h1><p>La referencia no existe en la proyección actual de la bitácora.</p><p><a href="{{ get_url(path='@/_index.md') }}">Volver al inicio</a></p></section>{% endblock content %}
|
||||
@@ -0,0 +1,49 @@
|
||||
<!doctype html>
|
||||
<html lang="{{ lang }}">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="description" content="{% block description %}{{ config.description }}{% endblock description %}">
|
||||
<meta name="robots" content="noindex,nofollow,noarchive">
|
||||
<title>{% block title %}{{ config.title }}{% endblock title %}</title>
|
||||
<link rel="stylesheet" href="{{ get_url(path='site.css') }}">
|
||||
<link rel="stylesheet" href="{{ get_url(path='css/ops.css') }}">
|
||||
<link rel="alternate" type="application/atom+xml" title="Atom" href="{{ get_url(path='atom.xml') }}">
|
||||
</head>
|
||||
<body>
|
||||
{% set ops = load_data(path="data/generated/site_state.json", format="json") %}
|
||||
<header class="ops-header">
|
||||
<div class="container ops-header__inner">
|
||||
<a class="ops-brand" href="{{ get_url(path='@/_index.md') }}">{{ config.extra.product_name }}</a>
|
||||
<span class="ops-prompt" aria-hidden="true">C:\CLUSTER></span>
|
||||
<nav class="ops-nav" aria-label="Navegación principal">
|
||||
<a href="{{ get_url(path='@/documentacion/_index.md') }}">Documentación</a>
|
||||
<a href="{{ get_url(path='@/manuales/_index.md') }}">Manuales</a>
|
||||
<a href="{{ get_url(path='@/memorias/_index.md') }}">Memorias</a>
|
||||
<a href="{{ get_url(path='@/proyectos/_index.md') }}">Proyectos</a>
|
||||
<a href="{{ get_url(path='@/tareas/_index.md') }}">Tareas</a>
|
||||
<a class="ops-nav__review" href="{{ get_url(path='@/revision/_index.md') }}">Revisión <span>{{ ops.stats.pending_reviews }}</span></a>
|
||||
</nav>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<div class="container ops-search" role="search">
|
||||
<label for="ops-search-input">Buscar en la bitácora</label>
|
||||
<div class="ops-search__row">
|
||||
<input id="ops-search-input" type="search" autocomplete="off" data-index-url="{{ get_url(path='search_index.es.json') }}" placeholder="título, sistema, comando, incidente…">
|
||||
<kbd>/</kbd>
|
||||
</div>
|
||||
<div id="ops-search-results" class="ops-search-results" hidden></div>
|
||||
</div>
|
||||
|
||||
<main class="container ops-main">
|
||||
{% block content %}{% endblock content %}
|
||||
</main>
|
||||
|
||||
<footer class="container ops-footer">
|
||||
<span>{{ config.extra.footer_text }}</span>
|
||||
<span>CLI: <code>{{ config.extra.product_short_name }}</code></span>
|
||||
</footer>
|
||||
<script defer src="{{ get_url(path='js/ops-search.js') }}"></script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,44 @@
|
||||
{% extends "base.html" %}
|
||||
{% block title %}{{ section.title }} · {{ config.title }}{% endblock title %}
|
||||
{% block description %}{{ section.description }}{% endblock description %}
|
||||
{% block content %}
|
||||
<section class="ops-hero">
|
||||
<p class="ops-eyebrow">OPERACIONES / CONOCIMIENTO / AUDITORÍA</p>
|
||||
<h1>{{ section.title }}</h1>
|
||||
<div class="ops-lead">{{ section.content | safe }}</div>
|
||||
</section>
|
||||
|
||||
<section class="ops-stats" aria-label="Estado actual">
|
||||
<a class="ops-stat" href="{{ get_url(path='@/revision/_index.md') }}"><strong>{{ ops.stats.pending_reviews }}</strong><span>revisiones pendientes</span></a>
|
||||
<a class="ops-stat" href="{{ get_url(path='@/tareas/_index.md') }}"><strong>{{ ops.stats.open_tasks }}</strong><span>tareas abiertas</span></a>
|
||||
<a class="ops-stat" href="{{ get_url(path='@/proyectos/_index.md') }}"><strong>{{ ops.stats.active_projects }}</strong><span>proyectos activos</span></a>
|
||||
<div class="ops-stat"><strong>{{ ops.stats.active_admins }}</strong><span>administradores activos</span></div>
|
||||
</section>
|
||||
|
||||
<section class="ops-grid ops-grid--sections">
|
||||
<a class="ops-panel" href="{{ get_url(path='@/documentacion/_index.md') }}"><span class="ops-panel__code">DOC</span><h2>Documentación</h2><p>Arquitectura y decisiones duraderas.</p></a>
|
||||
<a class="ops-panel" href="{{ get_url(path='@/manuales/_index.md') }}"><span class="ops-panel__code">RUN</span><h2>Manuales</h2><p>Procedimientos repetibles y reversibles.</p></a>
|
||||
<a class="ops-panel" href="{{ get_url(path='@/memorias/_index.md') }}"><span class="ops-panel__code">MEM</span><h2>Memorias</h2><p>Historia de operaciones y cambios.</p></a>
|
||||
<a class="ops-panel" href="{{ get_url(path='@/proyectos/_index.md') }}"><span class="ops-panel__code">PRJ</span><h2>Proyectos</h2><p>Objetivos, alcance e hitos.</p></a>
|
||||
<a class="ops-panel" href="{{ get_url(path='@/tareas/_index.md') }}"><span class="ops-panel__code">TSK</span><h2>Tareas</h2><p>Trabajo visible y tiempo registrado.</p></a>
|
||||
<a class="ops-panel ops-panel--attention" href="{{ get_url(path='@/revision/_index.md') }}"><span class="ops-panel__code">REV</span><h2>Revisión semanal</h2><p>La agenda común del equipo.</p></a>
|
||||
</section>
|
||||
|
||||
<section class="ops-section-heading">
|
||||
<div><p class="ops-eyebrow">ACTIVIDAD</p><h2>Memorias recientes</h2></div>
|
||||
<a href="{{ get_url(path='@/memorias/_index.md') }}">Ver todas →</a>
|
||||
</section>
|
||||
<div class="ops-list">
|
||||
{% for item in ops.recent_memories %}
|
||||
{% if loop.index <= 6 %}
|
||||
<article class="ops-list-item">
|
||||
<div class="ops-list-item__meta"><code>{{ item.entry_id }}</code><span class="badge badge--{{ item.risk }}">{{ item.risk }}</span><span>{{ item.date }}</span></div>
|
||||
<h3><a href="{{ item.permalink }}">{{ item.title }}</a></h3>
|
||||
<p>{{ item.description }}</p>
|
||||
<div class="ops-tags">{% for tag in item.tags %}<span>#{{ tag }}</span>{% endfor %}</div>
|
||||
</article>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% if ops.recent_memories | length == 0 %}<p class="ops-empty">Todavía no hay memorias operativas.</p>{% endif %}
|
||||
</div>
|
||||
{% endblock content %}
|
||||
@@ -0,0 +1,19 @@
|
||||
{% extends "base.html" %}
|
||||
{% block title %}{{ section.title }} · {{ config.title }}{% endblock title %}
|
||||
{% block description %}{{ section.description }}{% endblock description %}
|
||||
{% block content %}
|
||||
<header class="ops-page-header">
|
||||
<p class="ops-eyebrow">HISTORIA TÉCNICA</p><h1>{{ section.title }}</h1><p>{{ section.description }}</p>
|
||||
<div class="ops-prose">{{ section.content | safe }}</div>
|
||||
</header>
|
||||
<div class="ops-list">
|
||||
{% for page in section.pages %}
|
||||
<article class="ops-list-item">
|
||||
<div class="ops-list-item__meta"><code>{{ page.extra.id }}</code><span class="badge badge--{{ page.extra.risk }}">{{ page.extra.risk }}</span><span>{{ page.date }}</span><span>por {{ page.extra.author_id }}</span></div>
|
||||
<h2><a href="{{ page.permalink }}">{{ page.title }}</a></h2>
|
||||
<p>{{ page.description }}</p>
|
||||
<div class="ops-tags">{% for system in page.taxonomies.systems %}<span>@{{ system }}</span>{% endfor %}{% for tag in page.taxonomies.tags %}<span>#{{ tag }}</span>{% endfor %}</div>
|
||||
</article>
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% endblock content %}
|
||||
@@ -0,0 +1,24 @@
|
||||
{% extends "base.html" %}
|
||||
{% block title %}{{ page.title }} · {{ config.title }}{% endblock title %}
|
||||
{% block description %}{{ page.description }}{% endblock description %}
|
||||
{% block content %}
|
||||
<article class="ops-article">
|
||||
<header class="ops-page-header">
|
||||
<p class="ops-eyebrow"><code>{{ page.extra.id }}</code> / MEMORIA OPERATIVA</p>
|
||||
<h1>{{ page.title }}</h1><p>{{ page.description }}</p>
|
||||
<div class="ops-meta">
|
||||
<span>Autor: <strong>{{ page.extra.author_id }}</strong></span>
|
||||
<span>Fecha: {{ page.date }}</span>
|
||||
<span>Riesgo: <strong class="badge badge--{{ page.extra.risk }}">{{ page.extra.risk }}</strong></span>
|
||||
{% if page.extra.duration_minutes > 0 %}<span>Duración: {{ page.extra.duration_minutes }} min</span>{% endif %}
|
||||
{% if page.extra.ticket %}<span>Referencia: {{ page.extra.ticket }}</span>{% endif %}
|
||||
</div>
|
||||
<div class="ops-tags">{% for system in page.taxonomies.systems %}<span>@{{ system }}</span>{% endfor %}{% for tag in page.taxonomies.tags %}<a href="{{ get_taxonomy_url(kind='tags', name=tag) }}">#{{ tag }}</a>{% endfor %}</div>
|
||||
</header>
|
||||
{% if page.extra.review_required %}
|
||||
<aside class="ops-callout"><strong>Revisión requerida.</strong> El estado se calcula contra el hash actual. Consulte <a href="{{ get_url(path='@/revision/_index.md') }}">Revisión semanal</a>.</aside>
|
||||
{% endif %}
|
||||
<div class="ops-prose">{{ page.content | safe }}</div>
|
||||
<footer class="ops-source"><span>Huella SSH del autor:</span><code>{{ page.extra.author_fingerprint }}</code></footer>
|
||||
</article>
|
||||
{% endblock content %}
|
||||
@@ -0,0 +1,15 @@
|
||||
{% extends "base.html" %}
|
||||
{% block title %}{{ page.title }} · {{ config.title }}{% endblock title %}
|
||||
{% block description %}{{ page.description }}{% endblock description %}
|
||||
{% block content %}
|
||||
<article class="ops-article">
|
||||
<header class="ops-page-header">
|
||||
<p class="ops-eyebrow"><code>{{ page.extra.id }}</code> / {{ page.extra.kind }}</p>
|
||||
<h1>{{ page.title }}</h1>
|
||||
<p>{{ page.description }}</p>
|
||||
<div class="ops-meta"><span>Autor: {{ page.extra.author_id }}</span><span>Fecha: {{ page.date }}</span></div>
|
||||
<div class="ops-tags">{% for tag in page.taxonomies.tags %}<a href="{{ get_taxonomy_url(kind='tags', name=tag) }}">#{{ tag }}</a>{% endfor %}</div>
|
||||
</header>
|
||||
<div class="ops-prose">{{ page.content | safe }}</div>
|
||||
</article>
|
||||
{% endblock content %}
|
||||
@@ -0,0 +1,10 @@
|
||||
{% extends "base.html" %}
|
||||
{% block title %}{{ page.title }} · {{ config.title }}{% endblock title %}
|
||||
{% block description %}{{ page.description }}{% endblock description %}
|
||||
{% block content %}
|
||||
<article class="ops-article">
|
||||
<header class="ops-page-header"><p class="ops-eyebrow"><code>{{ page.extra.id }}</code> / PROYECTO</p><h1>{{ page.title }}</h1><p>{{ page.description }}</p>
|
||||
<div class="ops-meta"><span>Estado: {{ page.extra.status }}</span>{% if page.extra.target_date %}<span>Fecha objetivo: {{ page.extra.target_date }}</span>{% endif %}<span>Responsables: {% for owner in page.extra.owners %}{{ owner }}{% if not loop.last %}, {% endif %}{% endfor %}{% if page.extra.owners | length == 0 %}Sin asignar{% endif %}</span></div></header>
|
||||
<div class="ops-prose">{{ page.content | safe }}</div>
|
||||
</article>
|
||||
{% endblock content %}
|
||||
@@ -0,0 +1,16 @@
|
||||
{% extends "base.html" %}
|
||||
{% block title %}{{ section.title }} · {{ config.title }}{% endblock title %}
|
||||
{% block description %}{{ section.description }}{% endblock description %}
|
||||
{% block content %}
|
||||
<header class="ops-page-header"><p class="ops-eyebrow">LÍNEAS DE TRABAJO</p><h1>{{ section.title }}</h1><p>{{ section.description }}</p><div class="ops-prose">{{ section.content | safe }}</div></header>
|
||||
<div class="ops-board">
|
||||
{% for project in ops.projects %}
|
||||
<article class="ops-card">
|
||||
<div class="ops-card__top"><code>{{ project.project_id }}</code><span class="badge badge--status">{{ project.status }}</span></div>
|
||||
<h2><a href="{{ project.permalink }}">{{ project.title }}</a></h2><p>{{ project.description }}</p>
|
||||
<dl>{% if project.target_date %}<dt>Objetivo</dt><dd>{{ project.target_date }}</dd>{% endif %}<dt>Responsables</dt><dd>{% for owner in project.owners %}{{ owner }}{% if not loop.last %}, {% endif %}{% endfor %}{% if project.owners | length == 0 %}Sin asignar{% endif %}</dd></dl>
|
||||
</article>
|
||||
{% endfor %}
|
||||
{% if ops.projects | length == 0 %}<p class="ops-empty">No hay proyectos.</p>{% endif %}
|
||||
</div>
|
||||
{% endblock content %}
|
||||
@@ -0,0 +1,65 @@
|
||||
{% extends "base.html" %}
|
||||
{% block title %}{{ section.title }} · {{ config.title }}{% endblock title %}
|
||||
{% block description %}{{ section.description }}{% endblock description %}
|
||||
{% block content %}
|
||||
<header class="ops-page-header">
|
||||
<p class="ops-eyebrow">AGENDA DEL EQUIPO</p><h1>{{ section.title }}</h1><p>{{ section.description }}</p>
|
||||
<div class="ops-prose">{{ section.content | safe }}</div>
|
||||
</header>
|
||||
|
||||
<div class="ops-callout">
|
||||
<strong>Flujo de la reunión:</strong> abrir la memoria, discutirla y registrar cada confirmación con
|
||||
<code>clusterlog --commit review mark <ID></code>. Una edición posterior cambia el hash y vuelve a abrir la revisión.
|
||||
</div>
|
||||
|
||||
<section aria-labelledby="review-queue-title">
|
||||
<h2 id="review-queue-title">Memorias pendientes</h2>
|
||||
<div class="ops-list">
|
||||
{% for item in ops.review_queue %}
|
||||
<article class="ops-list-item ops-list-item--review">
|
||||
<div class="ops-list-item__meta"><code>{{ item.entry_id }}</code><span class="badge badge--{{ item.risk }}">{{ item.risk }}</span><span>{{ item.reviewed_count }}/{{ item.required_count }} revisiones</span></div>
|
||||
<h3><a href="{{ item.permalink }}">{{ item.title }}</a></h3>
|
||||
<p>{{ item.description }}</p>
|
||||
{% if item.configuration_error %}<p class="ops-error">{{ item.configuration_error }}</p>{% endif %}
|
||||
<div class="ops-review-grid">
|
||||
<div><strong>Revisaron</strong>{% for admin in item.reviewed_by %}<span class="reviewer reviewer--done">✓ {{ admin }}</span>{% endfor %}{% if item.reviewed_by | length == 0 %}<span class="reviewer">Nadie aún</span>{% endif %}</div>
|
||||
<div><strong>Faltan</strong>{% for admin in item.missing_reviewers %}<span class="reviewer reviewer--missing">○ {{ admin }}</span>{% endfor %}{% if item.missing_reviewers | length == 0 %}<span class="reviewer reviewer--done">Completa</span>{% endif %}</div>
|
||||
</div>
|
||||
<pre><code>clusterlog --json --commit review mark {{ item.entry_id }}</code></pre>
|
||||
</article>
|
||||
{% endfor %}
|
||||
{% if ops.review_queue | length == 0 %}<div class="ops-empty ops-empty--success"><strong>Cola limpia.</strong><br>No hay memorias pendientes para la versión actual de su contenido.</div>{% endif %}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="ops-meeting-section" aria-labelledby="meeting-tasks-title">
|
||||
<h2 id="meeting-tasks-title">Tareas abiertas para revisar</h2>
|
||||
<div class="ops-list">
|
||||
{% for task in ops.tasks %}
|
||||
{% if task.status != "done" and task.status != "cancelled" %}
|
||||
<article class="ops-list-item">
|
||||
<div class="ops-list-item__meta"><code>{{ task.task_id }}</code><span class="badge">{{ task.status }}</span><span>{{ task.actual_minutes }}/{{ task.estimate_minutes }} min</span></div>
|
||||
<h3><a href="{{ task.permalink }}">{{ task.title }}</a></h3>
|
||||
<p>{{ task.description }}</p>
|
||||
{% if task.running_by | length > 0 %}<p><strong>En ejecución:</strong> {{ task.running_by | join(sep=", ") }}</p>{% endif %}
|
||||
</article>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="ops-meeting-section" aria-labelledby="meeting-projects-title">
|
||||
<h2 id="meeting-projects-title">Proyectos activos o bloqueados</h2>
|
||||
<div class="ops-list">
|
||||
{% for project in ops.projects %}
|
||||
{% if project.status == "active" or project.status == "blocked" or project.status == "planned" %}
|
||||
<article class="ops-list-item">
|
||||
<div class="ops-list-item__meta"><code>{{ project.project_id }}</code><span class="badge">{{ project.status }}</span>{% if project.target_date %}<span>Meta {{ project.target_date }}</span>{% endif %}</div>
|
||||
<h3><a href="{{ project.permalink }}">{{ project.title }}</a></h3>
|
||||
<p>{{ project.description }}</p>
|
||||
</article>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
</section>
|
||||
{% endblock content %}
|
||||
@@ -0,0 +1,22 @@
|
||||
{% extends "base.html" %}
|
||||
{% block title %}{{ section.title }} · {{ config.title }}{% endblock title %}
|
||||
{% block description %}{{ section.description }}{% endblock description %}
|
||||
{% block content %}
|
||||
<header class="ops-page-header">
|
||||
<p class="ops-eyebrow">BIBLIOTECA TÉCNICA</p>
|
||||
<h1>{{ section.title }}</h1>
|
||||
<p>{{ section.description }}</p>
|
||||
<div class="ops-prose">{{ section.content | safe }}</div>
|
||||
</header>
|
||||
<div class="ops-list">
|
||||
{% for page in section.pages %}
|
||||
<article class="ops-list-item">
|
||||
<div class="ops-list-item__meta"><code>{{ page.extra.id }}</code><span>{{ page.date }}</span></div>
|
||||
<h2><a href="{{ page.permalink }}">{{ page.title }}</a></h2>
|
||||
<p>{{ page.description }}</p>
|
||||
<div class="ops-tags">{% for tag in page.taxonomies.tags %}<span>#{{ tag }}</span>{% endfor %}</div>
|
||||
</article>
|
||||
{% endfor %}
|
||||
{% if section.pages | length == 0 %}<p class="ops-empty">No hay páginas en esta sección.</p>{% endif %}
|
||||
</div>
|
||||
{% endblock content %}
|
||||
@@ -0,0 +1,14 @@
|
||||
{% extends "base.html" %}
|
||||
{% block title %}{{ page.title }} · {{ config.title }}{% endblock title %}
|
||||
{% block description %}{{ page.description }}{% endblock description %}
|
||||
{% block content %}
|
||||
<article class="ops-article">
|
||||
<header class="ops-page-header"><p class="ops-eyebrow"><code>{{ page.extra.id }}</code> / TAREA</p><h1>{{ page.title }}</h1><p>{{ page.description }}</p>
|
||||
<div class="ops-meta"><span>Estado base: {{ page.extra.status }}</span><span>Prioridad: {{ page.extra.priority }}</span><span>Estimación: {{ page.extra.estimate_minutes }} min</span>{% if page.extra.due %}<span>Fecha: {{ page.extra.due }}</span>{% endif %}{% if page.extra.project_id %}<span>Proyecto: {{ page.extra.project_id }}</span>{% endif %}</div></header>
|
||||
<aside class="ops-callout">El estado efectivo y el tiempo acumulado se muestran en el <a href="{{ get_url(path='@/tareas/_index.md') }}">tablero de tareas</a>; se calculan desde el registro de eventos.</aside>
|
||||
<div class="ops-prose">{{ page.content | safe }}</div>
|
||||
<pre><code>clusterlog --commit task start {{ page.extra.id }}
|
||||
clusterlog --commit task stop {{ page.extra.id }}
|
||||
clusterlog --commit task done {{ page.extra.id }}</code></pre>
|
||||
</article>
|
||||
{% endblock content %}
|
||||
@@ -0,0 +1,18 @@
|
||||
{% extends "base.html" %}
|
||||
{% block title %}{{ section.title }} · {{ config.title }}{% endblock title %}
|
||||
{% block description %}{{ section.description }}{% endblock description %}
|
||||
{% block content %}
|
||||
<header class="ops-page-header"><p class="ops-eyebrow">TRABAJO COMPARTIDO</p><h1>{{ section.title }}</h1><p>{{ section.description }}</p><div class="ops-prose">{{ section.content | safe }}</div></header>
|
||||
<div class="ops-board">
|
||||
{% for task in ops.tasks %}
|
||||
<article class="ops-card">
|
||||
<div class="ops-card__top"><code>{{ task.task_id }}</code><span class="badge badge--status">{{ task.status }}</span></div>
|
||||
<h2><a href="{{ task.permalink }}">{{ task.title }}</a></h2><p>{{ task.description }}</p>
|
||||
<dl><dt>Prioridad</dt><dd>{{ task.priority }}</dd><dt>Estimado</dt><dd>{{ task.estimate_minutes }} min</dd><dt>Real</dt><dd>{{ task.actual_minutes }} min</dd>{% if task.due %}<dt>Fecha</dt><dd>{{ task.due }}</dd>{% endif %}{% if task.project_id %}<dt>Proyecto</dt><dd>{{ task.project_id }}</dd>{% endif %}</dl>
|
||||
{% if task.running_by | length > 0 %}<p class="ops-running">▶ En curso por {% for admin in task.running_by %}{{ admin }}{% if not loop.last %}, {% endif %}{% endfor %}</p>{% endif %}
|
||||
<div class="ops-tags">{% for admin in task.assignees %}<span>+{{ admin }}</span>{% endfor %}</div>
|
||||
</article>
|
||||
{% endfor %}
|
||||
{% if ops.tasks | length == 0 %}<p class="ops-empty">No hay tareas.</p>{% endif %}
|
||||
</div>
|
||||
{% endblock content %}
|
||||
@@ -0,0 +1,8 @@
|
||||
{% extends "base.html" %}
|
||||
{% block title %}{{ taxonomy.name }} · {{ config.title }}{% endblock title %}
|
||||
{% block content %}
|
||||
<header class="ops-page-header"><p class="ops-eyebrow">ÍNDICE</p><h1>{{ taxonomy.name }}</h1></header>
|
||||
<div class="ops-grid">
|
||||
{% for term in terms %}<a class="ops-panel" href="{{ term.permalink }}"><h2>{{ term.name }}</h2><p>{{ term.page_count }} páginas</p></a>{% endfor %}
|
||||
</div>
|
||||
{% endblock content %}
|
||||
@@ -0,0 +1,6 @@
|
||||
{% extends "base.html" %}
|
||||
{% block title %}{{ term.name }} · {{ config.title }}{% endblock title %}
|
||||
{% block content %}
|
||||
<header class="ops-page-header"><p class="ops-eyebrow">{{ taxonomy.name }}</p><h1>{{ term.name }}</h1><p>{{ term.page_count }} páginas</p></header>
|
||||
<div class="ops-list">{% for page in term.pages %}<article class="ops-list-item"><div class="ops-list-item__meta"><code>{{ page.extra.id }}</code><span>{{ page.date }}</span></div><h2><a href="{{ page.permalink }}">{{ page.title }}</a></h2><p>{{ page.description }}</p></article>{% endfor %}</div>
|
||||
{% endblock content %}
|
||||
Reference in New Issue
Block a user