Abridge Tema Zola
Jake G mayo 17, 2022 Actualizado: julio 21, 2023 #Features #ConfigUn tema Zola rápido, ligero y moderno que utiliza abridge.css (un framework CSS HTML semántico de clase ligera). Puntuaciones perfectas de Lighthouse, YellowLabTools y Observatory. Aquí hay una página de Benchmarks de Zola Themes.
Características
- Puntuaciones perfectas de Lighthouse, YellowLabTools y Observatory.
- Soporte PWA (Aplicación Web Progresiva).
- Todo JavaScript puede ser totalmente desactivado.
- Temas Dark, Light, Auto y Switcher. (colores personalizables, variables css)
- Resaltado de sintaxis de código. (colores personalizables, variables css)
- Bloques de código numerados con resaltado de línea.
- Sitio completamente Offline usando el PWA o configurando
search_library = "offline"
enconfig.toml
. - Soporte multi-idioma.
- Soporte para búsquedas.(elasticlunr, pagefind, tinysearch)
- Sugerencias de búsqueda teclas de navegación,
/
focus,arrow
move,enter
select,escape
close. - Página de resultados de búsqueda, escriba la consulta de búsqueda y luego pulse
Enter Key
oclick
el icono del botón de búsqueda. - SoporteSEO. (Optimización para motores de búsqueda)
- Paginación con paginador numerado en el índice.
- Enlaces al artículo anterior y siguiente en la parte inferior del artículo.
- Tabla de Contenidos en el Índice de la página (Opcional, enlaces clicables)
- Bloque de Entradas Recientes. (Opcional)
- Botón Volver al principio. (sólo usa css)
- Botón para copiar bloques de código.
- Enlace de correo electrónico en la ofuscación de pie de página. (antispam)
- SoporteKaTeX.
- Página de archivo.
- Etiquetas.
- Categorías. (similar a Etiquetas, desactivado/comentado por defecto)
- Enlaces a iconos sociales en el pie de página.
- Diseño responsivo. (mobile first)
- Códigos cortos de vídeo: Youtube, Vimeo, Streamable.
- Media Shortcodes: video, img, imgswap, image, gif, audio.
- Otros Shortcodes: showdata, katex.
Inicio rápido
Este tema requiere la versión 0.19.1 o posterior de Zola
# open http://127.0.0.1:1111/ in the browser
Instalación
El inicio rápido muestra cómo ejecutar el tema directamente. A continuación usaremos abridge como tema para un NUEVO sitio.
1: Crear un nuevo sitio zola
|
2: Instalar Abridge
Añade el tema como un submódulo git:
O clona el tema en tu directorio de temas:
3: Configuración
Copia algunos archivos del directorio del tema al directorio raíz de tu proyecto:
config.toml
configuración base con todos los valores de configuración.content/_index.md
requerido para establecer la paginación.COPY-TO-ROOT-SASS/abridge.scss
overrides para personalizar las variables de Abridge.netlify.toml
configuración para desplegar su repo con netlfiy.package_abridge.js
node script para: actualizar la lista de archivos de caché en PWA, minify js, bundle jspackage.json
utilizado por node, define scripts y dependencias.
Descomenta la línea theme en el config.toml raíz de tu proyecto:
4: Añadir nuevo contenido
Copia el contenido del directorio de temas a tu proyecto o haz un nuevo post:
5: Ejecuta el proyecto
Simplemente ejecute zola serve
en la ruta raíz del proyecto:
Zola iniciará el servidor web dev, accesible por defecto en http://127.0.0.1:1111
.
Los cambios guardados se recargarán en vivo en el navegador. (pulse ctrl+f5
, o mientras desarrolla configure pwa=false
en config.toml
)
Paginación
Puede establecer el número de elementos de la página de inicio editando el archivo content\_index.md
y ajustando paginate_by
Variables Sass
Las variables de Abridge SASS pueden ser anuladas editando el archivo sass\abridge.scss
en la carpeta raíz sass de su proyecto.
Ancho de página
$mw:
Modos de Abridge
$abridgeMode:
- switcher: muestra automáticamente una versión oscura o clara dependiendo de la configuración del navegador/OS, y tiene un conmutador de temas javascript en el que el usuario puede hacer clic.
- auto: muestra automáticamente una versión oscura o clara dependiendo de la configuración del navegador/OS.
- dark: es el tema oscuro siempre.
- light: es el tema claro siempre.
Colores y estilos
Puedes especificar qué plantilla de color quieres usar como base:
$color:
A continuación, anule los colores individuales según sea necesario:
/// Dark Colors
$f1d:
Iconos sociales a pie de página
Debe configurar qué iconos sociales planea utilizar. (hace que el tamaño del archivo css sea menor)
Para simplemente desactivarlos todos puedes configurar $enable-icons: false
(desactiva TODOS los iconos, navegación, búsqueda, etc.)
De lo contrario, active sólo los iconos que necesita, por ejemplo, para el correo se establecería $icon-mail: true
A continuación, debe desactivar todos los demás iconos que no utilice.
Tema para visitas noscript
Si tiene abridge configurado para utilizar el modo conmutador en lugar de auto/oscuro/luz, su sitio tendrá un botón que permitirá al visitante conmutar el tema.
Si su visitante utiliza noscript o algún otro complemento de navegador que bloquee javascript, entonces estará atascado con cualquiera que sea el tema configurado por defecto para el modo conmutador.
Para ajustar este modo, debe establecer los siguientes dos valores de configuración en abridge.scss
Y config.toml
:
$switcherDefault:
= "dark" # default nojs switcher mode: dark, light (make sure to also set $switcherDefault in abridge.scss)
Por defecto abridge utiliza el modo oscuro para el conmutador, así que a menos que desee establecer el modo por defecto a la luz para los visitantes nojs/noscript, entonces usted no necesita preocuparse acerca de estos ajustes.
Config.toml Configuración
La mayoría de las opciones en config.toml
se documentan por sí mismas. (obvio entre el nombre del valor config y los comentarios)
Abridge trabajará con un config.toml
barebones porque los valores por defecto se proporcionan en los archivos de plantilla.
Recomiendo copiar todo el archivo config.toml como se indica en el paso 3, ya que proporciona todos los valores configurables.
Menús superior y pie de página
Establezca un campo en extra
con una clave de menu
y menu_footer
.
Si desea que el enlace se abra en una nueva pestaña/navegador entonces establezca blank = true
.
tamaño: s150, s140, s130, s120, s110, s95, s90, s85, s80, s75, s70, false(tamaño completo)
Si un enlace debe tener una barra al final de la url configure slash = true
.
(generalmente todos los enlaces deben tener una barra al final a menos que sea un enlace de archivo como sitemap.xml
)
= [
{ = "about", = "About", = true, = false, ="s110"},
{ = "posts", = "Posts", = true, = false, ="s110"},
{ = "categories", = "Categories", = true, = false, ="s110"},
{ = "tags", = "Tags", = true, = false, ="s110"},
]
= [
{ = "about", = "About", = true, = false},
{ = "contact", = "Contact", = true, = false},
{ = "privacy", = "Privacy", = true, = false},
{ = "sitemap.xml", = "Sitemap", = false, = true},
]
Etiquetas SEO y de cabecera
Puede revisar las etiquetas SEO en la macro seo ubicada en templates/macros/seo.html
, todos los valores configurables deben estar en config.toml
bajo config.extra
o en los archivos markdown de contenido.
En el archivo markdown de su post debe establecer un título de menos de 60 caracteres y una descripción de entre 80 y 160 caracteres de longitud. La descripción es lo que se muestra en los resultados de búsqueda debajo del título de la página. Si no especifica una descripción de página, se utilizará en su lugar el archivo config.description del sitio principal.
También debe establecer palabras clave específicas de la página a menos que sus palabras clave definidas en config.toml sean suficientes, cualquier palabra clave que añada a la página es adicional a las definidas en config.toml, así que no añada esas mismas palabras clave a sus palabras clave de la página.
Opcionalmente, también puede establecer una imagen específica de la página para los resultados de búsqueda utilizando page.extra.thumbnail. Facebook, Twitter y OpenGraph Cards son compatibles (imagen y descripción automáticas para los enlaces publicados). OpenGraph recomienda 1200 x 630 (1,9:1). Twitter recomienda 2:1 para las grandes y 1:1 para las pequeñas. Si no establece una miniatura específica para la página, se utilizará en su lugar el banner definido en config.toml.
Consulta overview-images para ver un ejemplo:
Notación matemática KaTeX
KaTeX se puede utilizar para mostrar matemáticas complejas, es una "Rápida composición matemática para la web"
Puedes ver una demo en esta página.
Para un mejor rendimiento, recomiendo sólo habilitar las matemáticas en una base por página en sus archivos post.md, en lugar de en su archivo config.toml principal.
PWA, Aplicación Web Progresiva
Abridge tema tiene soporte PWA. Puede instalar todo el sitio como una aplicación y hacer que funcione sin conexión. Para probarlo simplemente usa google chrome o tu teléfono y ve aquí: abridge.netlify.app
Si utilizas Chrome en tu ordenador, busca el botón de instalación al final de la barra de direcciones. En Android debe aparecer una ventana emergente para instalar, también puede instalar desde el menú de 3 puntos en la esquina superior derecha. Una vez instalada la PWA, puedes desconectarte completamente y seguirás pudiendo navegar o buscar en el sitio
Hay un script npm para generar la lista de caché de archivos y la minificación npm run abridge
. Mi archivo netlify.toml ejecuta automáticamente este script npm durante el despliegue del sitio, por lo que todo es automático. Si Zola fuera capaz de crear un archivo js, entonces sería posible generar la lista de archivos de caché dinámicamente durante la compilación en lugar de depender de node/npm.
Para utilizar una lista específica de archivos en lugar de todos los archivos de editar la entrada pwa_BASE_CACHE_FILES
en config.toml
. Si incluso un solo archivo en la lista de caché no se encuentra entonces no pre caché de la lista, por lo que sólo la caché a medida que navega. (Si está configurando por primera vez, pruebe sólo con un par de páginas)
La función PWA también es fácil de desactivar simplemente configurando pwa = false
en config.toml
Optimización del rendimiento
Archivos Javascript
Todo javascript puede ser desactivado en config.toml
:
= false
= false
= false
= false
= false
= false
= false
Estos son los archivos javascript utilizados por Abridge:
- search_index.en.js: índice de búsqueda generado por zola en cada compilación para elasticlunr.
- elasticlunr.min.js: biblioteca de búsqueda para la búsqueda del lado del cliente.
- search.js: para hacer uso de elasticlunr desde la caja de búsqueda de nuestros sitios tanto para las sugerencias como para la página de resultados.
- email.js: utiliza javascript para ofuscar su dirección de correo electrónico real para el icono de correo en la parte inferior de la página.
- codecopy.js: añade un botón de copia a los bloques de código, para copiar el contenido del bloque de código al portapapeles.
- theme.js: pequeño script para facilitar el almacenamiento local del cambiador de temas. (nunca agrupado, siempre separado)
- theme_button.js: pequeño script para la función de cambio de tema cuando se pulsa el botón de cambio de tema.
- prestyle.js: Usado para precargar archivos css
<link rel="preload"
- este script los cambia a<link rel="stylesheet"
una vez que la página ha terminado de cargar, esto nos permite cargar hojas de estilo para fuentes externas, fontawesome, o katex de forma no bloqueante. - sw.js: este es el archivo Service Worker para la PWA.
- sw_load.js: este archivo se encarga de cargar el Service Worker para la PWA.
opción js_bundle
js_bundle
cuando se establece en true sirve un archivo bundle en lugar de todos los archivos js individuales.
Todos los bundles necesarios son generados dinámicamente por el script node package_abridge.js
El script node escaneará su config.toml en busca de los valores de configuración relevantes y, basándose en su config.tomnl, generará los paquetes necesarios.
Todo lo que se necesita es zola build && npm run abridge
.
Biblioteca de búsqueda de switch
Además de elasticlunr abridge también soporta pagefind y tinysearch.
pagefind demo: https://abridge-pagefind.pages.dev/
tinysearch demo: https://abridge-tinysearch.pages.dev/
Para utilizar tinysearch se requieren pasos adicionales.
Cambia a pagefind:
# zola serve
Cambiar a elasticlunr:
Cambiar a nosearch:
Cambia a tinysearch:
Primero hay que instalar tinysearch para poder construir el índice:
# reload shell environment
Cambiar Abridge a tinysearch
# zola serve
Cambiador de temas
El cambiador de tema depende de javascript para funcionar, aplica la clase .light al documentElement raíz. El archivo que maneja esto (theme.js
) es pequeño y optimizado y es el primer archivo cargado en la cabeza, por lo que el impacto en el rendimiento es mínimo. Sin el conmutador de temas puede seguir utilizando el tema automático que utiliza la configuración de preferencias del navegador/OS. Incluso puede instalar un plugin de Firefox para cambiar rápidamente entre los dos.
Optimizar archivos PNG/ICO
Buena herramienta para generar iconos enmascarables para manifest.json
: maskable.app
Todos los archivos png pueden ser optimizados usando oxipng:
Con pantallas más grandes y una mayor densidad de píxeles cada vez más común es probablemente una buena idea utilizar al menos un poco de compresión con pérdida. Por ejemplo, puede utilizar pngquant con una calidad del 93% y a menudo obtendrá imágenes de alrededor de la mitad del tamaño. Tenga en cuenta que pngquant es acumulativo, por lo que debe mantener sus imágenes originales en algún lugar, y sólo utilizar pngquant una vez por imagen, si lo usa una y otra vez en la misma imagen, entonces bajará la calidad de la imagen cada vez. Utilice siempre oxipng después, oxipng es sin pérdidas.
leanify puede comprimir más lejos tanto para archivos png como ico:
#launch new terminal
Pre gzip/brotli contenido
Si usted está sirviendo su sitio con nginx, puede pre gzip su contenido.
(Netlify brotli gzips sus archivos automáticamente, no exta trabajo requerido)
Primero configura nginx:
;
;
;
#gzip_proxied any;
;
;
#gzip_buffers 16 8k;
;
;
#gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
Entonces usted puede gzip/brotli sus archivos:
Nginx no viene por defecto con soporte para brotli, pero añadirlo no fue difícil.