<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">

  <title type="text">aurumcodex</title>
  <subtitle type="text">Blog</subtitle>
  <id>https://aurumcodex.codeberg.page/blog/</id>
  <updated>Mon, 15 Jun 2026 01:32:06 +0000</updated>

  
    <link href="https://aurumcodex.codeberg.page"></link>
    <link href="https://aurumcodex.codeberg.page/blog/atom.xml" ref="self"></link>
  
  <generator uri="https://zine-ssg.io" version="0.11.2">
    Zine
  </generator>

  
    <entry>
      <title>Alternate Take on Zine&apos;s Site Schema</title>
      <link href="https://aurumcodex.codeberg.page/blog/2026/alt_zine_site_spec/" rel="_blank"></link>
      <id>https://aurumcodex.codeberg.page/blog/2026/alt_zine_site_spec/</id>
      <published>Sun, 14 Jun 2026 00:00:00 +0000</published>
      <updated>Sun, 14 Jun 2026 00:00:00 +0000</updated>
      <author>aurumcodex</author>
      <summary>An effort to merge both `Site` and `Multilingual` Ziggy types</summary>
      <content type="html">&lt;p&gt;Allow me to preface with this: I like Zine. I like it quite a bit. Extending standard HTML with a few extra tags and some custom attributes is genius in a simple manner. But, Zine is still in alpha, and I’ve not been able to find a proper specification for either the &lt;code&gt;Site&lt;/code&gt; nor the &lt;code&gt;Multilingual&lt;/code&gt; schema for use in the &lt;code&gt;zine.ziggy&lt;/code&gt; file.&lt;/p&gt;&lt;p&gt;Now, I also realize that Zine uses Ziggy, also made by the same person (&lt;a href=&quot;https://kristoff.it&quot; target=&quot;_blank&quot;&gt;@kristoff-it&lt;/a&gt;), and it too is &lt;em&gt;also&lt;/em&gt; in a very early alpha state. But, it does have some neat features that I think the &lt;code&gt;zine.ziggy&lt;/code&gt; file could take advantage of. This article seeks to try and “standardize” (I’m using that term &lt;em&gt;&lt;strong&gt;very&lt;/strong&gt;&lt;/em&gt; loosely) declaring a Zine Site.&lt;/p&gt;&lt;div id=&quot;new-spec&quot;&gt;&lt;h2&gt;&lt;a class=&quot;&quot; href=&quot;#new-spec&quot;&gt;The “new” specification&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;The new specification idea is to combine both the single-language &lt;code&gt;Site&lt;/code&gt; with the multi-language &lt;code&gt;Multilingual&lt;/code&gt; into a tagged union available via the new &lt;code&gt;.ziggy-schema&lt;/code&gt;. This allows having both content types in one unified specification, as well as some extras thrown in, like the ability to use external layouts and stylesheets (and other assets) from other modules that could be imported via &lt;code&gt;zig fetch&lt;/code&gt;.&lt;/p&gt;&lt;p&gt;Why would you want this? Well, I’d start with using Zine as a documentation site generator, akin to how some projects use &lt;a href=&quot;https://www.sphinx-doc.org&quot; target=&quot;_blank&quot;&gt;Sphinx&lt;/a&gt; or &lt;a href=&quot;https://github.com/rust-lang/mdBook&quot; target=&quot;_blank&quot;&gt;mdBook&lt;/a&gt; to generate their documentation. Using external layouts and stylesheets and other assets (which I’ll refer to as a &lt;em&gt;“theme”&lt;/em&gt; for simplicity) would allow users of Zine to quickly get up and running with writing their documentation, rather than trying to write specific style rules or try and figure out which JavaScript libraries/frameworks they would need; it would all be done, and available. This sort of already can be done, but it’s not what I would call a first-class solution; it &lt;em&gt;can&lt;/em&gt; be done, though.&lt;/p&gt;&lt;p&gt;Anyhow, here’s the new proposed specification with doc comments: &lt;figure&gt;&lt;pre&gt;&lt;code class=&quot;ziggy-schema&quot;&gt;&lt;span class=&quot;keyword&quot;&gt;$&lt;/span&gt; = &lt;span class=&quot;identifier type&quot;&gt;Zine&lt;/span&gt;

&lt;span class=&quot;comment_line_documentation&quot;&gt;/// A representation of Zine site to be built.&lt;/span&gt;
&lt;span class=&quot;keyword&quot;&gt;struct&lt;/span&gt; &lt;span class=&quot;identifier type&quot;&gt;Zine&lt;/span&gt; &lt;span class=&quot;punctuation_bracket&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;comment_line_documentation&quot;&gt;/// The target URL that the site is supposed to point to.&lt;/span&gt;
  &lt;span class=&quot;identifier&quot;&gt;host_url&lt;/span&gt;&lt;span class=&quot;punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;constant_builtin&quot;&gt;bytes&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;

  &lt;span class=&quot;comment_line_documentation&quot;&gt;/// A struct that handles the content of the site.
  /// Takes a string that denotes the `base_dir` of the content.&lt;/span&gt;
  &lt;span class=&quot;identifier&quot;&gt;content&lt;/span&gt;&lt;span class=&quot;punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;identifier type&quot;&gt;Content&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;

  &lt;span class=&quot;comment_line_documentation&quot;&gt;/// A struct that handles the layouts of the site.&lt;/span&gt;
  &lt;span class=&quot;identifier&quot;&gt;layouts&lt;/span&gt;&lt;span class=&quot;punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;identifier type&quot;&gt;Layouts&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;

  &lt;span class=&quot;comment_line_documentation&quot;&gt;/// A struct that handles the various assets of the site.&lt;/span&gt;
  &lt;span class=&quot;identifier&quot;&gt;assets&lt;/span&gt;&lt;span class=&quot;punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;identifier type&quot;&gt;Assets&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;

  &lt;span class=&quot;comment_line_documentation&quot;&gt;/// The `Content` struct deals with the raw content of the Zine site.
  /// It can be either in a single language, or multilingual.&lt;/span&gt;
  &lt;span class=&quot;keyword&quot;&gt;struct&lt;/span&gt; &lt;span class=&quot;identifier type&quot;&gt;Content&lt;/span&gt; &lt;span class=&quot;punctuation_bracket&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;comment_line_documentation&quot;&gt;/// The base directory to search for content files.&lt;/span&gt;
    &lt;span class=&quot;identifier&quot;&gt;base_dir&lt;/span&gt;&lt;span class=&quot;punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;constant_builtin&quot;&gt;bytes&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;

    &lt;span class=&quot;comment_line_documentation&quot;&gt;/// The type of content that the site will make available:
    /// single language or multilingual.&lt;/span&gt;
    &lt;span class=&quot;identifier&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;identifier type&quot;&gt;ContentType&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;

    &lt;span class=&quot;comment_line_documentation&quot;&gt;/// The is the tagged union type that represents which type of content
    /// or content layout gets used by the Zine site.&lt;/span&gt;
    &lt;span class=&quot;keyword&quot;&gt;union&lt;/span&gt; &lt;span class=&quot;identifier type&quot;&gt;ContentType&lt;/span&gt; &lt;span class=&quot;punctuation_bracket&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;comment_line_documentation&quot;&gt;/// Uses a single language version of the Zine site.&lt;/span&gt;
      &lt;span class=&quot;identifier&quot;&gt;single&lt;/span&gt;&lt;span class=&quot;punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;identifier type&quot;&gt;SingleLang&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;

      &lt;span class=&quot;comment_line_documentation&quot;&gt;/// Uses a multilingual version of the Zine site.&lt;/span&gt;
      &lt;span class=&quot;identifier&quot;&gt;multilingual&lt;/span&gt;&lt;span class=&quot;punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;identifier type&quot;&gt;Multilingual&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;punctuation_bracket&quot;&gt;}&lt;/span&gt;
  &lt;span class=&quot;punctuation_bracket&quot;&gt;}&lt;/span&gt;

  &lt;span class=&quot;comment_line_documentation&quot;&gt;/// A struct representing the SingleLang version of a Zine site.&lt;/span&gt;
  &lt;span class=&quot;keyword&quot;&gt;struct&lt;/span&gt; &lt;span class=&quot;identifier type&quot;&gt;SingleLang&lt;/span&gt; &lt;span class=&quot;punctuation_bracket&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;comment_line_documentation&quot;&gt;/// The language code that the site still uses.
    /// Useful to set, but if not needed, it can be set to null.
    /// (Allows setting)&lt;/span&gt;
    &lt;span class=&quot;identifier&quot;&gt;lang&lt;/span&gt;&lt;span class=&quot;punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;type&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;constant_builtin&quot;&gt;bytes&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;

    &lt;span class=&quot;comment_line_documentation&quot;&gt;/// The (renderable) title of the Zine site.&lt;/span&gt;
    &lt;span class=&quot;identifier&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;constant_builtin&quot;&gt;bytes&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;punctuation_bracket&quot;&gt;}&lt;/span&gt;

  &lt;span class=&quot;comment_line_documentation&quot;&gt;/// A struct representing the Multilingual version of a Zine site.&lt;/span&gt;
  &lt;span class=&quot;keyword&quot;&gt;struct&lt;/span&gt; &lt;span class=&quot;identifier type&quot;&gt;Multilingual&lt;/span&gt; &lt;span class=&quot;punctuation_bracket&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;comment_line_documentation&quot;&gt;/// Directory to search for localization files.
    ///
    /// (Theoretically, this could be relative to the project directory 
    /// (where `zine.ziggy` resides),  or it could be relative to the content
    /// directory (i.e.: `content/i18n/&amp;lt;locale code&amp;gt;/`)).&lt;/span&gt;
    &lt;span class=&quot;identifier&quot;&gt;i18n_dir&lt;/span&gt;&lt;span class=&quot;punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;constant_builtin&quot;&gt;bytes&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;

    &lt;span class=&quot;comment_line_documentation&quot;&gt;/// An array of `Locale`s, or a dictionary of `Locale`s, which represent
    /// all of the localizations and translations that are provided.&lt;/span&gt;
    &lt;span class=&quot;identifier&quot;&gt;locales&lt;/span&gt;&lt;span class=&quot;punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;type&quot;&gt;[]&lt;/span&gt;&lt;span class=&quot;identifier type&quot;&gt;Locale&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;error&quot;&gt;//&lt;/span&gt; &lt;span class=&quot;identifier&quot;&gt;or&lt;/span&gt; &lt;span class=&quot;type&quot;&gt;{:}&lt;/span&gt;&lt;span class=&quot;identifier&quot;&gt;Locale&lt;/span&gt;
  &lt;span class=&quot;punctuation_bracket&quot;&gt;}&lt;/span&gt;

  &lt;span class=&quot;comment_line_documentation&quot;&gt;/// A struct representing potential Layouts for the site.&lt;/span&gt;
  &lt;span class=&quot;keyword&quot;&gt;struct&lt;/span&gt; &lt;span class=&quot;identifier type&quot;&gt;Layouts&lt;/span&gt; &lt;span class=&quot;punctuation_bracket&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;comment_line_documentation&quot;&gt;/// The (local) base directory to look for layout files.&lt;/span&gt;
    &lt;span class=&quot;identifier&quot;&gt;base_dir&lt;/span&gt;&lt;span class=&quot;punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;constant_builtin&quot;&gt;bytes&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;

    &lt;span class=&quot;comment_line_documentation&quot;&gt;/// A dictionary of external directories to look into for layout files.
    /// If set to null, it disables checking for any kind of external
    /// layouts to be used.
    ///
    /// In order to use files from the external dir(s), access via:
    /// &amp;quot;&amp;lt;key&amp;gt;:&amp;lt;file path&amp;gt;&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;identifier&quot;&gt;external_dirs&lt;/span&gt;&lt;span class=&quot;punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;type&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;type&quot;&gt;{:}&lt;/span&gt;&lt;span class=&quot;constant_builtin&quot;&gt;bytes&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;punctuation_bracket&quot;&gt;}&lt;/span&gt;

  &lt;span class=&quot;comment_line_documentation&quot;&gt;/// A struct representing potential Assets for the site.&lt;/span&gt;
  &lt;span class=&quot;keyword&quot;&gt;struct&lt;/span&gt; &lt;span class=&quot;identifier type&quot;&gt;Assets&lt;/span&gt; &lt;span class=&quot;punctuation_bracket&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;comment_line_documentation&quot;&gt;/// The (local) base directory to look for asset files.&lt;/span&gt;
    &lt;span class=&quot;identifier&quot;&gt;base_dir&lt;/span&gt;&lt;span class=&quot;punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;constant_builtin&quot;&gt;bytes&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;

    &lt;span class=&quot;comment_line_documentation&quot;&gt;/// A dictionary of external directories to look into for asset files.
    /// If set to null, it disables checking for any kind of external
    /// layouts to be used.
    ///
    /// In order to use files from the external dir(s), access via:
    /// &amp;quot;&amp;lt;key&amp;gt;:&amp;lt;file path&amp;gt;&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;identifier&quot;&gt;external_dirs&lt;/span&gt;&lt;span class=&quot;punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;type&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;type&quot;&gt;{:}&lt;/span&gt;&lt;span class=&quot;constant_builtin&quot;&gt;bytes&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;

    &lt;span class=&quot;error comment_line_documentation&quot;&gt;/// A(n) list / array of asset paths&lt;/span&gt;&lt;span class=&quot;error&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;error identifier&quot;&gt;static_assets&lt;/span&gt;&lt;span class=&quot;error&quot;&gt; = &lt;/span&gt;&lt;span class=&quot;error type&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;error type&quot;&gt;[]&lt;/span&gt;&lt;span class=&quot;error constant_builtin&quot;&gt;bytes&lt;/span&gt;&lt;span class=&quot;error punctuation_delimiter&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;punctuation_bracket&quot;&gt;}&lt;/span&gt;

  &lt;span class=&quot;comment_line_documentation&quot;&gt;/// A struct defining a &amp;quot;Locale&amp;quot; to be used in a Multilingual site.&lt;/span&gt;
  &lt;span class=&quot;keyword&quot;&gt;struct&lt;/span&gt; &lt;span class=&quot;identifier type&quot;&gt;Locale&lt;/span&gt; &lt;span class=&quot;punctuation_bracket&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;comment_line_documentation&quot;&gt;/// The language code that the Locale uses.
    /// (Would be unused if using the dictionary method.)&lt;/span&gt;
    &lt;span class=&quot;identifier&quot;&gt;code&lt;/span&gt;&lt;span class=&quot;punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;constant_builtin&quot;&gt;bytes&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;

    &lt;span class=&quot;comment_line_documentation&quot;&gt;/// The name of the language used by the Locale.&lt;/span&gt;
    &lt;span class=&quot;identifier&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;constant_builtin&quot;&gt;bytes&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;

    &lt;span class=&quot;comment_line_documentation&quot;&gt;/// The Zine site&amp;apos;s title, written in the language represented by the Locale.&lt;/span&gt;
    &lt;span class=&quot;identifier&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;constant_builtin&quot;&gt;bytes&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;

    &lt;span class=&quot;comment_line_documentation&quot;&gt;/// The sub-directory to use for the particular language to use for the site.
    /// If set to null, then it defaults to a sub-directory with the same name as
    /// the `.code` field or the key used for the Locale entry.&lt;/span&gt;
    &lt;span class=&quot;identifier&quot;&gt;content_subdir&lt;/span&gt;&lt;span class=&quot;punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;type&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;constant_builtin&quot;&gt;bytes&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;

    &lt;span class=&quot;comment_line_documentation&quot;&gt;/// An optional string that redirects the URL paths to different URL subdomains.&lt;/span&gt;
    &lt;span class=&quot;identifier&quot;&gt;host_url_override&lt;/span&gt;&lt;span class=&quot;punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;type&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;constant_builtin&quot;&gt;bytes&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;

    &lt;span class=&quot;comment_line_documentation&quot;&gt;/// An optional string that renames the site&amp;apos;s build paths
    /// for multilingual sites.&lt;/span&gt;
    &lt;span class=&quot;identifier&quot;&gt;output_prefix_override&lt;/span&gt;&lt;span class=&quot;punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;type&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;constant_builtin&quot;&gt;bytes&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;punctuation_bracket&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;punctuation_bracket&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;figcaption&gt;The “improved” &lt;code&gt;ziggy-schema&lt;/code&gt;&lt;/figcaption&gt;&lt;/figure&gt;&lt;/p&gt;&lt;p&gt;Quite featureful, no? Has just about everything (at least, I think so) that you’d possibly need for either a single-language site, or one that is planning to be multilingual. You may notice that there are a few spots with a comment like: &lt;code&gt;// or {:}Locale&lt;/code&gt;. This is because I’m not 100% sure on which version would be a better representation of the site. (I’m biased, but I like the dictionary method more.)&lt;/p&gt;&lt;p&gt;If you aren’t convinced yet, well…&lt;/p&gt;&lt;/div&gt;&lt;div id=&quot;new-usage&quot;&gt;&lt;h2&gt;&lt;a class=&quot;&quot; href=&quot;#new-usage&quot;&gt;New spec in usage&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;I took the current &lt;code&gt;zine.ziggy&lt;/code&gt; file that &lt;a href=&quot;https://ziglang.org&quot; target=&quot;_blank&quot;&gt;https://ziglang.org&lt;/a&gt; uses (which, it’s pretty neat that Zig’s own website uses Zine, but I digress) and translated it to the “new” specification.&lt;/p&gt;&lt;p&gt;Using the &lt;code&gt;[]Locale&lt;/code&gt; style declarations: &lt;figure&gt;&lt;pre&gt;&lt;code class=&quot;ziggy&quot;&gt;&lt;span class=&quot;comment_line&quot;&gt;/// This describes a Multilingual Zine Site:
