<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
    <title>Linkita - meta</title>
    <subtitle>A clean and elegant blog theme for Zola. Linkita is based on Kita and Hugo-Paper and is multilingual and SEO friendly.</subtitle>
    <link rel="self" type="application/atom+xml" href="https://salif.github.io/linkita/tags/meta/atom.xml"/>
    <link rel="alternate" type="text/html" href="https://salif.github.io/linkita"/>
    <generator uri="https://www.getzola.org/">Zola</generator>
    <updated>2026-09-12T00:00:00+00:00</updated>
    <id>https://salif.github.io/linkita/tags/meta/atom.xml</id>
    <entry xml:lang="en">
        <title>Switch to Zola 0.23.4</title>
        <published>2026-09-12T00:00:00+00:00</published>
        <updated>2026-09-12T00:00:00+00:00</updated>
        
        <author>
          <name>Default Author</name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://salif.github.io/linkita/update-2/"/>
        <id>https://salif.github.io/linkita/update-2/</id>
        
        <content type="html" xml:base="https://salif.github.io/linkita/update-2/">&lt;p&gt;Zola v0.23 replaced its template engine, Tera, with a new major version
(Tera v2). The Zola project itself calls it&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;probably the most breaking version of Zola that will happen&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;and Linkita&#39;s templates had to be rewritten to follow it. This page walks
you through moving a Linkita site from Zola v0.22.1 to
Zola v0.23.4.&lt;/p&gt;
&lt;h2 id=&quot;repository-move&quot;&gt;Repository move&lt;/h2&gt;
&lt;p&gt;Linkita was simultaneously moved from Codeberg to GitHub.
If you are still using the Codeberg repository, you need to switch to
the GitHub repository first. For submodule users, here are the
instructions:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color-scheme: light dark; color: light-dark(#000000, #E6EDF3); background-color: light-dark(#FFFFFF, #0D1117);&quot; &gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#795E26, #FFA657);&quot;&gt;git&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt; submodule&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt; init&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#795E26, #FFA657);&quot;&gt;git&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt; config&lt;/span&gt;&lt;span style=&quot;color: light-dark(#0000FF, #79C0FF);&quot;&gt; -&lt;/span&gt;&lt;span style=&quot;color: light-dark(#0000FF, #79C0FF);&quot;&gt;f&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt; .gitmodules&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt; submodule.&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt;themes/linkita&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt;.url&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt; https://github.com/salif/linkita.git&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#795E26, #FFA657);&quot;&gt;git&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt; config&lt;/span&gt;&lt;span style=&quot;color: light-dark(#0000FF, #79C0FF);&quot;&gt; -&lt;/span&gt;&lt;span style=&quot;color: light-dark(#0000FF, #79C0FF);&quot;&gt;f&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt; .gitmodules&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt; submodule.&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt;themes/linkita&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt;.branch&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt; tera1&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#795E26, #FFA657);&quot;&gt;git&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt; submodule&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt; sync&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#795E26, #FFA657);&quot;&gt;git&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt; submodule&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt; update&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#795E26, #FFA657);&quot;&gt;git&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt; add&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt; .gitmodules&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&quot;who-needs-this-guide&quot;&gt;Who needs this guide&lt;/h2&gt;
&lt;p&gt;This guide is for you if your site currently uses Linkita on the &lt;code&gt;tera1&lt;/code&gt;
branch (or on &lt;code&gt;linkita&lt;/code&gt; / &lt;code&gt;v4&lt;/code&gt;) with Zola v0.22.1 or older.&lt;/p&gt;
&lt;p&gt;If you don&#39;t want to upgrade Zola yet, you don&#39;t have to do anything –
the &lt;code&gt;tera1&lt;/code&gt; branch will keep working with old Zola versions and isn&#39;t
going away.&lt;/p&gt;
&lt;h2 id=&quot;step-1-upgrade-zola-to-v0-23-4&quot;&gt;Step 1: Upgrade Zola to v0.23.4&lt;/h2&gt;
&lt;p&gt;Install Zola v0.23.4 or newer. Check your installed version with:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color-scheme: light dark; color: light-dark(#000000, #E6EDF3); background-color: light-dark(#FFFFFF, #0D1117);&quot; &gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#795E26, #FFA657);&quot;&gt;zola&lt;/span&gt;&lt;span style=&quot;color: light-dark(#0000FF, #79C0FF);&quot;&gt; -&lt;/span&gt;&lt;span style=&quot;color: light-dark(#0000FF, #79C0FF);&quot;&gt;-version&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Zola v0.23 is a big jump. Skim the
&lt;a rel=&quot;external&quot; href=&quot;https://github.com/getzola/zola/blob/master/CHANGELOG.md#0230-2026-08-05&quot;&gt;Zola v0.23.0 changelog entry&lt;/a&gt;
if your site has custom templates beyond Linkita&#39;s own – the rest of
this guide only covers what changed on Linkita&#39;s side.&lt;/p&gt;
&lt;h2 id=&quot;step-2-switch-to-the-main-branch&quot;&gt;Step 2: Switch to the &lt;code&gt;main&lt;/code&gt; branch&lt;/h2&gt;
&lt;p&gt;Linkita&#39;s &lt;code&gt;main&lt;/code&gt; branch now targets Zola v0.23.0+. The &lt;code&gt;tera1&lt;/code&gt; branch
stays on the old template engine for Zola v0.22.1 and older.&lt;/p&gt;
&lt;p&gt;If you installed Linkita as a git submodule:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color-scheme: light dark; color: light-dark(#000000, #E6EDF3); background-color: light-dark(#FFFFFF, #0D1117);&quot; &gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#795E26, #FFA657);&quot;&gt;git&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt; submodule&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt; set-branch&lt;/span&gt;&lt;span style=&quot;color: light-dark(#0000FF, #79C0FF);&quot;&gt; -&lt;/span&gt;&lt;span style=&quot;color: light-dark(#0000FF, #79C0FF);&quot;&gt;-branch&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt; main&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt; themes/linkita&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#795E26, #FFA657);&quot;&gt;git&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt; submodule&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt; update&lt;/span&gt;&lt;span style=&quot;color: light-dark(#0000FF, #79C0FF);&quot;&gt; -&lt;/span&gt;&lt;span style=&quot;color: light-dark(#0000FF, #79C0FF);&quot;&gt;-remote&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt; themes/linkita&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&quot;step-3-update-your-zola-toml-config-toml&quot;&gt;Step 3: Update your &lt;code&gt;zola.toml&lt;/code&gt; / &lt;code&gt;config.toml&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;Go through each of the following. None of these are enforced by Zola –
leftover old keys won&#39;t break your build, but they&#39;ll silently stop
doing anything, so it&#39;s worth cleaning them up.&lt;/p&gt;
&lt;h3 id=&quot;menu-and-social-links-base-url-base&quot;&gt;Menu and social links: &lt;code&gt;$BASE_URL&lt;/code&gt; → &lt;code&gt;@base&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;$BASE_URL&lt;/code&gt; in &lt;code&gt;extra.menus&lt;/code&gt;, profile &lt;code&gt;social&lt;/code&gt; URLs, and
&lt;code&gt;extra.footer.license_url&lt;/code&gt; is now written &lt;code&gt;@base&lt;/code&gt;:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color-scheme: light dark; color: light-dark(#000000, #E6EDF3); background-color: light-dark(#FFFFFF, #0D1117);&quot; &gt;&lt;code data-lang=&quot;toml&quot; data-name=&quot;zola.toml&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#008000, #8B949E);&quot;&gt;#&lt;/span&gt;&lt;span style=&quot;color: light-dark(#008000, #8B949E);&quot;&gt; Before&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;[&lt;/span&gt;&lt;span style=&quot;color: light-dark(#000000, #FFA657);&quot;&gt;extra&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span style=&quot;color: light-dark(#000000, #FFA657);&quot;&gt;menus&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#001080, #E6EDF3);&quot;&gt;menu_name&lt;/span&gt;&lt;span&gt; =&lt;/span&gt;&lt;span&gt; [&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  {&lt;/span&gt;&lt;span style=&quot;color: light-dark(#001080, #E6EDF3);&quot;&gt; url&lt;/span&gt;&lt;span&gt; =&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt; &amp;quot;&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt;$BASE_URL/blog/&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span style=&quot;color: light-dark(#001080, #E6EDF3);&quot;&gt; name&lt;/span&gt;&lt;span&gt; =&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt; &amp;quot;&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt;Archive&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; }&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#008000, #8B949E);&quot;&gt;#&lt;/span&gt;&lt;span style=&quot;color: light-dark(#008000, #8B949E);&quot;&gt; After&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;[&lt;/span&gt;&lt;span style=&quot;color: light-dark(#000000, #FFA657);&quot;&gt;extra&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span style=&quot;color: light-dark(#000000, #FFA657);&quot;&gt;menus&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#001080, #E6EDF3);&quot;&gt;menu_name&lt;/span&gt;&lt;span&gt; =&lt;/span&gt;&lt;span&gt; [&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  {&lt;/span&gt;&lt;span style=&quot;color: light-dark(#001080, #E6EDF3);&quot;&gt; url&lt;/span&gt;&lt;span&gt; =&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt; &amp;quot;&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt;@base/blog/&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span style=&quot;color: light-dark(#001080, #E6EDF3);&quot;&gt; name&lt;/span&gt;&lt;span&gt; =&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt; &amp;quot;&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt;Archive&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; }&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;]&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The same rename applies to a profile&#39;s &lt;code&gt;social&lt;/code&gt; entries and to
&lt;code&gt;extra.footer.license_url&lt;/code&gt;. You can also use
&lt;a rel=&quot;external&quot; href=&quot;https://www.getzola.org/documentation/content/linking/#internal-links&quot;&gt;Zola&#39;s internal links&lt;/a&gt;
(&lt;code&gt;@/...&lt;/code&gt;) instead of &lt;code&gt;@base&lt;/code&gt; if you prefer.&lt;/p&gt;
&lt;p&gt;There&#39;s also a new &lt;code&gt;@lang&lt;/code&gt; prefix for menu/social URLs that resolves a
path within a specific language, if you need that.&lt;/p&gt;
&lt;p&gt;Note this does &lt;strong&gt;not&lt;/strong&gt; apply to &lt;code&gt;extra.footer.copyright&lt;/code&gt; – that string
still uses &lt;code&gt;$BASE_URL&lt;/code&gt;, &lt;code&gt;$YEAR&lt;/code&gt;, and &lt;code&gt;$LICENSE_URL&lt;/code&gt; as before:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color-scheme: light dark; color: light-dark(#000000, #E6EDF3); background-color: light-dark(#FFFFFF, #0D1117);&quot; &gt;&lt;code data-lang=&quot;toml&quot; data-name=&quot;zola.toml&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;[&lt;/span&gt;&lt;span style=&quot;color: light-dark(#000000, #FFA657);&quot;&gt;extra&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span style=&quot;color: light-dark(#000000, #FFA657);&quot;&gt;footer&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#001080, #E6EDF3);&quot;&gt;copyright&lt;/span&gt;&lt;span&gt; =&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt; &amp;quot;&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt;&amp;amp;copy;&amp;amp;nbsp;$YEAR Your Name &amp;amp;vert; [CC BY-SA 4.0]($LICENSE_URL)&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&quot;profiles-open-graph-settings-simplified&quot;&gt;Profiles: Open Graph settings simplified&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;[extra.profiles.&amp;lt;user&amp;gt;.open_graph]&lt;/code&gt; sub-table is gone. &lt;code&gt;image&lt;/code&gt; and
&lt;code&gt;image_alt&lt;/code&gt; moved up a level and were renamed, &lt;code&gt;fediverse_creator&lt;/code&gt; moved
up a level too, and the Facebook-specific fields
(&lt;code&gt;first_name&lt;/code&gt;, &lt;code&gt;last_name&lt;/code&gt;, &lt;code&gt;username&lt;/code&gt;, &lt;code&gt;gender&lt;/code&gt;, &lt;code&gt;fb_app_id&lt;/code&gt;,
&lt;code&gt;fb_admins&lt;/code&gt;) and the per-language Open Graph translation section were
removed entirely:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color-scheme: light dark; color: light-dark(#000000, #E6EDF3); background-color: light-dark(#FFFFFF, #0D1117);&quot; &gt;&lt;code data-lang=&quot;toml&quot; data-name=&quot;zola.toml&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#008000, #8B949E);&quot;&gt;#&lt;/span&gt;&lt;span style=&quot;color: light-dark(#008000, #8B949E);&quot;&gt; Before&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;[&lt;/span&gt;&lt;span style=&quot;color: light-dark(#000000, #FFA657);&quot;&gt;extra&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span style=&quot;color: light-dark(#000000, #FFA657);&quot;&gt;profiles&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span style=&quot;color: light-dark(#000000, #FFA657);&quot;&gt;your_username&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span style=&quot;color: light-dark(#000000, #FFA657);&quot;&gt;open_graph&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#001080, #E6EDF3);&quot;&gt;image&lt;/span&gt;&lt;span&gt; =&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt; &amp;quot;&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt;cover.png&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#001080, #E6EDF3);&quot;&gt;image_alt&lt;/span&gt;&lt;span&gt; =&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt; &amp;quot;&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt;A description&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#001080, #E6EDF3);&quot;&gt;fediverse_creator&lt;/span&gt;&lt;span&gt; =&lt;/span&gt;&lt;span&gt; {&lt;/span&gt;&lt;span style=&quot;color: light-dark(#001080, #E6EDF3);&quot;&gt; handle&lt;/span&gt;&lt;span&gt; =&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt; &amp;quot;&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt;me&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span style=&quot;color: light-dark(#001080, #E6EDF3);&quot;&gt; domain&lt;/span&gt;&lt;span&gt; =&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt; &amp;quot;&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt;mastodon.social&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#008000, #8B949E);&quot;&gt;#&lt;/span&gt;&lt;span style=&quot;color: light-dark(#008000, #8B949E);&quot;&gt; After&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;[&lt;/span&gt;&lt;span style=&quot;color: light-dark(#000000, #FFA657);&quot;&gt;extra&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span style=&quot;color: light-dark(#000000, #FFA657);&quot;&gt;profiles&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span style=&quot;color: light-dark(#000000, #FFA657);&quot;&gt;your_username&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#008000, #8B949E);&quot;&gt;#&lt;/span&gt;&lt;span style=&quot;color: light-dark(#008000, #8B949E);&quot;&gt; ...avatar_url, name, bio, social, etc. as before, plus:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#001080, #E6EDF3);&quot;&gt;og_image&lt;/span&gt;&lt;span&gt; =&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt; &amp;quot;&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt;cover.png&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#001080, #E6EDF3);&quot;&gt;og_image_alt&lt;/span&gt;&lt;span&gt; =&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt; &amp;quot;&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt;A description&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#001080, #E6EDF3);&quot;&gt;fediverse_creator&lt;/span&gt;&lt;span&gt; =&lt;/span&gt;&lt;span&gt; {&lt;/span&gt;&lt;span style=&quot;color: light-dark(#001080, #E6EDF3);&quot;&gt; handle&lt;/span&gt;&lt;span&gt; =&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt; &amp;quot;&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt;me&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span style=&quot;color: light-dark(#001080, #E6EDF3);&quot;&gt; domain&lt;/span&gt;&lt;span&gt; =&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt; &amp;quot;&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt;mastodon.social&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span&gt; }&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If you relied on &lt;code&gt;first_name&lt;/code&gt; / &lt;code&gt;last_name&lt;/code&gt; / &lt;code&gt;gender&lt;/code&gt; / &lt;code&gt;fb_app_id&lt;/code&gt; /
&lt;code&gt;fb_admins&lt;/code&gt;, or on a per-language &lt;code&gt;open_graph.languages.&amp;lt;lang&amp;gt;.image_alt&lt;/code&gt;
override, there&#39;s no direct replacement – those Open Graph fields are no
longer emitted by the theme.&lt;/p&gt;
&lt;h3 id=&quot;language-options-locale-removed-date-formatting-changed&quot;&gt;Language options: &lt;code&gt;locale&lt;/code&gt; removed, date formatting changed&lt;/h3&gt;
&lt;p&gt;Zola&#39;s &lt;code&gt;date&lt;/code&gt; filter no longer takes a &lt;code&gt;locale&lt;/code&gt; argument, so the
&lt;code&gt;extra.languages.&amp;lt;lang&amp;gt;.locale&lt;/code&gt; variable (e.g. &lt;code&gt;locale = &quot;fr_FR&quot;&lt;/code&gt;) has
been removed. Date formatting moved from the &lt;code&gt;chrono&lt;/code&gt; crate to &lt;code&gt;jiff&lt;/code&gt;,
so &lt;code&gt;date_format&lt;/code&gt; strings are now interpreted using
&lt;a rel=&quot;external&quot; href=&quot;https://docs.rs/jiff/latest/jiff/fmt/strtime/index.html#conversion-specifications&quot;&gt;jiff&#39;s strftime reference&lt;/a&gt;
rather than chrono&#39;s.&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color-scheme: light dark; color: light-dark(#000000, #E6EDF3); background-color: light-dark(#FFFFFF, #0D1117);&quot; &gt;&lt;code data-lang=&quot;toml&quot; data-name=&quot;zola.toml&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#008000, #8B949E);&quot;&gt;#&lt;/span&gt;&lt;span style=&quot;color: light-dark(#008000, #8B949E);&quot;&gt; Before&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;[&lt;/span&gt;&lt;span style=&quot;color: light-dark(#000000, #FFA657);&quot;&gt;extra&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span style=&quot;color: light-dark(#000000, #FFA657);&quot;&gt;languages&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span style=&quot;color: light-dark(#000000, #FFA657);&quot;&gt;fr&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#001080, #E6EDF3);&quot;&gt;locale&lt;/span&gt;&lt;span&gt; =&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt; &amp;quot;&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt;fr_FR&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#001080, #E6EDF3);&quot;&gt;date_format&lt;/span&gt;&lt;span&gt; =&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt; &amp;quot;&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt;%x&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#008000, #8B949E);&quot;&gt;#&lt;/span&gt;&lt;span style=&quot;color: light-dark(#008000, #8B949E);&quot;&gt; After&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;[&lt;/span&gt;&lt;span style=&quot;color: light-dark(#000000, #FFA657);&quot;&gt;extra&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span style=&quot;color: light-dark(#000000, #FFA657);&quot;&gt;languages&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span style=&quot;color: light-dark(#000000, #FFA657);&quot;&gt;fr&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#001080, #E6EDF3);&quot;&gt;date_format&lt;/span&gt;&lt;span&gt; =&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt; &amp;quot;&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt;%F&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#001080, #E6EDF3);&quot;&gt;num_format&lt;/span&gt;&lt;span&gt; =&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt; &amp;quot;&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt;fr&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The practical effect: if you were relying on &lt;code&gt;locale&lt;/code&gt; to print
translated month/weekday names (via tokens like &lt;code&gt;%B&lt;/code&gt; or &lt;code&gt;%A&lt;/code&gt;), that no
longer happens automatically. Check your
&lt;code&gt;date_format&lt;/code&gt; tokens against the jiff docs – you may want to switch to
a numeric-only format, or accept that month/day names will render in
whatever jiff produces by default for that token. &lt;code&gt;num_format&lt;/code&gt; (for
number formatting, unrelated to dates) is unchanged and still per
language.&lt;/p&gt;
&lt;h3 id=&quot;disable-javascript-removed&quot;&gt;&lt;code&gt;disable_javascript&lt;/code&gt; removed&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;extra.disable_javascript&lt;/code&gt; config variable, which let you suppress
the theme&#39;s JS and re-implement it yourself via injects, has been
removed.&lt;/p&gt;
&lt;h3 id=&quot;documentation-links&quot;&gt;Documentation links&lt;/h3&gt;
&lt;p&gt;If you link to Linkita&#39;s own documentation anywhere, note the shortcode
demo moved from &lt;code&gt;/shortcodes/&lt;/code&gt; to &lt;code&gt;/components/&lt;/code&gt; (e.g. the projects
feature is now documented at
&lt;code&gt;https://salif.github.io/linkita/components/#projects&lt;/code&gt;).&lt;/p&gt;
&lt;p&gt;The cover image docs were clarified
to note &lt;code&gt;extra.cover.image&lt;/code&gt; accepts either a page asset filename or a
&lt;code&gt;get_url&lt;/code&gt;-compatible path – this already worked before, just wasn&#39;t
spelled out.&lt;/p&gt;
&lt;h2 id=&quot;step-4-update-your-content-shortcodes-are-now-components&quot;&gt;Step 4: Update your content – shortcodes are now components&lt;/h2&gt;
&lt;p&gt;This is the change most likely to affect your existing posts.&lt;/p&gt;
&lt;p&gt;Zola v0.23 removed shortcodes completely. There is no more
&lt;code&gt;templates/shortcodes/&lt;/code&gt; directory, and the old function-call style of
invoking a shortcode in Markdown content (with or without a body) is
gone – both forms now fail the build with an &quot;unknown function&quot; /
&quot;unknown tag&quot; error. Instead, your &lt;code&gt;.md&lt;/code&gt; files are templated with Tera
directly, the same as &lt;code&gt;.html&lt;/code&gt; templates, and you call Linkita&#39;s
built-in &lt;strong&gt;components&lt;/strong&gt; using Tera v2&#39;s new call syntax.&lt;/p&gt;
&lt;p&gt;A component with a body is called like this – note the closing
percent-brace and opening percent-brace wrap the angle-bracket tags,
not double curly braces:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color-scheme: light dark; color: light-dark(#000000, #E6EDF3); background-color: light-dark(#FFFFFF, #0D1117);&quot; &gt;&lt;code data-lang=&quot;markdown&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;{% &lt;/span&gt;&lt;span style=&quot;color: light-dark(#800000, #E6EDF3);&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: light-dark(#800000, #7EE787);&quot;&gt;component_name&lt;/span&gt;&lt;span style=&quot;color: light-dark(#E50000, #79C0FF);&quot;&gt; arg&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span style=&quot;color: light-dark(#0000FF, #A5D6FF);&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: light-dark(#0000FF, #A5D6FF);&quot;&gt;value&lt;/span&gt;&lt;span style=&quot;color: light-dark(#0000FF, #A5D6FF);&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: light-dark(#800000, #E6EDF3);&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span&gt; %}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;body content&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;{% &lt;/span&gt;&lt;span style=&quot;color: light-dark(#800000, #E6EDF3);&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: light-dark(#800000, #7EE787);&quot;&gt;component_name&lt;/span&gt;&lt;span style=&quot;color: light-dark(#800000, #E6EDF3);&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span&gt; %}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;A component with no body (self-closing) uses double curly braces
instead:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color-scheme: light dark; color: light-dark(#000000, #E6EDF3); background-color: light-dark(#FFFFFF, #0D1117);&quot; &gt;&lt;code data-lang=&quot;markdown&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;{{&lt;/span&gt;&lt;span style=&quot;color: light-dark(#800000, #E6EDF3);&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: light-dark(#800000, #7EE787);&quot;&gt;component_name&lt;/span&gt;&lt;span style=&quot;color: light-dark(#E50000, #79C0FF);&quot;&gt; arg&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span style=&quot;color: light-dark(#0000FF, #A5D6FF);&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: light-dark(#0000FF, #A5D6FF);&quot;&gt;value&lt;/span&gt;&lt;span style=&quot;color: light-dark(#0000FF, #A5D6FF);&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: light-dark(#800000, #E6EDF3);&quot;&gt; /&amp;gt;&lt;/span&gt;&lt;span&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&quot;admonition&quot;&gt;Admonition&lt;/h3&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color-scheme: light dark; color: light-dark(#000000, #E6EDF3); background-color: light-dark(#FFFFFF, #0D1117);&quot; &gt;&lt;code data-lang=&quot;markdown&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#800000, #79C0FF);font-weight: bold;&quot;&gt;#&lt;/span&gt;&lt;span style=&quot;color: light-dark(#800000, #79C0FF);font-weight: bold;&quot;&gt; Before&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;{% admonition(type=&amp;quot;note&amp;quot;, title=&amp;quot;A note&amp;quot;) %}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;This is a &lt;/span&gt;&lt;span style=&quot;color: light-dark(#000080, #E6EDF3);font-weight: bold;&quot;&gt;**&lt;/span&gt;&lt;span style=&quot;color: light-dark(#000080, #E6EDF3);font-weight: bold;&quot;&gt;note&lt;/span&gt;&lt;span style=&quot;color: light-dark(#000080, #E6EDF3);font-weight: bold;&quot;&gt;**&lt;/span&gt;&lt;span&gt; body.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;{% end %}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#800000, #79C0FF);font-weight: bold;&quot;&gt;#&lt;/span&gt;&lt;span style=&quot;color: light-dark(#800000, #79C0FF);font-weight: bold;&quot;&gt; After&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;{% &lt;/span&gt;&lt;span style=&quot;color: light-dark(#800000, #E6EDF3);&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: light-dark(#800000, #7EE787);&quot;&gt;admonition&lt;/span&gt;&lt;span style=&quot;color: light-dark(#E50000, #79C0FF);&quot;&gt; type&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span style=&quot;color: light-dark(#0000FF, #A5D6FF);&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: light-dark(#0000FF, #A5D6FF);&quot;&gt;note&lt;/span&gt;&lt;span style=&quot;color: light-dark(#0000FF, #A5D6FF);&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: light-dark(#E50000, #79C0FF);&quot;&gt; title&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span style=&quot;color: light-dark(#0000FF, #A5D6FF);&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: light-dark(#0000FF, #A5D6FF);&quot;&gt;A note&lt;/span&gt;&lt;span style=&quot;color: light-dark(#0000FF, #A5D6FF);&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: light-dark(#800000, #E6EDF3);&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span&gt; %}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;This is a &lt;/span&gt;&lt;span style=&quot;color: light-dark(#000080, #E6EDF3);font-weight: bold;&quot;&gt;**&lt;/span&gt;&lt;span style=&quot;color: light-dark(#000080, #E6EDF3);font-weight: bold;&quot;&gt;note&lt;/span&gt;&lt;span style=&quot;color: light-dark(#000080, #E6EDF3);font-weight: bold;&quot;&gt;**&lt;/span&gt;&lt;span&gt; body.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;{% &lt;/span&gt;&lt;span style=&quot;color: light-dark(#800000, #E6EDF3);&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: light-dark(#800000, #7EE787);&quot;&gt;admonition&lt;/span&gt;&lt;span style=&quot;color: light-dark(#800000, #E6EDF3);&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span&gt; %}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&quot;gallery&quot;&gt;Gallery&lt;/h3&gt;
&lt;p&gt;Gallery now needs &lt;code&gt;page&lt;/code&gt; and &lt;code&gt;config&lt;/code&gt; passed in explicitly (Tera v2
components don&#39;t get implicit access to the page/config like old
shortcodes did – you pass them by name, and since the variable names
already match the parameter names, you can just write &lt;code&gt;page config&lt;/code&gt;):&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color-scheme: light dark; color: light-dark(#000000, #E6EDF3); background-color: light-dark(#FFFFFF, #0D1117);&quot; &gt;&lt;code data-lang=&quot;markdown&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#800000, #79C0FF);font-weight: bold;&quot;&gt;#&lt;/span&gt;&lt;span style=&quot;color: light-dark(#800000, #79C0FF);font-weight: bold;&quot;&gt; Before&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;{{ gallery() }}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#800000, #79C0FF);font-weight: bold;&quot;&gt;#&lt;/span&gt;&lt;span style=&quot;color: light-dark(#800000, #79C0FF);font-weight: bold;&quot;&gt; After&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;{{&lt;/span&gt;&lt;span style=&quot;color: light-dark(#800000, #E6EDF3);&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: light-dark(#800000, #7EE787);&quot;&gt;gallery&lt;/span&gt;&lt;span style=&quot;color: light-dark(#E50000, #79C0FF);&quot;&gt; page&lt;/span&gt;&lt;span style=&quot;color: light-dark(#E50000, #79C0FF);&quot;&gt; config&lt;/span&gt;&lt;span style=&quot;color: light-dark(#E50000, #79C0FF);&quot;&gt; alt&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span style=&quot;color: light-dark(#0000FF, #A5D6FF);&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: light-dark(#0000FF, #A5D6FF);&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: light-dark(#800000, #E6EDF3);&quot;&gt; /&amp;gt;&lt;/span&gt;&lt;span&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&quot;mermaid&quot;&gt;Mermaid&lt;/h3&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color-scheme: light dark; color: light-dark(#000000, #E6EDF3); background-color: light-dark(#FFFFFF, #0D1117);&quot; &gt;&lt;code data-lang=&quot;markdown&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#800000, #79C0FF);font-weight: bold;&quot;&gt;#&lt;/span&gt;&lt;span style=&quot;color: light-dark(#800000, #79C0FF);font-weight: bold;&quot;&gt; Before&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;{% mermaid() %}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;```&lt;/span&gt;&lt;span&gt;mermaid&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;graph TD;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;A--&amp;gt;B;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;```&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;{% end %}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#800000, #79C0FF);font-weight: bold;&quot;&gt;#&lt;/span&gt;&lt;span style=&quot;color: light-dark(#800000, #79C0FF);font-weight: bold;&quot;&gt; After&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;{% &lt;/span&gt;&lt;span style=&quot;color: light-dark(#800000, #E6EDF3);&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: light-dark(#800000, #7EE787);&quot;&gt;mermaid&lt;/span&gt;&lt;span style=&quot;color: light-dark(#800000, #E6EDF3);&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span&gt; -%}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;```&lt;/span&gt;&lt;span&gt;mermaid&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;graph TD;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;A--&amp;gt;B;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;```&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;{%- &lt;/span&gt;&lt;span style=&quot;color: light-dark(#800000, #E6EDF3);&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: light-dark(#800000, #7EE787);&quot;&gt;mermaid&lt;/span&gt;&lt;span style=&quot;color: light-dark(#800000, #E6EDF3);&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span&gt; %}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Use the whitespace-trim dashes shown above (right after the opening
percent-brace and right before the closing one) – without them, the
leading blank line before the fenced block isn&#39;t
stripped and the diagram renders with the &lt;code&gt;```mermaid&lt;/code&gt; fence markers
still visible instead of being cleaned up by the component.&lt;/p&gt;
&lt;h3 id=&quot;projects&quot;&gt;Projects&lt;/h3&gt;
&lt;p&gt;Projects also now needs &lt;code&gt;page&lt;/code&gt; and &lt;code&gt;config&lt;/code&gt; passed explicitly:&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color-scheme: light dark; color: light-dark(#000000, #E6EDF3); background-color: light-dark(#FFFFFF, #0D1117);&quot; &gt;&lt;code data-lang=&quot;markdown&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#800000, #79C0FF);font-weight: bold;&quot;&gt;#&lt;/span&gt;&lt;span style=&quot;color: light-dark(#800000, #79C0FF);font-weight: bold;&quot;&gt; Before&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;{{ projects(path=&amp;quot;data.toml&amp;quot;, format=&amp;quot;toml&amp;quot;) }}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#800000, #79C0FF);font-weight: bold;&quot;&gt;#&lt;/span&gt;&lt;span style=&quot;color: light-dark(#800000, #79C0FF);font-weight: bold;&quot;&gt; After&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;{{&lt;/span&gt;&lt;span style=&quot;color: light-dark(#800000, #E6EDF3);&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: light-dark(#800000, #7EE787);&quot;&gt;projects&lt;/span&gt;&lt;span style=&quot;color: light-dark(#E50000, #79C0FF);&quot;&gt; path&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span style=&quot;color: light-dark(#0000FF, #A5D6FF);&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: light-dark(#0000FF, #A5D6FF);&quot;&gt;data.toml&lt;/span&gt;&lt;span style=&quot;color: light-dark(#0000FF, #A5D6FF);&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: light-dark(#E50000, #79C0FF);&quot;&gt; format&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span style=&quot;color: light-dark(#0000FF, #A5D6FF);&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: light-dark(#0000FF, #A5D6FF);&quot;&gt;toml&lt;/span&gt;&lt;span style=&quot;color: light-dark(#0000FF, #A5D6FF);&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: light-dark(#E50000, #79C0FF);&quot;&gt; page&lt;/span&gt;&lt;span style=&quot;color: light-dark(#E50000, #79C0FF);&quot;&gt; config&lt;/span&gt;&lt;span style=&quot;color: light-dark(#800000, #E6EDF3);&quot;&gt; /&amp;gt;&lt;/span&gt;&lt;span&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&quot;if-you-write-about-tera-syntax-in-your-own-posts&quot;&gt;If you write about Tera syntax in your own posts&lt;/h3&gt;
&lt;p&gt;Since &lt;code&gt;.md&lt;/code&gt; files are now templated by Tera before Markdown is parsed,
literal Tera tags inside a fenced code block – like the examples
above – will actually get executed rather than displayed, even inside
triple-backtick fences. Wrap any such example in a raw block,
to show it literally instead.&lt;/p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color-scheme: light dark; color: light-dark(#000000, #E6EDF3); background-color: light-dark(#FFFFFF, #0D1117);&quot; &gt;&lt;code data-lang=&quot;markdown&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;{% raw %}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;...&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;{% endraw %}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&quot;step-5-custom-language-files&quot;&gt;Step 5: Custom language files&lt;/h2&gt;
&lt;p&gt;If you added a custom &lt;code&gt;static/i18n/&amp;lt;lang&amp;gt;.json&lt;/code&gt; file,
synchronize your changes with the theme&#39;s default language file.&lt;/p&gt;
&lt;h2 id=&quot;step-6-advanced-custom-template-overrides-or-injects&quot;&gt;Step 6 (advanced): Custom template overrides or injects&lt;/h2&gt;
&lt;p&gt;Skip this section unless you&#39;ve overridden one of Linkita&#39;s own
templates, or you call its internal macros directly from your own
templates or injects.&lt;/p&gt;
&lt;p&gt;Tera v1 macros are gone in Tera v2, replaced by &lt;strong&gt;components&lt;/strong&gt;, which
are called globally by name – no more &lt;code&gt;{% import %}&lt;/code&gt;
or &lt;code&gt;self::&lt;/code&gt; namespacing.&lt;/p&gt;
&lt;p&gt;Other Tera v2 syntax changes visible throughout the templates, in case
your own overrides use them:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;trim_start_matches(pat=...)&lt;/code&gt; / &lt;code&gt;trim_end_matches(pat=...)&lt;/code&gt; are now
&lt;code&gt;trim_start(pat=...)&lt;/code&gt; / &lt;code&gt;trim_end(pat=...)&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;linebreaksbr&lt;/code&gt; is now &lt;code&gt;newlines_to_br&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;default(value=x)&lt;/code&gt; needs &lt;code&gt;boolean=true&lt;/code&gt; added
(&lt;code&gt;default(value=x, boolean=true)&lt;/code&gt;) to treat empty strings/&lt;code&gt;false&lt;/code&gt; as
&quot;use the default&quot; – without it, only a truly undefined/null value
triggers the default.&lt;/li&gt;
&lt;li&gt;Optional chaining (&lt;code&gt;?.&lt;/code&gt; / &lt;code&gt;?[...]&lt;/code&gt;) is available and used throughout
for safely reading config values that might not be set.&lt;/li&gt;
&lt;li&gt;Global context (&lt;code&gt;page&lt;/code&gt;, &lt;code&gt;config&lt;/code&gt;, &lt;code&gt;lang&lt;/code&gt;, etc.) is no longer
implicitly available inside a component the way it was inside a
macro – components declare and receive it explicitly, which is why
you&#39;ll see &lt;code&gt;page: map&lt;/code&gt;, &lt;code&gt;config: map&lt;/code&gt; parameters
throughout the new templates.&lt;/li&gt;
&lt;li&gt;The custom &lt;code&gt;templates/sitemap.xml&lt;/code&gt; and
&lt;code&gt;templates/split_sitemap_index.xml&lt;/code&gt; templates were removed from the
theme. If you had overridden either of these yourself, check whether
you still need to.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For the full picture of what changed in Tera itself, see the
&lt;a rel=&quot;external&quot; href=&quot;https://github.com/Keats/tera/blob/master/MIGRATION.md&quot;&gt;Tera v1 → v2 migration guide&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;step-7-rebuild-and-check&quot;&gt;Step 7: Rebuild and check&lt;/h2&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color-scheme: light dark; color: light-dark(#000000, #E6EDF3); background-color: light-dark(#FFFFFF, #0D1117);&quot; &gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#795E26, #FFA657);&quot;&gt;zola&lt;/span&gt;&lt;span style=&quot;color: light-dark(#A31515, #A5D6FF);&quot;&gt; build&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then review, especially:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Menu items and social icons resolve to the right URLs (the
&lt;code&gt;@base&lt;/code&gt; change).&lt;/li&gt;
&lt;li&gt;Your profile&#39;s Open Graph image/description and Fediverse
verification link tag are present in the page &lt;code&gt;&amp;lt;head&amp;gt;&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Non-English date formatting still looks right – this is the one
most likely to have silently changed (no more locale-translated
month/day names).&lt;/li&gt;
&lt;li&gt;Any admonitions, galleries, Mermaid diagrams, or a projects page
render correctly.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;getting-help&quot;&gt;Getting help&lt;/h2&gt;
&lt;p&gt;If something doesn&#39;t match what&#39;s described here, check the
&lt;a rel=&quot;external&quot; href=&quot;https://github.com/salif/linkita/blob/main/README.md&quot;&gt;README&lt;/a&gt; and
&lt;a rel=&quot;external&quot; href=&quot;https://github.com/salif/linkita/blob/main/CHANGELOG.md&quot;&gt;CHANGELOG&lt;/a&gt; on
the &lt;code&gt;main&lt;/code&gt; branch, or &lt;a rel=&quot;external&quot; href=&quot;https://github.com/salif/linkita/discussions&quot;&gt;start a discussion&lt;/a&gt;.&lt;/p&gt;
</content>
        
    </entry>
</feed>
