Files
blowfish/exampleSite/docs/docs/version-2/index.html
Nuno Coração 1240473d78 added docs
2022-09-11 20:20:43 +01:00

709 lines
36 KiB
HTML

<!DOCTYPE html>
<html
lang="en"
dir="ltr"
class="scroll-smooth"
data-default-appearance="light"
data-auto-appearance="true"
><head>
<meta charset="utf-8" />
<meta http-equiv="content-language" content="en" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
<title>What&#39;s New in 2.0 ✨ &middot; Blowfish</title>
<meta name="title" content="What&#39;s New in 2.0 ✨ &middot; Blowfish" />
<meta name="description" content="Product | Nuno Coração" />
<link rel="canonical" href="https://github.com/nunocoracao/blowfish/docs/version-2/" />
<link rel="alternate" type="application/rss+xml" href="/nunocoracao/blowfish/docs/version-2/index.xml" title="Blowfish" />
<link
type="text/css"
rel="stylesheet"
href="/nunocoracao/blowfish/css/main.bundle.min.3f7a3d89b943c3dacb033ff4448c83a5b58692eb75f99e903ee759443c690298da06dc2cc7adc967ae51bb50103acfa1b65f99a428ef2ff09176f2519b277273.css"
integrity="sha512-P3o9iblDw9rLAz/0RIyDpbWGkut1&#43;Z6QPudZRDxpApjaBtwsx63JZ65Ru1AQOs&#43;htl&#43;ZpCjvL/CRdvJRmydycw=="
/>
<script type="text/javascript" src="/nunocoracao/blowfish/js/main.min.cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e.js" integrity="sha512-z4PhNX7vuL3xVChQ1m2AB9Yg5AULVxXcg/SpIdNs6c5H0NE8XYXysP&#43;DGNKHfuwvY7kxvUdBeoGlODJ6&#43;SfaPg=="></script>
<script type="text/javascript" src="/nunocoracao/blowfish/js/appearance.min.4a00b8b8a9118d31826a03a2a9cca83390fcd3eddd9e03868fffcf4dc1e2dc15649e9266091f1225a24e1bcf6558ff4807f77663bcfaaa8f3050d73c1bd5bf0b.js" integrity="sha512-SgC4uKkRjTGCagOiqcyoM5D80&#43;3dngOGj//PTcHi3BVknpJmCR8SJaJOG89lWP9IB/d2Y7z6qo8wUNc8G9W/Cw=="></script>
<script defer type="text/javascript" id="script-bundle" src="/nunocoracao/blowfish/js/main.bundle.min.e6e48d63bad91cf9da5ad2ef829f0e1a4f79580fef3b734cbce6d93a5c2042e544ac067c02a4ae5d9f83b402ae77c7a04f8f3c347050a2d5bfb18c21fc7de756.js" integrity="sha512-5uSNY7rZHPnaWtLvgp8OGk95WA/vO3NMvObZOlwgQuVErAZ8AqSuXZ&#43;DtAKud8egT488NHBQotW/sYwh/H3nVg==" data-copy="Copy" data-copied="Copied"></script>
<script src="/js/zoom.min.js"></script>
<link rel="apple-touch-icon" sizes="180x180" href="/nunocoracao/blowfish/apple-touch-icon.png" />
<link rel="icon" type="image/png" sizes="32x32" href="/nunocoracao/blowfish/favicon-32x32.png" />
<link rel="icon" type="image/png" sizes="16x16" href="/nunocoracao/blowfish/favicon-16x16.png" />
<link rel="manifest" href="/nunocoracao/blowfish/site.webmanifest" />
<meta property="og:title" content="What&#39;s New in 2.0 ✨" />
<meta property="og:description" content="Discover what&#39;s new in Congo version 2.0." />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://github.com/nunocoracao/blowfish/docs/version-2/" /><meta property="og:site_name" content="Blowfish" />
<meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="What&#39;s New in 2.0 ✨"/>
<meta name="twitter:description" content="Discover what&#39;s new in Congo version 2.0."/>
<meta name="author" content="Blowfish" />
<link href="https://linkedin.com/in/nunocoracao" rel="me" />
<link href="https://twitter.com/nunocoracao" rel="me" />
<link href="https://medium.com/@nunocoracao" rel="me" />
<link href="https://github.com/nunocoracao" rel="me" />
<link href="http://goodreads.com/nunocoracao" rel="me" />
<script async src="https://www.googletagmanager.com/gtag/js?id=G-XXXXXX"></script>
<script>
var doNotTrack = false;
if (!doNotTrack) {
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-XXXXXX', { 'anonymize_ip': false });
}
</script>
<link rel="stylesheet" href="https://rsms.me/inter/inter.css">
</head>
<body
class="flex flex-col h-screen px-6 m-auto text-lg leading-7 max-w-7xl bg-neutral text-neutral-900 dark:bg-neutral-800 dark:text-neutral sm:px-14 md:px-24 lg:px-32"
>
<div id="the-top" class="absolute flex self-center">
<a
class="px-3 py-1 text-sm -translate-y-8 rounded-b-lg bg-primary-200 focus:translate-y-0 dark:bg-neutral-600"
href="#main-content"
><span class="font-bold text-primary-600 ltr:pr-2 rtl:pl-2 dark:text-primary-400"
>&darr;</span
>Skip to main content</a
>
</div>
<div style="padding-left:0;padding-right:0"
class="flex items-center justify-between px-4 py-6 sm:px-6 md:justify-start space-x-3">
<div>
<a href="/nunocoracao/blowfish" class="flex">
<span class="sr-only">Blowfish</span>
<img src="/nunocoracao/blowfish/img/blowfish_logo_transparent.png" width="1000" height="1000"
class="max-h-[5rem] max-w-[5rem] object-scale-down object-left nozoom" alt="Blowfish" />
</a>
</div>
<div class="flex flex-1 items-center justify-between">
<nav class="flex space-x-3">
<a href="/" class="text-base font-medium text-gray-500 hover:text-gray-900">Blowfish</a>
</nav>
<div class="hidden md:flex items-center space-x-5 md:ml-12">
<a href="/nunocoracao/blowfish/about/" class="text-base font-medium text-gray-500 hover:text-gray-900" title="About">About</a>
<a href="/nunocoracao/blowfish/posts/" class="text-base font-medium text-gray-500 hover:text-gray-900" title="Posts">Posts</a>
<a href="/nunocoracao/blowfish/resume/" class="text-base font-medium text-gray-500 hover:text-gray-900" title="Resume">Resume</a>
<a href="/nunocoracao/blowfish/music/" class="text-base font-medium text-gray-500 hover:text-gray-900" title="Music">Music</a>
<a href="/nunocoracao/blowfish/docs/" class="text-base font-medium text-gray-500 hover:text-gray-900" title="Documentation">Docs</a>
<span></span>
<button id="search-button" class="text-base hover:text-primary-600 dark:hover:text-primary-400"
title="">
<span class="relative inline-block align-text-bottom icon">
<svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="search" class="svg-inline--fa fa-search fa-w-16" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M505 442.7L405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z"/></svg>
</span>
</button>
<div
class="ltr:mr-14 rtl:ml-14 cursor-pointer text-sm text-neutral-700 hover:text-primary-600 dark:text-neutral dark:hover:text-primary-400">
<button id="appearance-switcher" type="button">
<div class="flex items-center justify-center h-12 dark:hidden">
<span class="relative inline-block align-text-bottom icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M32 256c0-123.8 100.3-224 223.8-224c11.36 0 29.7 1.668 40.9 3.746c9.616 1.777 11.75 14.63 3.279 19.44C245 86.5 211.2 144.6 211.2 207.8c0 109.7 99.71 193 208.3 172.3c9.561-1.805 16.28 9.324 10.11 16.95C387.9 448.6 324.8 480 255.8 480C132.1 480 32 379.6 32 256z"/></svg>
</span>
</div>
<div class="items-center justify-center hidden h-12 dark:flex">
<span class="relative inline-block align-text-bottom icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 159.1c-53.02 0-95.1 42.98-95.1 95.1S202.1 351.1 256 351.1s95.1-42.98 95.1-95.1S309 159.1 256 159.1zM509.3 347L446.1 255.1l63.15-91.01c6.332-9.125 1.104-21.74-9.826-23.72l-109-19.7l-19.7-109c-1.975-10.93-14.59-16.16-23.72-9.824L256 65.89L164.1 2.736c-9.125-6.332-21.74-1.107-23.72 9.824L121.6 121.6L12.56 141.3C1.633 143.2-3.596 155.9 2.736 164.1L65.89 256l-63.15 91.01c-6.332 9.125-1.105 21.74 9.824 23.72l109 19.7l19.7 109c1.975 10.93 14.59 16.16 23.72 9.824L256 446.1l91.01 63.15c9.127 6.334 21.75 1.107 23.72-9.822l19.7-109l109-19.7C510.4 368.8 515.6 356.1 509.3 347zM256 383.1c-70.69 0-127.1-57.31-127.1-127.1c0-70.69 57.31-127.1 127.1-127.1s127.1 57.3 127.1 127.1C383.1 326.7 326.7 383.1 256 383.1z"/></svg>
</span>
</div>
</button>
</div>
</div>
<div class="flex md:hidden items-center space-x-5 md:ml-12">
<span></span>
<button id="search-button-mobile" class="text-base hover:text-primary-600 dark:hover:text-primary-400"
title="">
<span class="relative inline-block align-text-bottom icon">
<svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="search" class="svg-inline--fa fa-search fa-w-16" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M505 442.7L405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z"/></svg>
</span>
</button>
<button id="appearance-switcher-mobile" type="button" style="margin-right:5px">
<div class="flex items-center justify-center h-12 dark:hidden">
<span class="relative inline-block align-text-bottom icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M32 256c0-123.8 100.3-224 223.8-224c11.36 0 29.7 1.668 40.9 3.746c9.616 1.777 11.75 14.63 3.279 19.44C245 86.5 211.2 144.6 211.2 207.8c0 109.7 99.71 193 208.3 172.3c9.561-1.805 16.28 9.324 10.11 16.95C387.9 448.6 324.8 480 255.8 480C132.1 480 32 379.6 32 256z"/></svg>
</span>
</div>
<div class="items-center justify-center hidden h-12 dark:flex">
<span class="relative inline-block align-text-bottom icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 159.1c-53.02 0-95.1 42.98-95.1 95.1S202.1 351.1 256 351.1s95.1-42.98 95.1-95.1S309 159.1 256 159.1zM509.3 347L446.1 255.1l63.15-91.01c6.332-9.125 1.104-21.74-9.826-23.72l-109-19.7l-19.7-109c-1.975-10.93-14.59-16.16-23.72-9.824L256 65.89L164.1 2.736c-9.125-6.332-21.74-1.107-23.72 9.824L121.6 121.6L12.56 141.3C1.633 143.2-3.596 155.9 2.736 164.1L65.89 256l-63.15 91.01c-6.332 9.125-1.105 21.74 9.824 23.72l109 19.7l19.7 109c1.975 10.93 14.59 16.16 23.72 9.824L256 446.1l91.01 63.15c9.127 6.334 21.75 1.107 23.72-9.822l19.7-109l109-19.7C510.4 368.8 515.6 356.1 509.3 347zM256 383.1c-70.69 0-127.1-57.31-127.1-127.1c0-70.69 57.31-127.1 127.1-127.1s127.1 57.3 127.1 127.1C383.1 326.7 326.7 383.1 256 383.1z"/></svg>
</span>
</div>
</button>
</div>
</div>
<div class="-my-2 -mr-2 md:hidden">
<label id="menu-button" for="menu-controller" class="block">
<input type="checkbox" id="menu-controller" class="hidden" />
<div class="cursor-pointer hover:text-primary-600 dark:hover:text-primary-400">
<span class="relative inline-block align-text-bottom icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M0 96C0 78.33 14.33 64 32 64H416C433.7 64 448 78.33 448 96C448 113.7 433.7 128 416 128H32C14.33 128 0 113.7 0 96zM0 256C0 238.3 14.33 224 32 224H416C433.7 224 448 238.3 448 256C448 273.7 433.7 288 416 288H32C14.33 288 0 273.7 0 256zM416 448H32C14.33 448 0 433.7 0 416C0 398.3 14.33 384 32 384H416C433.7 384 448 398.3 448 416C448 433.7 433.7 448 416 448z"/></svg>
</span>
</div>
<div id="menu-wrapper" style="padding-top:25px;"
class="fixed inset-0 z-30 invisible w-screen h-screen m-auto overflow-auto transition-opacity opacity-0 cursor-default bg-neutral-100/50 backdrop-blur-sm dark:bg-neutral-900/50">
<ul
class="flex movedown flex-col w-full px-6 py-6 mx-auto overflow-visible list-none ltr:text-right rtl:text-left max-w-7xl sm:px-14 md:px-24 lg:px-32 sm:py-10 sm:pt-10">
<li class="mb-1">
<span class="cursor-pointer hover:text-primary-600 dark:hover:text-primary-400">
<span class="relative inline-block align-text-bottom icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path fill="currentColor" d="M310.6 361.4c12.5 12.5 12.5 32.75 0 45.25C304.4 412.9 296.2 416 288 416s-16.38-3.125-22.62-9.375L160 301.3L54.63 406.6C48.38 412.9 40.19 416 32 416S15.63 412.9 9.375 406.6c-12.5-12.5-12.5-32.75 0-45.25l105.4-105.4L9.375 150.6c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0L160 210.8l105.4-105.4c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25l-105.4 105.4L310.6 361.4z"/></svg>
</span>
</span>
</li>
<li class="mb-1">
<a class="decoration-primary-500 hover:underline hover:decoration-2 hover:underline-offset-2"
href="/nunocoracao/blowfish/about/" title="About">About</a>
</li>
<li class="mb-1">
<a class="decoration-primary-500 hover:underline hover:decoration-2 hover:underline-offset-2"
href="/nunocoracao/blowfish/posts/" title="Posts">Posts</a>
</li>
<li class="mb-1">
<a class="decoration-primary-500 hover:underline hover:decoration-2 hover:underline-offset-2"
href="/nunocoracao/blowfish/resume/" title="Resume">Resume</a>
</li>
<li class="mb-1">
<a class="decoration-primary-500 hover:underline hover:decoration-2 hover:underline-offset-2"
href="/nunocoracao/blowfish/music/" title="Music">Music</a>
</li>
<li class="mb-1">
<a class="decoration-primary-500 hover:underline hover:decoration-2 hover:underline-offset-2"
href="/nunocoracao/blowfish/docs/" title="Documentation">Docs</a>
</li>
</ul>
</div>
</label>
</div>
</div>
<div id="mobile-menu"
class="fixed inset-0 z-30 invisible w-screen h-screen m-auto overflow-auto transition-opacity opacity-0 cursor-default bg-neutral-100/50 backdrop-blur-sm dark:bg-neutral-900/50">
<ul
class="flex movedown flex-col w-full px-6 py-6 mx-auto overflow-visible list-none ltr:text-right rtl:text-left max-w-7xl sm:px-14 md:px-24 lg:px-32 sm:py-10 sm:pt-10">
<li class="mb-1">
<span class="cursor-pointer hover:text-primary-600 dark:hover:text-primary-400">
<span class="relative inline-block align-text-bottom icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path fill="currentColor" d="M310.6 361.4c12.5 12.5 12.5 32.75 0 45.25C304.4 412.9 296.2 416 288 416s-16.38-3.125-22.62-9.375L160 301.3L54.63 406.6C48.38 412.9 40.19 416 32 416S15.63 412.9 9.375 406.6c-12.5-12.5-12.5-32.75 0-45.25l105.4-105.4L9.375 150.6c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0L160 210.8l105.4-105.4c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25l-105.4 105.4L310.6 361.4z"/></svg>
</span>
</span>
</li>
<li class="mb-1">
<a class="decoration-primary-500 hover:underline hover:decoration-2 hover:underline-offset-2"
href="/nunocoracao/blowfish/about/" title="About">About</a>
</li>
<li class="mb-1">
<a class="decoration-primary-500 hover:underline hover:decoration-2 hover:underline-offset-2"
href="/nunocoracao/blowfish/posts/" title="Posts">Posts</a>
</li>
<li class="mb-1">
<a class="decoration-primary-500 hover:underline hover:decoration-2 hover:underline-offset-2"
href="/nunocoracao/blowfish/resume/" title="Resume">Resume</a>
</li>
<li class="mb-1">
<a class="decoration-primary-500 hover:underline hover:decoration-2 hover:underline-offset-2"
href="/nunocoracao/blowfish/music/" title="Music">Music</a>
</li>
<li class="mb-1">
<a class="decoration-primary-500 hover:underline hover:decoration-2 hover:underline-offset-2"
href="/nunocoracao/blowfish/docs/" title="Documentation">Docs</a>
</li>
<li>
<button id="search-button-mobile" class="text-base hover:text-primary-600 dark:hover:text-primary-400">
<span class="relative inline-block align-text-bottom icon">
<svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="search" class="svg-inline--fa fa-search fa-w-16" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M505 442.7L405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z"/></svg>
</span>
</button>
</li>
</ul>
</div>
<div class="relative flex flex-col grow">
<main id="main-content" class="grow">
<header>
<h1 class="mt-0 text-4xl font-extrabold text-neutral-900 dark:text-neutral">What&#39;s New in 2.0 ✨</h1>
</header>
<section
class="mt-0 prose flex max-w-full flex-col dark:prose-invert lg:flex-row"
>
<div class="min-w-0 min-h-0 max-w-prose">
<div class="lead !mb-9 text-xl">
Congo 2.0 is packed with tons of new features and optimisations.
</div>
<p>The original aim of Congo was to develop a theme that was simple and lightweight. Version 2 takes this one step further and makes the theme even more powerful while still maintaining its lightweight footprint.</p>
<p>Continue reading below to discover what&rsquo;s new. When you&rsquo;re ready to upgrade, check out the <a href="https://github.com/nunocoracao/blowfish/docs/version-2/upgrade/">guide to upgrading</a>.</p>
<h2 id="tailwind-css-30" class="relative group">Tailwind CSS 3.0 <span class="absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100"><a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#tailwind-css-30" aria-label="Anchor">#</a></span></h2>
<p>Tailwind CSS is at the heart of Congo and this new release contains the very latest <a href="https://tailwindcss.com/blog/tailwindcss-v3">Tailwind CSS version 3</a>. It brings with it performance optimisations and support for some great new CSS features.</p>
<div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;">
<iframe src="https://www.youtube.com/embed/TmWIrBPE6Bc" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" allowfullscreen title="YouTube Video"></iframe>
</div>
<p>Implementing this new version has also removed some Tailwind plugin dependencies from the theme, allowing the overall footprint to remain lightweight.</p>
<h2 id="multilingual-support" class="relative group">Multilingual support <span class="absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100"><a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#multilingual-support" aria-label="Anchor">#</a></span></h2>
<p>A highly requested feature, Congo is now multilingual! If you publish your content in multiple languages, the site will be built with all the translations available.</p>
<div class="text-2xl text-center" style="font-size: 2.8rem">🇬🇧 🇩🇪 🇫🇷 🇪🇸 🇨🇳 🇧🇷 🇹🇷 🇧🇩</div>
<p>Thanks to submissions from the community, Congo has already been translated into <a href="https://github.com/jpanther/congo/tree/dev/i18n">eight languages</a> with more to be added over time. By the way, <a href="https://github.com/jpanther/congo/pulls">pull requests</a> for new languages are always welcome!</p>
<h2 id="rtl-language-support" class="relative group">RTL language support <span class="absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100"><a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#rtl-language-support" aria-label="Anchor">#</a></span></h2>
<p>One of the benefits of the new Tailwind and Multilingual features is the ability to add RTL language support. When enabled, the entire site will reflow content from right-to-left. Every element in the theme has been restyled to ensure it looks great in this mode which aids authors who wish to generate content in RTL languages.</p>
<p>RTL is controlled on a per-language basis so you can mix and match both RTL and LTR content in your projects and the theme will respond accordingly.</p>
<h2 id="automatic-image-resizing" class="relative group">Automatic image resizing <span class="absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100"><a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#automatic-image-resizing" aria-label="Anchor">#</a></span></h2>
<p>A big change in Congo 2.0 is the addition of automatic image resizing. Using the power of Hugo Pipes, images in Markdown content are now automatically scaled to different output sizes. These are then presented using HTML <code>srcset</code> attributes enabling optimised file sizes to be served to your site visitors.</p>
<p>
<figure>
<img
class="my-0 rounded-md"
srcset="
/nunocoracao/blowfish/docs/version-2/image-resizing_hudc3a1812e7aa4d065174f956d05e334c_253342_330x0_resize_box_3.png 330w,
/nunocoracao/blowfish/docs/version-2/image-resizing_hudc3a1812e7aa4d065174f956d05e334c_253342_660x0_resize_box_3.png 660w,
/nunocoracao/blowfish/docs/version-2/image-resizing_hudc3a1812e7aa4d065174f956d05e334c_253342_1024x0_resize_box_3.png 1024w,
/nunocoracao/blowfish/docs/version-2/image-resizing_hudc3a1812e7aa4d065174f956d05e334c_253342_1320x0_resize_box_3.png 2x"
src="/nunocoracao/blowfish/docs/version-2/image-resizing_hudc3a1812e7aa4d065174f956d05e334c_253342_660x0_resize_box_3.png"
alt=""
/>
</figure>
</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-html" data-lang="html"><span class="line"><span class="cl"><span class="c">&lt;!-- Markdown: ![My image](image.jpg) --&gt;</span>
</span></span><span class="line"><span class="cl"><span class="p">&lt;</span><span class="nt">img</span>
</span></span><span class="line"><span class="cl"> <span class="na">srcset</span><span class="o">=</span><span class="s">&#34;
</span></span></span><span class="line"><span class="cl"><span class="s"> /image_320x0_resize_q75_box.jpg 320w,
</span></span></span><span class="line"><span class="cl"><span class="s"> /image_635x0_resize_q75_box.jpg 635w,
</span></span></span><span class="line"><span class="cl"><span class="s"> /image_1024x0_resize_q75_box.jpg 1024w,
</span></span></span><span class="line"><span class="cl"><span class="s"> /image_1270x0_resize_q75_box.jpg 2x&#34;</span>
</span></span><span class="line"><span class="cl"> <span class="na">src</span><span class="o">=</span><span class="s">&#34;/image_635x0_resize_q75_box.jpg&#34;</span>
</span></span><span class="line"><span class="cl"> <span class="na">alt</span><span class="o">=</span><span class="s">&#34;My image&#34;</span>
</span></span><span class="line"><span class="cl"><span class="p">/&gt;</span>
</span></span></code></pre></div><p>Best of all there&rsquo;s nothing you need to change! Simply insert standard Markdown image syntax and let the theme do the rest. If you want a little more control, the <code>figure</code> shortcode has been completely rewritten to provide the same resizing benefits.</p>
<h2 id="performance-improvements" class="relative group">Performance improvements <span class="absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100"><a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#performance-improvements" aria-label="Anchor">#</a></span></h2>
<p>This update packs performance improvements throughout. A key objective for this release was to improve Lighthouse scores and Congo now scores a perfect 100 on all four metrics.</p>
<figure><img src="/nunocoracao/blowfish/docs/version-2/lighthouse.jpg"width="100%"
height="auto"
style="max-width:600px; max-height:136px;"
/>
</figure>
<p>There&rsquo;s too many individual changes to highlight them here but the results speak for themselves. If you want to dig deeper, you can <a href="lighthouse.html">view the Lighthouse report</a>. Real world performance will vary based upon server configuration.</p>
<h2 id="site-search" class="relative group">Site search <span class="absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100"><a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#site-search" aria-label="Anchor">#</a></span></h2>
<p>Powered by <a href="https://fusejs.io">Fuse.js</a>, site search allows visitors to quickly and easily find your content. All searches are performed client-side meaning there&rsquo;s nothing to configure on the server and queries are performed super fast. Simply enable the feature in your site configuration and you&rsquo;re all set. Oh, and it also supports full keyboard navigation!</p>
<h2 id="tables-of-contents" class="relative group">Tables of contents <span class="absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100"><a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#tables-of-contents" aria-label="Anchor">#</a></span></h2>
<p>A highly requested feature, Congo now supports tables of contents on article pages. You can see it in action on this page. The contents are fully responsive and will adjust to take advantage of the space available at different screen resolutions.</p>
<p>Available on a global or per article basis, the table of contents can be fully customised using standard Hugo configuration values, allowing you to adjust the behaviour to suit your project.</p>
<h2 id="accessibility-improvements" class="relative group">Accessibility improvements <span class="absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100"><a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#accessibility-improvements" aria-label="Anchor">#</a></span></h2>
<p>From adding ARIA descriptions to more items or simply adjusting the contrast of certain text elements, this release is the most accessible yet.</p>
<p>Version 2 also introduces &ldquo;skip to content&rdquo; and &ldquo;scroll to top&rdquo; links that enable quick navigation. There&rsquo;s also keyboard shortcuts for enabling items like search without reaching for the mouse.</p>
<p>The new image resizing features also provide full control over <code>alt</code> and <code>title</code> elements enabling an accessible experience for all visitors.</p>
<h2 id="a-whole-lot-more" class="relative group">A whole lot more <span class="absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100"><a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#a-whole-lot-more" aria-label="Anchor">#</a></span></h2>
<p>There&rsquo;s countless other minor changes to explore. From being able to display taxonomies on articles and list pages, to using the new <code>headline</code> author parameter to customise your homepage. There&rsquo;s also improved JSON-LD strucured data which further optimises SEO performance. Plus the entire theme has had extra polish to ensure a consistent design language.</p>
<p>🚀 Check out the <a href="https://github.com/jpanther/congo/blob/dev/CHANGELOG.md">full changelog</a> to learn more.</p>
<h2 id="next-steps" class="relative group">Next steps <span class="absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100"><a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#next-steps" aria-label="Anchor">#</a></span></h2>
<p>If you&rsquo;re ready to upgrade, read the <a href="https://github.com/nunocoracao/blowfish/docs/version-2/upgrade/">upgrading from version 1 guide</a> to get started. If you&rsquo;re new to Congo, check out the <a href="https://github.com/nunocoracao/blowfish/docs/installation/">Installation guide</a> to begin a new project.</p>
<hr>
</div>
</section>
<section class="space-y-10">
<h2 class="mt-12 text-2xl font-bold text-neutral-700 first:mt-8 dark:text-neutral-300">
2022
</h2>
<hr class="border-dotted w-36 border-neutral-400" />
<a class="sm:flex mb-10 article" href="/nunocoracao/blowfish/docs/version-2/upgrade/">
<div class="mb-[5rem] md:mb-0">
<h3 class="flex items-center text-xl font-semibold">
<p class="text-neutral-800 decoration-primary-500 hover:underline hover:underline-offset-2 dark:text-neutral"
href="/nunocoracao/blowfish/docs/version-2/upgrade/">Upgrading from Congo 1.x</p>
</h3>
<div class="text-sm text-neutral-500 dark:text-neutral-400">
<div class="flex flex-row flex-wrap items-center">
<span>1382 words</span><span class="px-2 text-primary-500">&middot;</span><span title="Reading time">7 mins</span>
</div>
</div>
</div>
</a>
</section>
<div
class="pointer-events-none absolute top-[100vh] bottom-0 w-12 ltr:right-0 rtl:left-0"
>
<a
href="#the-top"
class="pointer-events-auto sticky top-[calc(100vh-5.5rem)] flex h-12 w-12 items-center justify-center rounded-full bg-neutral/50 text-xl text-neutral-700 backdrop-blur hover:text-primary-600 dark:bg-neutral-800/50 dark:text-neutral dark:hover:text-primary-400"
aria-label="Scroll to top"
title="Scroll to top"
>
&uarr;
</a>
</div>
</main><footer class="py-10 print:hidden">
<nav class="pb-4 text-base font-medium text-neutral-500 dark:text-neutral-400">
<ul class="flex flex-col list-none sm:flex-row">
<li
class="mb-1 ltr:text-right rtl:text-left sm:mb-0 ltr:sm:mr-7 ltr:sm:last:mr-0 rtl:sm:ml-7 rtl:sm:last:ml-0"
>
<a
class="decoration-primary-500 hover:underline hover:decoration-2 hover:underline-offset-2"
href="/nunocoracao/blowfish/tags/"
title="Tags"
>Tags</a
>
</li>
<li
class="mb-1 ltr:text-right rtl:text-left sm:mb-0 ltr:sm:mr-7 ltr:sm:last:mr-0 rtl:sm:ml-7 rtl:sm:last:ml-0"
>
<a
class="decoration-primary-500 hover:underline hover:decoration-2 hover:underline-offset-2"
href="/nunocoracao/blowfish/categories/"
title="Categories"
>Categories</a
>
</li>
</ul>
</nav>
<div class="flex items-center justify-between">
<p class="text-sm text-neutral-500 dark:text-neutral-400">
&copy;
2022
Blowfish
</p>
<p class="text-xs text-neutral-500 dark:text-neutral-400">
Powered by <a class="hover:underline hover:decoration-primary-400 hover:text-primary-500"
href="https://gohugo.io/" target="_blank" rel="noopener noreferrer">Hugo</a> &amp; <a class="hover:underline hover:decoration-primary-400 hover:text-primary-500" href="https://github.com/nunocoracao/blowfish" target="_blank" rel="noopener noreferrer">Blowfish</a>
</p>
</div>
<script>
mediumZoom(document.querySelectorAll("img:not(.nozoom)"), {
margin: 24,
background: 'rgba(0,0,0,0.5)',
scrollOffset: 0,
})
</script>
</footer>
<div
id="search-wrapper"
class="invisible fixed inset-0 z-50 flex h-screen w-screen cursor-default flex-col bg-neutral-500/50 p-4 backdrop-blur-sm dark:bg-neutral-900/50 sm:p-6 md:p-[10vh] lg:p-[12vh]"
data-url="https://github.com/nunocoracao/blowfish"
>
<div
id="search-modal"
class="flex flex-col w-full max-w-3xl min-h-0 mx-auto border rounded-md shadow-lg top-20 border-neutral-200 bg-neutral dark:border-neutral-700 dark:bg-neutral-800"
>
<header class="relative z-10 flex items-center justify-between flex-none px-2">
<form class="flex items-center flex-auto min-w-0">
<div class="flex items-center justify-center w-8 h-8 text-neutral-400">
<span class="relative inline-block align-text-bottom icon">
<svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="search" class="svg-inline--fa fa-search fa-w-16" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M505 442.7L405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z"/></svg>
</span>
</div>
<input
type="search"
id="search-query"
class="flex flex-auto h-12 mx-1 bg-transparent appearance-none focus:outline-dotted focus:outline-2 focus:outline-transparent"
placeholder="Search"
tabindex="0"
/>
</form>
<button
id="close-search-button"
class="flex items-center justify-center w-8 h-8 text-neutral-700 hover:text-primary-600 dark:text-neutral dark:hover:text-primary-400"
title="Close (Esc)"
>
<span class="relative inline-block align-text-bottom icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path fill="currentColor" d="M310.6 361.4c12.5 12.5 12.5 32.75 0 45.25C304.4 412.9 296.2 416 288 416s-16.38-3.125-22.62-9.375L160 301.3L54.63 406.6C48.38 412.9 40.19 416 32 416S15.63 412.9 9.375 406.6c-12.5-12.5-12.5-32.75 0-45.25l105.4-105.4L9.375 150.6c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0L160 210.8l105.4-105.4c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25l-105.4 105.4L310.6 361.4z"/></svg>
</span>
</button>
</header>
<section class="flex-auto px-2 overflow-auto">
<ul id="search-results">
</ul>
</section>
</div>
</div>
</div>
</body>
</html>