&lt;/span&gt;&lt;span class=&quot;comment_line&quot;&gt;/// (using the `ziglang.org` `zine.ziggy` as reference)
&lt;/span&gt;&lt;span class=&quot;error&quot;&gt;Zine &lt;/span&gt;&lt;span class=&quot;error punctuation_bracket&quot;&gt;{&lt;/span&gt;
  .&lt;span class=&quot;field&quot;&gt;host_url&lt;/span&gt; &lt;span class=&quot;punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;string&quot;&gt;&amp;quot;https://example.com&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
  .&lt;span class=&quot;error&quot;&gt;content &lt;/span&gt;&lt;span class=&quot;error punctuation&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;error&quot;&gt; &lt;/span&gt;&lt;span class=&quot;error punctuation_bracket&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;error&quot;&gt;
    .&lt;/span&gt;&lt;span class=&quot;field&quot;&gt;base_dir&lt;/span&gt; &lt;span class=&quot;punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;string&quot;&gt;&amp;quot;content&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
    .&lt;span class=&quot;field&quot;&gt;type&lt;/span&gt; &lt;span class=&quot;punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;constant&quot;&gt;.multilingual&lt;/span&gt;&lt;span class=&quot;punctuation_bracket&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;error punctuation_bracket&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;error&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;error constant&quot;&gt;.i18n_dir&lt;/span&gt;&lt;span class=&quot;error&quot;&gt; &lt;/span&gt;&lt;span class=&quot;error punctuation&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;error&quot;&gt; &lt;/span&gt;&lt;span class=&quot;error string&quot;&gt;&amp;quot;i18n&amp;quot;&lt;/span&gt;&lt;span class=&quot;error punctuation_delimiter&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;error&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;error constant&quot;&gt;.locales&lt;/span&gt;&lt;span class=&quot;error&quot;&gt; &lt;/span&gt;&lt;span class=&quot;error punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;punctuation_bracket&quot;&gt;[&lt;/span&gt;
        &lt;span class=&quot;error punctuation_bracket&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;error&quot;&gt;
          &lt;/span&gt;&lt;span class=&quot;error constant&quot;&gt;.code&lt;/span&gt;&lt;span class=&quot;error&quot;&gt; &lt;/span&gt;&lt;span class=&quot;error punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;string&quot;&gt;&amp;quot;en-US&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
          &lt;span class=&quot;error constant&quot;&gt;.name&lt;/span&gt;&lt;span class=&quot;error&quot;&gt; &lt;/span&gt;&lt;span class=&quot;error punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;string&quot;&gt;&amp;quot;English (original)&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
          &lt;span class=&quot;error constant&quot;&gt;.title&lt;/span&gt;&lt;span class=&quot;error&quot;&gt; &lt;/span&gt;&lt;span class=&quot;error punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;string&quot;&gt;&amp;quot;Zig Programming Language&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
          &lt;span class=&quot;constant&quot;&gt;.content_subdir&lt;/span&gt; &lt;span class=&quot;error punctuation&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;error&quot;&gt; &lt;/span&gt;&lt;span class=&quot;error constant_builtin&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;comment_line&quot;&gt;// if null (or not supplied): in a multilingual
&lt;/span&gt;                                  &lt;span class=&quot;comment_line&quot;&gt;// context, default matches the string in `.code`
&lt;/span&gt;          &lt;span class=&quot;error constant&quot;&gt;.output_prefix_override&lt;/span&gt;&lt;span class=&quot;error&quot;&gt; &lt;/span&gt;&lt;span class=&quot;error punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;string&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;error punctuation_bracket&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;error punctuation_delimiter&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;error&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;error punctuation_bracket&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;error&quot;&gt;
          &lt;/span&gt;&lt;span class=&quot;error constant&quot;&gt;.code&lt;/span&gt;&lt;span class=&quot;error&quot;&gt; &lt;/span&gt;&lt;span class=&quot;error punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;string&quot;&gt;&amp;quot;es-AR&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
          &lt;span class=&quot;error constant&quot;&gt;.name&lt;/span&gt;&lt;span class=&quot;error&quot;&gt; &lt;/span&gt;&lt;span class=&quot;error punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;string&quot;&gt;&amp;quot;Español&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
          &lt;span class=&quot;error constant&quot;&gt;.title&lt;/span&gt;&lt;span class=&quot;error&quot;&gt; &lt;/span&gt;&lt;span class=&quot;error punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;string&quot;&gt;&amp;quot;El Lenguaje de Programación Zig&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;error punctuation_bracket&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;error punctuation_delimiter&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;error&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;error punctuation_bracket&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;error&quot;&gt;
          &lt;/span&gt;&lt;span class=&quot;error constant&quot;&gt;.code&lt;/span&gt;&lt;span class=&quot;error&quot;&gt; &lt;/span&gt;&lt;span class=&quot;error punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;string&quot;&gt;&amp;quot;ru-RU&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
          &lt;span class=&quot;error constant&quot;&gt;.name&lt;/span&gt;&lt;span class=&quot;error&quot;&gt; &lt;/span&gt;&lt;span class=&quot;error punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;string&quot;&gt;&amp;quot;Русский&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
          &lt;span class=&quot;error constant&quot;&gt;.title&lt;/span&gt;&lt;span class=&quot;error&quot;&gt; &lt;/span&gt;&lt;span class=&quot;error punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;string&quot;&gt;&amp;quot;Язык программирования Zig&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;error punctuation_bracket&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;error punctuation_delimiter&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;error&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;error punctuation_bracket&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;error&quot;&gt;
          &lt;/span&gt;&lt;span class=&quot;error constant&quot;&gt;.code&lt;/span&gt;&lt;span class=&quot;error&quot;&gt; &lt;/span&gt;&lt;span class=&quot;error punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;string&quot;&gt;&amp;quot;it-IT&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
          &lt;span class=&quot;error constant&quot;&gt;.name&lt;/span&gt;&lt;span class=&quot;error&quot;&gt; &lt;/span&gt;&lt;span class=&quot;error punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;string&quot;&gt;&amp;quot;Italiano&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
          &lt;span class=&quot;error constant&quot;&gt;.title&lt;/span&gt;&lt;span class=&quot;error&quot;&gt; &lt;/span&gt;&lt;span class=&quot;error punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;string&quot;&gt;&amp;quot;Zig Programming Language&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;error punctuation_bracket&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;error punctuation_delimiter&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;error&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;error punctuation_bracket&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;error&quot;&gt;
          &lt;/span&gt;&lt;span class=&quot;error constant&quot;&gt;.code&lt;/span&gt;&lt;span class=&quot;error&quot;&gt; &lt;/span&gt;&lt;span class=&quot;error punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;string&quot;&gt;&amp;quot;de-DE&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
          &lt;span class=&quot;error constant&quot;&gt;.name&lt;/span&gt;&lt;span class=&quot;error&quot;&gt; &lt;/span&gt;&lt;span class=&quot;error punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;string&quot;&gt;&amp;quot;Deutsch&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
          &lt;span class=&quot;error constant&quot;&gt;.title&lt;/span&gt;&lt;span class=&quot;error&quot;&gt; &lt;/span&gt;&lt;span class=&quot;error punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;string&quot;&gt;&amp;quot;Zig Programmiersprache&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;error punctuation_bracket&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;error punctuation_delimiter&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;error&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;error punctuation_bracket&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;error&quot;&gt;
          &lt;/span&gt;&lt;span class=&quot;error constant&quot;&gt;.code&lt;/span&gt;&lt;span class=&quot;error&quot;&gt; &lt;/span&gt;&lt;span class=&quot;error punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;string&quot;&gt;&amp;quot;uk-UA&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
          &lt;span class=&quot;error constant&quot;&gt;.name&lt;/span&gt;&lt;span class=&quot;error&quot;&gt; &lt;/span&gt;&lt;span class=&quot;error punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;string&quot;&gt;&amp;quot;Українська&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
          &lt;span class=&quot;error constant&quot;&gt;.title&lt;/span&gt;&lt;span class=&quot;error&quot;&gt; &lt;/span&gt;&lt;span class=&quot;error punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;string&quot;&gt;&amp;quot;Zig Programming Language&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;error punctuation_bracket&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;error punctuation_delimiter&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;error&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;error punctuation_bracket&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;error&quot;&gt;
          &lt;/span&gt;&lt;span class=&quot;error constant&quot;&gt;.code&lt;/span&gt;&lt;span class=&quot;error&quot;&gt; &lt;/span&gt;&lt;span class=&quot;error punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;string&quot;&gt;&amp;quot;ja-JP&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
          &lt;span class=&quot;error constant&quot;&gt;.name&lt;/span&gt;&lt;span class=&quot;error&quot;&gt; &lt;/span&gt;&lt;span class=&quot;error punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;string&quot;&gt;&amp;quot;日本語&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
          &lt;span class=&quot;error constant&quot;&gt;.title&lt;/span&gt;&lt;span class=&quot;error&quot;&gt; &lt;/span&gt;&lt;span class=&quot;error punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;string&quot;&gt;&amp;quot;Zig Programming Language&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;error punctuation_bracket&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;error punctuation_delimiter&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;error&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;error punctuation_bracket&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;error&quot;&gt;
          &lt;/span&gt;&lt;span class=&quot;error constant&quot;&gt;.code&lt;/span&gt;&lt;span class=&quot;error&quot;&gt; &lt;/span&gt;&lt;span class=&quot;error punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;string&quot;&gt;&amp;quot;zh-CN&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
          &lt;span class=&quot;error constant&quot;&gt;.name&lt;/span&gt;&lt;span class=&quot;error&quot;&gt; &lt;/span&gt;&lt;span class=&quot;error punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;string&quot;&gt;&amp;quot;中文&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
          &lt;span class=&quot;error constant&quot;&gt;.title&lt;/span&gt;&lt;span class=&quot;error&quot;&gt; &lt;/span&gt;&lt;span class=&quot;error punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;string&quot;&gt;&amp;quot;Zig 编程语言&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;error punctuation_bracket&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;error punctuation_delimiter&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;error&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;error punctuation_bracket&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;error&quot;&gt;
          &lt;/span&gt;&lt;span class=&quot;error constant&quot;&gt;.code&lt;/span&gt;&lt;span class=&quot;error&quot;&gt; &lt;/span&gt;&lt;span class=&quot;error punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;string&quot;&gt;&amp;quot;ko-KR&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
          &lt;span class=&quot;error constant&quot;&gt;.name&lt;/span&gt;&lt;span class=&quot;error&quot;&gt; &lt;/span&gt;&lt;span class=&quot;error punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;string&quot;&gt;&amp;quot;한국어&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
          &lt;span class=&quot;error constant&quot;&gt;.title&lt;/span&gt;&lt;span class=&quot;error&quot;&gt; &lt;/span&gt;&lt;span class=&quot;error punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;string&quot;&gt;&amp;quot;Zig 프로그래밍 언어&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;error punctuation_bracket&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;error punctuation_delimiter&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;punctuation_bracket&quot;&gt;]&lt;/span&gt;
    &lt;span class=&quot;error punctuation_bracket&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;punctuation_bracket&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;error punctuation_bracket&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;error punctuation_delimiter&quot;&gt;,&lt;/span&gt;
  .&lt;span class=&quot;error&quot;&gt;layouts &lt;/span&gt;&lt;span class=&quot;error punctuation&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;error&quot;&gt; &lt;/span&gt;&lt;span class=&quot;error punctuation_bracket&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;error&quot;&gt;
    .&lt;/span&gt;&lt;span class=&quot;field&quot;&gt;base_dir&lt;/span&gt; &lt;span class=&quot;punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;string&quot;&gt;&amp;quot;layouts&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
    .&lt;span class=&quot;field&quot;&gt;external_dirs&lt;/span&gt; &lt;span class=&quot;punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;constant_builtin&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;error punctuation_bracket&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;error punctuation_delimiter&quot;&gt;,&lt;/span&gt;
  .&lt;span class=&quot;error&quot;&gt;assets &lt;/span&gt;&lt;span class=&quot;error punctuation&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;error&quot;&gt; &lt;/span&gt;&lt;span class=&quot;error punctuation_bracket&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;error&quot;&gt;
    .&lt;/span&gt;&lt;span class=&quot;field&quot;&gt;base_dir&lt;/span&gt; &lt;span class=&quot;punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;string&quot;&gt;&amp;quot;assets&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
    .&lt;span class=&quot;field&quot;&gt;external_dirs&lt;/span&gt; &lt;span class=&quot;punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;constant_builtin&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
    .&lt;span class=&quot;field&quot;&gt;static_assets&lt;/span&gt; &lt;span class=&quot;punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;punctuation_bracket&quot;&gt;[&lt;/span&gt;
      &lt;span class=&quot;string&quot;&gt;&amp;quot;.well-known/funding-manifest-urls&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;string&quot;&gt;&amp;quot;funding.json&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;string&quot;&gt;&amp;quot;external-link-dark.svg&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;string&quot;&gt;&amp;quot;external-link-light.svg&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;string&quot;&gt;&amp;quot;heart.svg&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;string&quot;&gt;&amp;quot;zig-logo-dark.svg&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;string&quot;&gt;&amp;quot;zig-logo-light.svg&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;string&quot;&gt;&amp;quot;zig-performance-logo-dark.svg&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;string&quot;&gt;&amp;quot;zig-performance-logo-light.svg&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;string&quot;&gt;&amp;quot;sponsors/Blacksmith_Logo-Black.svg&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;string&quot;&gt;&amp;quot;sponsors/Blacksmith_Logo-White.svg&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;string&quot;&gt;&amp;quot;sponsors/coil-logo-black.svg&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;string&quot;&gt;&amp;quot;sponsors/coil-logo-white.svg&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;string&quot;&gt;&amp;quot;sponsors/dropbox.png&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;string&quot;&gt;&amp;quot;sponsors/lavatech.png&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;string&quot;&gt;&amp;quot;sponsors/pex-dark.svg&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;string&quot;&gt;&amp;quot;sponsors/pex-white.svg&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;string&quot;&gt;&amp;quot;sponsors/scaleway.png&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;string&quot;&gt;&amp;quot;sponsors/shiguredo-logo-dark.svg&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;string&quot;&gt;&amp;quot;sponsors/shiguredo-logo-light.svg&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;string&quot;&gt;&amp;quot;sponsors/tb-logo-black.png&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;string&quot;&gt;&amp;quot;sponsors/tb-logo-white.png&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;string&quot;&gt;&amp;quot;sponsors/zml.svg&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;string&quot;&gt;&amp;quot;sponsors/SILARES_HORIZONTAL_LOGO_WHITE.png&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;string&quot;&gt;&amp;quot;sponsors/SILARES_HORIZONTAL_LOGO_BLACK.png&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;string&quot;&gt;&amp;quot;chart/chartist-1.3.0.css&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;string&quot;&gt;&amp;quot;chart/chartist-1.3.0.umd.js&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;string&quot;&gt;&amp;quot;download/0.15.1/release-notes/build-webui.png&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;string&quot;&gt;&amp;quot;download/0.15.1/release-notes/build-webui-time-report.png&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;punctuation_bracket&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;error punctuation_bracket&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;error punctuation_delimiter&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;error&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;error punctuation_bracket&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;figcaption&gt;Usage of the “improved” &lt;code&gt;zine.ziggy&lt;/code&gt;&lt;/figcaption&gt;&lt;/figure&gt;&lt;/p&gt;&lt;p&gt;And using the &lt;code&gt;{:}Locale&lt;/code&gt; style declarations: &lt;figure&gt;&lt;pre&gt;&lt;code class=&quot;ziggy&quot;&gt;&lt;span class=&quot;comment_line&quot;&gt;/// This is an alternate take on a Multilingual Zine Site
&lt;/span&gt;&lt;span class=&quot;comment_line&quot;&gt;/// (using the `ziglang.org` `zine.ziggy` as reference)
&lt;/span&gt;&lt;span class=&quot;comment_line&quot;&gt;/// (Using a dictionary instead of array of structs)
&lt;/span&gt;
&lt;span class=&quot;error&quot;&gt;Zine &lt;/span&gt;&lt;span class=&quot;error punctuation_bracket&quot;&gt;{&lt;/span&gt;
  .&lt;span class=&quot;field&quot;&gt;host_url&lt;/span&gt; &lt;span class=&quot;punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;string&quot;&gt;&amp;quot;https://ziglang.org&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
  .&lt;span class=&quot;error&quot;&gt;content &lt;/span&gt;&lt;span class=&quot;error punctuation&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;error&quot;&gt; &lt;/span&gt;&lt;span class=&quot;error punctuation_bracket&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;error&quot;&gt;
    .&lt;/span&gt;&lt;span class=&quot;field&quot;&gt;base_dir&lt;/span&gt; &lt;span class=&quot;punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;string&quot;&gt;&amp;quot;content&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
    .&lt;span class=&quot;field&quot;&gt;type&lt;/span&gt; &lt;span class=&quot;punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;constant&quot;&gt;.multilingual&lt;/span&gt;&lt;span class=&quot;punctuation_bracket&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;error punctuation_bracket&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;error&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;error constant&quot;&gt;.i18n_dir&lt;/span&gt;&lt;span class=&quot;error&quot;&gt; &lt;/span&gt;&lt;span class=&quot;error punctuation&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;error&quot;&gt; &lt;/span&gt;&lt;span class=&quot;error string&quot;&gt;&amp;quot;i18n&amp;quot;&lt;/span&gt;&lt;span class=&quot;error punctuation_delimiter&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;error&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;error constant&quot;&gt;.locales&lt;/span&gt;&lt;span class=&quot;error&quot;&gt; &lt;/span&gt;&lt;span class=&quot;error punctuation&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;error&quot;&gt; &lt;/span&gt;&lt;span class=&quot;error punctuation_bracket&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;error&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;error string&quot;&gt;&amp;quot;en-US&amp;quot;&lt;/span&gt;&lt;span class=&quot;error punctuation&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;error&quot;&gt; &lt;/span&gt;&lt;span class=&quot;error punctuation_bracket&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;error&quot;&gt;
          &lt;/span&gt;&lt;span class=&quot;error constant&quot;&gt;.name&lt;/span&gt;&lt;span class=&quot;error&quot;&gt; &lt;/span&gt;&lt;span class=&quot;error punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;string&quot;&gt;&amp;quot;English (original)&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
          &lt;span class=&quot;constant&quot;&gt;.title&lt;/span&gt; &lt;span class=&quot;punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;string&quot;&gt;&amp;quot;Zig Programming Language&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
          .&lt;span class=&quot;field&quot;&gt;content_subdir&lt;/span&gt; &lt;span class=&quot;punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;constant_builtin&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;comment_line&quot;&gt;// if set to null (or not given),
&lt;/span&gt;                                  &lt;span class=&quot;comment_line&quot;&gt;// check for a path equal to the key,
&lt;/span&gt;                                  &lt;span class=&quot;comment_line&quot;&gt;// otherwise, error out
&lt;/span&gt;          .&lt;span class=&quot;field&quot;&gt;output_prefix_override&lt;/span&gt; &lt;span class=&quot;punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;string&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;comment_line&quot;&gt;// set to empty string for default
&lt;/span&gt;        &lt;span class=&quot;error punctuation_bracket&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;error punctuation_delimiter&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;error&quot;&gt;
        &amp;quot;es&lt;/span&gt;&lt;span class=&quot;error&quot;&gt;-&lt;/span&gt;AR&amp;quot;&lt;span class=&quot;punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;punctuation_bracket&quot;&gt;{&lt;/span&gt; .&lt;span class=&quot;field&quot;&gt;name&lt;/span&gt; &lt;span class=&quot;punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;string&quot;&gt;&amp;quot;Español&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt; .&lt;span class=&quot;field&quot;&gt;title&lt;/span&gt; &lt;span class=&quot;punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;string&quot;&gt;&amp;quot;El Lenguaje de Programación Zig&amp;quot;&lt;/span&gt; &lt;span class=&quot;error punctuation_bracket&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;error&quot;&gt;&amp;quot;ru&lt;/span&gt;&lt;span class=&quot;error&quot;&gt;-&lt;/span&gt;RU&amp;quot;&lt;span class=&quot;punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;punctuation_bracket&quot;&gt;{&lt;/span&gt; .&lt;span class=&quot;field&quot;&gt;name&lt;/span&gt; &lt;span class=&quot;punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;string&quot;&gt;&amp;quot;Русский&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt; .&lt;span class=&quot;field&quot;&gt;title&lt;/span&gt; &lt;span class=&quot;punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;string&quot;&gt;&amp;quot;Язык программирования Zig&amp;quot;&lt;/span&gt; &lt;span class=&quot;error punctuation_bracket&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;error&quot;&gt;&amp;quot;it&lt;/span&gt;&lt;span class=&quot;error&quot;&gt;-&lt;/span&gt;IT&amp;quot;&lt;span class=&quot;punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;punctuation_bracket&quot;&gt;{&lt;/span&gt; .&lt;span class=&quot;field&quot;&gt;name&lt;/span&gt; &lt;span class=&quot;punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;string&quot;&gt;&amp;quot;Italiano&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt; .&lt;span class=&quot;field&quot;&gt;title&lt;/span&gt; &lt;span class=&quot;punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;string&quot;&gt;&amp;quot;Zig Programming Language&amp;quot;&lt;/span&gt; &lt;span class=&quot;error punctuation_bracket&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;error&quot;&gt;&amp;quot;de&lt;/span&gt;&lt;span class=&quot;error&quot;&gt;-&lt;/span&gt;DE&amp;quot;&lt;span class=&quot;punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;punctuation_bracket&quot;&gt;{&lt;/span&gt; .&lt;span class=&quot;field&quot;&gt;name&lt;/span&gt; &lt;span class=&quot;punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;string&quot;&gt;&amp;quot;Deutsch&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt; .&lt;span class=&quot;field&quot;&gt;title&lt;/span&gt; &lt;span class=&quot;punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;string&quot;&gt;&amp;quot;Zig Programmiersprache&amp;quot;&lt;/span&gt; &lt;span class=&quot;error punctuation_bracket&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;error&quot;&gt;&amp;quot;uk&lt;/span&gt;&lt;span class=&quot;error&quot;&gt;-&lt;/span&gt;UA&amp;quot;&lt;span class=&quot;punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;punctuation_bracket&quot;&gt;{&lt;/span&gt; .&lt;span class=&quot;field&quot;&gt;name&lt;/span&gt; &lt;span class=&quot;punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;string&quot;&gt;&amp;quot;Українська&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt; .&lt;span class=&quot;field&quot;&gt;title&lt;/span&gt; &lt;span class=&quot;punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;string&quot;&gt;&amp;quot;Zig Programming Language&amp;quot;&lt;/span&gt; &lt;span class=&quot;error punctuation_bracket&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;error&quot;&gt;&amp;quot;jp&lt;/span&gt;&lt;span class=&quot;error&quot;&gt;-&lt;/span&gt;JP&amp;quot;&lt;span class=&quot;punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;punctuation_bracket&quot;&gt;{&lt;/span&gt; .&lt;span class=&quot;field&quot;&gt;name&lt;/span&gt; &lt;span class=&quot;punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;string&quot;&gt;&amp;quot;日本語&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt; .&lt;span class=&quot;field&quot;&gt;title&lt;/span&gt; &lt;span class=&quot;punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;string&quot;&gt;&amp;quot;Zig Programming Language&amp;quot;&lt;/span&gt; &lt;span class=&quot;error punctuation_bracket&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;error&quot;&gt;&amp;quot;zh&lt;/span&gt;&lt;span class=&quot;error&quot;&gt;-&lt;/span&gt;CN&amp;quot;&lt;span class=&quot;punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;punctuation_bracket&quot;&gt;{&lt;/span&gt; .&lt;span class=&quot;field&quot;&gt;name&lt;/span&gt; &lt;span class=&quot;punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;string&quot;&gt;&amp;quot;中文&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt; .&lt;span class=&quot;field&quot;&gt;title&lt;/span&gt; &lt;span class=&quot;punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;string&quot;&gt;&amp;quot;Zig 编程语言&amp;quot;&lt;/span&gt; &lt;span class=&quot;error punctuation_bracket&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;error&quot;&gt;&amp;quot;ko&lt;/span&gt;&lt;span class=&quot;error&quot;&gt;-&lt;/span&gt;KR&amp;quot;&lt;span class=&quot;punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;punctuation_bracket&quot;&gt;{&lt;/span&gt; .&lt;span class=&quot;field&quot;&gt;name&lt;/span&gt; &lt;span class=&quot;punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;string&quot;&gt;&amp;quot;한국어&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt; .&lt;span class=&quot;field&quot;&gt;title&lt;/span&gt; &lt;span class=&quot;punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;string&quot;&gt;&amp;quot;Zig 프로그래밍 언어&amp;quot;&lt;/span&gt; &lt;span class=&quot;error punctuation_bracket&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;error punctuation_delimiter&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;error&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;error punctuation_bracket&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;error punctuation_delimiter&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;error&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;error punctuation_bracket&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;error punctuation_bracket&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;error punctuation_delimiter&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;error&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;error punctuation_bracket&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
  .&lt;span class=&quot;error&quot;&gt;layouts &lt;/span&gt;&lt;span class=&quot;error punctuation&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;error&quot;&gt; &lt;/span&gt;&lt;span class=&quot;error punctuation_bracket&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;error&quot;&gt;
    .&lt;/span&gt;&lt;span class=&quot;field&quot;&gt;base_dir&lt;/span&gt; &lt;span class=&quot;punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;string&quot;&gt;&amp;quot;layouts&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
    .&lt;span class=&quot;field&quot;&gt;external_dirs&lt;/span&gt; &lt;span class=&quot;punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;constant_builtin&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;error punctuation_bracket&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;error punctuation_delimiter&quot;&gt;,&lt;/span&gt;
  .&lt;span class=&quot;error&quot;&gt;assets &lt;/span&gt;&lt;span class=&quot;error punctuation&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;error&quot;&gt; &lt;/span&gt;&lt;span class=&quot;error punctuation_bracket&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;error&quot;&gt;
    .&lt;/span&gt;&lt;span class=&quot;field&quot;&gt;base_dir&lt;/span&gt; &lt;span class=&quot;punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;string&quot;&gt;&amp;quot;assets&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
    .&lt;span class=&quot;field&quot;&gt;external_dirs&lt;/span&gt; &lt;span class=&quot;punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;constant_builtin&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
    .&lt;span class=&quot;field&quot;&gt;static_assets&lt;/span&gt; &lt;span class=&quot;punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;punctuation_bracket&quot;&gt;[&lt;/span&gt;
      &lt;span class=&quot;string&quot;&gt;&amp;quot;.well-known/funding-manifest-urls&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;string&quot;&gt;&amp;quot;funding.json&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;string&quot;&gt;&amp;quot;external-link-dark.svg&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;string&quot;&gt;&amp;quot;external-link-light.svg&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;string&quot;&gt;&amp;quot;heart.svg&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;string&quot;&gt;&amp;quot;zig-logo-dark.svg&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;string&quot;&gt;&amp;quot;zig-logo-light.svg&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;string&quot;&gt;&amp;quot;zig-performance-logo-dark.svg&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;string&quot;&gt;&amp;quot;zig-performance-logo-light.svg&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;string&quot;&gt;&amp;quot;sponsors/Blacksmith_Logo-Black.svg&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;string&quot;&gt;&amp;quot;sponsors/Blacksmith_Logo-White.svg&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;string&quot;&gt;&amp;quot;sponsors/coil-logo-black.svg&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;string&quot;&gt;&amp;quot;sponsors/coil-logo-white.svg&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;string&quot;&gt;&amp;quot;sponsors/dropbox.png&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;string&quot;&gt;&amp;quot;sponsors/lavatech.png&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;string&quot;&gt;&amp;quot;sponsors/pex-dark.svg&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;string&quot;&gt;&amp;quot;sponsors/pex-white.svg&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;string&quot;&gt;&amp;quot;sponsors/scaleway.png&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;string&quot;&gt;&amp;quot;sponsors/shiguredo-logo-dark.svg&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;string&quot;&gt;&amp;quot;sponsors/shiguredo-logo-light.svg&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;string&quot;&gt;&amp;quot;sponsors/tb-logo-black.png&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;string&quot;&gt;&amp;quot;sponsors/tb-logo-white.png&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;string&quot;&gt;&amp;quot;sponsors/zml.svg&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;string&quot;&gt;&amp;quot;sponsors/SILARES_HORIZONTAL_LOGO_WHITE.png&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;string&quot;&gt;&amp;quot;sponsors/SILARES_HORIZONTAL_LOGO_BLACK.png&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;string&quot;&gt;&amp;quot;chart/chartist-1.3.0.css&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;string&quot;&gt;&amp;quot;chart/chartist-1.3.0.umd.js&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;string&quot;&gt;&amp;quot;download/0.15.1/release-notes/build-webui.png&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;string&quot;&gt;&amp;quot;download/0.15.1/release-notes/build-webui-time-report.png&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;punctuation_bracket&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;error punctuation_bracket&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;error punctuation_delimiter&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;error&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;error punctuation_bracket&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;figcaption&gt;Usage of the “improved” &lt;code&gt;zine.ziggy&lt;/code&gt; (with &lt;code&gt;Locale&lt;/code&gt; dictionary)&lt;/figcaption&gt;&lt;/figure&gt;&lt;/p&gt;&lt;p&gt;Assuming that you have &lt;em&gt;many&lt;/em&gt; languages needed for your website, accessing the data via &lt;a href=&quot;https://github.com/kristoff-it/superhtml&quot; target=&quot;_blank&quot;&gt;SuperHTML&lt;/a&gt; (Zine’s templating language) could be as easy as &lt;code&gt;$page.i18n(&amp;quot;&amp;lt;locale&amp;gt;&amp;quot;).code&lt;/code&gt; for the array based implementation, or via &lt;code&gt;$page.i18n(&amp;quot;&amp;lt;locale&amp;gt;&amp;quot;).key&lt;/code&gt; for the dictionary based implementation.&lt;/p&gt;&lt;p&gt;What’s that? You’re saying that I neglected to showcase the single-language version?&lt;/p&gt;&lt;h3&gt;For single language sites&lt;/h3&gt;&lt;p&gt;You just simply follow the same principles, but with &lt;code&gt;content.type&lt;/code&gt; set to &lt;code&gt;.single()&lt;/code&gt; instead.&lt;/p&gt;&lt;p&gt;For example: &lt;figure&gt;&lt;pre&gt;&lt;code class=&quot;ziggy&quot;&gt;&lt;span class=&quot;comment_line&quot;&gt;/// This describes a Single-Language Zine Site:
&lt;/span&gt;&lt;span class=&quot;error&quot;&gt;Zine &lt;/span&gt;&lt;span class=&quot;error punctuation_bracket&quot;&gt;{&lt;/span&gt;
  .&lt;span class=&quot;field&quot;&gt;host_url&lt;/span&gt; &lt;span class=&quot;punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;string&quot;&gt;&amp;quot;https://example.com&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
  .&lt;span class=&quot;error&quot;&gt;content &lt;/span&gt;&lt;span class=&quot;error punctuation&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;error&quot;&gt; &lt;/span&gt;&lt;span class=&quot;error punctuation_bracket&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;error&quot;&gt;
    .&lt;/span&gt;&lt;span class=&quot;field&quot;&gt;base_dir&lt;/span&gt; &lt;span class=&quot;punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;string&quot;&gt;&amp;quot;content&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
    .&lt;span class=&quot;field&quot;&gt;type&lt;/span&gt; &lt;span class=&quot;punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;constant&quot;&gt;.single&lt;/span&gt;&lt;span class=&quot;punctuation_bracket&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;error punctuation_bracket&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;error&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;error constant&quot;&gt;.lang&lt;/span&gt;&lt;span class=&quot;error&quot;&gt; &lt;/span&gt;&lt;span class=&quot;error punctuation&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;error&quot;&gt; &lt;/span&gt;&lt;span class=&quot;error string&quot;&gt;&amp;quot;en-US&amp;quot;&lt;/span&gt;&lt;span class=&quot;error punctuation_delimiter&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;error&quot;&gt;
      &lt;/span&gt;&lt;span class=&quot;error constant&quot;&gt;.title&lt;/span&gt;&lt;span class=&quot;error&quot;&gt; &lt;/span&gt;&lt;span class=&quot;error punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;string&quot;&gt;&amp;quot;Example Zine Site&amp;quot;&lt;/span&gt;&lt;span class=&quot;error punctuation_delimiter&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;error&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;error punctuation_bracket&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;punctuation_bracket&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;error punctuation_bracket&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;error punctuation_delimiter&quot;&gt;,&lt;/span&gt;
  .&lt;span class=&quot;error&quot;&gt;layouts &lt;/span&gt;&lt;span class=&quot;error punctuation&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;error&quot;&gt; &lt;/span&gt;&lt;span class=&quot;error punctuation_bracket&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;error&quot;&gt;
    .&lt;/span&gt;&lt;span class=&quot;field&quot;&gt;base_dir&lt;/span&gt; &lt;span class=&quot;punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;string&quot;&gt;&amp;quot;layouts&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
    .&lt;span class=&quot;field&quot;&gt;external_dirs&lt;/span&gt; &lt;span class=&quot;punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;punctuation_bracket&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;string&quot;&gt;&amp;quot;external&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;string&quot;&gt;&amp;quot;zig-pkg/custom_theme/layouts&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;punctuation_bracket&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;error punctuation_bracket&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;error punctuation_delimiter&quot;&gt;,&lt;/span&gt;
  .&lt;span class=&quot;error&quot;&gt;assets &lt;/span&gt;&lt;span class=&quot;error punctuation&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;error&quot;&gt; &lt;/span&gt;&lt;span class=&quot;error punctuation_bracket&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;error&quot;&gt;
    .&lt;/span&gt;&lt;span class=&quot;field&quot;&gt;base_dir&lt;/span&gt; &lt;span class=&quot;punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;string&quot;&gt;&amp;quot;assets&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
    .&lt;span class=&quot;field&quot;&gt;external_dirs&lt;/span&gt; &lt;span class=&quot;punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;punctuation_bracket&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;string&quot;&gt;&amp;quot;external&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;string&quot;&gt;&amp;quot;zig-pkg/custom_theme/assets&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;punctuation_bracket&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
    .&lt;span class=&quot;field&quot;&gt;static_assets&lt;/span&gt; &lt;span class=&quot;punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;punctuation_bracket&quot;&gt;[&lt;/span&gt;
      &lt;span class=&quot;string&quot;&gt;&amp;quot;favicon.ico&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;string&quot;&gt;&amp;quot;mathtex/Temml.woff2&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;string&quot;&gt;&amp;quot;fonts/STIXTwoMath/STIXTwoMath-Regular.otf&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;string&quot;&gt;&amp;quot;external:scripts/custom_script.js&amp;quot;&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;comment_line&quot;&gt;// for example.
&lt;/span&gt;    &lt;span class=&quot;punctuation_bracket&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;punctuation_delimiter&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;error punctuation_bracket&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;error punctuation_delimiter&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;error&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;error punctuation_bracket&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;figcaption&gt;Usage of the “improved” &lt;code&gt;zine.ziggy&lt;/code&gt; (for single language site)&lt;/figcaption&gt;&lt;/figure&gt;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;desc &quot;&gt;(The above example even showcases using external theme assets!)&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div id=&quot;conclusion&quot;&gt;&lt;h2&gt;&lt;a class=&quot;&quot; href=&quot;#conclusion&quot;&gt;To wrap up&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;I hope I’ve showcased how Zine could be improved with Ziggy in the future.&lt;/p&gt;&lt;p&gt;Hell, for all I know, it’ll remain the same way it is now permanently. I kind of doubt it, but even if it does, Zine’s still a wonderful piece of software, and time will only make it better.&lt;/p&gt;&lt;p&gt;(Curious about Zine? Check the footer of the site; there’s a link to it there.)&lt;/p&gt;&lt;/div&gt;</content>
    </entry>
  
</feed>
