<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.2.2">Jekyll</generator><link href="https://www.andreaburan.com/feed.xml" rel="self" type="application/atom+xml" /><link href="https://www.andreaburan.com/" rel="alternate" type="text/html" /><updated>2026-04-22T23:13:01+02:00</updated><id>https://www.andreaburan.com/feed.xml</id><title type="html">Andrea Buran’s site</title><subtitle>Andrea Buran, product designer &amp; leader, at your service. I design digital services and products, solving people’s problems and helping organizations reach their goals.</subtitle><author><name>Andrea Buran</name></author><entry><title type="html">The flow of time in the language of comics</title><link href="https://www.andreaburan.com/post/the-flow-of-time-in-the-language-of-comics.html" rel="alternate" type="text/html" title="The flow of time in the language of comics" /><published>2023-12-28T19:45:00+01:00</published><updated>2023-12-28T19:45:00+01:00</updated><id>https://www.andreaburan.com/post/the-flow-of-time-in-the-language-of-comics</id><content type="html" xml:base="https://www.andreaburan.com/post/the-flow-of-time-in-the-language-of-comics.html"><![CDATA[<ul class="toc">
  <li><a href="#introduction">Introduction</a></li>
  <li><a href="#space--time">Space = time</a>
    <ul>
      <li><a href="#sequence-of-pages">Sequence of pages</a></li>
      <li><a href="#sequence-of-panels">Sequence of panels</a></li>
      <li><a href="#sequence-of-elements">Sequence of elements</a></li>
    </ul>
  </li>
  <li><a href="#time--reading">Time ↔ reading</a>
    <ul>
      <li><a href="#visual-complexity">Visual complexity</a></li>
      <li><a href="#speech-ballons">Speech ballons</a></li>
    </ul>
  </li>
  <li><a href="#recapitulation">Recapitulation</a></li>
</ul>

<h2 id="introduction">Introduction</h2>

<p>I have always been fascinated by how the language of comics expresses the flow of time indirectly—through static images.</p>

<p>How?</p>

<p>As a rule of thumb, it combines two basic but core principles:</p>

<ul>
  <li><code class="language-plaintext highlighter-rouge">space = time</code> (space equals time)</li>
  <li><code class="language-plaintext highlighter-rouge">time ↔ reading</code> (time is related to the reading experience)</li>
</ul>

<p>Before detailing these principles, it’s important to note that in any piece of sequential art<sup id="fnref:sequential-art" role="doc-noteref"><a href="#fn:sequential-art" class="footnote" rel="footnote">1</a></sup>, these two principles cannot be clearly separated. Instead, they combine seamlessly, forming a <em>gestalt</em>.</p>
<h2 id="space--time">Space = time</h2>

<p>Let us focus on the first principle: <code class="language-plaintext highlighter-rouge">space = time</code>. The language of comics expresses the flow of time by sequencing space. It sequences space at three different levels, from highest to lowest:</p>

<ul>
  <li>space/time is structured in a <a href="#sequence-of-pages">sequence of pages</a></li>
  <li>space/time is structured in a <a href="#sequence-of-panels">sequence of panels</a> within a single page</li>
  <li>space/time is structured in a <a href="#sequence-of-elements">sequence of elements</a> within a single panel</li>
</ul>

<h3 id="sequence-of-pages">Sequence of pages</h3>

<p>How is space/time structured in a sequence of pages?</p>

<p>In a sequence of pages, each of the pages (usually) works as a macro unit of meaning that moves the story and action forward.</p>

<p>Let us look at a sequence of pages from the <em>manga</em> <em>Dragon Ball</em> by Akira Toriyama as an example. In this sequence, Gohan—Goku’s son—counterattacks to prevent Cell—the mashed up villain—from destroying Earth.</p>

<div class="figures">
  

<figure class="image-xl" id="dragon_ball_the_ultimate_kamehameha_sequence_of_pages_00.jpg">
  <a class="ratio" href="../media/posts-optimized/the-flow-of-time-in-the-language-of-comics/images/1440/dragon_ball_the_ultimate_kamehameha_sequence_of_pages_00.jpg" style="padding-bottom: 124.83552631578947%;background-color: #D6D6D6;" target="_blank">
    <img loading="lazy" src="
      ../media/posts-optimized/the-flow-of-time-in-the-language-of-comics/images/1440/dragon_ball_the_ultimate_kamehameha_sequence_of_pages_00.jpg
      " srcset="
      ../media/posts-optimized/the-flow-of-time-in-the-language-of-comics/images/2880/dragon_ball_the_ultimate_kamehameha_sequence_of_pages_00.jpg 2880w,
      ../media/posts-optimized/the-flow-of-time-in-the-language-of-comics/images/2160/dragon_ball_the_ultimate_kamehameha_sequence_of_pages_00.jpg 2160w,
      ../media/posts-optimized/the-flow-of-time-in-the-language-of-comics/images/1440/dragon_ball_the_ultimate_kamehameha_sequence_of_pages_00.jpg 1440w,
      ../media/posts-optimized/the-flow-of-time-in-the-language-of-comics/images/1080/dragon_ball_the_ultimate_kamehameha_sequence_of_pages_00.jpg 1080w,
      ../media/posts-optimized/the-flow-of-time-in-the-language-of-comics/images/720/dragon_ball_the_ultimate_kamehameha_sequence_of_pages_00.jpg 720w,
      ../media/posts-optimized/the-flow-of-time-in-the-language-of-comics/images/360/dragon_ball_the_ultimate_kamehameha_sequence_of_pages_00.jpg 360w
      " sizes="
      (min-width: 72em) 72em,
      (min-width: 54em) 54em,
      (min-width: 30em) 36em,
      22em
      " alt="
      Pages 28–37, taken from the chapter 410 The Ultimate Kamehameha from the manga Dragon Ball by Akira Toriyama.
      " />
  </a>
  <figcaption class="typo-s">
    <p>Pages 28–37, taken from the chapter 410 <em>The Ultimate Kamehameha</em> from the <em>manga</em> <em><a href="https://en.wikipedia.org/wiki/Dragon_Ball_(manga)" title="Dragon Ball in Wikipedia">Dragon Ball</a></em> by Akira Toriyama.</p>
  </figcaption>
</figure>

</div>

<p>If we go through the above sequence and roughly time how much each page covers:</p>

<table class="table">
  <thead>
    <tr>
      <th>Page/s</th>
      <th>Event/s</th>
      <th style="text-align: right">Time</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><span style="white-space: nowrap;">28–30</span></td>
      <td>Uh-oh. Cell is charging a huge <em>Kamehameha</em> <sup id="fnref:kamehameha" role="doc-noteref"><a href="#fn:kamehameha" class="footnote" rel="footnote">2</a></sup>. Things are about to go south.</td>
      <td style="text-align: right">∼32s</td>
    </tr>
    <tr>
      <td>31</td>
      <td>Cell launches the wave towards Earth. How foolish of him! If Gohan dodges it, Earth will be nuked.</td>
      <td style="text-align: right">∼2s</td>
    </tr>
    <tr>
      <td>32</td>
      <td>Oh my gosh! Cell’s <em>Kamehameha</em> is too powerful. There is no way Gohan can survive the hit. How will he bail us out?</td>
      <td style="text-align: right">∼1s</td>
    </tr>
    <tr>
      <td>33</td>
      <td>Hold on. Gohan is charging a <em>Kamehameha</em> as well. Maybe there is some hope.</td>
      <td style="text-align: right">∼4s</td>
    </tr>
    <tr>
      <td>34</td>
      <td>Also Gohan launches his wave! <em>suspense</em></td>
      <td style="text-align: right">∼2s</td>
    </tr>
    <tr>
      <td>35</td>
      <td>Hurray! Gohan’s <em>Kamehameha</em> overpowers Cell’s!</td>
      <td style="text-align: right">∼1s</td>
    </tr>
    <tr>
      <td><span style="white-space: nowrap;">36–37</span></td>
      <td>Take this, Cell! That’s what you get for messing with the wrong folks.</td>
      <td style="text-align: right">∼8s</td>
    </tr>
  </tbody>
</table>

<p>We can conclude that the entire sequence spans a time of more or less ∼50 seconds.</p>

<p>As mentioned before, we should always keep in mind that these ∼50 seconds are not a product of just the sequence of pages in itself, but rather the outcome of mixing the two principles <code class="language-plaintext highlighter-rouge">space = time</code> (at the level of pages, panels, and elements) and <code class="language-plaintext highlighter-rouge">time ↔ reading</code> in different quantities.</p>

<h3 id="sequence-of-panels">Sequence of panels</h3>

<p>How is space/time structured in a sequence of panels within a single page?</p>

<p>In a sequence of panels, each panel (usually) represents a distinct event in time, and each gutter—the void space between panels—advances time forward from one panel to the next.</p>

<p>The amount of time a gutter represents is derived from the events in the adjacent panels it separates. The further apart these events are in time, the longer the time the gutter expresses.</p>

<p>Let us look at a sequence of panels from the graphic novel <em>The Dark Knight Returns</em> by Frank Miller as an example. In the spread, Bruce Wayne—also known as Batman—has a flashback where he remembers his parents being killed during an armed robbery.</p>

<div class="figures">
  

<figure class="image-xl" id="the_dark_knight_returns_sequence_of_panels_00.jpg">
  <a class="ratio" href="../media/posts-optimized/the-flow-of-time-in-the-language-of-comics/images/1440/the_dark_knight_returns_sequence_of_panels_00.jpg" style="padding-bottom: 80.68576388888889%;background-color: #D6D6D6;" target="_blank">
    <img loading="lazy" src="
      ../media/posts-optimized/the-flow-of-time-in-the-language-of-comics/images/1440/the_dark_knight_returns_sequence_of_panels_00.jpg
      " srcset="
      ../media/posts-optimized/the-flow-of-time-in-the-language-of-comics/images/2880/the_dark_knight_returns_sequence_of_panels_00.jpg 2880w,
      ../media/posts-optimized/the-flow-of-time-in-the-language-of-comics/images/2160/the_dark_knight_returns_sequence_of_panels_00.jpg 2160w,
      ../media/posts-optimized/the-flow-of-time-in-the-language-of-comics/images/1440/the_dark_knight_returns_sequence_of_panels_00.jpg 1440w,
      ../media/posts-optimized/the-flow-of-time-in-the-language-of-comics/images/1080/the_dark_knight_returns_sequence_of_panels_00.jpg 1080w,
      ../media/posts-optimized/the-flow-of-time-in-the-language-of-comics/images/720/the_dark_knight_returns_sequence_of_panels_00.jpg 720w,
      ../media/posts-optimized/the-flow-of-time-in-the-language-of-comics/images/360/the_dark_knight_returns_sequence_of_panels_00.jpg 360w
      " sizes="
      (min-width: 72em) 72em,
      (min-width: 54em) 54em,
      (min-width: 30em) 36em,
      22em
      " alt="
      Pages 16–17, taken from The Dark Knight Returns by Frank Miller, Klaus Janson, and Lynn Varley.
      " />
  </a>
  <figcaption class="typo-s">
    <p>Pages 16–17, taken from <em><a href="https://en.wikipedia.org/wiki/The_Dark_Knight_Returns" title="The Dark Knight Returns in Wikipedia">The Dark Knight Returns</a></em> by Frank Miller, Klaus Janson, and Lynn Varley.</p>
  </figcaption>
</figure>

</div>

<p>In the above spread from <em>The Dark Knight Returns</em>, the events represented in the panels are quite close to each other in time.</p>

<p>This results in the time expressed by each gutter being rather uniform and condensed, making the entire sequence of panels feel like a cinematographic slow motion <sup id="fnref:slow-motion" role="doc-noteref"><a href="#fn:slow-motion" class="footnote" rel="footnote">3</a></sup>.</p>

<h3 id="sequence-of-elements">Sequence of elements</h3>

<p>How is space/time structured in a sequence of elements within a single panel?</p>

<p>In most cases, a sequence of elements in a panel represents events that happen simultaneously.</p>

<p>However, in particular cases, elements juxtaposed in a panel can represent simultaneous yet distinct events, “stretching” the time expressed within a space that is otherwise perceived as continuous.</p>

<p>Let us look at a panel from the comic book <em>Asterix And The Banquet</em> by René Goscinny and Albert Uderzo as an example.</p>

<div class="figures">
  

<figure class="image-l" id="asterix_asterix_and_the_banquet_00.jpg">
  <a class="ratio" href="../media/posts-optimized/the-flow-of-time-in-the-language-of-comics/images/1440/asterix_asterix_and_the_banquet_00.jpg" style="padding-bottom: 58.33333333333334%;background-color: #D6D6D6;" target="_blank">
    <img loading="lazy" src="
      ../media/media/posts-optimized/the-flow-of-time-in-the-language-of-comics/images/1080/asterix_asterix_and_the_banquet_00.jpg
      " srcset="
      ../media/posts-optimized/the-flow-of-time-in-the-language-of-comics/images/2160/asterix_asterix_and_the_banquet_00.jpg 2160w,
      ../media/posts-optimized/the-flow-of-time-in-the-language-of-comics/images/1440/asterix_asterix_and_the_banquet_00.jpg 1440w,
      ../media/posts-optimized/the-flow-of-time-in-the-language-of-comics/images/1080/asterix_asterix_and_the_banquet_00.jpg 1080w,
      ../media/posts-optimized/the-flow-of-time-in-the-language-of-comics/images/720/asterix_asterix_and_the_banquet_00.jpg 720w,
      ../media/posts-optimized/the-flow-of-time-in-the-language-of-comics/images/360/asterix_asterix_and_the_banquet_00.jpg 360w
      " sizes="
      (min-width: 54em) 54em,
      (min-width: 30em) 36em,
      22em
      " alt="
      The first half of page 6, taken from Asterix And The Banquet by René Goscinny and Albert Uderzo.
      " />
  </a>
  <figcaption class="typo-s">
    <p>The first panel of page 6, taken from <em><a href="https://en.wikipedia.org/wiki/Asterix_and_the_Banquet" title="Asterix And The Banquet in Wikipedia">Asterix And The Banquet</a></em> by René Goscinny and Albert Uderzo.</p>
  </figcaption>
</figure>

</div>

<p>In the above example, the first panel of page 6 from <em>Asterix And The Banquet</em> depicts three distinct events that, technically <sup id="fnref:panel" role="doc-noteref"><a href="#fn:panel" class="footnote" rel="footnote">4</a></sup>, happen at the same time:</p>

<table class="table">
  <thead>
    <tr>
      <th>Position</th>
      <th>Event/s</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Left</td>
      <td>Two women are having a conversation.</td>
    </tr>
    <tr>
      <td>Center</td>
      <td>A man is leading a cart to carry hay.</td>
    </tr>
    <tr>
      <td>Right</td>
      <td>Obelix talks while Asterix peels a few potatoes.</td>
    </tr>
  </tbody>
</table>

<p>However, since they are juxtaposed in space one after the other and we read them from left to right, we perceive them as happening one slightly after the other.</p>

<p>Jumping through three different events within the same panel makes its perceived duration much longer than if another panel of the same size and shape were to represent a single event. The panel from <em>Asterix And The Banquet</em> ends up feeling like a cinematographic pan shot <sup id="fnref:pan-shot" role="doc-noteref"><a href="#fn:pan-shot" class="footnote" rel="footnote">5</a></sup>.</p>

<h2 id="time--reading">Time ↔ reading</h2>

<p>Let us now focus on the second principle: <code class="language-plaintext highlighter-rouge">time ↔ reading</code>. The language of comics expresses the flow of time by speeding up or slowing down the reading experience.</p>

<p>As a rule of thumb, the more time we spend reading a sequence of pages, panels, and/or elements, the longer we perceive its “duration”.</p>

<p>How can we influence the reading experience? Usually, in two ways:</p>

<ul>
  <li>the more visually complex a sequence is, the more time we need to digest it, and vice versa</li>
  <li>the more speech balloons a sequence has, the more time we need to read it, and vice versa</li>
</ul>

<h3 id="visual-complexity">Visual complexity</h3>

<p>How can visual complexity influence the reading experience?</p>

<p>Again, the more visually complex a sequence is, the more time we need to digest it, and vice versa.</p>

<p>Let us look at a spread from the <em>manga</em> <em>Gon</em> by Masashi Tanaka as an example. In volume 2, chapter 8, Gon the dinosaur tries to blend in and live with a colony of penguins.</p>

<div class="figures">
  

<figure class="image-xl" id="gon_gon_lives_with_the_penguins_visual_complexity_00.jpg">
  <a class="ratio" href="../media/posts-optimized/the-flow-of-time-in-the-language-of-comics/images/1440/gon_gon_lives_with_the_penguins_visual_complexity_00.jpg" style="padding-bottom: 76.38888888888889%;background-color: #D6D6D6;" target="_blank">
    <img loading="lazy" src="
      ../media/posts-optimized/the-flow-of-time-in-the-language-of-comics/images/1440/gon_gon_lives_with_the_penguins_visual_complexity_00.jpg
      " srcset="
      ../media/posts-optimized/the-flow-of-time-in-the-language-of-comics/images/2880/gon_gon_lives_with_the_penguins_visual_complexity_00.jpg 2880w,
      ../media/posts-optimized/the-flow-of-time-in-the-language-of-comics/images/2160/gon_gon_lives_with_the_penguins_visual_complexity_00.jpg 2160w,
      ../media/posts-optimized/the-flow-of-time-in-the-language-of-comics/images/1440/gon_gon_lives_with_the_penguins_visual_complexity_00.jpg 1440w,
      ../media/posts-optimized/the-flow-of-time-in-the-language-of-comics/images/1080/gon_gon_lives_with_the_penguins_visual_complexity_00.jpg 1080w,
      ../media/posts-optimized/the-flow-of-time-in-the-language-of-comics/images/720/gon_gon_lives_with_the_penguins_visual_complexity_00.jpg 720w,
      ../media/posts-optimized/the-flow-of-time-in-the-language-of-comics/images/360/gon_gon_lives_with_the_penguins_visual_complexity_00.jpg 360w
      " sizes="
      (min-width: 72em) 72em,
      (min-width: 54em) 54em,
      (min-width: 30em) 36em,
      22em
      " alt="
      Pages 7–8 taken from volume 2 chapter 8 Gon Lives with The Penguins from Gon by Masashi Tanaka.
      " />
  </a>
  <figcaption class="typo-s">
    <p>Pages 7–8 taken from volume 2 chapter 8 <em>Gon Lives with The Penguins</em> from <em><a href="https://en.wikipedia.org/wiki/Gon_(manga)" title="Gon in Wikipedia">Gon</a></em> by Masashi Tanaka.</p>
  </figcaption>
</figure>

</div>

<p>In the above example from the <em>manga</em> <em>Gon</em>, by the time it takes us to find the main protagonist lost in the waddle of penguins, we end up feeling as though the little dinosaur has been living with the colony for quite a while.</p>

<h3 id="speech-balloons">Speech balloons</h3>

<p>How can speech balloons influence the reading experience?</p>

<p>Again, the more speech balloons a sequence has, the more time we need to read it, and vice versa.</p>

<p>Let us use a panel from <em>Sin City: The Hard Goodbye</em> by Frank Miller as an experiment and play with the speech balloons of Marv, the protagonist, who is about to get wasted.</p>

<div class="figures">
  

<figure class="image-l" id="sin_city_00.jpg">
  <a class="ratio" href="../media/posts-optimized/the-flow-of-time-in-the-language-of-comics/images/1440/sin_city_00.jpg" style="padding-bottom: 100.0%;background-color: #D6D6D6;" target="_blank">
    <img loading="lazy" src="
      ../media/media/posts-optimized/the-flow-of-time-in-the-language-of-comics/images/1080/sin_city_00.jpg
      " srcset="
      ../media/posts-optimized/the-flow-of-time-in-the-language-of-comics/images/2160/sin_city_00.jpg 2160w,
      ../media/posts-optimized/the-flow-of-time-in-the-language-of-comics/images/1440/sin_city_00.jpg 1440w,
      ../media/posts-optimized/the-flow-of-time-in-the-language-of-comics/images/1080/sin_city_00.jpg 1080w,
      ../media/posts-optimized/the-flow-of-time-in-the-language-of-comics/images/720/sin_city_00.jpg 720w,
      ../media/posts-optimized/the-flow-of-time-in-the-language-of-comics/images/360/sin_city_00.jpg 360w
      " sizes="
      (min-width: 54em) 54em,
      (min-width: 30em) 36em,
      22em
      " alt="
      The first panel of page 2—modified—taken from Sin City: The Hard Goodbye by Frank Miller.
      " />
  </a>
  <figcaption class="typo-s">
    <p>The first panel of page 2—<strong>modified!</strong>—taken from <em><a href="https://en.wikipedia.org/wiki/The_Hard_Goodbye" title="Sin City: The Hard Goodbye in Wikipedia">Sin City: The Hard Goodbye</a></em> by Frank Miller.</p>
  </figcaption>
</figure>

</div>

<p>In the above example, the first panel of the page is <strong>modified</strong>: Marv’s speech balloons have been removed, and the panel does not have any dialogue.</p>

<p>Let us compare its reading experience with the one of the below example, where the same panel is left <strong>unmodified</strong>: Marv’s speech balloons have not been removed, and the panel preserves the original dialogue.</p>

<div class="figures">
  

<figure class="image-l" id="sin_city_01.jpg">
  <a class="ratio" href="../media/posts-optimized/the-flow-of-time-in-the-language-of-comics/images/1440/sin_city_01.jpg" style="padding-bottom: 100.0%;background-color: #D6D6D6;" target="_blank">
    <img loading="lazy" src="
      ../media/media/posts-optimized/the-flow-of-time-in-the-language-of-comics/images/1080/sin_city_01.jpg
      " srcset="
      ../media/posts-optimized/the-flow-of-time-in-the-language-of-comics/images/2160/sin_city_01.jpg 2160w,
      ../media/posts-optimized/the-flow-of-time-in-the-language-of-comics/images/1440/sin_city_01.jpg 1440w,
      ../media/posts-optimized/the-flow-of-time-in-the-language-of-comics/images/1080/sin_city_01.jpg 1080w,
      ../media/posts-optimized/the-flow-of-time-in-the-language-of-comics/images/720/sin_city_01.jpg 720w,
      ../media/posts-optimized/the-flow-of-time-in-the-language-of-comics/images/360/sin_city_01.jpg 360w
      " sizes="
      (min-width: 54em) 54em,
      (min-width: 30em) 36em,
      22em
      " alt="
      The first panel of page 2—unmodified—taken from Sin City: The Hard Goodbye by Frank Miller.
      " />
  </a>
  <figcaption class="typo-s">
    <p>The first panel of page 2—<strong>unmodified!</strong>—taken from <em><a href="https://en.wikipedia.org/wiki/The_Hard_Goodbye" title="Sin City: The Hard Goodbye in Wikipedia">Sin City: The Hard Goodbye</a></em> by Frank Miller.</p>
  </figcaption>
</figure>

</div>

<p>Reading the balloons in the unmodified panel slows our reading experience: Marv turns from taking a sip from a bottle to getting wildly drunk.</p>

<h2 id="recapitulation">Recapitulation</h2>

<p>As illustrated by the above examples, the language of comics can express the flow of time indirectly—through static images—by combining seamlessly these two core principles:</p>

<ol>
  <li><code class="language-plaintext highlighter-rouge">space = time</code> (space equals time)</li>
  <li><code class="language-plaintext highlighter-rouge">time ↔ reading</code> (time is related to the reading experience)</li>
</ol>

<div class="footnotes" role="doc-endnotes">
  <ol>
    <li id="fn:sequential-art" role="doc-endnote">
      <p>Comics can be defined as sequential art: <em>the arrangement of pictures or images and words to narrate a story or dramatize an idea</em>—a definition created in 1985 by Will Eisner and expanded in 1994 by Scott McCloud. <a href="#fnref:sequential-art" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:kamehameha" role="doc-endnote">
      <p>The <em>Kamehameha</em> is the signature energy wave of the <em>Dragon Ball</em> series. <a href="#fnref:kamehameha" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:slow-motion" role="doc-endnote">
      <p>See <a href="https://en.wikipedia.org/wiki/Slow_motion" title="Slow motion in Wikipedia">slow motion in Wikipedia</a>. <a href="#fnref:slow-motion" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:panel" role="doc-endnote">
      <p>Technically because they are juxtaposed in the same continuous space enclosed in a panel, without any gutter or page break separating them. <a href="#fnref:panel" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:pan-shot" role="doc-endnote">
      <p>See <a href="https://en.wikipedia.org/wiki/Panning_(camera)" title="Panning (camera) in Wikipedia">pan shot in Wikipedia</a>. <a href="#fnref:pan-shot" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
  </ol>
</div>]]></content><author><name>Andrea Buran</name></author><category term="language of comics" /><category term="sequential art" /><category term="space" /><category term="time" /><summary type="html"><![CDATA[How does the language of comics express the flow of time through static images?]]></summary></entry><entry><title type="html">The flow of time in *Dio’s World Part 7*</title><link href="https://www.andreaburan.com/post/the-flow-of-time-in-dio-s-world-part-7.html" rel="alternate" type="text/html" title="The flow of time in *Dio’s World Part 7*" /><published>2021-09-17T07:00:00+02:00</published><updated>2021-09-17T07:00:00+02:00</updated><id>https://www.andreaburan.com/post/the-flow-of-time-in-dio-s-world-part-7</id><content type="html" xml:base="https://www.andreaburan.com/post/the-flow-of-time-in-dio-s-world-part-7.html"><![CDATA[<ul class="toc">
  <li><a href="#what-is-jojos-bizarre-adventure">What is <em>JoJo’s Bizarre Adventure</em>?</a></li>
  <li><a href="#spoiler-alert">Spoiler alert!</a></li>
  <li><a href="#the-zenith-of-the-series">The zenith of the series</a></li>
  <li><a href="#a-few-premises-on-mangas">A few premises on <em>mangas</em></a></li>
  <li><a href="#the-flow-of-time-in-the-language-of-comics">The flow of time in the language of comics</a>
    <ul>
      <li><a href="#space--time">Space = time</a></li>
      <li><a href="#time--reading">Time &lt;=&gt; reading</a></li>
    </ul>
  </li>
  <li><a href="#the-sequence-of-pages">The sequence of pages</a>
    <ul>
      <li><a href="#the-cliffhanger">The cliffhanger</a></li>
    </ul>
  </li>
  <li><a href="#the-sequence-of-panels-and-their-elements">The sequence of panels and their elements</a></li>
  <li><a href="#the-closure">The closure</a></li>
</ul>

<h2 id="what-is-jojos-bizarre-adventure">What is <em>JoJo’s Bizarre Adventure</em>?</h2>

<p><a href="https://en.wikipedia.org/wiki/Hirohiko_Araki" title="Hirohiko Araki from Wikipedia">Hirohiko Araki</a> (7 Jun 1960) is a <em>mangaka</em> and author of one of my favorite Japanese <em>manga</em>: <em><a href="https://en.wikipedia.org/wiki/JoJo%27s_Bizarre_Adventure" title="JoJo’s Bizarre Adventure from Wikipedia">JoJo’s Bizarre Adventure</a></em>. The <em>manga</em> started in 1987 and continues to this day, spanning 8 series with a total of 131 volumes, and counting.</p>

<p><em>JoJo</em> tells the adventures of the Joestar family and follows their struggles against the series’ core villain, Dio Brando, and his legacy.</p>

<p>The main characters in JoJo can generate spiritual entities, named <em>Stands</em>, which help their owners with various superhuman abilities.</p>

<div class="figures">
  

<figure class="image-xl" id="jojo_s_bizzarre_adventures_00.jpg">
  <a class="ratio" href="../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/1440/jojo_s_bizzarre_adventures_00.jpg" style="padding-bottom: 65.27777777777779%;background-color: #D6D6D6;" target="_blank">
    <img loading="lazy" src="
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/1440/jojo_s_bizzarre_adventures_00.jpg
      " srcset="
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/2880/jojo_s_bizzarre_adventures_00.jpg 2880w,
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/2160/jojo_s_bizzarre_adventures_00.jpg 2160w,
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/1440/jojo_s_bizzarre_adventures_00.jpg 1440w,
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/1080/jojo_s_bizzarre_adventures_00.jpg 1080w,
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/720/jojo_s_bizzarre_adventures_00.jpg 720w,
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/360/jojo_s_bizzarre_adventures_00.jpg 360w
      " sizes="
      (min-width: 72em) 72em,
      (min-width: 54em) 54em,
      (min-width: 30em) 36em,
      22em
      " alt="
      Volume 41 of the Italian version of JoJo’s Bizarre Adventure, Star Comics edition.
      " />
  </a>
  <figcaption class="typo-s">
    <p>Volume 41 of the Italian version of <em>JoJo’s Bizarre Adventure</em>, <em>Star Comics</em> edition.</p>
  </figcaption>
</figure>

</div>

<h2 id="spoiler-alert">Spoiler alert!</h2>

<p>While I will try my best to keep spoilers to a minimum, I cannot avoid revealing a major plot event from <em>JoJo</em>’s 3<sup>rd</sup> series—<em>Stardust Crusaders</em>. As a matter of fact, in this piece, I am interested in analyzing how Araki pushed the language of comics to the limits to represent that very event.</p>

<p>So, spoiler alert!</p>

<h2 id="the-zenith-of-the-series">The zenith of the series</h2>

<p>As a teenager, I considered the final showdown between the Joestar family and Dio Brando at the end of the 3<sup>rd</sup> series to be the zenith of the <em>manga</em>.</p>

<p>Even now, 20 years later, I still rejoice while re-reading <em>Dio’s World Part 1–18</em>. Among all of the best moments of the 3<sup>rd</sup> series, the battle between Dio Brando (<em>stand</em> → The World) and one of the Joestar party members, Noriaki Kakyoin (<em>stand</em> → Hierophant Green), remains one of my favorites.</p>

<p>Why?</p>

<p>The subject of <em>Dio’s World Part 7</em> is indeed intriguing. At the end of a tense chase, Dio engages Kakyoin in battle. Kakyoin has Dio on the ropes and forces him to reveal (finally!) the secret of his <em>stand</em>: the ability to stop time for everyone except its owner.</p>

<p>Fascinated by Araki’s skills, I have always asked myself, “How was Araki able to convey the stoppage of time in a sequential art medium like comics that, by its own nature, can only convey the passage of time indirectly, by juxtaposing static images?!?”.</p>

<p>This article is my attempt to find an answer.</p>

<h2 id="a-few-premises-on-mangas">A few premises on <em>mangas</em></h2>

<p>In this piece, I focus my analysis only on <em>Dio’s World Part 7</em>, a chapter that consists of 20 pages in total, laid out two by two in 10 spreads <sup id="fnref:spread" role="doc-noteref"><a href="#fn:spread" class="footnote" rel="footnote">1</a></sup>.</p>

<div class="figures">
  

<figure class="image-xl" id="dio_s_world_part_7_pages_124-143_00.jpg">
  <a class="ratio" href="../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/1440/dio_s_world_part_7_pages_124-143_00.jpg" style="padding-bottom: 35.85738539898132%;background-color: #D6D6D6;" target="_blank">
    <img loading="lazy" src="
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/1440/dio_s_world_part_7_pages_124-143_00.jpg
      " srcset="
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/2880/dio_s_world_part_7_pages_124-143_00.jpg 2880w,
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/2160/dio_s_world_part_7_pages_124-143_00.jpg 2160w,
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/1440/dio_s_world_part_7_pages_124-143_00.jpg 1440w,
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/1080/dio_s_world_part_7_pages_124-143_00.jpg 1080w,
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/720/dio_s_world_part_7_pages_124-143_00.jpg 720w,
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/360/dio_s_world_part_7_pages_124-143_00.jpg 360w
      " sizes="
      (min-width: 72em) 72em,
      (min-width: 54em) 54em,
      (min-width: 30em) 36em,
      22em
      " alt="
      An overview of the pages in the chapter Dio’s World Part 7 from JoJo’s Bizarre Adventure.
      " />
  </a>
  <figcaption class="typo-s">
    <p>An overview of the pages in the chapter <em>Dio’s World Part 7</em> from <em>JoJo’s Bizarre Adventure</em>.</p>
  </figcaption>
</figure>

</div>

<p>Since <em>JoJo</em> is a <em>manga</em>, its reading direction is reversed compared to Western comics. In a <em>manga</em>, you read pages starting from the right-hand page, corresponding to the end in Western comics, and you leaf through them backward, toward the left-hand page, corresponding to the start in Western comics:</p>

<div class="figures">
  

<figure class="image-xl" id="dio_s_world_part_7_pages_124-143_reading_direction_00.jpg">
  <a class="ratio" href="../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/1440/dio_s_world_part_7_pages_124-143_reading_direction_00.jpg" style="padding-bottom: 35.85738539898132%;background-color: #D6D6D6;" target="_blank">
    <img loading="lazy" src="
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/1440/dio_s_world_part_7_pages_124-143_reading_direction_00.jpg
      " srcset="
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/2880/dio_s_world_part_7_pages_124-143_reading_direction_00.jpg 2880w,
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/2160/dio_s_world_part_7_pages_124-143_reading_direction_00.jpg 2160w,
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/1440/dio_s_world_part_7_pages_124-143_reading_direction_00.jpg 1440w,
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/1080/dio_s_world_part_7_pages_124-143_reading_direction_00.jpg 1080w,
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/720/dio_s_world_part_7_pages_124-143_reading_direction_00.jpg 720w,
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/360/dio_s_world_part_7_pages_124-143_reading_direction_00.jpg 360w
      " sizes="
      (min-width: 72em) 72em,
      (min-width: 54em) 54em,
      (min-width: 30em) 36em,
      22em
      " alt="
      The reading direction of the sequence of pages in the chapter Dio’s World Part 7 from JoJo’s Bizarre Adventure.
      " />
  </a>
  <figcaption class="typo-s">
    <p>The reading direction of the sequence of pages in <em>Dio’s World Part 7</em>.</p>
  </figcaption>
</figure>

</div>

<p>Similarly, you read panels within a page, as well as elements within a panel, from right to left and top to bottom:</p>

<div class="figures">
  

<figure class="image-xl" id="dio_s_world_part_7_pages_128-131_reading_direction_00.jpg">
  <a class="ratio" href="../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/1440/dio_s_world_part_7_pages_128-131_reading_direction_00.jpg" style="padding-bottom: 36.155913978494624%;background-color: #D6D6D6;" target="_blank">
    <img loading="lazy" src="
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/1440/dio_s_world_part_7_pages_128-131_reading_direction_00.jpg
      " srcset="
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/2880/dio_s_world_part_7_pages_128-131_reading_direction_00.jpg 2880w,
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/2160/dio_s_world_part_7_pages_128-131_reading_direction_00.jpg 2160w,
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/1440/dio_s_world_part_7_pages_128-131_reading_direction_00.jpg 1440w,
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/1080/dio_s_world_part_7_pages_128-131_reading_direction_00.jpg 1080w,
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/720/dio_s_world_part_7_pages_128-131_reading_direction_00.jpg 720w,
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/360/dio_s_world_part_7_pages_128-131_reading_direction_00.jpg 360w
      " sizes="
      (min-width: 72em) 72em,
      (min-width: 54em) 54em,
      (min-width: 30em) 36em,
      22em
      " alt="
      The reading direction of a sequence of panels within the pages 128–131 of the chapter Dio’s World Part 7 from JoJo’s Bizarre Adventure.
      " />
  </a>
  <figcaption class="typo-s">
    <p>The reading direction of a sequence of panels in pages 128–131 from <em>Dio’s World Part 7</em>.</p>
  </figcaption>
</figure>

</div>

<h2 id="the-flow-of-time-in-the-language-of-comics">The flow of time in the language of comics</h2>

<p>Before analyzing how Araki approached conveying the stoppage of time in <em>Dio’s World Part 7</em>, we should first brush up on our language of comics.</p>

<p>How does the language of comics express the flow of time? As a rule of thumb, by combining two basic but core principles:</p>

<ul>
  <li><code class="language-plaintext highlighter-rouge">space = time</code> (space equals time)</li>
  <li><code class="language-plaintext highlighter-rouge">time ↔ reading</code> (time is related to the reading experience)</li>
</ul>

<h3 id="space--time">Space = time</h3>

<p>Let us focus on the 1<sup>st</sup> principle: <code class="language-plaintext highlighter-rouge">space = time</code>. The language of comics expresses the flow of time by sequencing space. Overall, it sequences space at three different levels. From highest to lowest:</p>

<ul>
  <li>space/time is structured in a sequence of pages</li>
  <li>space/time is structured in a sequence of panels within a single page</li>
  <li>space/time is structured in a sequence of elements within a single panel</li>
</ul>

<h3 id="time--reading">Time ↔ reading</h3>

<p>Let us now focus on the 2<sup>nd</sup> principle: <code class="language-plaintext highlighter-rouge">time ↔ reading</code>. The language of comics expresses the flow of time by speeding up or slowing down the reading experience.</p>

<p>As a rule of thumb, the more time we spend reading a sequence of pages, panels, and/or elements, the longer we perceive its “duration”.</p>

<p>How can we influence the reading experience? Usually, in two ways:</p>

<ul>
  <li>the more visually complex a sequence is, the more time we need to digest it and vice versa</li>
  <li>the more speech balloons a sequence has, the more time we need to read it and vice versa</li>
</ul>

<h2 id="the-sequence-of-pages">The sequence of pages</h2>

<p>Let us start by having a look at the sequences of pages in <em>Dio’s World Part 7</em>. As in any action comic worthy of its name, pages in the sequence are mostly composed of multiple panels of various sizes, shapes, and slants.</p>

<div class="figures">
  

<figure class="image-xl" id="dio_s_world_part_7_pages_124-143_00.jpg">
  <a class="ratio" href="../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/1440/dio_s_world_part_7_pages_124-143_00.jpg" style="padding-bottom: 35.85738539898132%;background-color: #D6D6D6;" target="_blank">
    <img loading="lazy" src="
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/1440/dio_s_world_part_7_pages_124-143_00.jpg
      " srcset="
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/2880/dio_s_world_part_7_pages_124-143_00.jpg 2880w,
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/2160/dio_s_world_part_7_pages_124-143_00.jpg 2160w,
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/1440/dio_s_world_part_7_pages_124-143_00.jpg 1440w,
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/1080/dio_s_world_part_7_pages_124-143_00.jpg 1080w,
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/720/dio_s_world_part_7_pages_124-143_00.jpg 720w,
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/360/dio_s_world_part_7_pages_124-143_00.jpg 360w
      " sizes="
      (min-width: 72em) 72em,
      (min-width: 54em) 54em,
      (min-width: 30em) 36em,
      22em
      " alt="
      An overview of the pages in the chapter Dio’s World Part 7 from JoJo’s Bizarre Adventure.
      " />
  </a>
  <figcaption class="typo-s">
    <p>In <em>JoJo</em>, there is no risk of the action being stalled because of orthogonal page layouts.</p>
  </figcaption>
</figure>

</div>

<p>Since almost all of the panels in the sequence represent a distinct action in a distinct moment in time, and since most of the pages in the sequence are composed of multiple panels, a lot of panels/actions per page involve a fast-paced narrative rhythm.</p>

<p>More panels → more actions → faster tempo.</p>

<div class="figures">
  

<figure class="image-xl" id="dio_s_world_part_7_pages_124-143_layout_structure_00.jpg">
  <a class="ratio" href="../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/1440/dio_s_world_part_7_pages_124-143_layout_structure_00.jpg" style="padding-bottom: 35.85738539898132%;background-color: #D6D6D6;" target="_blank">
    <img loading="lazy" src="
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/1440/dio_s_world_part_7_pages_124-143_layout_structure_00.jpg
      " srcset="
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/2880/dio_s_world_part_7_pages_124-143_layout_structure_00.jpg 2880w,
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/2160/dio_s_world_part_7_pages_124-143_layout_structure_00.jpg 2160w,
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/1440/dio_s_world_part_7_pages_124-143_layout_structure_00.jpg 1440w,
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/1080/dio_s_world_part_7_pages_124-143_layout_structure_00.jpg 1080w,
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/720/dio_s_world_part_7_pages_124-143_layout_structure_00.jpg 720w,
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/360/dio_s_world_part_7_pages_124-143_layout_structure_00.jpg 360w
      " sizes="
      (min-width: 72em) 72em,
      (min-width: 54em) 54em,
      (min-width: 30em) 36em,
      22em
      " alt="
      The layout structure of the pages in the chapter Dio’s World Part 7 from JoJo’s Bizarre Adventure.
      " />
  </a>
  <figcaption class="typo-s">
    <p>The layout structure of the pages in <em>Dio’s World Part 7</em>.</p>
  </figcaption>
</figure>

</div>

<p>But what happens when we reach page 138? The number of panels/actions per page drops drastically: from an average of 3,25 panels/actions per page on pages 126–137, we get to an average of 1,00 on pages 138–141, to get back again to a higher average of 4,50 on pages 142–143.</p>

<p>What is the deal with pages 138–141?</p>

<div class="figures">
  

<figure class="image-xl" id="dio_s_world_part_7_pages_124-143_layout_structure_01.jpg">
  <a class="ratio" href="../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/1440/dio_s_world_part_7_pages_124-143_layout_structure_01.jpg" style="padding-bottom: 35.85738539898132%;background-color: #D6D6D6;" target="_blank">
    <img loading="lazy" src="
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/1440/dio_s_world_part_7_pages_124-143_layout_structure_01.jpg
      " srcset="
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/2880/dio_s_world_part_7_pages_124-143_layout_structure_01.jpg 2880w,
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/2160/dio_s_world_part_7_pages_124-143_layout_structure_01.jpg 2160w,
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/1440/dio_s_world_part_7_pages_124-143_layout_structure_01.jpg 1440w,
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/1080/dio_s_world_part_7_pages_124-143_layout_structure_01.jpg 1080w,
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/720/dio_s_world_part_7_pages_124-143_layout_structure_01.jpg 720w,
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/360/dio_s_world_part_7_pages_124-143_layout_structure_01.jpg 360w
      " sizes="
      (min-width: 72em) 72em,
      (min-width: 54em) 54em,
      (min-width: 30em) 36em,
      22em
      " alt="
      The layout structure of the pages in the chapter Dio’s World Part 7 from JoJo’s Bizarre Adventure.
      " />
  </a>
</figure>

</div>

<p>In these pages, Dio reveals his power and lets his <em>stand</em>, The World, stop the time for the first time.</p>

<p>So, how does Araki convey the stoppage of time at the level of the sequence of pages?</p>

<p>He first hastens the narrative tempo by having a high number of panels per page before the major plot event on pages 126–137, and then he purposely slows it down by abruptly decreasing the number of panels per page so that one and only one panel corresponds to each of the four pages 138–141.</p>

<div class="figures">
  

<figure class="image-xl" id="dio_s_world_part_7_pages_138-141_00.jpg">
  <a class="ratio" href="../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/1440/dio_s_world_part_7_pages_138-141_00.jpg" style="padding-bottom: 35.48387096774194%;background-color: #D6D6D6;" target="_blank">
    <img loading="lazy" src="
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/1440/dio_s_world_part_7_pages_138-141_00.jpg
      " srcset="
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/2880/dio_s_world_part_7_pages_138-141_00.jpg 2880w,
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/2160/dio_s_world_part_7_pages_138-141_00.jpg 2160w,
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/1440/dio_s_world_part_7_pages_138-141_00.jpg 1440w,
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/1080/dio_s_world_part_7_pages_138-141_00.jpg 1080w,
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/720/dio_s_world_part_7_pages_138-141_00.jpg 720w,
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/360/dio_s_world_part_7_pages_138-141_00.jpg 360w
      " sizes="
      (min-width: 72em) 72em,
      (min-width: 54em) 54em,
      (min-width: 30em) 36em,
      22em
      " alt="
      The pages 138–141 in the chapter Dio’s World Part 7 from JoJo’s Bizarre Adventure.
      " />
  </a>
</figure>

</div>

<p>But that is not all. He further slows the narrative tempo down by purposely stretching the length of one single action—the first few steps that Dio takes in the frozen time to engage Kakyoin and get him into the radius of action of The World—into three of those four pages.</p>

<p>An action that lasts just a couple of seconds is thus represented on three different pages, dilating our perception of time. By comparison, the actions in the pages immediately before (pages 134–137) last at least 20+ seconds in total.</p>

<h3 id="the-cliffhanger">The cliffhanger</h3>

<p>And just to put the icing on the cake, Araki builds a cliffhanger on pages 136–137—right before the big revelation.</p>

<div class="figures">
  

<figure class="image-xl" id="dio_s_world_part_7_pages_136-137_00.jpg">
  <a class="ratio" href="../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/1440/dio_s_world_part_7_pages_136-137_00.jpg" style="padding-bottom: 79.16666666666666%;background-color: #D6D6D6;" target="_blank">
    <img loading="lazy" src="
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/1440/dio_s_world_part_7_pages_136-137_00.jpg
      " srcset="
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/2880/dio_s_world_part_7_pages_136-137_00.jpg 2880w,
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/2160/dio_s_world_part_7_pages_136-137_00.jpg 2160w,
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/1440/dio_s_world_part_7_pages_136-137_00.jpg 1440w,
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/1080/dio_s_world_part_7_pages_136-137_00.jpg 1080w,
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/720/dio_s_world_part_7_pages_136-137_00.jpg 720w,
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/360/dio_s_world_part_7_pages_136-137_00.jpg 360w
      " sizes="
      (min-width: 72em) 72em,
      (min-width: 54em) 54em,
      (min-width: 30em) 36em,
      22em
      " alt="
      The pages 140–141 in the chapter Dio’s World Part 7 from JoJo’s Bizarre Adventure.
      " />
  </a>
</figure>

</div>

<p>After having a confident Kakyoin deliver a line that seems to anticipate his victory over Dio at the beginning of page 136, Araki closes the spread by letting an all but frightened Dio Brando utter a sentence that forewarns a potential overturning of the situation in the very last panel of the left-hand page 137.</p>

<p>Since page 137 is the last page in the spread, we readers have to turn the page to move the plot forward and learn what Dio will do.</p>

<p>The suspense caused by the cliffhanger indeed motivates us to reach the next page, but it also contributes incidentally to further dilating our perception of time. Turning that paper page becomes particularly “heavy” as we perceive it as an obstacle that slows down our reading experience.</p>

<h2 id="the-sequence-of-panels-and-their-elements">The sequence of panels and their elements</h2>

<p>Let us further focus on the sequence of panels and elements in the panels on pages 138–141. As already mentioned, each of these pages coincides with a single, full-page panel.</p>

<div class="figures">
  

<figure class="image-xl" id="dio_s_world_part_7_pages_138-139_00.jpg">
  <a class="ratio" href="../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/1440/dio_s_world_part_7_pages_138-139_00.jpg" style="padding-bottom: 79.16666666666666%;background-color: #D6D6D6;" target="_blank">
    <img loading="lazy" src="
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/1440/dio_s_world_part_7_pages_138-139_00.jpg
      " srcset="
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/2880/dio_s_world_part_7_pages_138-139_00.jpg 2880w,
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/2160/dio_s_world_part_7_pages_138-139_00.jpg 2160w,
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/1440/dio_s_world_part_7_pages_138-139_00.jpg 1440w,
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/1080/dio_s_world_part_7_pages_138-139_00.jpg 1080w,
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/720/dio_s_world_part_7_pages_138-139_00.jpg 720w,
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/360/dio_s_world_part_7_pages_138-139_00.jpg 360w
      " sizes="
      (min-width: 72em) 72em,
      (min-width: 54em) 54em,
      (min-width: 30em) 36em,
      22em
      " alt="
      The pages 138–139 in the chapter Dio’s World Part 7 from JoJo’s Bizarre Adventure.
      " />
  </a>
</figure>

</div>

<p>The first full-page panel on the right-hand page 138 shows us the exact moment in which Dio Brando and The World stop the time. From the first glance, the panel looks quite different not only from the next three full-page panels but also from the rest of the panels in <em>Dio’s World Part 7</em>:</p>

<ul>
  <li>it is the only panel in the chapter that has no gutters at all and extends beyond the trim area of the page</li>
  <li>it is the only panel that has a speech bubble with inverted colors, its text in white and bubble in black</li>
  <li>its background, void of details, is a mass of motion lines that lets us fully focus on the plastic pose taken by the two characters</li>
</ul>

<p>By standing out from the others, it indeed better highlights the key action it represents. However, its dissimilarity has also a secondary effect. Since the panel and its elements have a few traits that we readers are not much used to, we require a bit more brainpower—and thus a bit more time—to fully process them.</p>

<p>Moreover, the drawing, a pleasure for the eyes, is one of the rare moments in which, as readers, we have the chance to see The World projected in its entire majesty.</p>

<p>It is a Wow! drawing for a Wow! moment. Its beauty catches our attention and makes our eyes linger on the page more than usual, further slowing us down.</p>

<p>The second full-page panel on the left-hand page 139 is, on the other hand, quite a different one. It is almost a reverse shot where we can see the Cairo skyline and Dio from behind, staring at Kakyoin. Judging by his pose, not more than a fraction of a second has passed since the preceding panel. However, the abundance of details in the background makes our eyes linger even more, and that fraction seems to last much longer.</p>

<p>There is no onomatopoeia, so silence is king. Kakyoin’s balance is precarious. A minaret is falling with no dust. Dio is literally out of the panel frame as if he were staring at a static painting. Araki gives us a lot of hints about what is going on, but we do not get it quite yet since, until now, as first-time readers, we have no clue about Dio’s superpower.</p>

<div class="figures">
  

<figure class="image-xl" id="dio_s_world_part_7_pages_140-141_00.jpg">
  <a class="ratio" href="../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/1440/dio_s_world_part_7_pages_140-141_00.jpg" style="padding-bottom: 79.16666666666666%;background-color: #D6D6D6;" target="_blank">
    <img loading="lazy" src="
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/1440/dio_s_world_part_7_pages_140-141_00.jpg
      " srcset="
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/2880/dio_s_world_part_7_pages_140-141_00.jpg 2880w,
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/2160/dio_s_world_part_7_pages_140-141_00.jpg 2160w,
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/1440/dio_s_world_part_7_pages_140-141_00.jpg 1440w,
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/1080/dio_s_world_part_7_pages_140-141_00.jpg 1080w,
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/720/dio_s_world_part_7_pages_140-141_00.jpg 720w,
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/360/dio_s_world_part_7_pages_140-141_00.jpg 360w
      " sizes="
      (min-width: 72em) 72em,
      (min-width: 54em) 54em,
      (min-width: 30em) 36em,
      22em
      " alt="
      The pages 140–141 in the chapter Dio’s World Part 7 from JoJo’s Bizarre Adventure.
      " />
  </a>
</figure>

</div>

<p>Not until we reach next spread, pages 140–141. Everything in the full-page panel on page 140 looks the same as on page 139. Frozen. Kakyoin’s balance is still precarious. Nothing has moved. Nothing but Dio Brando. That b*****d got rid of his rags, opened a gap in Hierophant Green’s minefield, and is now approaching Kakyoin.</p>

<p>The full-page panel on page 141 is just the same. Still frozen. Dio’s rags are suspended in mid-air. Yet Dio Brando took another few steps, and he is halfway from Kakyoin, who still stands in precarious balance, out of touch with the world. “What’s going on?!?” we ask ourselves.</p>

<p>Disoriented, we glance back and forth between pages 140 and 141, trying to solve the riddle. Both pages seem to look alike until we realize that they are not.</p>

<p>I like to imagine that Araki put these two pages in front of each other on purpose, to let us play spot the differences and further spend time on the spread. And the fraction of time that it takes Dio to jump from a dome to a tower becomes an eternity in our inner time, while we look at the effects of his sky walk, slowly realize what he has done, and worry about the potential aftermath.</p>

<h2 id="the-closure">The closure</h2>

<p>After the peak of the climax, Araki makes everything clear in the last spread in <em>Dio’s World Part 7</em>, where the narrative rhythm returns to the usual, with an average of 4,50 panels per page.</p>

<div class="figures">
  

<figure class="image-xl" id="dio_s_world_part_7_pages_142-143_00.jpg">
  <a class="ratio" href="../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/1440/dio_s_world_part_7_pages_142-143_00.jpg" style="padding-bottom: 79.16666666666666%;background-color: #D6D6D6;" target="_blank">
    <img loading="lazy" src="
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/1440/dio_s_world_part_7_pages_142-143_00.jpg
      " srcset="
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/2880/dio_s_world_part_7_pages_142-143_00.jpg 2880w,
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/2160/dio_s_world_part_7_pages_142-143_00.jpg 2160w,
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/1440/dio_s_world_part_7_pages_142-143_00.jpg 1440w,
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/1080/dio_s_world_part_7_pages_142-143_00.jpg 1080w,
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/720/dio_s_world_part_7_pages_142-143_00.jpg 720w,
      ../media/posts-optimized/the-flow-of-time-in-dio-s-world-part-7/images/360/dio_s_world_part_7_pages_142-143_00.jpg 360w
      " sizes="
      (min-width: 72em) 72em,
      (min-width: 54em) 54em,
      (min-width: 30em) 36em,
      22em
      " alt="
      The pages 142–143 in the chapter Dio’s World Part 7 from JoJo’s Bizarre Adventure.
      " />
  </a>
</figure>

</div>

<p>Page 142 has six panels, coupled two by two.</p>

<p>The panels in each pair share the same camera angle and thus point to the same frozen, unchanging background. While Dio moves between frames, everything else stays immutable.</p>

<p>In the first two panels of page 142, Dio moves a rock out of his path. A still clock is well framed in the center of the panel. Its hands do not move.</p>

<p>In case it is not clear enough, in the last panel of the page, Araki has Dio explicitly declare that time has stopped. Dio is now one step closer to Kakyoin, who is still out of touch with the world….</p>

<div class="footnotes" role="doc-endnotes">
  <ol>
    <li id="fn:spread" role="doc-endnote">
      <p>In a printed book the right-hand page is called the recto and the back of it, a left-hand page, is called the verso. A double page of a verso and a recto is called a spread.</p>

      <p>Read more on <a href="https://www.w3.org/community/ppl/wiki/Western_Layout_Requirements#Pages" title="Western Layout Requirements / Pages at Wikipedia">Western Layout Requirements / Pages</a> at Wikipedia. <a href="#fnref:spread" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
  </ol>
</div>]]></content><author><name>Andrea Buran</name></author><category term="JoJo’s Bizarre Adventure" /><category term="language of comics" /><category term="manga" /><category term="time" /><summary type="html"><![CDATA[How did Hirohiko Araki design the flow of time in the chapter “Dio’s World Part 7” from the manga “JoJo’s Bizarre Adventure”?]]></summary></entry><entry><title type="html">Multilingual sites in Jekyll, Part 4</title><link href="https://www.andreaburan.com/post/multilingual-sites-in-jekyll-4.html" rel="alternate" type="text/html" title="Multilingual sites in Jekyll, Part 4" /><published>2021-08-15T07:00:00+02:00</published><updated>2021-08-15T07:00:00+02:00</updated><id>https://www.andreaburan.com/post/multilingual-sites-in-jekyll-4</id><content type="html" xml:base="https://www.andreaburan.com/post/multilingual-sites-in-jekyll-4.html"><![CDATA[<ul class="toc" id="markdown-toc">
  <li><a href="#multilingual-sitemaps" id="markdown-toc-multilingual-sitemaps">Multilingual sitemaps</a>    <ul>
      <li><a href="#sitemap-index-file" id="markdown-toc-sitemap-index-file">Sitemap index file</a></li>
      <li><a href="#sitemap-files" id="markdown-toc-sitemap-files">Sitemap files</a></li>
      <li><a href="#rss-feed" id="markdown-toc-rss-feed">RSS feed</a></li>
      <li><a href="#page-not-found" id="markdown-toc-page-not-found">Page not found</a></li>
    </ul>
  </li>
  <li><a href="#resources" id="markdown-toc-resources">Resources</a></li>
  <li><a href="#afterword" id="markdown-toc-afterword">Afterword</a></li>
</ul>

<h2 id="multilingual-sitemaps">Multilingual sitemaps</h2>

<p>To serve a multilingual sitemap, we need to create a <a href="https://www.sitemaps.org/protocol.html#index" title="Sitemaps XML Format, Sitemap index">Sitemap index</a> file and list a Sitemap file for each language we support.</p>

<h3 id="sitemap-index-file">Sitemap index file</h3>

<p>We place the page named <code class="language-plaintext highlighter-rouge">sitemap.html</code> in the root directory of the site. It points to the other localized sitemaps in the respective language subfolders.</p>

<div class="language-liquid code-l highlighter-rouge"><div class="highlight"><pre class="highlight"><code>---
layout: none

sitemap:
  excluded: true
---

&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"&gt;

  <span class="p">{%-</span><span class="w"> </span><span class="nt">assign</span><span class="w"> </span><span class="nv">pages</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nv">site</span><span class="p">.</span><span class="nv">pages</span><span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="nf">where</span><span class="p">:</span><span class="w"> </span><span class="s1">'language_reference'</span><span class="p">,</span><span class="w"> </span><span class="s1">'sitemap'</span><span class="w"> </span><span class="p">%}</span>

  <span class="p">{%-</span><span class="w"> </span><span class="nt">for</span><span class="w"> </span><span class="nv">page</span><span class="w"> </span><span class="nt">in</span><span class="w"> </span><span class="nv">pages</span><span class="w"> </span><span class="p">%}</span>
    &lt;sitemap&gt;
      &lt;loc&gt;<span class="p">{{</span><span class="w"> </span><span class="nv">site</span><span class="p">.</span><span class="nv">absoluteurl</span><span class="w"> </span><span class="p">}}{{</span><span class="w"> </span><span class="nv">page</span><span class="p">.</span><span class="nv">url</span><span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="nf">remove</span><span class="p">:</span><span class="w"> </span><span class="s1">'index.html'</span><span class="w"> </span><span class="p">}}</span>&lt;/loc&gt;

      <span class="p">{%-</span><span class="w"> </span><span class="kr">if</span><span class="w"> </span><span class="nv">page</span><span class="p">.</span><span class="nv">sitemap</span><span class="p">.</span><span class="nv">lastmod</span><span class="w"> </span><span class="p">%}</span>
        <span class="p">{%-</span><span class="w"> </span><span class="nt">assign</span><span class="w"> </span><span class="nv">lastmod</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nv">page</span><span class="p">.</span><span class="nv">sitemap</span><span class="p">.</span><span class="nv">lastmod</span><span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="nf">date</span><span class="p">:</span><span class="w"> </span><span class="s1">'%Y-%m-%d'</span><span class="w"> </span><span class="p">%}</span>
      <span class="p">{%-</span><span class="w"> </span><span class="kr">elsif</span><span class="w"> </span><span class="nv">page</span><span class="p">.</span><span class="nv">date</span><span class="w"> </span><span class="p">%}</span>
        <span class="p">{%-</span><span class="w"> </span><span class="nt">assign</span><span class="w"> </span><span class="nv">lastmod</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nv">page</span><span class="p">.</span><span class="nv">date</span><span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="nf">date_to_xmlschema</span><span class="w"> </span><span class="p">%}</span>
      <span class="p">{%-</span><span class="w"> </span><span class="kr">else</span><span class="w"> </span><span class="p">%}</span>
        <span class="p">{%-</span><span class="w"> </span><span class="nt">assign</span><span class="w"> </span><span class="nv">lastmod</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nv">site</span><span class="p">.</span><span class="nv">time</span><span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="nf">date_to_xmlschema</span><span class="w"> </span><span class="p">%}</span>
      <span class="p">{%-</span><span class="w"> </span><span class="kr">endif</span><span class="w"> </span><span class="p">%}</span>
      &lt;lastmod&gt;<span class="p">{{</span><span class="w"> </span><span class="nv">lastmod</span><span class="w"> </span><span class="p">}}</span>&lt;/lastmod&gt;
    &lt;/sitemap&gt;
  <span class="p">{%-</span><span class="w"> </span><span class="nt">endfor</span><span class="w"> </span><span class="p">%}</span>

&lt;/sitemapindex&gt;
</code></pre></div></div>

<p>By setting the following variables in the front matter of the Sitemap index file:</p>

<div class="language-yaml code-m highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="na">sitemap</span><span class="pi">:</span>
  <span class="na">excluded</span><span class="pi">:</span> <span class="no">true</span>
</code></pre></div></div>

<p>we make sure to exclude it from the list of pages returned in each language Sitemap file.</p>

<h3 id="sitemap-files">Sitemap files</h3>

<p>We then place a dedicated <code class="language-plaintext highlighter-rouge">sitemap.xml</code> page in each of the language subdirectories of the site. For example, here is the front matter of the English page <code class="language-plaintext highlighter-rouge">sitemap.xml</code>:</p>

<div class="language-liquid code-l highlighter-rouge"><div class="highlight"><pre class="highlight"><code>---
layout: none

title: English Sitemap

language: en
language_reference: sitemap

sitemap:
  excluded: true
---

&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"&gt;

  <span class="p">{%-</span><span class="w"> </span><span class="nt">assign</span><span class="w"> </span><span class="nv">posts</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nv">site</span><span class="p">.</span><span class="nv">posts</span><span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="nf">sort</span><span class="p">:</span><span class="w"> </span><span class="s1">'date'</span><span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="nf">where</span><span class="p">:</span><span class="w"> </span><span class="s1">'language'</span><span class="p">,</span><span class="w"> </span><span class="nv">page</span><span class="p">.</span><span class="nv">language</span><span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="nf">where</span><span class="p">:</span><span class="w"> </span><span class="s1">'published'</span><span class="p">,</span><span class="w"> </span><span class="kc">true</span><span class="w"> </span><span class="p">%}</span>

  <span class="p">{%-</span><span class="w"> </span><span class="nt">for</span><span class="w"> </span><span class="nv">post</span><span class="w"> </span><span class="nt">in</span><span class="w"> </span><span class="nv">posts</span><span class="w"> </span><span class="na">reversed</span><span class="w"> </span><span class="p">%}</span>
    <span class="p">{%-</span><span class="w"> </span><span class="kr">unless</span><span class="w"> </span><span class="nv">post</span><span class="p">.</span><span class="nv">sitemap</span><span class="p">.</span><span class="nv">excluded</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="kc">true</span><span class="w"> </span><span class="p">%}</span>
    &lt;url&gt;
      &lt;loc&gt;<span class="p">{{</span><span class="w"> </span><span class="nv">site</span><span class="p">.</span><span class="nv">absoluteurl</span><span class="w"> </span><span class="p">}}{{</span><span class="w"> </span><span class="nv">post</span><span class="p">.</span><span class="nv">url</span><span class="w"> </span><span class="p">}}</span>&lt;/loc&gt;

      <span class="p">{%-</span><span class="w"> </span><span class="kr">if</span><span class="w"> </span><span class="nv">post</span><span class="p">.</span><span class="nv">sitemap</span><span class="p">.</span><span class="nv">lastmod</span><span class="w"> </span><span class="p">%}</span>
        <span class="p">{%-</span><span class="w"> </span><span class="nt">assign</span><span class="w"> </span><span class="nv">lastmod</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nv">post</span><span class="p">.</span><span class="nv">sitemap</span><span class="p">.</span><span class="nv">lastmod</span><span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="nf">date</span><span class="p">:</span><span class="w"> </span><span class="s1">'%Y-%m-%d'</span><span class="w"> </span><span class="p">%}</span>
      <span class="p">{%-</span><span class="w"> </span><span class="kr">elsif</span><span class="w"> </span><span class="nv">post</span><span class="p">.</span><span class="nv">date</span><span class="w"> </span><span class="p">%}</span>
        <span class="p">{%-</span><span class="w"> </span><span class="nt">assign</span><span class="w"> </span><span class="nv">lastmod</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nv">post</span><span class="p">.</span><span class="nv">date</span><span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="nf">date_to_xmlschema</span><span class="w"> </span><span class="p">%}</span>
      <span class="p">{%-</span><span class="w"> </span><span class="kr">else</span><span class="w"> </span><span class="p">%}</span>
        <span class="p">{%-</span><span class="w"> </span><span class="nt">assign</span><span class="w"> </span><span class="nv">lastmod</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nv">site</span><span class="p">.</span><span class="nv">time</span><span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="nf">date_to_xmlschema</span><span class="w"> </span><span class="p">%}</span>
      <span class="p">{%-</span><span class="w"> </span><span class="kr">endif</span><span class="w"> </span><span class="p">%}</span>
      &lt;lastmod&gt;<span class="p">{{</span><span class="w"> </span><span class="nv">lastmod</span><span class="w"> </span><span class="p">}}</span>&lt;/lastmod&gt;

      <span class="p">{%-</span><span class="w"> </span><span class="kr">if</span><span class="w"> </span><span class="nv">post</span><span class="p">.</span><span class="nv">sitemap</span><span class="p">.</span><span class="nv">changefreq</span><span class="w"> </span><span class="p">%}</span>
        <span class="p">{%-</span><span class="w"> </span><span class="nt">assign</span><span class="w"> </span><span class="nv">changefreq</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nv">post</span><span class="p">.</span><span class="nv">sitemap</span><span class="p">.</span><span class="nv">changefreq</span><span class="w"> </span><span class="p">%}</span>
      <span class="p">{%-</span><span class="w"> </span><span class="kr">else</span><span class="w"> </span><span class="p">%}</span>
        <span class="p">{%-</span><span class="w"> </span><span class="nt">assign</span><span class="w"> </span><span class="nv">changefreq</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s1">'monthly'</span><span class="w"> </span><span class="p">%}</span>
      <span class="p">{%-</span><span class="w"> </span><span class="kr">endif</span><span class="w"> </span><span class="p">%}</span>
      &lt;changefreq&gt;<span class="p">{{</span><span class="w"> </span><span class="nv">changefreq</span><span class="w"> </span><span class="p">}}</span>&lt;/changefreq&gt;

      <span class="p">{%-</span><span class="w"> </span><span class="kr">if</span><span class="w"> </span><span class="nv">post</span><span class="p">.</span><span class="nv">sitemap</span><span class="p">.</span><span class="nv">priority</span><span class="w"> </span><span class="p">%}</span>
        <span class="p">{%-</span><span class="w"> </span><span class="nt">assign</span><span class="w"> </span><span class="nv">priority</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nv">post</span><span class="p">.</span><span class="nv">sitemap</span><span class="p">.</span><span class="nv">priority</span><span class="w"> </span><span class="p">%}</span>
      <span class="p">{%-</span><span class="w"> </span><span class="kr">else</span><span class="w"> </span><span class="p">%}</span>
        <span class="p">{%-</span><span class="w"> </span><span class="nt">assign</span><span class="w"> </span><span class="nv">priority</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0.5</span><span class="w"> </span><span class="p">%}</span>
      <span class="p">{%-</span><span class="w"> </span><span class="kr">endif</span><span class="w"> </span><span class="p">%}</span>
      &lt;priority&gt;<span class="p">{{</span><span class="w"> </span><span class="nv">priority</span><span class="w"> </span><span class="p">}}</span>&lt;/priority&gt;
    &lt;/url&gt;
    <span class="p">{%-</span><span class="w"> </span><span class="kr">endunless</span><span class="w"> </span><span class="p">%}</span>
  <span class="p">{%-</span><span class="w"> </span><span class="nt">endfor</span><span class="w"> </span><span class="p">%}</span>

  <span class="p">{%-</span><span class="w"> </span><span class="nt">assign</span><span class="w"> </span><span class="nv">pages</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nv">site</span><span class="p">.</span><span class="nv">pages</span><span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="nf">where</span><span class="p">:</span><span class="w"> </span><span class="s1">'language'</span><span class="p">,</span><span class="w"> </span><span class="nv">page</span><span class="p">.</span><span class="nv">language</span><span class="w"> </span><span class="p">%}</span>

  <span class="p">{%-</span><span class="w"> </span><span class="nt">for</span><span class="w"> </span><span class="nv">page</span><span class="w"> </span><span class="nt">in</span><span class="w"> </span><span class="nv">pages</span><span class="w"> </span><span class="p">%}</span>
    <span class="p">{%-</span><span class="w"> </span><span class="kr">unless</span><span class="w"> </span><span class="nv">page</span><span class="p">.</span><span class="nv">sitemap</span><span class="p">.</span><span class="nv">excluded</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="kc">true</span><span class="w"> </span><span class="p">%}</span>
    &lt;url&gt;
      &lt;loc&gt;<span class="p">{{</span><span class="w"> </span><span class="nv">site</span><span class="p">.</span><span class="nv">absoluteurl</span><span class="w"> </span><span class="p">}}{{</span><span class="w"> </span><span class="nv">page</span><span class="p">.</span><span class="nv">url</span><span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="nf">remove</span><span class="p">:</span><span class="w"> </span><span class="s1">'index.html'</span><span class="w"> </span><span class="p">}}</span>&lt;/loc&gt;

      <span class="p">{%-</span><span class="w"> </span><span class="kr">if</span><span class="w"> </span><span class="nv">post</span><span class="p">.</span><span class="nv">sitemap</span><span class="p">.</span><span class="nv">lastmod</span><span class="w"> </span><span class="p">%}</span>
        <span class="p">{%-</span><span class="w"> </span><span class="nt">assign</span><span class="w"> </span><span class="nv">lastmod</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nv">page</span><span class="p">.</span><span class="nv">sitemap</span><span class="p">.</span><span class="nv">lastmod</span><span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="nf">date</span><span class="p">:</span><span class="w"> </span><span class="s1">'%Y-%m-%d'</span><span class="w"> </span><span class="p">%}</span>
      <span class="p">{%-</span><span class="w"> </span><span class="kr">elsif</span><span class="w"> </span><span class="nv">post</span><span class="p">.</span><span class="nv">date</span><span class="w"> </span><span class="p">%}</span>
        <span class="p">{%-</span><span class="w"> </span><span class="nt">assign</span><span class="w"> </span><span class="nv">lastmod</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nv">page</span><span class="p">.</span><span class="nv">date</span><span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="nf">date_to_xmlschema</span><span class="w"> </span><span class="p">%}</span>
      <span class="p">{%-</span><span class="w"> </span><span class="kr">else</span><span class="w"> </span><span class="p">%}</span>
        <span class="p">{%-</span><span class="w"> </span><span class="nt">assign</span><span class="w"> </span><span class="nv">lastmod</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nv">site</span><span class="p">.</span><span class="nv">time</span><span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="nf">date_to_xmlschema</span><span class="w"> </span><span class="p">%}</span>
      <span class="p">{%-</span><span class="w"> </span><span class="kr">endif</span><span class="w"> </span><span class="p">%}</span>
      &lt;lastmod&gt;<span class="p">{{</span><span class="w"> </span><span class="nv">lastmod</span><span class="w"> </span><span class="p">}}</span>&lt;/lastmod&gt;

      <span class="p">{%-</span><span class="w"> </span><span class="kr">if</span><span class="w"> </span><span class="nv">page</span><span class="p">.</span><span class="nv">sitemap</span><span class="p">.</span><span class="nv">changefreq</span><span class="w"> </span><span class="p">%}</span>
        <span class="p">{%-</span><span class="w"> </span><span class="nt">assign</span><span class="w"> </span><span class="nv">changefreq</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nv">page</span><span class="p">.</span><span class="nv">sitemap</span><span class="p">.</span><span class="nv">changefreq</span><span class="w"> </span><span class="p">%}</span>
      <span class="p">{%-</span><span class="w"> </span><span class="kr">else</span><span class="w"> </span><span class="p">%}</span>
        <span class="p">{%-</span><span class="w"> </span><span class="nt">assign</span><span class="w"> </span><span class="nv">changefreq</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s1">'monthly'</span><span class="w"> </span><span class="p">%}</span>
      <span class="p">{%-</span><span class="w"> </span><span class="kr">endif</span><span class="w"> </span><span class="p">%}</span>
      &lt;changefreq&gt;<span class="p">{{</span><span class="w"> </span><span class="nv">changefreq</span><span class="w"> </span><span class="p">}}</span>&lt;/changefreq&gt;

      <span class="p">{%-</span><span class="w"> </span><span class="kr">if</span><span class="w"> </span><span class="nv">page</span><span class="p">.</span><span class="nv">sitemap</span><span class="p">.</span><span class="nv">priority</span><span class="w"> </span><span class="p">%}</span>
        <span class="p">{%-</span><span class="w"> </span><span class="nt">assign</span><span class="w"> </span><span class="nv">priority</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nv">page</span><span class="p">.</span><span class="nv">sitemap</span><span class="p">.</span><span class="nv">priority</span><span class="w"> </span><span class="p">%}</span>
      <span class="p">{%-</span><span class="w"> </span><span class="kr">else</span><span class="w"> </span><span class="p">%}</span>
        <span class="p">{%-</span><span class="w"> </span><span class="nt">assign</span><span class="w"> </span><span class="nv">priority</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0.3</span><span class="w"> </span><span class="p">%}</span>
      <span class="p">{%-</span><span class="w"> </span><span class="kr">endif</span><span class="w"> </span><span class="p">%}</span>
      &lt;priority&gt;<span class="p">{{</span><span class="w"> </span><span class="nv">priority</span><span class="w"> </span><span class="p">}}</span>&lt;/priority&gt;
    &lt;/url&gt;
    <span class="p">{%-</span><span class="w"> </span><span class="kr">endunless</span><span class="w"> </span><span class="p">%}</span>
  <span class="p">{%-</span><span class="w"> </span><span class="nt">endfor</span><span class="w"> </span><span class="p">%}</span>

&lt;/urlset&gt;
</code></pre></div></div>

<p>Each page contains two <em>for</em> loops:</p>

<ul>
  <li>the first loop goes through the array of posts and returns those that do not have the variables <code class="language-plaintext highlighter-rouge">sitemap: excluded: true</code> set in their front matter</li>
  <li>the second loop goes through the array of pages and, similarly, returns those that do not have the variables <code class="language-plaintext highlighter-rouge">sitemap: excluded: true</code> set in their front matter</li>
</ul>

<p>We can override the <code class="language-plaintext highlighter-rouge">lastmod</code>, <code class="language-plaintext highlighter-rouge">changefreq</code>, and <code class="language-plaintext highlighter-rouge">priority</code> default values by setting the following variables in the front matter of the file:</p>

<div class="language-yaml code-m highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="na">sitemap</span><span class="pi">:</span>
  <span class="na">lastmod</span><span class="pi">:</span> <span class="s">2021-08-15 08:00:00 +0300</span>
  <span class="na">changefreq</span><span class="pi">:</span> <span class="s">monthly</span>
  <span class="na">priority</span><span class="pi">:</span> <span class="m">0.5</span>
</code></pre></div></div>

<p>Again, we can exclude a post or page from being returned in a sitemap by setting the following variables in the front matter of the file:</p>

<div class="language-yaml code-m highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="na">sitemap</span><span class="pi">:</span>
  <span class="na">excluded</span><span class="pi">:</span> <span class="no">true</span>
</code></pre></div></div>

<h3 id="rss-feed">RSS feed</h3>

<p><em>Coming soon…</em></p>

<h3 id="page-not-found">Page not found</h3>

<p><em>Coming soon…</em></p>

<h2 id="resources">Resources</h2>

<ul>
  <li><a href="https://forestry.io/blog/creating-a-multilingual-blog-with-jekyll/" title="Creating a multilingual blog with Jekyll">Creating a multilingual blog with Jekyll</a></li>
  <li><a href="https://sylvaindurand.org/making-jekyll-multilingual/" title="Making Jekyll multilingual">Making Jekyll multilingual</a></li>
  <li><a href="https://www.kooslooijesteijn.net/blog/multilingual-website-with-jekyll-collections" title="Making a multilingual website with Jekyll collections">Making a multilingual website with Jekyll collections</a></li>
  <li><a href="https://matthewlincoln.net/2020/03/01/multilingual-jekyll.html" title="Multilingual Jekyll: How The Programming Historian does that">Multilingual Jekyll: How The Programming Historian does that</a></li>
  <li><a href="https://www.usecue.com/blog/multilingual-jekyll-websites/" title="Multilingual Jekyll websites">Multilingual Jekyll websites</a></li>
</ul>

<h2 id="afterword">Afterword</h2>

<p>If you have any suggestions or spot something worth fixing, please feel free to either <a href="andreaburan.com/" title="Andrea Buran’s Sitefolio">drop me a line</a> or <a href="https://github.com/ranbureand/multilingual-experiment/issues">create an issue on GitHub</a>. Thoughts, critiques, suggestions are welcomed.</p>

<p>Thank you!</p>]]></content><author><name>Andrea Buran</name></author><category term="approach" /><category term="development" /><category term="Jekyll" /><category term="multilingual" /><category term="site" /><summary type="html"><![CDATA[This series of articles illustrates my approach to creating a multilingual site in Jekyll.]]></summary></entry><entry><title type="html">Multilingual sites in Jekyll, Part 3</title><link href="https://www.andreaburan.com/post/multilingual-sites-in-jekyll-3.html" rel="alternate" type="text/html" title="Multilingual sites in Jekyll, Part 3" /><published>2021-08-14T07:00:00+02:00</published><updated>2021-08-14T07:00:00+02:00</updated><id>https://www.andreaburan.com/post/multilingual-sites-in-jekyll-3</id><content type="html" xml:base="https://www.andreaburan.com/post/multilingual-sites-in-jekyll-3.html"><![CDATA[<ul class="toc" id="markdown-toc">
  <li><a href="#includes" id="markdown-toc-includes">Includes</a>    <ul>
      <li><a href="#headerhtml" id="markdown-toc-headerhtml">header.html</a>        <ul>
          <li><a href="#navigationhtml" id="markdown-toc-navigationhtml">navigation.html</a></li>
          <li><a href="#language-switchhtml" id="markdown-toc-language-switchhtml">language-switch.html</a>            <ul>
              <li><a href="#if-pagelayout--page" id="markdown-toc-if-pagelayout--page">if page.layout == ‘page’</a></li>
              <li><a href="#elsif-pagelayout--post" id="markdown-toc-elsif-pagelayout--post">elsif page.layout == ‘post’</a></li>
              <li><a href="#else" id="markdown-toc-else">else</a></li>
              <li><a href="#fallback-page" id="markdown-toc-fallback-page">Fallback page</a></li>
            </ul>
          </li>
          <li><a href="#titlehtml" id="markdown-toc-titlehtml">title.html</a></li>
        </ul>
      </li>
      <li><a href="#localizationshtml" id="markdown-toc-localizationshtml">localizations.html</a></li>
    </ul>
  </li>
</ul>

<h2 id="includes">Includes</h2>

<p>The purpose of most of the includes in the basic site is building the navigation.</p>

<h3 id="headerhtml">header.html</h3>

<p>The include <code class="language-plaintext highlighter-rouge">header.html</code> generates the header in the page. It, in turn, “includes” three more includes:</p>

<ul>
  <li><code class="language-plaintext highlighter-rouge">title.html</code></li>
  <li><code class="language-plaintext highlighter-rouge">navigation.html</code></li>
  <li><code class="language-plaintext highlighter-rouge">language-switch.html</code></li>
</ul>

<div class="language-liquid code-l highlighter-rouge"><div class="highlight"><pre class="highlight"><code>&lt;header&gt;
  <span class="p">{%</span><span class="w"> </span><span class="nt">include</span><span class="w"> </span>site-title.html<span class="w"> </span><span class="p">%}</span>
  &lt;nav&gt;
    <span class="p">{%</span><span class="w"> </span><span class="nt">include</span><span class="w"> </span>navigation.html<span class="w"> </span><span class="p">%}</span>

    <span class="p">{%</span><span class="w"> </span><span class="nt">include</span><span class="w"> </span>language-switch.html<span class="w"> </span><span class="p">%}</span>
  &lt;/nav&gt;
&lt;/header&gt;
</code></pre></div></div>

<h4 id="navigationhtml">navigation.html</h4>

<p>The include <code class="language-plaintext highlighter-rouge">navigation.html</code> generates an unordered list containing all the published pages with the same <code class="language-plaintext highlighter-rouge">language</code> variable as the current page.</p>

<div class="language-liquid code-l highlighter-rouge"><div class="highlight"><pre class="highlight"><code>&lt;ul&gt;
  <span class="p">{%-</span><span class="w"> </span><span class="nt">assign</span><span class="w"> </span><span class="nv">navigation_pages</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nv">site</span><span class="p">.</span><span class="nv">pages</span><span class="err">
</span><span class="w">    </span><span class="p">|</span><span class="w"> </span><span class="nf">where</span><span class="p">:</span><span class="w"> </span><span class="s1">'layout'</span><span class="p">,</span><span class="w"> </span><span class="s1">'page'</span><span class="err">
</span><span class="w">    </span><span class="p">|</span><span class="w"> </span><span class="nf">where</span><span class="p">:</span><span class="w"> </span><span class="s1">'language'</span><span class="p">,</span><span class="w"> </span><span class="nv">page</span><span class="p">.</span><span class="nv">language</span><span class="err">
</span><span class="w">    </span><span class="p">|</span><span class="w"> </span><span class="nf">where</span><span class="p">:</span><span class="w"> </span><span class="s1">'published'</span><span class="p">,</span><span class="w"> </span><span class="kc">true</span><span class="err">
</span><span class="w">    </span><span class="p">|</span><span class="w"> </span><span class="nf">sort</span><span class="p">:</span><span class="w"> </span><span class="s1">'order'</span><span class="w"> </span><span class="p">%}</span>
  <span class="p">{%-</span><span class="w"> </span><span class="nt">for</span><span class="w"> </span><span class="nv">navigation_page</span><span class="w"> </span><span class="nt">in</span><span class="w"> </span><span class="nv">navigation_pages</span><span class="w"> </span><span class="p">%}</span>
  &lt;li<span class="p">{%-</span><span class="w"> </span><span class="kr">if</span><span class="w"> </span><span class="nv">navigation_page</span><span class="p">.</span><span class="nv">title</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="nv">page</span><span class="p">.</span><span class="nv">title</span><span class="w"> </span><span class="p">%}</span> class="current"<span class="p">{%-</span><span class="w"> </span><span class="kr">endif</span><span class="w"> </span><span class="p">%}</span>&gt;
    &lt;a href="<span class="p">{{</span><span class="w"> </span><span class="nv">site</span><span class="p">.</span><span class="nv">baseurl</span><span class="w"> </span><span class="p">}}{{</span><span class="w"> </span><span class="nv">navigation_page</span><span class="p">.</span><span class="nv">url</span><span class="w"> </span><span class="p">}}</span>"&gt;<span class="p">{{</span><span class="w"> </span><span class="nv">navigation_page</span><span class="p">.</span><span class="nv">title</span><span class="w"> </span><span class="p">}}</span>&lt;/a&gt;
  &lt;/li&gt;
  <span class="p">{%-</span><span class="w"> </span><span class="nt">endfor</span><span class="w"> </span><span class="p">%}</span>
&lt;/ul&gt;
</code></pre></div></div>

<p>In the code above, we create a new variable named <code class="language-plaintext highlighter-rouge">navigation_pages</code> which returns a list of the pages that, <a href="/post/multilingual-sites-in-jekyll-2.html#front-matter">in their front matter</a>, have:</p>

<ul>
  <li>the <code class="language-plaintext highlighter-rouge">layout</code> variable set to <code class="language-plaintext highlighter-rouge">page</code></li>
  <li>the <code class="language-plaintext highlighter-rouge">language</code> variable set to the language of the current page (<code class="language-plaintext highlighter-rouge">page.language</code>)</li>
  <li>the <code class="language-plaintext highlighter-rouge">published</code> variable set to <code class="language-plaintext highlighter-rouge">true</code></li>
</ul>

<p>We order the list according to the <code class="language-plaintext highlighter-rouge">order</code> variable, then loop trough the array of pages and generate the list items of the unordered list.</p>

<p>Whenever the title of the current page in the array (<code class="language-plaintext highlighter-rouge">navigation_page.title</code>) matches the title of the current page (<code class="language-plaintext highlighter-rouge">page.title</code>), we add a class named <code class="language-plaintext highlighter-rouge">current</code> to the corresponding <code class="language-plaintext highlighter-rouge">&lt;li/&gt;</code> tag.</p>

<h4 id="language-switchhtml">language-switch.html</h4>

<p>The include <code class="language-plaintext highlighter-rouge">language-switch.html</code> generates an unordered list containing all the languages supported on the site. You can use the list to switch to other language translations of the current page/post, if available.</p>

<div class="language-liquid code-l highlighter-rouge"><div class="highlight"><pre class="highlight"><code>&lt;ul&gt;
  <span class="p">{%-</span><span class="w"> </span><span class="nt">for</span><span class="w"> </span><span class="nv">language</span><span class="w"> </span><span class="nt">in</span><span class="w"> </span><span class="nv">snippets.languages</span><span class="w"> </span><span class="p">%}</span>

    <span class="p">{%-</span><span class="w"> </span><span class="kr">if</span><span class="w"> </span><span class="nv">page</span><span class="p">.</span><span class="nv">layout</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="s1">'page'</span><span class="w"> </span><span class="p">%}</span>
      <span class="p">{%-</span><span class="w"> </span><span class="nt">assign</span><span class="w"> </span><span class="nv">navigation_pages</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nv">site</span><span class="p">.</span><span class="nv">pages</span><span class="err">
</span><span class="w">        </span><span class="p">|</span><span class="w"> </span><span class="nf">where</span><span class="p">:</span><span class="w"> </span><span class="s1">'language_reference'</span><span class="p">,</span><span class="w"> </span><span class="nv">page</span><span class="p">.</span><span class="nv">language_reference</span><span class="err">
</span><span class="w">        </span><span class="p">|</span><span class="w"> </span><span class="nf">where</span><span class="p">:</span><span class="w"> </span><span class="s1">'language'</span><span class="p">,</span><span class="w"> </span><span class="nv">language</span><span class="p">[</span><span class="mi">1</span><span class="p">].</span><span class="nv">slug</span><span class="w"> </span><span class="p">%}</span>
      <span class="p">{%-</span><span class="w"> </span><span class="kr">if</span><span class="w"> </span><span class="nv">navigation_pages</span><span class="p">.</span><span class="nf">size</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="p">%}</span>
        <span class="p">{%-</span><span class="w"> </span><span class="nt">for</span><span class="w"> </span><span class="nv">navigation_page</span><span class="w"> </span><span class="nt">in</span><span class="w"> </span><span class="nv">navigation_pages</span><span class="w"> </span><span class="p">%}</span>
          <span class="p">{%-</span><span class="w"> </span><span class="nt">assign</span><span class="w"> </span><span class="nv">url</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nv">site</span><span class="p">.</span><span class="nv">baseurl</span><span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="nf">append</span><span class="p">:</span><span class="w"> </span><span class="nv">navigation_page</span><span class="p">.</span><span class="nv">url</span><span class="w"> </span><span class="p">%}</span>
        <span class="p">{%-</span><span class="w"> </span><span class="nt">endfor</span><span class="w"> </span><span class="p">%}</span>
      <span class="p">{%-</span><span class="w"> </span><span class="kr">else</span><span class="w"> </span><span class="p">%}</span>
        <span class="p">{%-</span><span class="w"> </span><span class="nt">assign</span><span class="w"> </span><span class="nv">navigation_pages</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nv">site</span><span class="p">.</span><span class="nv">pages</span><span class="err">
</span><span class="w">          </span><span class="p">|</span><span class="w"> </span><span class="nf">where</span><span class="p">:</span><span class="w"> </span><span class="s1">'language_reference'</span><span class="p">,</span><span class="w"> </span><span class="nv">site</span><span class="p">.</span><span class="nv">fallback_page</span><span class="err">
</span><span class="w">          </span><span class="p">|</span><span class="w"> </span><span class="nf">where</span><span class="p">:</span><span class="w"> </span><span class="s1">'language'</span><span class="p">,</span><span class="w"> </span><span class="nv">language</span><span class="p">[</span><span class="mi">1</span><span class="p">].</span><span class="nv">slug</span><span class="w"> </span><span class="p">%}</span>
        <span class="p">{%-</span><span class="w"> </span><span class="nt">for</span><span class="w"> </span><span class="nv">navigation_page</span><span class="w"> </span><span class="nt">in</span><span class="w"> </span><span class="nv">navigation_pages</span><span class="w"> </span><span class="p">%}</span>
          <span class="p">{%-</span><span class="w"> </span><span class="nt">assign</span><span class="w"> </span><span class="nv">url</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nv">site</span><span class="p">.</span><span class="nv">baseurl</span><span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="nf">append</span><span class="p">:</span><span class="w"> </span><span class="nv">navigation_page</span><span class="p">.</span><span class="nv">url</span><span class="w"> </span><span class="p">%}</span>
        <span class="p">{%-</span><span class="w"> </span><span class="nt">endfor</span><span class="w"> </span><span class="p">%}</span>
      <span class="p">{%-</span><span class="w"> </span><span class="kr">endif</span><span class="w"> </span><span class="p">%}</span>

    <span class="p">{%-</span><span class="w"> </span><span class="kr">elsif</span><span class="w"> </span><span class="nv">page</span><span class="p">.</span><span class="nv">layout</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="s1">'post'</span><span class="w"> </span><span class="p">%}</span>
      <span class="p">{%-</span><span class="w"> </span><span class="nt">assign</span><span class="w"> </span><span class="nv">navigation_posts</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nv">site</span><span class="p">.</span><span class="nv">posts</span><span class="err">
</span><span class="w">        </span><span class="p">|</span><span class="w"> </span><span class="nf">where</span><span class="p">:</span><span class="w"> </span><span class="s1">'language_reference'</span><span class="p">,</span><span class="w"> </span><span class="nv">page</span><span class="p">.</span><span class="nv">language_reference</span><span class="err">
</span><span class="w">        </span><span class="p">|</span><span class="w"> </span><span class="nf">where</span><span class="p">:</span><span class="w"> </span><span class="s1">'language'</span><span class="p">,</span><span class="w"> </span><span class="nv">language</span><span class="p">[</span><span class="mi">1</span><span class="p">].</span><span class="nv">slug</span><span class="w"> </span><span class="p">%}</span>
      <span class="p">{%-</span><span class="w"> </span><span class="kr">if</span><span class="w"> </span><span class="nv">navigation_posts</span><span class="p">.</span><span class="nf">size</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="p">%}</span>
        <span class="p">{%-</span><span class="w"> </span><span class="nt">for</span><span class="w"> </span><span class="nv">navigation_post</span><span class="w"> </span><span class="nt">in</span><span class="w"> </span><span class="nv">navigation_posts</span><span class="w"> </span><span class="p">%}</span>
          <span class="p">{%-</span><span class="w"> </span><span class="nt">assign</span><span class="w"> </span><span class="nv">url</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nv">site</span><span class="p">.</span><span class="nv">baseurl</span><span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="nf">append</span><span class="p">:</span><span class="w"> </span><span class="nv">navigation_post</span><span class="p">.</span><span class="nv">url</span><span class="w"> </span><span class="p">%}</span>
        <span class="p">{%-</span><span class="w"> </span><span class="nt">endfor</span><span class="w"> </span><span class="p">%}</span>
      <span class="p">{%-</span><span class="w"> </span><span class="kr">else</span><span class="w"> </span><span class="p">%}</span>
        <span class="p">{%-</span><span class="w"> </span><span class="nt">assign</span><span class="w"> </span><span class="nv">navigation_pages</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nv">site</span><span class="p">.</span><span class="nv">pages</span><span class="err">
</span><span class="w">          </span><span class="p">|</span><span class="w"> </span><span class="nf">where</span><span class="p">:</span><span class="w"> </span><span class="s1">'language_reference'</span><span class="p">,</span><span class="w"> </span><span class="nv">site</span><span class="p">.</span><span class="nv">fallback_page</span><span class="err">
</span><span class="w">          </span><span class="p">|</span><span class="w"> </span><span class="nf">where</span><span class="p">:</span><span class="w"> </span><span class="s1">'language'</span><span class="p">,</span><span class="w"> </span><span class="nv">language</span><span class="p">[</span><span class="mi">1</span><span class="p">].</span><span class="nv">slug</span><span class="w"> </span><span class="p">%}</span>
        <span class="p">{%-</span><span class="w"> </span><span class="nt">for</span><span class="w"> </span><span class="nv">navigation_page</span><span class="w"> </span><span class="nt">in</span><span class="w"> </span><span class="nv">navigation_pages</span><span class="w"> </span><span class="p">%}</span>
          <span class="p">{%-</span><span class="w"> </span><span class="nt">assign</span><span class="w"> </span><span class="nv">url</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nv">site</span><span class="p">.</span><span class="nv">baseurl</span><span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="nf">append</span><span class="p">:</span><span class="w"> </span><span class="nv">navigation_page</span><span class="p">.</span><span class="nv">url</span><span class="w"> </span><span class="p">%}</span>
        <span class="p">{%-</span><span class="w"> </span><span class="nt">endfor</span><span class="w"> </span><span class="p">%}</span>
      <span class="p">{%-</span><span class="w"> </span><span class="kr">endif</span><span class="w"> </span><span class="p">%}</span>

    <span class="p">{%-</span><span class="w"> </span><span class="kr">else</span><span class="w"> </span><span class="p">%}</span>
      <span class="p">{%-</span><span class="w"> </span><span class="nt">assign</span><span class="w"> </span><span class="nv">navigation_pages</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nv">site</span><span class="p">.</span><span class="nv">pages</span><span class="err">
</span><span class="w">        </span><span class="p">|</span><span class="w"> </span><span class="nf">where</span><span class="p">:</span><span class="w"> </span><span class="s1">'language_reference'</span><span class="p">,</span><span class="w"> </span><span class="nv">site</span><span class="p">.</span><span class="nv">fallback_page</span><span class="err">
</span><span class="w">        </span><span class="p">|</span><span class="w"> </span><span class="nf">where</span><span class="p">:</span><span class="w"> </span><span class="s1">'language'</span><span class="p">,</span><span class="w"> </span><span class="nv">language</span><span class="p">[</span><span class="mi">1</span><span class="p">].</span><span class="nv">slug</span><span class="w"> </span><span class="p">%}</span>
      <span class="p">{%-</span><span class="w"> </span><span class="nt">for</span><span class="w"> </span><span class="nv">navigation_page</span><span class="w"> </span><span class="nt">in</span><span class="w"> </span><span class="nv">navigation_pages</span><span class="w"> </span><span class="p">%}</span>
        <span class="p">{%-</span><span class="w"> </span><span class="nt">assign</span><span class="w"> </span><span class="nv">url</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nv">site</span><span class="p">.</span><span class="nv">baseurl</span><span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="nf">append</span><span class="p">:</span><span class="w"> </span><span class="nv">navigation_page</span><span class="p">.</span><span class="nv">url</span><span class="w"> </span><span class="p">%}</span>
      <span class="p">{%-</span><span class="w"> </span><span class="nt">endfor</span><span class="w"> </span><span class="p">%}</span>

    <span class="p">{%-</span><span class="w"> </span><span class="kr">endif</span><span class="w"> </span><span class="p">%}</span>
    &lt;li<span class="p">{%-</span><span class="w"> </span><span class="kr">if</span><span class="w"> </span><span class="nv">language</span><span class="p">[</span><span class="mi">1</span><span class="p">].</span><span class="nv">slug</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="nv">page</span><span class="p">.</span><span class="nv">language</span><span class="w"> </span><span class="p">%}</span> class="current"<span class="p">{%-</span><span class="w"> </span><span class="kr">endif</span><span class="w"> </span><span class="p">%}</span>&gt;
      &lt;a href="<span class="p">{{</span><span class="w"> </span><span class="nv">url</span><span class="w"> </span><span class="p">}}</span>"&gt;<span class="p">{{</span><span class="w"> </span><span class="nv">language</span><span class="p">[</span><span class="mi">1</span><span class="p">].</span><span class="nv">value</span><span class="w"> </span><span class="p">}}</span>&lt;/a&gt;
    &lt;/li&gt;
  <span class="p">{%-</span><span class="w"> </span><span class="nt">endfor</span><span class="w"> </span><span class="p">%}</span>
&lt;/ul&gt;
</code></pre></div></div>

<p>In the code above, we loop through the languages defined in the <code class="language-plaintext highlighter-rouge">snippets.yml</code> file (read the section <a href="/post/multilingual-sites-in-jekyll-2.html#snippets">Snippets</a> for more details).</p>

<div class="language-yaml code-m highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="na">languages</span><span class="pi">:</span>
  <span class="na">en</span><span class="pi">:</span>
    <span class="na">value</span><span class="pi">:</span> <span class="s">English</span>
    <span class="na">slug</span><span class="pi">:</span> <span class="s">en</span>
  <span class="na">it</span><span class="pi">:</span>
    <span class="na">value</span><span class="pi">:</span> <span class="s">Italian</span>
    <span class="na">slug</span><span class="pi">:</span> <span class="s">it</span>
</code></pre></div></div>

<p>The <em>for</em> loop contains three different code blocks that run only if specific conditions are met. If we look only at its high-level structure:</p>

<div class="language-liquid code-l highlighter-rouge"><div class="highlight"><pre class="highlight"><code>&lt;ul&gt;
  <span class="p">{%-</span><span class="w"> </span><span class="nt">for</span><span class="w"> </span><span class="nv">language</span><span class="w"> </span><span class="nt">in</span><span class="w"> </span><span class="nv">snippets.languages</span><span class="w"> </span><span class="p">%}</span>

    <span class="p">{%-</span><span class="w"> </span><span class="kr">if</span><span class="w"> </span><span class="nv">page</span><span class="p">.</span><span class="nv">layout</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="s1">'page'</span><span class="w"> </span><span class="p">%}</span>
      &lt;!-- first code block --&gt;

    <span class="p">{%-</span><span class="w"> </span><span class="kr">elsif</span><span class="w"> </span><span class="nv">page</span><span class="p">.</span><span class="nv">layout</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="s1">'post'</span><span class="w"> </span><span class="p">%}</span>
      &lt;!-- second code block --&gt;

    <span class="p">{%-</span><span class="w"> </span><span class="kr">else</span><span class="w"> </span><span class="p">%}</span>
      &lt;!-- third code block --&gt;

    <span class="p">{%-</span><span class="w"> </span><span class="kr">endif</span><span class="w"> </span><span class="p">%}</span>
    &lt;li <span class="p">{%-</span><span class="w"> </span><span class="kr">if</span><span class="w"> </span><span class="nv">language</span><span class="p">[</span><span class="mi">1</span><span class="p">].</span><span class="nv">slug</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="nv">page</span><span class="p">.</span><span class="nv">language</span><span class="w"> </span><span class="p">%}</span> class="current"<span class="p">{%-</span><span class="w"> </span><span class="kr">endif</span><span class="w"> </span><span class="p">%}</span>&gt;
      &lt;a href="<span class="p">{{</span><span class="w"> </span><span class="nv">url</span><span class="w"> </span><span class="p">}}</span>"&gt;<span class="p">{{</span><span class="w"> </span><span class="nv">language</span><span class="p">[</span><span class="mi">1</span><span class="p">].</span><span class="nv">value</span><span class="w"> </span><span class="p">}}</span>&lt;/a&gt;
    &lt;/li&gt;
  <span class="p">{%-</span><span class="w"> </span><span class="nt">endfor</span><span class="w"> </span><span class="p">%}</span>
&lt;/ul&gt;
</code></pre></div></div>

<p>We run the first block of code only if the <code class="language-plaintext highlighter-rouge">layout</code> variable of the current page is set to <code class="language-plaintext highlighter-rouge">page</code>, else, if it is set to <code class="language-plaintext highlighter-rouge">post</code>, we run the second block of code, else, if it is set to anything else (or nothing at all), we run the third block of code.</p>

<p>After at least one of the code blocks has been run, we generate the list items of the unordered list.</p>

<p>Whenever the slug of the current language item of the array <code class="language-plaintext highlighter-rouge">snippets.languages</code> (<code class="language-plaintext highlighter-rouge">language[1].slug</code>) matches the language of the current page (<code class="language-plaintext highlighter-rouge">page.language</code>), we add a class named <code class="language-plaintext highlighter-rouge">current</code> to the corresponding <code class="language-plaintext highlighter-rouge">&lt;li/&gt;</code> tag.</p>

<h5 id="if-pagelayout--page">if page.layout == ‘page’</h5>

<div class="language-liquid code-l highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="p">{%-</span><span class="w"> </span><span class="kr">if</span><span class="w"> </span><span class="nv">page</span><span class="p">.</span><span class="nv">layout</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="s1">'page'</span><span class="w"> </span><span class="p">%}</span>
  <span class="p">{%-</span><span class="w"> </span><span class="nt">assign</span><span class="w"> </span><span class="nv">navigation_pages</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nv">site</span><span class="p">.</span><span class="nv">pages</span><span class="err">
</span><span class="w">    </span><span class="p">|</span><span class="w"> </span><span class="nf">where</span><span class="p">:</span><span class="w"> </span><span class="s1">'language_reference'</span><span class="p">,</span><span class="w"> </span><span class="nv">page</span><span class="p">.</span><span class="nv">language_reference</span><span class="err">
</span><span class="w">    </span><span class="p">|</span><span class="w"> </span><span class="nf">where</span><span class="p">:</span><span class="w"> </span><span class="s1">'language'</span><span class="p">,</span><span class="w"> </span><span class="nv">language</span><span class="p">[</span><span class="mi">1</span><span class="p">].</span><span class="nv">slug</span><span class="w"> </span><span class="p">%}</span>
  <span class="p">{%-</span><span class="w"> </span><span class="kr">if</span><span class="w"> </span><span class="nv">navigation_pages</span><span class="p">.</span><span class="nf">size</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="p">%}</span>
    <span class="p">{%-</span><span class="w"> </span><span class="nt">for</span><span class="w"> </span><span class="nv">navigation_page</span><span class="w"> </span><span class="nt">in</span><span class="w"> </span><span class="nv">navigation_pages</span><span class="w"> </span><span class="p">%}</span>
      <span class="p">{%-</span><span class="w"> </span><span class="nt">assign</span><span class="w"> </span><span class="nv">url</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nv">site</span><span class="p">.</span><span class="nv">baseurl</span><span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="nf">append</span><span class="p">:</span><span class="w"> </span><span class="nv">navigation_page</span><span class="p">.</span><span class="nv">url</span><span class="w"> </span><span class="p">%}</span>
    <span class="p">{%-</span><span class="w"> </span><span class="nt">endfor</span><span class="w"> </span><span class="p">%}</span>
  <span class="p">{%-</span><span class="w"> </span><span class="kr">else</span><span class="w"> </span><span class="p">%}</span>
    <span class="p">{%-</span><span class="w"> </span><span class="nt">assign</span><span class="w"> </span><span class="nv">navigation_pages</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nv">site</span><span class="p">.</span><span class="nv">pages</span><span class="err">
</span><span class="w">      </span><span class="p">|</span><span class="w"> </span><span class="nf">where</span><span class="p">:</span><span class="w"> </span><span class="s1">'language_reference'</span><span class="p">,</span><span class="w"> </span><span class="nv">site</span><span class="p">.</span><span class="nv">fallback_page</span><span class="err">
</span><span class="w">      </span><span class="p">|</span><span class="w"> </span><span class="nf">where</span><span class="p">:</span><span class="w"> </span><span class="s1">'language'</span><span class="p">,</span><span class="w"> </span><span class="nv">language</span><span class="p">[</span><span class="mi">1</span><span class="p">].</span><span class="nv">slug</span><span class="w"> </span><span class="p">%}</span>
    <span class="p">{%-</span><span class="w"> </span><span class="nt">for</span><span class="w"> </span><span class="nv">navigation_page</span><span class="w"> </span><span class="nt">in</span><span class="w"> </span><span class="nv">navigation_pages</span><span class="w"> </span><span class="p">%}</span>
      <span class="p">{%-</span><span class="w"> </span><span class="nt">assign</span><span class="w"> </span><span class="nv">url</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nv">site</span><span class="p">.</span><span class="nv">baseurl</span><span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="nf">append</span><span class="p">:</span><span class="w"> </span><span class="nv">navigation_page</span><span class="p">.</span><span class="nv">url</span><span class="w"> </span><span class="p">%}</span>
    <span class="p">{%-</span><span class="w"> </span><span class="nt">endfor</span><span class="w"> </span><span class="p">%}</span>
  <span class="p">{%-</span><span class="w"> </span><span class="kr">endif</span><span class="w"> </span><span class="p">%}</span>
</code></pre></div></div>

<p>What does the first block of code do?</p>

<div class="language-liquid code-l highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="p">{%-</span><span class="w"> </span><span class="nt">assign</span><span class="w"> </span><span class="nv">navigation_pages</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nv">site</span><span class="p">.</span><span class="nv">pages</span><span class="err">
</span><span class="w">  </span><span class="p">|</span><span class="w"> </span><span class="nf">where</span><span class="p">:</span><span class="w"> </span><span class="s1">'language_reference'</span><span class="p">,</span><span class="w"> </span><span class="nv">page</span><span class="p">.</span><span class="nv">language_reference</span><span class="err">
</span><span class="w">  </span><span class="p">|</span><span class="w"> </span><span class="nf">where</span><span class="p">:</span><span class="w"> </span><span class="s1">'language'</span><span class="p">,</span><span class="w"> </span><span class="nv">language</span><span class="p">[</span><span class="mi">1</span><span class="p">].</span><span class="nv">slug</span><span class="w"> </span><span class="p">%}</span>
</code></pre></div></div>

<p>We create a new variable named <code class="language-plaintext highlighter-rouge">navigation_pages</code> which returns a list of the pages that, <a href="/post/multilingual-sites-in-jekyll-2.html#front-matter">in their front matter</a>, have:</p>

<ul>
  <li>the <code class="language-plaintext highlighter-rouge">language_reference</code> variable equal to the current page’s <code class="language-plaintext highlighter-rouge">language_reference</code> variable (<code class="language-plaintext highlighter-rouge">page.language_reference</code>)</li>
  <li>the <code class="language-plaintext highlighter-rouge">language</code> variable equal to the slug of the current language item (<code class="language-plaintext highlighter-rouge">language[1].slug</code>) in the array <code class="language-plaintext highlighter-rouge">snippets.languages</code></li>
</ul>

<p>If we set the front matter of the pages correctly, the size of the array <code class="language-plaintext highlighter-rouge">navigation_pages</code> should be:</p>

<ul>
  <li>either equal to one if the current page <strong>has</strong> a corresponding page translated into the current language item of the array <code class="language-plaintext highlighter-rouge">snippets.languages</code></li>
  <li>or equal to zero if the current page <strong>does not have</strong> a corresponding page translated into the current language item of the array <code class="language-plaintext highlighter-rouge">snippets.languages</code></li>
</ul>

<div class="language-liquid code-l highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="p">{%-</span><span class="w"> </span><span class="kr">if</span><span class="w"> </span><span class="nv">navigation_pages</span><span class="p">.</span><span class="nf">size</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="p">%}</span>
  <span class="p">{%-</span><span class="w"> </span><span class="nt">for</span><span class="w"> </span><span class="nv">navigation_page</span><span class="w"> </span><span class="nt">in</span><span class="w"> </span><span class="nv">navigation_pages</span><span class="w"> </span><span class="p">%}</span>
    <span class="p">{%-</span><span class="w"> </span><span class="nt">assign</span><span class="w"> </span><span class="nv">url</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nv">site</span><span class="p">.</span><span class="nv">baseurl</span><span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="nf">append</span><span class="p">:</span><span class="w"> </span><span class="nv">navigation_page</span><span class="p">.</span><span class="nv">url</span><span class="w"> </span><span class="p">%}</span>
  <span class="p">{%-</span><span class="w"> </span><span class="nt">endfor</span><span class="w"> </span><span class="p">%}</span>
</code></pre></div></div>

<p>If the size of the array <code class="language-plaintext highlighter-rouge">navigation_pages</code> is equal to one, we loop through the array <code class="language-plaintext highlighter-rouge">navigation_pages</code> and create a new variable named <code class="language-plaintext highlighter-rouge">url</code> by combining the <code class="language-plaintext highlighter-rouge">site.baseurl</code> (defined in the <code class="language-plaintext highlighter-rouge">_config.yml</code> file) and the URL of the single page (<code class="language-plaintext highlighter-rouge">navigation_page.url</code>) contained in the array <code class="language-plaintext highlighter-rouge">navigation_pages</code>.</p>

<div class="language-liquid code-l highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="p">{%-</span><span class="w"> </span><span class="kr">else</span><span class="w"> </span><span class="p">%}</span>
  <span class="p">{%-</span><span class="w"> </span><span class="nt">assign</span><span class="w"> </span><span class="nv">navigation_pages</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nv">site</span><span class="p">.</span><span class="nv">pages</span><span class="err">
</span><span class="w">    </span><span class="p">|</span><span class="w"> </span><span class="nf">where</span><span class="p">:</span><span class="w"> </span><span class="s1">'language_reference'</span><span class="p">,</span><span class="w"> </span><span class="nv">site</span><span class="p">.</span><span class="nv">fallback_page</span><span class="err">
</span><span class="w">    </span><span class="p">|</span><span class="w"> </span><span class="nf">where</span><span class="p">:</span><span class="w"> </span><span class="s1">'language'</span><span class="p">,</span><span class="w"> </span><span class="nv">language</span><span class="p">[</span><span class="mi">1</span><span class="p">].</span><span class="nv">slug</span><span class="w"> </span><span class="p">%}</span>
  <span class="p">{%-</span><span class="w"> </span><span class="nt">for</span><span class="w"> </span><span class="nv">navigation_page</span><span class="w"> </span><span class="nt">in</span><span class="w"> </span><span class="nv">navigation_pages</span><span class="w"> </span><span class="p">%}</span>
    <span class="p">{%-</span><span class="w"> </span><span class="nt">assign</span><span class="w"> </span><span class="nv">url</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nv">site</span><span class="p">.</span><span class="nv">baseurl</span><span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="nf">append</span><span class="p">:</span><span class="w"> </span><span class="nv">navigation_page</span><span class="p">.</span><span class="nv">url</span><span class="w"> </span><span class="p">%}</span>
  <span class="p">{%-</span><span class="w"> </span><span class="nt">endfor</span><span class="w"> </span><span class="p">%}</span>
<span class="p">{%-</span><span class="w"> </span><span class="kr">endif</span><span class="w"> </span><span class="p">%}</span>
</code></pre></div></div>

<p>If instead, the size of the array <code class="language-plaintext highlighter-rouge">navigation_pages</code> is equal to zero (or more than one, which is trouble), we do not have a corresponding page in the current language item of the array <code class="language-plaintext highlighter-rouge">snippets.languages</code> to switch to.</p>

<p>Thus, we provide a fallback page (<code class="language-plaintext highlighter-rouge">site.fallback_page</code>) so that the web surfers who interact with the language switch and select a language that does not support the current page are at least redirected to a meaningful page in the language they selected.</p>

<p>We set the <code class="language-plaintext highlighter-rouge">fallback_page</code> in the <code class="language-plaintext highlighter-rouge">_config.yml</code> file located in the site’s root directory:</p>

<div class="language-yaml code-m highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="na">fallback_page</span><span class="pi">:</span> <span class="s1">'</span><span class="s">stories'</span>
</code></pre></div></div>

<p>The fallback pages of the basic site are those whose <code class="language-plaintext highlighter-rouge">language_reference</code> variable is set to <code class="language-plaintext highlighter-rouge">stories</code>.</p>

<p>Why <code class="language-plaintext highlighter-rouge">stories</code>? Because—in the context of the basic site—the pages whose <code class="language-plaintext highlighter-rouge">language_reference</code> variable is set to <code class="language-plaintext highlighter-rouge">stories</code> function as <em>home</em> pages, since they:</p>

<ul>
  <li>return a list of all the published posts (they have the same structure as the <code class="language-plaintext highlighter-rouge">index.html</code> page)</li>
  <li>have a translated counterpart in all the languages supported on the site</li>
</ul>

<h5 id="elsif-pagelayout--post">elsif page.layout == ‘post’</h5>

<div class="language-liquid code-l highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="p">{%-</span><span class="w"> </span><span class="kr">elsif</span><span class="w"> </span><span class="nv">page</span><span class="p">.</span><span class="nv">layout</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="s1">'post'</span><span class="w"> </span><span class="p">%}</span>
  <span class="p">{%-</span><span class="w"> </span><span class="nt">assign</span><span class="w"> </span><span class="nv">navigation_posts</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nv">site</span><span class="p">.</span><span class="nv">posts</span><span class="err">
</span><span class="w">    </span><span class="p">|</span><span class="w"> </span><span class="nf">where</span><span class="p">:</span><span class="w"> </span><span class="s1">'language_reference'</span><span class="p">,</span><span class="w"> </span><span class="nv">page</span><span class="p">.</span><span class="nv">language_reference</span><span class="err">
</span><span class="w">    </span><span class="p">|</span><span class="w"> </span><span class="nf">where</span><span class="p">:</span><span class="w"> </span><span class="s1">'language'</span><span class="p">,</span><span class="w"> </span><span class="nv">language</span><span class="p">[</span><span class="mi">1</span><span class="p">].</span><span class="nv">slug</span><span class="w"> </span><span class="p">%}</span>
  <span class="p">{%-</span><span class="w"> </span><span class="kr">if</span><span class="w"> </span><span class="nv">navigation_posts</span><span class="p">.</span><span class="nf">size</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="p">%}</span>
    <span class="p">{%-</span><span class="w"> </span><span class="nt">for</span><span class="w"> </span><span class="nv">navigation_post</span><span class="w"> </span><span class="nt">in</span><span class="w"> </span><span class="nv">navigation_posts</span><span class="w"> </span><span class="p">%}</span>
      <span class="p">{%-</span><span class="w"> </span><span class="nt">assign</span><span class="w"> </span><span class="nv">url</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nv">site</span><span class="p">.</span><span class="nv">baseurl</span><span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="nf">append</span><span class="p">:</span><span class="w"> </span><span class="nv">navigation_post</span><span class="p">.</span><span class="nv">url</span><span class="w"> </span><span class="p">%}</span>
    <span class="p">{%-</span><span class="w"> </span><span class="nt">endfor</span><span class="w"> </span><span class="p">%}</span>
  <span class="p">{%-</span><span class="w"> </span><span class="kr">else</span><span class="w"> </span><span class="p">%}</span>
    <span class="p">{%-</span><span class="w"> </span><span class="nt">assign</span><span class="w"> </span><span class="nv">navigation_pages</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nv">site</span><span class="p">.</span><span class="nv">pages</span><span class="err">
</span><span class="w">      </span><span class="p">|</span><span class="w"> </span><span class="nf">where</span><span class="p">:</span><span class="w"> </span><span class="s1">'language_reference'</span><span class="p">,</span><span class="w"> </span><span class="nv">site</span><span class="p">.</span><span class="nv">fallback_page</span><span class="err">
</span><span class="w">      </span><span class="p">|</span><span class="w"> </span><span class="nf">where</span><span class="p">:</span><span class="w"> </span><span class="s1">'language'</span><span class="p">,</span><span class="w"> </span><span class="nv">language</span><span class="p">[</span><span class="mi">1</span><span class="p">].</span><span class="nv">slug</span><span class="w"> </span><span class="p">%}</span>
    <span class="p">{%-</span><span class="w"> </span><span class="nt">for</span><span class="w"> </span><span class="nv">navigation_page</span><span class="w"> </span><span class="nt">in</span><span class="w"> </span><span class="nv">navigation_pages</span><span class="w"> </span><span class="p">%}</span>
      <span class="p">{%-</span><span class="w"> </span><span class="nt">assign</span><span class="w"> </span><span class="nv">url</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nv">site</span><span class="p">.</span><span class="nv">baseurl</span><span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="nf">append</span><span class="p">:</span><span class="w"> </span><span class="nv">navigation_page</span><span class="p">.</span><span class="nv">url</span><span class="w"> </span><span class="p">%}</span>
    <span class="p">{%-</span><span class="w"> </span><span class="nt">endfor</span><span class="w"> </span><span class="p">%}</span>
  <span class="p">{%-</span><span class="w"> </span><span class="kr">endif</span><span class="w"> </span><span class="p">%}</span>
</code></pre></div></div>

<p>The second block of code behaves similarly to the first, with the only difference being that we manipulate an array of posts (<code class="language-plaintext highlighter-rouge">navigation_posts</code>) rather than one of pages (<code class="language-plaintext highlighter-rouge">navigation_pages</code>).</p>

<h5 id="else">else</h5>

<div class="language-liquid code-l highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="p">{%-</span><span class="w"> </span><span class="kr">else</span><span class="w"> </span><span class="p">%}</span>
  <span class="p">{%-</span><span class="w"> </span><span class="nt">assign</span><span class="w"> </span><span class="nv">navigation_pages</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nv">site</span><span class="p">.</span><span class="nv">pages</span><span class="err">
</span><span class="w">    </span><span class="p">|</span><span class="w"> </span><span class="nf">where</span><span class="p">:</span><span class="w"> </span><span class="s1">'language_reference'</span><span class="p">,</span><span class="w"> </span><span class="nv">site</span><span class="p">.</span><span class="nv">fallback_page</span><span class="err">
</span><span class="w">    </span><span class="p">|</span><span class="w"> </span><span class="nf">where</span><span class="p">:</span><span class="w"> </span><span class="s1">'language'</span><span class="p">,</span><span class="w"> </span><span class="nv">language</span><span class="p">[</span><span class="mi">1</span><span class="p">].</span><span class="nv">slug</span><span class="w"> </span><span class="p">%}</span>
  <span class="p">{%-</span><span class="w"> </span><span class="nt">for</span><span class="w"> </span><span class="nv">navigation_page</span><span class="w"> </span><span class="nt">in</span><span class="w"> </span><span class="nv">navigation_pages</span><span class="w"> </span><span class="p">%}</span>
    <span class="p">{%-</span><span class="w"> </span><span class="nt">assign</span><span class="w"> </span><span class="nv">url</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nv">site</span><span class="p">.</span><span class="nv">baseurl</span><span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="nf">append</span><span class="p">:</span><span class="w"> </span><span class="nv">navigation_page</span><span class="p">.</span><span class="nv">url</span><span class="w"> </span><span class="p">%}</span>
  <span class="p">{%-</span><span class="w"> </span><span class="nt">endfor</span><span class="w"> </span><span class="p">%}</span>
</code></pre></div></div>

<p>The third block of code runs in the remote eventuality in which both the first and second blocks of code do not run. so that we make sure, again, to serve a fallback page to our web surfers.</p>

<h5 id="fallback-page">Fallback page</h5>

<p>How can we be sure that the fallback page truly works?</p>

<p>In this basic site, not all the pages and posts are translated into all the supported languages—on purpose.</p>

<table class="table">
  <thead>
    <tr>
      <th>English Pages</th>
      <th>Italian Pages</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>preface.html</td>
      <td>prefazione.html</td>
    </tr>
    <tr>
      <td>stories.html</td>
      <td>storie.html</td>
    </tr>
    <tr>
      <td>postface.html</td>
      <td>—</td>
    </tr>
  </tbody>
</table>

<p>If you go to <a href="https://ranbureand.github.io/multilingual-experiment/en/postface.html">the English page <em>Postface</em></a> and press on <em>Italian</em> in the language switch, you are indeed redirected to the Italian page <em>Storie</em>.</p>

<table class="table">
  <thead>
    <tr>
      <th>English Posts</th>
      <th>Italian Posts</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>hello-world.markdown</td>
      <td>ciao-mondo.markdown</td>
    </tr>
    <tr>
      <td>hello-mars.markdown</td>
      <td>ciao-marte.markdown</td>
    </tr>
    <tr>
      <td>—</td>
      <td>ciao-giove.markdown</td>
    </tr>
  </tbody>
</table>

<p>Similarly, if you go to <a href="https://ranbureand.github.io/multilingual-experiment/it/storia/ciao-giove">the Italian post <em>Ciao Giove</em></a> and press on <em>English</em> in the language switch, you are indeed redirected to the English page <em>Stories</em>.</p>

<h4 id="titlehtml">title.html</h4>

<p>The include <code class="language-plaintext highlighter-rouge">title.html</code> generates the title of this basic site.</p>

<div class="language-liquid code-l highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="p">{%-</span><span class="w"> </span><span class="kr">if</span><span class="w"> </span><span class="nv">page</span><span class="p">.</span><span class="nv">language</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="nv">site</span><span class="p">.</span><span class="nv">default_language</span><span class="w"> </span><span class="p">%}</span>
  <span class="p">{%-</span><span class="w"> </span><span class="nt">assign</span><span class="w"> </span><span class="nv">url</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nv">site</span><span class="p">.</span><span class="nv">baseurl</span><span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="nf">append</span><span class="p">:</span><span class="w"> </span><span class="s1">'/'</span><span class="p">%}</span>
<span class="p">{%-</span><span class="w"> </span><span class="kr">else</span><span class="w"> </span><span class="p">%}</span>
  <span class="p">{%-</span><span class="w"> </span><span class="nt">assign</span><span class="w"> </span><span class="nv">navigation_pages</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nv">site</span><span class="p">.</span><span class="nv">pages</span><span class="err">
</span><span class="w">    </span><span class="p">|</span><span class="w"> </span><span class="nf">where</span><span class="p">:</span><span class="w"> </span><span class="s1">'language_reference'</span><span class="p">,</span><span class="w"> </span><span class="nv">site</span><span class="p">.</span><span class="nv">fallback_page</span><span class="err">
</span><span class="w">    </span><span class="p">|</span><span class="w"> </span><span class="nf">where</span><span class="p">:</span><span class="w"> </span><span class="s1">'language'</span><span class="p">,</span><span class="w"> </span><span class="nv">page</span><span class="p">.</span><span class="nv">language</span><span class="w"> </span><span class="p">%}</span>
  <span class="p">{%-</span><span class="w"> </span><span class="nt">for</span><span class="w"> </span><span class="nv">navigation_page</span><span class="w"> </span><span class="nt">in</span><span class="w"> </span><span class="nv">navigation_pages</span><span class="w"> </span><span class="p">%}</span>
    <span class="p">{%-</span><span class="w"> </span><span class="nt">assign</span><span class="w"> </span><span class="nv">url</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nv">site</span><span class="p">.</span><span class="nv">baseurl</span><span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="nf">append</span><span class="p">:</span><span class="w"> </span><span class="nv">navigation_page</span><span class="p">.</span><span class="nv">url</span><span class="w"> </span><span class="p">%}</span>
  <span class="p">{%-</span><span class="w"> </span><span class="nt">endfor</span><span class="w"> </span><span class="p">%}</span>
<span class="p">{%-</span><span class="w"> </span><span class="kr">endif</span><span class="w"> </span><span class="p">%}</span>
&lt;h1&gt;
  &lt;a href="<span class="p">{{</span><span class="w"> </span><span class="nv">url</span><span class="w"> </span><span class="p">}}</span>" <span class="p">{%-</span><span class="w"> </span><span class="kr">if</span><span class="w"> </span><span class="nv">page</span><span class="p">.</span><span class="nv">url</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="s1">'/'</span><span class="w"> </span><span class="p">%}</span> class="current"<span class="p">{%-</span><span class="w"> </span><span class="kr">endif</span><span class="w"> </span><span class="p">%}</span>&gt;<span class="p">{{</span><span class="w"> </span><span class="nv">site</span><span class="p">.</span><span class="nv">title</span><span class="w"> </span><span class="p">}}</span>&lt;/a&gt;
&lt;/h1&gt;
</code></pre></div></div>

<p>Again, we have two different code blocks that run only if specific conditions are met.</p>

<p>We run the first code block when the language of the current page (<code class="language-plaintext highlighter-rouge">page.language</code>) is equal to the default language (<code class="language-plaintext highlighter-rouge">site.default_language</code>) defined in the <code class="language-plaintext highlighter-rouge">_config.yml</code> file. Through it, we create a new variable named <code class="language-plaintext highlighter-rouge">url</code> by combining the <code class="language-plaintext highlighter-rouge">site.baseurl</code> (defined in the <code class="language-plaintext highlighter-rouge">_config.yml</code> file) and <code class="language-plaintext highlighter-rouge">/</code>, which is the domain name of the site. Web surfers who browse the site in the default language are directed to the main page when they press on the title.</p>

<p>Else, we run the second code block to provide the usual fallback page already discussed above (read the section <a href="#language-switchhtml">language-switch.html</a> for more details). Web surfers who browse the site in a language different from the default one are directed to the fallback page in their current language when they press on the title.</p>

<h3 id="localizationshtml">localizations.html</h3>

<p>The include <code class="language-plaintext highlighter-rouge">localizations.html</code> adds <code class="language-plaintext highlighter-rouge">&lt;link rel="alternate" … /&gt;</code> tags in the <code class="language-plaintext highlighter-rouge">&lt;head/&gt;</code> tag of a page <a href="https://developers.google.com/search/docs/advanced/crawling/localized-versions" title="Tell Google about localized versions of your page">to tell search engines</a> if there are multiple versions of the page for different languages or regions.</p>

<div class="language-liquid code-xl highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="p">{%-</span><span class="w"> </span><span class="kr">if</span><span class="w"> </span><span class="nv">page</span><span class="p">.</span><span class="nv">layout</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="s1">'page'</span><span class="w"> </span><span class="p">%}</span>
  <span class="p">{%-</span><span class="w"> </span><span class="nt">assign</span><span class="w"> </span><span class="nv">localized_pages</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nv">site</span><span class="p">.</span><span class="nv">pages</span><span class="err">
</span><span class="w">    </span><span class="p">|</span><span class="w"> </span><span class="nf">where</span><span class="p">:</span><span class="w"> </span><span class="s1">'language_reference'</span><span class="p">,</span><span class="w"> </span><span class="nv">page</span><span class="p">.</span><span class="nv">language_reference</span><span class="err">
</span><span class="w">    </span><span class="p">|</span><span class="w"> </span><span class="nf">sort</span><span class="p">:</span><span class="w"> </span><span class="s1">'language'</span><span class="w"> </span><span class="p">%}</span>
  <span class="p">{%-</span><span class="w"> </span><span class="nt">for</span><span class="w"> </span><span class="nv">localized_page</span><span class="w"> </span><span class="nt">in</span><span class="w"> </span><span class="nv">localized_pages</span><span class="w"> </span><span class="p">%}</span>
    &lt;link rel="alternate" hreflang="<span class="p">{{</span><span class="w"> </span><span class="nv">localized_page</span><span class="p">.</span><span class="nv">language</span><span class="w"> </span><span class="p">}}</span>" href="<span class="p">{{</span><span class="w"> </span><span class="nv">site</span><span class="p">.</span><span class="nv">baseurl</span><span class="w"> </span><span class="p">}}{{</span><span class="w"> </span><span class="nv">localized_page</span><span class="p">.</span><span class="nv">url</span><span class="w"> </span><span class="p">}}</span>" /&gt;
  <span class="p">{%-</span><span class="w"> </span><span class="nt">endfor</span><span class="w"> </span><span class="p">%}</span>

<span class="p">{%-</span><span class="w"> </span><span class="kr">elsif</span><span class="w"> </span><span class="nv">page</span><span class="p">.</span><span class="nv">layout</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="s1">'post'</span><span class="w"> </span><span class="p">%}</span>
  <span class="p">{%-</span><span class="w"> </span><span class="nt">assign</span><span class="w"> </span><span class="nv">localized_posts</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nv">site</span><span class="p">.</span><span class="nv">posts</span><span class="err">
</span><span class="w">  </span><span class="p">|</span><span class="w"> </span><span class="nf">where</span><span class="p">:</span><span class="w"> </span><span class="s1">'language_reference'</span><span class="p">,</span><span class="w"> </span><span class="nv">page</span><span class="p">.</span><span class="nv">language_reference</span><span class="err">
</span><span class="w">  </span><span class="p">|</span><span class="w"> </span><span class="nf">sort</span><span class="p">:</span><span class="w"> </span><span class="s1">'language'</span><span class="w"> </span><span class="p">%}</span>
  <span class="p">{%-</span><span class="w"> </span><span class="nt">for</span><span class="w"> </span><span class="nv">localized_post</span><span class="w"> </span><span class="nt">in</span><span class="w"> </span><span class="nv">localized_posts</span><span class="w"> </span><span class="p">%}</span>
    &lt;link rel="alternate" hreflang="<span class="p">{{</span><span class="w"> </span><span class="nv">localized_post</span><span class="p">.</span><span class="nv">language</span><span class="w"> </span><span class="p">}}</span>" href="<span class="p">{{</span><span class="w"> </span><span class="nv">site</span><span class="p">.</span><span class="nv">baseurl</span><span class="w"> </span><span class="p">}}{{</span><span class="w"> </span><span class="nv">localized_post</span><span class="p">.</span><span class="nv">url</span><span class="w"> </span><span class="p">}}</span>" /&gt;
  <span class="p">{%-</span><span class="w"> </span><span class="nt">endfor</span><span class="w"> </span><span class="p">%}</span>

<span class="p">{%-</span><span class="w"> </span><span class="kr">elsif</span><span class="w"> </span><span class="nv">page</span><span class="p">.</span><span class="nv">layout</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="s1">'index'</span><span class="w"> </span><span class="p">%}</span>
  <span class="p">{%-</span><span class="w"> </span><span class="nt">assign</span><span class="w"> </span><span class="nv">localized_pages</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nv">site</span><span class="p">.</span><span class="nv">pages</span><span class="err">
</span><span class="w">    </span><span class="p">|</span><span class="w"> </span><span class="nf">where</span><span class="p">:</span><span class="w"> </span><span class="s1">'language_reference'</span><span class="p">,</span><span class="w"> </span><span class="nv">site</span><span class="p">.</span><span class="nv">fallback_page</span><span class="err">
</span><span class="w">    </span><span class="p">|</span><span class="w"> </span><span class="nf">sort</span><span class="p">:</span><span class="w"> </span><span class="s1">'language'</span><span class="w"> </span><span class="p">%}</span>
  <span class="p">{%-</span><span class="w"> </span><span class="nt">for</span><span class="w"> </span><span class="nv">localized_page</span><span class="w"> </span><span class="nt">in</span><span class="w"> </span><span class="nv">localized_pages</span><span class="w"> </span><span class="p">%}</span>
    &lt;link rel="alternate" hreflang="<span class="p">{{</span><span class="w"> </span><span class="nv">localized_page</span><span class="p">.</span><span class="nv">language</span><span class="w"> </span><span class="p">}}</span>" href="<span class="p">{{</span><span class="w"> </span><span class="nv">site</span><span class="p">.</span><span class="nv">baseurl</span><span class="w"> </span><span class="p">}}{{</span><span class="w"> </span><span class="nv">localized_page</span><span class="p">.</span><span class="nv">url</span><span class="w"> </span><span class="p">}}</span>" /&gt;
  <span class="p">{%-</span><span class="w"> </span><span class="nt">endfor</span><span class="w"> </span><span class="p">%}</span>
<span class="p">{%-</span><span class="w"> </span><span class="kr">endif</span><span class="w"> </span><span class="p">%}</span>
</code></pre></div></div>

<p>Again, we have three different code blocks that run only if specific conditions are met (read the section <a href="#language-switchhtml">language-switch.html</a> for more details).</p>]]></content><author><name>Andrea Buran</name></author><category term="approach" /><category term="development" /><category term="Jekyll" /><category term="multilingual" /><category term="site" /><summary type="html"><![CDATA[This series of articles illustrates my approach to creating a multilingual site in Jekyll.]]></summary></entry><entry><title type="html">Multilingual sites in Jekyll, Part 2</title><link href="https://www.andreaburan.com/post/multilingual-sites-in-jekyll-2.html" rel="alternate" type="text/html" title="Multilingual sites in Jekyll, Part 2" /><published>2021-08-13T07:00:00+02:00</published><updated>2021-08-13T07:00:00+02:00</updated><id>https://www.andreaburan.com/post/multilingual-sites-in-jekyll-2</id><content type="html" xml:base="https://www.andreaburan.com/post/multilingual-sites-in-jekyll-2.html"><![CDATA[<ul class="toc" id="markdown-toc">
  <li><a href="#front-matter" id="markdown-toc-front-matter">Front matter</a>    <ul>
      <li><a href="#pages" id="markdown-toc-pages">Pages</a></li>
      <li><a href="#posts" id="markdown-toc-posts">Posts</a></li>
    </ul>
  </li>
  <li><a href="#data-files" id="markdown-toc-data-files">Data files</a></li>
</ul>

<h2 id="front-matter">Front matter</h2>

<p>In the front matter of each page or post, in addition to the usual variables, we set two new custom variables to handle the multilingual logic<sup id="fnref:logic" role="doc-noteref"><a href="#fn:logic" class="footnote" rel="footnote">1</a></sup> of the site:</p>

<ul>
  <li><code class="language-plaintext highlighter-rouge">language</code> defines the language of the page/post</li>
  <li><code class="language-plaintext highlighter-rouge">language_reference</code> relates different translations of the same page/post</li>
</ul>

<p>We can use <code class="language-plaintext highlighter-rouge">language</code> to retrieve only the pages or posts in the same language, and <code class="language-plaintext highlighter-rouge">language_reference</code> to retrieve only the pages or posts that return the same content translated into different languages (read the sections <a href="/post/multilingual-sites-in-jekyll-3.html#navigationhtml">navigation.html</a> and <a href="/post/multilingual-sites-in-jekyll-3.html#language-switchhtml">language-switch.html</a> for more details).</p>

<h3 id="pages">Pages</h3>

<p>For example, here is the front matter of the English page <em>Stories</em>:</p>

<div class="language-yaml code-m highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nn">---</span>
<span class="na">layout</span><span class="pi">:</span> <span class="s">page</span>

<span class="na">title</span><span class="pi">:</span> <span class="s">Stories</span>
<span class="na">description</span><span class="pi">:</span> <span class="s">Stories.</span>

<span class="na">language</span><span class="pi">:</span> <span class="s">en</span>
<span class="na">language_reference</span><span class="pi">:</span> <span class="s">stories</span>

<span class="na">published</span><span class="pi">:</span> <span class="no">true</span>
<span class="na">order</span><span class="pi">:</span> <span class="m">2</span>
<span class="nn">---</span>
</code></pre></div></div>

<p>and here is the front matter of its Italian counterpart:</p>

<div class="language-yaml code-m highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nn">---</span>
<span class="na">layout</span><span class="pi">:</span> <span class="s">page</span>

<span class="na">title</span><span class="pi">:</span> <span class="s">Storie</span>
<span class="na">description</span><span class="pi">:</span> <span class="s">Storie.</span>

<span class="na">language</span><span class="pi">:</span> <span class="s">it</span>
<span class="na">language_reference</span><span class="pi">:</span> <span class="s">stories</span>

<span class="na">published</span><span class="pi">:</span> <span class="no">true</span>
<span class="na">order</span><span class="pi">:</span> <span class="m">2</span>
<span class="nn">---</span>
</code></pre></div></div>

<p>Both pages have the variable <code class="language-plaintext highlighter-rouge">language_reference</code> set to <code class="language-plaintext highlighter-rouge">stories</code> so that they can be easily related with each other.</p>

<h3 id="posts">Posts</h3>

<p>For example, here is the front matter of the English post <em>Hello World</em>:</p>

<div class="language-yaml code-m highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nn">---</span>
<span class="na">layout</span><span class="pi">:</span> <span class="s">post</span>

<span class="na">title</span><span class="pi">:</span> <span class="s">Hello World</span>
<span class="na">description</span><span class="pi">:</span> <span class="s">Hello world.</span>
<span class="na">date</span><span class="pi">:</span> <span class="s">2021-01-01 00:00:00</span>

<span class="na">language</span><span class="pi">:</span> <span class="s">en</span>
<span class="na">language_reference</span><span class="pi">:</span> <span class="s">world</span>

<span class="na">published</span><span class="pi">:</span> <span class="no">true</span>
<span class="nn">---</span>
</code></pre></div></div>

<p>and here is the front matter of its Italian counterpart:</p>

<div class="language-yaml code-m highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nn">---</span>
<span class="na">layout</span><span class="pi">:</span> <span class="s">post</span>

<span class="na">title</span><span class="pi">:</span> <span class="s">Ciao Mondo</span>
<span class="na">description</span><span class="pi">:</span> <span class="s">Ciao Mondo.</span>
<span class="na">date</span><span class="pi">:</span> <span class="s">2021-01-01 00:00:00</span>

<span class="na">language</span><span class="pi">:</span> <span class="s">it</span>
<span class="na">language_reference</span><span class="pi">:</span> <span class="s">world</span>

<span class="na">published</span><span class="pi">:</span> <span class="no">true</span>
<span class="nn">---</span>
</code></pre></div></div>

<p>Both posts have the variable <code class="language-plaintext highlighter-rouge">language_reference</code> set to <code class="language-plaintext highlighter-rouge">world</code> so that they can be easily related to each other.</p>

<h2 id="data-files">Data files</h2>

<p>We create a YAML <a href="https://jekyllrb.com/docs/datafiles/" title="Data Files">data file</a> named <code class="language-plaintext highlighter-rouge">snippets.yml</code> to store the different translations of the user interface copy as additional data in the <code class="language-plaintext highlighter-rouge">_data</code> subdirectory.</p>

<p>We then create a new variable named <code class="language-plaintext highlighter-rouge">snippets</code> in the <code class="language-plaintext highlighter-rouge">base.html</code> layout to shorten the code needed to access the data contained in the <code class="language-plaintext highlighter-rouge">snippets.yml</code> file:</p>

<div class="language-liquid code-m highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="p">{%-</span><span class="w"> </span><span class="nt">assign</span><span class="w"> </span><span class="nv">snippets</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nv">site</span><span class="p">.</span><span class="nv">data</span><span class="p">.</span><span class="nv">snippets</span><span class="w"> </span><span class="p">%}</span>
</code></pre></div></div>

<p>Since the <code class="language-plaintext highlighter-rouge">base.html</code> layout is the base for all the other layouts, placing the variable <code class="language-plaintext highlighter-rouge">snippets</code> there allows us access it from any other page.</p>

<p>Through this variable, we can write just <code class="language-plaintext highlighter-rouge">snippets.name_of_the_data_item</code> when accessing a data item rather than the full, longer <code class="language-plaintext highlighter-rouge">site.data.snippets.name_of_the_data_item</code>.</p>

<p>For example, the piece of code that generates the <em>Back to the Top</em> link at the bottom of the page:</p>

<div class="language-liquid code-xl highlighter-rouge"><div class="highlight"><pre class="highlight"><code>&lt;a href="#<span class="p">{{</span><span class="w"> </span><span class="nv">snippets</span><span class="p">.</span><span class="nv">top</span><span class="p">[</span><span class="nv">page</span><span class="p">.</span><span class="nv">language</span><span class="p">]</span><span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="nf">slugify</span><span class="p">:</span><span class="w"> </span><span class="s1">'latin'</span><span class="w"> </span><span class="p">}}</span>"&gt;<span class="p">{{</span><span class="w"> </span><span class="nv">snippets</span><span class="p">.</span><span class="nv">back</span><span class="p">[</span><span class="nv">page</span><span class="p">.</span><span class="nv">language</span><span class="p">]</span><span class="w"> </span><span class="p">}}</span>&lt;/a&gt;
</code></pre></div></div>

<p>uses the following variable:</p>

<div class="language-liquid code-m highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="p">{{</span><span class="w"> </span><span class="nv">snippets</span><span class="p">.</span><span class="nv">back</span><span class="p">[</span><span class="nv">page</span><span class="p">.</span><span class="nv">language</span><span class="p">]</span><span class="w"> </span><span class="p">}}</span>
</code></pre></div></div>

<p>To retrieve the name of the link in the current selected language from the following lines in the <code class="language-plaintext highlighter-rouge">snippets.yml</code> data file:</p>

<div class="language-yaml code-m highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="na">back</span><span class="pi">:</span>
  <span class="na">en</span><span class="pi">:</span> <span class="s">Back to the Top</span>
  <span class="na">it</span><span class="pi">:</span> <span class="s">Torna in Cima</span>

<span class="na">top</span><span class="pi">:</span>
  <span class="na">en</span><span class="pi">:</span> <span class="s">Top</span>
  <span class="na">it</span><span class="pi">:</span> <span class="s">Cima</span>
</code></pre></div></div>

<p>If the user interface copy is quite lengthy, we might consider creating a different data file for each language and placing it in a dedicated subdirectory—similar to what we already do for pages and posts. For this basic site, we keep things simple and use only one data file to list the copy in all the different languages.</p>

<div class="footnotes" role="doc-endnotes">
  <ol>
    <li id="fn:logic" role="doc-endnote">

      <p>The logic is based on the principle articulated in Sylvain Durand’s <em><a href="https://sylvaindurand.org/making-jekyll-multilingual/#principle" title="Making Jekyll
Multilingual">Making Jekyll Multilingual</a></em>. <a href="#fnref:logic" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
  </ol>
</div>]]></content><author><name>Andrea Buran</name></author><category term="approach" /><category term="development" /><category term="Jekyll" /><category term="multilingual" /><category term="site" /><summary type="html"><![CDATA[This series of articles illustrates my approach to creating a multilingual site in Jekyll.]]></summary></entry><entry><title type="html">Multilingual sites in Jekyll, Part 1</title><link href="https://www.andreaburan.com/post/multilingual-sites-in-jekyll.html" rel="alternate" type="text/html" title="Multilingual sites in Jekyll, Part 1" /><published>2021-08-12T07:00:00+02:00</published><updated>2021-08-12T07:00:00+02:00</updated><id>https://www.andreaburan.com/post/multilingual-sites-in-jekyll</id><content type="html" xml:base="https://www.andreaburan.com/post/multilingual-sites-in-jekyll.html"><![CDATA[<ul class="toc" id="markdown-toc">
  <li><a href="#preface" id="markdown-toc-preface">Preface</a></li>
  <li><a href="#foreword" id="markdown-toc-foreword">Foreword</a></li>
  <li><a href="#directory-structure" id="markdown-toc-directory-structure">Directory structure</a>    <ul>
      <li><a href="#pages" id="markdown-toc-pages">Pages</a>        <ul>
          <li><a href="#exceptions" id="markdown-toc-exceptions">Exceptions</a></li>
        </ul>
      </li>
      <li><a href="#posts" id="markdown-toc-posts">Posts</a>        <ul>
          <li><a href="#configuration" id="markdown-toc-configuration">Configuration</a></li>
        </ul>
      </li>
    </ul>
  </li>
</ul>

<h2 id="preface">Preface</h2>

<p>When I found myself coding a multilingual site in <em><a href="https://jekyllrb.com/" title="Jekyll">Jekyll</a></em>, I stumbled on <a href="/post/multilingual-sites-in-jekyll-4.html#resources">a lot of useful resources</a> while surfing the Web, but I struggled quite a bit to digest and replicate their approaches due to the lack of a concrete, working example to look at.</p>

<p>At first, I tried to replicate their approaches directly in the site I was working on, but this quickly backfired because it proved to be too big of a bite to chew for a designer who codes.</p>

<p>Not giving up, I then decided to create a basic site from scratch to focus on learning how to handle multiple languages in <em>Jekyll</em> without any extra complexity in the picture.</p>

<p>That very same basic site is hosted <a href="https://github.com/ranbureand/multilingual-experiment/">in this repository</a>, which I gladly share with the world as an example project, hoping to help anyone interested in coding a multilingual site using <em>Jekyll</em>.</p>

<h2 id="foreword">Foreword</h2>

<p>A few words before starting. Sites built with the approach illustrated in this series of articles:</p>

<ul>
  <li>can support <a href="#directory-structure">as many languages as needed</a></li>
  <li>can serve pages or posts that may not need to be translated into all supported languages</li>
  <li>have a <a href="/post/multilingual-sites-in-jekyll-3.html#language-switchhtml">language switch</a> that can either direct web surfers to view the current page or post in the selected language, if available, or direct them to an alternative <a href="/post/multilingual-sites-in-jekyll-3.html#fallback-page">fallback page</a></li>
  <li>do not require you to install custom plugins</li>
  <li>leverage the basics of Jekyll and thus making them relatively future-proof (famous last words)</li>
  <li>can be published as <em>GitHub Pages</em> sites</li>
</ul>

<p>Specifically, <a href="https://ranbureand.github.io/multilingual-experiment/">the basic site</a> hosted <a href="https://github.com/ranbureand/multilingual-experiment">in this repository</a> and used as a concrete example to illustrate my approach:</p>

<ul>
  <li>is visually quite crude, as the focus is on illustrating a structural (not visual) approach to building multilingual sites</li>
  <li>supports English and Italian as example languages</li>
</ul>

<h2 id="directory-structure">Directory structure</h2>

<p>The directory structure of the basic site looks like this:</p>

<div class="language-plaintext code-m highlighter-rouge"><div class="highlight"><pre class="highlight"><code>.
├── _data
│   └── snippets.yml
├── _includes
│   ├── head.html
│   ├── header.html
│   ├── localizations.html
│   └── references.html
├── _layouts
│   ├── base.html
│   ├── index.html
│   ├── page.html
│   └── post.html
├── _posts
│   ├── en
│   │   ├── YYYY-MM-DD-title.markdown
│   │   ├── …
│   │   └── YYYY-MM-DD-title.markdown
│   └── it
│       ├── YYYY-MM-DD-titolo.markdown
│       ├── …
│       └── YYYY-MM-DD-titolo.markdown
├── 404.html
├── config.yml
├── en
│   ├── drafts.html
│   ├── feed.xml
│   ├── postface.html
│   ├── preface.html
│   ├── sitemap.xml
│   └── stories.html
├── index.html
├── it
│   ├── bozze.html
│   ├── feed.xml
│   ├── prefazione.html
│   ├── sitemap.xml
│   └── storie.html
└── sitemap.xml
</code></pre></div></div>

<h3 id="pages">Pages</h3>

<p>We organize the pages into as many subdirectories as the languages we plan to support, naming them using <a href="https://www.w3schools.com/tags/ref_language_codes.asp" title="HTML Language Code Reference in W3Schools">ISO language codes</a>. The basic site has two subdirectories, one named <code class="language-plaintext highlighter-rouge">en</code> for grouping the English pages and one named <code class="language-plaintext highlighter-rouge">it</code> for grouping the Italian pages.</p>

<div class="language-plaintext code-m highlighter-rouge"><div class="highlight"><pre class="highlight"><code>├── …
├── en
│   ├── drafts.html
│   ├── feed.xml
│   ├── postface.html
│   ├── preface.html
│   ├── sitemap.xml
│   └── stories.html
├── …
├── it
│   ├── bozze.html
│   ├── feed.xml
│   ├── prefazione.html
│   ├── sitemap.xml
│   └── storie.html
├── …
</code></pre></div></div>

<p>After <em>Jekyll</em> has built the site, we can reach, for example, the English page <code class="language-plaintext highlighter-rouge">stories.html</code> and the Italian page <code class="language-plaintext highlighter-rouge">storie.html</code> at the URLs <code class="language-plaintext highlighter-rouge">www.site.ext/en/stories.html</code> and <code class="language-plaintext highlighter-rouge">www.site.ext/it/storie.html</code>, respectively.</p>

<h4 id="exceptions">Exceptions</h4>

<p>But, of course, there are exceptions. We place the pages <code class="language-plaintext highlighter-rouge">404.html</code>, <code class="language-plaintext highlighter-rouge">index.html</code>, and <code class="language-plaintext highlighter-rouge">sitemap.html</code> in the root directory of the site. Why?</p>

<p><code class="language-plaintext highlighter-rouge">404.html</code> and <code class="language-plaintext highlighter-rouge">index.html</code> are <em>unique</em> pages. Jekyll builds and serves automatically one and only one of them at a time.</p>

<p><code class="language-plaintext highlighter-rouge">sitemap.xml</code> is a <a href="https://www.sitemaps.org/protocol.html#index" title="Sitemaps XML Format, Sitemap index">Sitemap index</a> which points to other localized sitemaps in the respective language subfolders (read the section <a href="/post/multilingual-sites-in-jekyll-4.html#multilingual-sitemaps">Multilingual sitemaps</a> for more details).</p>

<h3 id="posts">Posts</h3>

<p>We organize the posts following a similar logic. The basic site has two subdirectories in the folder named <code class="language-plaintext highlighter-rouge">_posts</code>, one named <code class="language-plaintext highlighter-rouge">en</code> for grouping the English posts and one named <code class="language-plaintext highlighter-rouge">it</code> for grouping the Italian posts.</p>

<div class="language-plaintext code-m highlighter-rouge"><div class="highlight"><pre class="highlight"><code>├── …
├── _posts
│   ├── en
│   │   ├── YYYY-MM-DD-title.markdown
│   │   ├── …
│   │   └── YYYY-MM-DD-title.markdown
│   └── it
│       ├── YYYY-MM-DD-titolo.markdown
│       ├── …
│       └── YYYY-MM-DD-titolo.markdown
├── …
</code></pre></div></div>

<h4 id="configuration">Configuration</h4>

<p>We then add the following configuration options in the <code class="language-plaintext highlighter-rouge">_config.yml</code> file placed in the site’s root directory:</p>

<div class="language-yaml code-m highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="na">defaults</span><span class="pi">:</span>
<span class="pi">-</span>
  <span class="na">scope</span><span class="pi">:</span>
    <span class="na">path</span><span class="pi">:</span> <span class="s1">'</span><span class="s">_posts/en'</span>
    <span class="na">type</span><span class="pi">:</span> <span class="s1">'</span><span class="s">posts'</span>
  <span class="na">values</span><span class="pi">:</span>
    <span class="na">permalink</span><span class="pi">:</span> <span class="s1">'</span><span class="s">en/story/:title'</span>
    <span class="na">language</span><span class="pi">:</span> <span class="s">en</span>
<span class="pi">-</span>
  <span class="na">scope</span><span class="pi">:</span>
    <span class="na">path</span><span class="pi">:</span> <span class="s1">'</span><span class="s">_posts/it'</span>
    <span class="na">type</span><span class="pi">:</span> <span class="s1">'</span><span class="s">posts'</span>
  <span class="na">values</span><span class="pi">:</span>
    <span class="na">permalink</span><span class="pi">:</span> <span class="s1">'</span><span class="s">it/storia/:title'</span>
    <span class="na">language</span><span class="pi">:</span> <span class="s">it</span>
</code></pre></div></div>

<p>By setting global permalinks for posts, we can reach, for example, the English post named <code class="language-plaintext highlighter-rouge">2021-01-01-hello-world.markdown</code> and the Italian post named <code class="language-plaintext highlighter-rouge">2021-01-01-ciao-mondo.markdown</code> at the URLs <code class="language-plaintext highlighter-rouge">www.site.ext/en/story/hello-world.html</code> and <code class="language-plaintext highlighter-rouge">www.site.ext/it/storia/ciao-mondo.html</code>, respectively.</p>]]></content><author><name>Andrea Buran</name></author><category term="approach" /><category term="development" /><category term="Jekyll" /><category term="multilingual" /><category term="site" /><summary type="html"><![CDATA[This series of articles illustrates my approach to creating a multilingual site in Jekyll.]]></summary></entry><entry><title type="html">Remediating cinema and comics, *Medlay*, Part 4</title><link href="https://www.andreaburan.com/post/medlay-research.html" rel="alternate" type="text/html" title="Remediating cinema and comics, *Medlay*, Part 4" /><published>2015-02-01T09:00:00+01:00</published><updated>2015-02-01T09:00:00+01:00</updated><id>https://www.andreaburan.com/post/medlay-research</id><content type="html" xml:base="https://www.andreaburan.com/post/medlay-research.html"><![CDATA[<p>I was able to further refine the concept of Medlay during my graduate thesis<sup id="fnref:thanks" role="doc-noteref"><a href="#fn:thanks" class="footnote" rel="footnote">1</a></sup>, which aimed to compare the <strong>cinema</strong> and <strong>comics media forms</strong> and formulate a new creative way to <strong>crossbreed</strong> them on the Web.</p>

<p>Below is the main reasoning behind my thesis:</p>

<ul class="toc" id="markdown-toc">
  <li><a href="#remediation" id="markdown-toc-remediation">Remediation</a></li>
  <li><a href="#digital-revolution" id="markdown-toc-digital-revolution">Digital revolution</a></li>
  <li><a href="#sequential-art" id="markdown-toc-sequential-art">Sequential art</a></li>
  <li><a href="#hybrid-media-form" id="markdown-toc-hybrid-media-form">Hybrid media form</a></li>
</ul>

<h3 id="remediation">Remediation</h3>

<p>The relationship between the two media of cinema and comics is a long story of competition and reciprocal <strong>remediation</strong><sup id="fnref:remediation" role="doc-noteref"><a href="#fn:remediation" class="footnote" rel="footnote">2</a></sup>.</p>

<p>The term remediation does <strong>not</strong> refer to the <strong>transposition of contents</strong><sup id="fnref:transposition" role="doc-noteref"><a href="#fn:transposition" class="footnote" rel="footnote">3</a></sup> between cinema and comics, but rather to the reciprocal borrowing and reshaping of their media forms by both.</p>

<div class="figures">
  

<figure class="video-embed-m" id="batman_00">
  <div class="ratio" style="padding-bottom: 74.66666666666667%;background-color: #252525;" target="blank">
    <video class="video-content" controls="controls" loop="loop" poster="../media/posts-optimized/medlay-research/videos/batman_00.jpg">
      <source src="../media/posts-optimized/medlay-research/videos/batman_00.webm" type="video/webm" />
      <source src="../media/posts-optimized/medlay-research/videos/batman_00.mp4" type="video/mp4" />
      <source src="../media/posts-optimized/medlay-research/videos/batman_00.ogv" type="video/ogv" />
      Your browser cannot play this video because it does not support the HTML5 video tag. Please <a href="../media/posts-optimized/medlay-research/videos/batman_00.mp4" target="_blank">download the video</a> to watch it instead.
    </video>
  </div>
  <figcaption class="typo-s">
    <p>For example, the 1960s TV series <em>Batman</em> transposed the imagery and characters of the comic book of the same name. <em>Batman</em>, 1960s TV series.</p>

  </figcaption>
</figure>
</div>

<div class="figures">
  

<figure class="image-m" id="batman_00.jpg">
  <a class="ratio" href="../media/posts-optimized/medlay-research/images/1440/batman_00.jpg" style="padding-bottom: 150.0%;background-color: #252525;" target="_blank">
    <img loading="lazy" src="
      ../media/posts-optimized/medlay-research/images/720/batman_00.jpg
      " srcset="
      ../media/posts-optimized/medlay-research/images/1440/batman_00.jpg 1440w,
      ../media/posts-optimized/medlay-research/images/1080/batman_00.jpg 1080w,
      ../media/posts-optimized/medlay-research/images/720/batman_00.jpg 720w,
      ../media/posts-optimized/medlay-research/images/360/batman_00.jpg 360w
      " sizes="
      (min-width: 30em) 36em,
      22em
      " alt="
      A cover of Detective Comics featuring Batman and Robin, DC Comics, 1940.
      " />
  </a>
  <figcaption class="typo-s">
    <p>A cover of <em>Detective Comics</em> featuring Batman and Robin, DC Comics, 1940. Roger Sabin, <em>Comics, Comix and Graphic Novels—A History Of Comic Art</em></p>
  </figcaption>
</figure>

</div>

<p>A practical example of <strong>remediation</strong> is the way the movie <em>Sin City</em>—a transposition of the graphic novel of the same name—has remediated a typical device of the comics media form: the <strong><em>splash page</em></strong>.</p>

<blockquote>
  <p>Through “splash pages” […] comics have the distinctive potential to convey in purely graphic terms the importance of a (literally) “big” moment in the story.</p>

  <p><cite class="source">Greg M. Smith, <em>Shaping The Maxx: adapting the comic book frame to television</em></cite></p>
</blockquote>

<div class="figures">
  

<figure class="image-m" id="sin_city_00.jpg">
  <a class="ratio" href="../media/posts-optimized/medlay-research/images/1440/sin_city_00.jpg" style="padding-bottom: 150.0%;background-color: #252525;" target="_blank">
    <img loading="lazy" src="
      ../media/posts-optimized/medlay-research/images/720/sin_city_00.jpg
      " srcset="
      ../media/posts-optimized/medlay-research/images/1440/sin_city_00.jpg 1440w,
      ../media/posts-optimized/medlay-research/images/1080/sin_city_00.jpg 1080w,
      ../media/posts-optimized/medlay-research/images/720/sin_city_00.jpg 720w,
      ../media/posts-optimized/medlay-research/images/360/sin_city_00.jpg 360w
      " sizes="
      (min-width: 30em) 36em,
      22em
      " alt="
      A splash page from the graphic novel Sin City.
      " />
  </a>
  <figcaption class="typo-s">
    <p>A splash page from the graphic novel Sin City. Frank Miller, <em>Sin City</em>.</p>
  </figcaption>
</figure>

</div>

<p>Restricted by the <quote>film’s seemingly fixed, invisible frame</quote> the movie remediates and reshapes the “splash page” device through camera movement and the artificially frozen pose of the jumping character.</p>

<div class="figures">
  

<figure class="video-embed-m" id="sin_city_00">
  <div class="ratio" style="padding-bottom: 56.0%;background-color: #252525;" target="blank">
    <video class="video-content" controls="controls" loop="loop" poster="../media/posts-optimized/medlay-research/videos/sin_city_00.jpg">
      <source src="../media/posts-optimized/medlay-research/videos/sin_city_00.webm" type="video/webm" />
      <source src="../media/posts-optimized/medlay-research/videos/sin_city_00.mp4" type="video/mp4" />
      <source src="../media/posts-optimized/medlay-research/videos/sin_city_00.ogv" type="video/ogv" />
      Your browser cannot play this video because it does not support the HTML5 video tag. Please <a href="../media/posts-optimized/medlay-research/videos/sin_city_00.mp4" target="_blank">download the video</a> to watch it instead.
    </video>
  </div>
  <figcaption class="typo-s">
    <p>Robert Rodríguez &amp; Frank Miller, <em>Sin City</em>.</p>

  </figcaption>
</figure>
</div>

<h3 id="digital-revolution">Digital revolution</h3>

<p><strong>Before</strong> the digital revolution, these reciprocal remediations were always limited by different production, recording, transmission, and reproduction technologies.</p>

<div class="figures">
  

<figure class="video-embed-m" id="cinema_technology_00">
  <div class="ratio" style="padding-bottom: 74.66666666666667%;background-color: #252525;" target="blank">
    <video class="video-content" controls="controls" loop="loop" poster="../media/posts-optimized/medlay-research/videos/cinema_technology_00.jpg">
      <source src="../media/posts-optimized/medlay-research/videos/cinema_technology_00.webm" type="video/webm" />
      <source src="../media/posts-optimized/medlay-research/videos/cinema_technology_00.mp4" type="video/mp4" />
      <source src="../media/posts-optimized/medlay-research/videos/cinema_technology_00.ogv" type="video/ogv" />
      Your browser cannot play this video because it does not support the HTML5 video tag. Please <a href="../media/posts-optimized/medlay-research/videos/cinema_technology_00.mp4" target="_blank">download the video</a> to watch it instead.
    </video>
  </div>
</figure>
</div>

<div class="figures">
  

<figure class="video-embed-m" id="comics_technology_00">
  <div class="ratio" style="padding-bottom: 74.66666666666667%;background-color: #252525;" target="blank">
    <video class="video-content" controls="controls" loop="loop" poster="../media/posts-optimized/medlay-research/videos/comics_technology_00.jpg">
      <source src="../media/posts-optimized/medlay-research/videos/comics_technology_00.webm" type="video/webm" />
      <source src="../media/posts-optimized/medlay-research/videos/comics_technology_00.mp4" type="video/mp4" />
      <source src="../media/posts-optimized/medlay-research/videos/comics_technology_00.ogv" type="video/ogv" />
      Your browser cannot play this video because it does not support the HTML5 video tag. Please <a href="../media/posts-optimized/medlay-research/videos/comics_technology_00.mp4" target="_blank">download the video</a> to watch it instead.
    </video>
  </div>
</figure>
</div>

<p><strong>After</strong> the digital revolution, the technological differences between the two cultural forms—absorbed by the World Wide Web—have been reset. However, in most cases, cinema and comics have continued to be considered and remediated separately.</p>

<div class="figures">
  

<figure class="image-m" id="beartato_00.jpg">
  <a class="ratio" href="../media/posts-optimized/medlay-research/images/1440/beartato_00.jpg" style="padding-bottom: 133.33333333333334%;background-color: #252525;" target="_blank">
    <img loading="lazy" src="
      ../media/posts-optimized/medlay-research/images/720/beartato_00.jpg
      " srcset="
      ../media/posts-optimized/medlay-research/images/1440/beartato_00.jpg 1440w,
      ../media/posts-optimized/medlay-research/images/1080/beartato_00.jpg 1080w,
      ../media/posts-optimized/medlay-research/images/720/beartato_00.jpg 720w,
      ../media/posts-optimized/medlay-research/images/360/beartato_00.jpg 360w
      " sizes="
      (min-width: 30em) 36em,
      22em
      " alt="
      A strip from the web comic NEDROID.
      " />
  </a>
  <figcaption class="typo-s">
    <p>Anthony Clark, <em>NEDROID</em> web comic.</p>
  </figcaption>
</figure>

</div>

<p>Is it possible to create a new <strong>hybrid media form</strong> that integrates the characteristics of cinema and comics that once seemed incompatible, now that the two mediums potentially differ only in their respective processes?</p>

<div class="figures">
  

<figure class="image-m" id="motion_comics_00.jpg">
  <a class="ratio" href="../media/posts-optimized/medlay-research/images/1440/motion_comics_00.jpg" style="padding-bottom: 56.25%;background-color: #252525;" target="_blank">
    <img loading="lazy" src="
      ../media/posts-optimized/medlay-research/images/720/motion_comics_00.jpg
      " srcset="
      ../media/posts-optimized/medlay-research/images/1440/motion_comics_00.jpg 1440w,
      ../media/posts-optimized/medlay-research/images/1080/motion_comics_00.jpg 1080w,
      ../media/posts-optimized/medlay-research/images/720/motion_comics_00.jpg 720w,
      ../media/posts-optimized/medlay-research/images/360/motion_comics_00.jpg 360w
      " sizes="
      (min-width: 30em) 36em,
      22em
      " alt="
      A screenshot taken from a Marvel motion comic.
      " />
  </a>
  <figcaption class="typo-s">
    <p>In my opinion, <em>Marvel Motion Comics</em> are not comics; their media form is, in fact, that of cartoon cinema through and through. Marvel Motion Comics, <em>Spider Woman</em>.</p>
  </figcaption>
</figure>

</div>

<div class="figures">
  

<figure class="image-m" id="motion_comics_01.jpg">
  <a class="ratio" href="../media/posts-optimized/medlay-research/images/1440/motion_comics_01.jpg" style="padding-bottom: 56.25%;background-color: #252525;" target="_blank">
    <img loading="lazy" src="
      ../media/posts-optimized/medlay-research/images/720/motion_comics_01.jpg
      " srcset="
      ../media/posts-optimized/medlay-research/images/1440/motion_comics_01.jpg 1440w,
      ../media/posts-optimized/medlay-research/images/1080/motion_comics_01.jpg 1080w,
      ../media/posts-optimized/medlay-research/images/720/motion_comics_01.jpg 720w,
      ../media/posts-optimized/medlay-research/images/360/motion_comics_01.jpg 360w
      " sizes="
      (min-width: 30em) 36em,
      22em
      " alt="
      A screenshot taken from a Marvel motion comic.
      " />
  </a>
  <figcaption class="typo-s">
    <p>Marvel Motion Comics, <em>Spider Woman</em>.</p>
  </figcaption>
</figure>

</div>

<h3 id="sequential-art">Sequential art</h3>

<p>To assess the potential for interbreeding between the two cultural forms, cinema and comics have been subsumed under the broader concept of <strong>sequential art</strong>: <quote>the arrangement of pictures or images and words to narrate a story or dramatize an idea</quote>—a definition created in 1985 by <strong>Will Eisner</strong><sup id="fnref:source-1" role="doc-noteref"><a href="#fn:source-1" class="footnote" rel="footnote">4</a></sup> and expanded in 1994 by <strong>Scott McCloud</strong><sup id="fnref:source-2" role="doc-noteref"><a href="#fn:source-2" class="footnote" rel="footnote">5</a></sup>. This concept has been used to compare cinema and comics, highlighting their affinities and differences.</p>

<div class="figures">
  

<figure class="image-m" id="understanding_comics_00.jpg">
  <a class="ratio" href="../media/posts-optimized/medlay-research/images/1440/understanding_comics_00.jpg" style="padding-bottom: 198.11320754716982%;background-color: #252525;" target="_blank">
    <img loading="lazy" src="
      ../media/posts-optimized/medlay-research/images/720/understanding_comics_00.jpg
      " srcset="
      ../media/posts-optimized/medlay-research/images/1440/understanding_comics_00.jpg 1440w,
      ../media/posts-optimized/medlay-research/images/1080/understanding_comics_00.jpg 1080w,
      ../media/posts-optimized/medlay-research/images/720/understanding_comics_00.jpg 720w,
      ../media/posts-optimized/medlay-research/images/360/understanding_comics_00.jpg 360w
      " sizes="
      (min-width: 30em) 36em,
      22em
      " alt="
      An excerpt from the non-fiction work Understanding Comics.
      " />
  </a>
  <figcaption class="typo-s">
    <p>Scott McCloud, <em>Understanding Comics</em>.</p>
  </figcaption>
</figure>

</div>

<p>The comparison analyzes the following points:</p>

<ul>
  <li>the respective procedures by which cinema and comics represent <strong>time</strong> and <strong>space</strong>, both at the level of the cinematic shot and the comics panel, as well as at the level of the sequence of shots and panels;</li>
</ul>

<div class="figures">
  

<figure class="video-embed-m" id="cinema_01">
  <div class="ratio" style="padding-bottom: 74.66666666666667%;background-color: #252525;" target="blank">
    <video class="video-content" controls="controls" loop="loop" poster="../media/posts-optimized/medlay-research/videos/cinema_01.jpg">
      <source src="../media/posts-optimized/medlay-research/videos/cinema_01.webm" type="video/webm" />
      <source src="../media/posts-optimized/medlay-research/videos/cinema_01.mp4" type="video/mp4" />
      <source src="../media/posts-optimized/medlay-research/videos/cinema_01.ogv" type="video/ogv" />
      Your browser cannot play this video because it does not support the HTML5 video tag. Please <a href="../media/posts-optimized/medlay-research/videos/cinema_01.mp4" target="_blank">download the video</a> to watch it instead.
    </video>
  </div>
  <figcaption class="typo-s">
    <p>In the cinematic media form, time is conveyed directly through the passage of time.</p>

  </figcaption>
</figure>
</div>

<div class="figures">
  

<figure class="video-embed-m" id="comics_time_space_00">
  <div class="ratio" style="padding-bottom: 74.66666666666667%;background-color: #252525;" target="blank">
    <video class="video-content" controls="controls" loop="loop" poster="../media/posts-optimized/medlay-research/videos/comics_time_space_00.jpg">
      <source src="../media/posts-optimized/medlay-research/videos/comics_time_space_00.webm" type="video/webm" />
      <source src="../media/posts-optimized/medlay-research/videos/comics_time_space_00.mp4" type="video/mp4" />
      <source src="../media/posts-optimized/medlay-research/videos/comics_time_space_00.ogv" type="video/ogv" />
      Your browser cannot play this video because it does not support the HTML5 video tag. Please <a href="../media/posts-optimized/medlay-research/videos/comics_time_space_00.mp4" target="_blank">download the video</a> to watch it instead.
    </video>
  </div>
  <figcaption class="typo-s">
    <p>In the comics media form, time is conveyed indirectly through space. Carlos Trillo &amp; Enrique Breccia, <em>Alvar Mayor</em>.</p>

  </figcaption>
</figure>
</div>

<ul>
  <li>the differences between the cinema <strong>split screen</strong> and the comics <strong>layout</strong>;</li>
</ul>

<div class="figures">
  

<figure class="image-l" id="conversation_with_other_women_00.jpg">
  <a class="ratio" href="../media/posts-optimized/medlay-research/images/1440/conversation_with_other_women_00.jpg" style="padding-bottom: 41.25%;background-color: #252525;" target="_blank">
    <img loading="lazy" src="
      ../media/media/posts-optimized/medlay-research/images/1080/conversation_with_other_women_00.jpg
      " srcset="
      ../media/posts-optimized/medlay-research/images/2160/conversation_with_other_women_00.jpg 2160w,
      ../media/posts-optimized/medlay-research/images/1440/conversation_with_other_women_00.jpg 1440w,
      ../media/posts-optimized/medlay-research/images/1080/conversation_with_other_women_00.jpg 1080w,
      ../media/posts-optimized/medlay-research/images/720/conversation_with_other_women_00.jpg 720w,
      ../media/posts-optimized/medlay-research/images/360/conversation_with_other_women_00.jpg 360w
      " sizes="
      (min-width: 54em) 54em,
      (min-width: 30em) 36em,
      22em
      " alt="
      A screenshot from Conversation with Other Women.
      " />
  </a>
  <figcaption class="typo-s">
    <p>Hans Canosa, <em>Conversation with Other Women</em>.</p>
  </figcaption>
</figure>

</div>

<div class="figures">
  

<figure class="image-xl" id="jojo_00.jpg">
  <a class="ratio" href="../media/posts-optimized/medlay-research/images/1440/jojo_00.jpg" style="padding-bottom: 79.16666666666666%;" target="_blank">
    <img loading="lazy" src="
      ../media/posts-optimized/medlay-research/images/1440/jojo_00.jpg
      " srcset="
      ../media/posts-optimized/medlay-research/images/2880/jojo_00.jpg 2880w,
      ../media/posts-optimized/medlay-research/images/2160/jojo_00.jpg 2160w,
      ../media/posts-optimized/medlay-research/images/1440/jojo_00.jpg 1440w,
      ../media/posts-optimized/medlay-research/images/1080/jojo_00.jpg 1080w,
      ../media/posts-optimized/medlay-research/images/720/jojo_00.jpg 720w,
      ../media/posts-optimized/medlay-research/images/360/jojo_00.jpg 360w
      " sizes="
      (min-width: 72em) 72em,
      (min-width: 54em) 54em,
      (min-width: 30em) 36em,
      22em
      " alt="
      A double page from the manga Jojo’s Bizarre Adventure.
      " />
  </a>
  <figcaption class="typo-s">
    <p>Multi-images spatial narration. Hirohiko Araki, <em>Jojo’s Bizarre Adventure</em>.</p>
  </figcaption>
</figure>

</div>

<ul>
  <li>the differences between the <strong>format</strong> of the cinema shot and that of the comics panel;</li>
</ul>

<div class="figures">
  

<figure class="image-m" id="cinema_format_00.jpg">
  <a class="ratio" href="../media/posts-optimized/medlay-research/images/1440/cinema_format_00.jpg" style="padding-bottom: 74.66666666666667%;" target="_blank">
    <img loading="lazy" src="
      ../media/posts-optimized/medlay-research/images/720/cinema_format_00.jpg
      " srcset="
      ../media/posts-optimized/medlay-research/images/1440/cinema_format_00.jpg 1440w,
      ../media/posts-optimized/medlay-research/images/1080/cinema_format_00.jpg 1080w,
      ../media/posts-optimized/medlay-research/images/720/cinema_format_00.jpg 720w,
      ../media/posts-optimized/medlay-research/images/360/cinema_format_00.jpg 360w
      " sizes="
      (min-width: 30em) 36em,
      22em
      " alt="
      The format of a cinema shot.
      " />
  </a>
</figure>

</div>

<div class="figures">
  

<figure class="image-m" id="blame_00.jpg">
  <a class="ratio" href="../media/posts-optimized/medlay-research/images/1440/blame_00.jpg" style="padding-bottom: 150.0%;" target="_blank">
    <img loading="lazy" src="
      ../media/posts-optimized/medlay-research/images/720/blame_00.jpg
      " srcset="
      ../media/posts-optimized/medlay-research/images/1440/blame_00.jpg 1440w,
      ../media/posts-optimized/medlay-research/images/1080/blame_00.jpg 1080w,
      ../media/posts-optimized/medlay-research/images/720/blame_00.jpg 720w,
      ../media/posts-optimized/medlay-research/images/360/blame_00.jpg 360w
      " sizes="
      (min-width: 30em) 36em,
      22em
      " alt="
      A page taken from the manga Blame!
      " />
  </a>
  <figcaption class="typo-s">
    <p>Tsutomu Nihei, <em>Blame!</em>.</p>
  </figcaption>
</figure>

</div>

<ul>
  <li>the respective procedures by which cinema and comics represent <strong>voice</strong>, <strong>noise</strong> and <strong>music</strong>;</li>
</ul>

<div class="figures">
  

<figure class="video-embed-m" id="cinema_sound_00">
  <div class="ratio" style="padding-bottom: 74.66666666666667%;background-color: #252525;" target="blank">
    <video class="video-content" controls="controls" loop="loop" poster="../media/posts-optimized/medlay-research/videos/cinema_sound_00.jpg">
      <source src="../media/posts-optimized/medlay-research/videos/cinema_sound_00.webm" type="video/webm" />
      <source src="../media/posts-optimized/medlay-research/videos/cinema_sound_00.mp4" type="video/mp4" />
      <source src="../media/posts-optimized/medlay-research/videos/cinema_sound_00.ogv" type="video/ogv" />
      Your browser cannot play this video because it does not support the HTML5 video tag. Please <a href="../media/posts-optimized/medlay-research/videos/cinema_sound_00.mp4" target="_blank">download the video</a> to watch it instead.
    </video>
  </div>
</figure>
</div>

<div class="figures">
  

<figure class="image-m" id="comics_voice_00.jpg">
  <a class="ratio" href="../media/posts-optimized/medlay-research/images/1440/comics_voice_00.jpg" style="padding-bottom: 168.75%;" target="_blank">
    <img loading="lazy" src="
      ../media/posts-optimized/medlay-research/images/720/comics_voice_00.jpg
      " srcset="
      ../media/posts-optimized/medlay-research/images/1440/comics_voice_00.jpg 1440w,
      ../media/posts-optimized/medlay-research/images/1080/comics_voice_00.jpg 1080w,
      ../media/posts-optimized/medlay-research/images/720/comics_voice_00.jpg 720w,
      ../media/posts-optimized/medlay-research/images/360/comics_voice_00.jpg 360w
      " sizes="
      (min-width: 30em) 36em,
      22em
      " alt="
      Scott McCloud speaking out loud in Making Comics.
      " />
  </a>
  <figcaption class="typo-s">
    <p>Scott McCloud, <em>Making Comics</em>.</p>
  </figcaption>
</figure>

</div>

<ul>
  <li>the respective procedures of <strong>interpretation</strong>.</li>
</ul>

<div class="figures">
  

<figure class="image-m" id="viewing_00.jpg">
  <a class="ratio" href="../media/posts-optimized/medlay-research/images/1440/viewing_00.jpg" style="padding-bottom: 75.0%;" target="_blank">
    <img loading="lazy" src="
      ../media/posts-optimized/medlay-research/images/720/viewing_00.jpg
      " srcset="
      ../media/posts-optimized/medlay-research/images/1440/viewing_00.jpg 1440w,
      ../media/posts-optimized/medlay-research/images/1080/viewing_00.jpg 1080w,
      ../media/posts-optimized/medlay-research/images/720/viewing_00.jpg 720w,
      ../media/posts-optimized/medlay-research/images/360/viewing_00.jpg 360w
      " sizes="
      (min-width: 30em) 36em,
      22em
      " alt="
      Spectators watching a cinema screen in a theatre.
      " />
  </a>
</figure>

</div>

<div class="figures">
  

<figure class="image-m" id="reading_comics_00.jpg">
  <a class="ratio" href="../media/posts-optimized/medlay-research/images/1440/reading_comics_00.jpg" style="padding-bottom: 133.33333333333334%;" target="_blank">
    <img loading="lazy" src="
      ../media/posts-optimized/medlay-research/images/720/reading_comics_00.jpg
      " srcset="
      ../media/posts-optimized/medlay-research/images/1440/reading_comics_00.jpg 1440w,
      ../media/posts-optimized/medlay-research/images/1080/reading_comics_00.jpg 1080w,
      ../media/posts-optimized/medlay-research/images/720/reading_comics_00.jpg 720w,
      ../media/posts-optimized/medlay-research/images/360/reading_comics_00.jpg 360w
      " sizes="
      (min-width: 30em) 36em,
      22em
      " alt="
      Children reading comics.
      " />
  </a>
  <figcaption class="typo-s">
    <p>Roger Sabin, <em>Comics, Comix &amp; Graphic Novels—A History Of Comic Art</em>.</p>
  </figcaption>
</figure>

</div>

<h3 id="hybrid-media-form">Hybrid media form</h3>

<p>The <strong>consequences</strong> of the mid-1980s digital revolution<sup id="fnref:digital-revolution" role="doc-noteref"><a href="#fn:digital-revolution" class="footnote" rel="footnote">6</a></sup>, the emergence of the new digital media and their characteristics, and the new possibilities for producing dynamic images enabled by computers and the Web have been subsequently examined.</p>

<div class="figures">
  

<figure class="image-m" id="sin_city_01.jpg">
  <a class="ratio" href="../media/posts-optimized/medlay-research/images/1440/sin_city_01.jpg" style="padding-bottom: 51.25%;" target="_blank">
    <img loading="lazy" src="
      ../media/posts-optimized/medlay-research/images/720/sin_city_01.jpg
      " srcset="
      ../media/posts-optimized/medlay-research/images/1440/sin_city_01.jpg 1440w,
      ../media/posts-optimized/medlay-research/images/1080/sin_city_01.jpg 1080w,
      ../media/posts-optimized/medlay-research/images/720/sin_city_01.jpg 720w,
      ../media/posts-optimized/medlay-research/images/360/sin_city_01.jpg 360w
      " sizes="
      (min-width: 30em) 36em,
      22em
      " alt="
      A screenshot from the making of the movie Sin City.
      " />
  </a>
  <figcaption class="typo-s">
    <p>Robert Rodríguez &amp; Frank Miller, <em>Sin City</em> making of.</p>
  </figcaption>
</figure>

</div>

<div class="figures">
  

<figure class="image-m" id="sin_city_02.jpg">
  <a class="ratio" href="../media/posts-optimized/medlay-research/images/1440/sin_city_02.jpg" style="padding-bottom: 51.25%;" target="_blank">
    <img loading="lazy" src="
      ../media/posts-optimized/medlay-research/images/720/sin_city_02.jpg
      " srcset="
      ../media/posts-optimized/medlay-research/images/1440/sin_city_02.jpg 1440w,
      ../media/posts-optimized/medlay-research/images/1080/sin_city_02.jpg 1080w,
      ../media/posts-optimized/medlay-research/images/720/sin_city_02.jpg 720w,
      ../media/posts-optimized/medlay-research/images/360/sin_city_02.jpg 360w
      " sizes="
      (min-width: 30em) 36em,
      22em
      " alt="
      A screenshot from the movie Sin City.
      " />
  </a>
  <figcaption class="typo-s">
    <p>Robert Rodríguez &amp; Frank Miller, <em>Sin City</em>.</p>
  </figcaption>
</figure>

</div>

<p>In the end, a new <strong>hybrid media form</strong> that integrated both cinema and comics was proposed and demonstrated: <em>Medlay</em>.</p>

<p>This hybridization was made possible by the mid-1980s digital revolution and the ever-growing, eclectic and inclusive Web environment, which serves as a melting pot for various old media forms and has increasingly become a crucial distribution channel.</p>

<hr />

<p>If you have any suggestions or spot anything that needs fixing, please let me know. Your thoughts, critiques, and recommendations are more than welcome.</p>

<p>Thank you!</p>

<div class="footnotes" role="doc-endnotes">
  <ol>
    <li id="fn:thanks" role="doc-endnote">
      <p>A huge thank-you to Massimo Magrì and Nicolò Scibilia for for giving me this opportunity and for their help throughout the process. <a href="#fnref:thanks" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:remediation" role="doc-endnote">
      <p>Jay David Bolter &amp; Richard Grusin, <em>Remediation</em>. <a href="#fnref:remediation" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:transposition" role="doc-endnote">
      <p>Referring to imagery, stories, characters, …. <a href="#fnref:transposition" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:source-1" role="doc-endnote">
      <p>Will Eisner, <em>Comics &amp; Sequential Art</em>. <a href="#fnref:source-1" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:source-2" role="doc-endnote">
      <p>Scott McCloud, <em>Understanding Comics</em>. <a href="#fnref:source-2" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:digital-revolution" role="doc-endnote">
      <p>The main consequences of the mid-1980s digital revolution were the advent of the computer, the digitization of data from analog to digital, and the progressive computerization of culture.</p>

      <p>See Lev Manovich, <em>The Language of New Media</em>. <a href="#fnref:digital-revolution" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
  </ol>
</div>]]></content><author><name>Andrea Buran</name></author><category term="cinema" /><category term="comics" /><category term="media form" /><category term="Medlay" /><category term="space" /><category term="time" /><summary type="html"><![CDATA[Is it possible to create a new hybrid media form that remediates the characteristics of cinema and comics that once seemed incompatible?]]></summary></entry><entry><title type="html">Sequences, *Medlay*, Part 3</title><link href="https://www.andreaburan.com/post/medlay-sequences.html" rel="alternate" type="text/html" title="Sequences, *Medlay*, Part 3" /><published>2015-02-01T08:00:00+01:00</published><updated>2015-02-01T08:00:00+01:00</updated><id>https://www.andreaburan.com/post/medlay-sequences</id><content type="html" xml:base="https://www.andreaburan.com/post/medlay-sequences.html"><![CDATA[<p>A sequence is the <strong>narrative unit</strong> of a Medlay artefact. Multiple sequences spatially juxtaposed on a canvas constitute a complete narration.</p>

<ul class="toc" id="markdown-toc">
  <li><a href="#series-of-pieces" id="markdown-toc-series-of-pieces">Series of pieces</a></li>
  <li><a href="#pace-of-space" id="markdown-toc-pace-of-space">Pace of space</a></li>
  <li><a href="#viewers-as-motors-of-the-narration" id="markdown-toc-viewers-as-motors-of-the-narration">Viewers as motors of the narration</a></li>
</ul>

<h3 id="series-of-pieces">Series of pieces</h3>

<p>A sequence consists of one<sup id="fnref:one-piece-sequence" role="doc-noteref"><a href="#fn:one-piece-sequence" class="footnote" rel="footnote">1</a></sup> or more <strong>series of pieces</strong><sup id="fnref:pieces" role="doc-noteref"><a href="#fn:pieces" class="footnote" rel="footnote">2</a></sup> that are sequentially <strong>juxtaposed in space</strong>.</p>

<p>By being arranged in space, different pieces are placed into significant proximity with each other and create narrative meanings.</p>

<h3 id="pace-of-space">Pace of space</h3>

<p>In a <em>Medlay</em> artefact—similarly to what happens in a comic one—space at the level of a sequence indirectly represents time: the <strong>development in time</strong> of a narration is represented through the <strong>configuration of space</strong>.</p>

<p>As American cartoonist and comics theorist Scott McCloud theorized with his <strong>infinite canvas</strong> concept, the pace of a comic’s narration on the Web is no longer influenced or limited by the physical boundaries of a page<sup id="fnref:page" role="doc-noteref"><a href="#fn:page" class="footnote" rel="footnote">3</a></sup>:</p>

<blockquote>
  <p>The “infinite” canvas is a challenge to think big; a series of design strategies based on treating the <strong>screen as a window</strong> rather than a page.The basic premise is that there’s no reason that long-form comics have to be split into pages when moving online. Pages are an option […].</p>

  <p>Print cartoonists (myself included) make a constant series of compromises in pacing and design to stuff out stories into pages. We add and subtract panels, restrict size variation, break reading flow, and rarely if ever vary the distance between panels for fear of wasting paper. Without such restrictions, though, every one of those choices can be made exclusively on behalf of the needs of the story.</p>

  <p><cite class="source">Scott McCloud, <em><a href="http://scottmccloud.com/4-inventions/canvas/" title="The &quot;Infinite Canvas&quot;">Infinite Canvas</a></em></cite></p>
</blockquote>

<p>By embracing the concept of the infinite canvas, the narrative pace of a medlay sequence has <strong>no spatial boundaries or restrictions</strong> and is free to extend according to the needs of the story.</p>

<h3 id="viewers-as-motors-of-the-narration">Viewers as motors of the narration</h3>

<p>Since a sequence extends in space rather than time, viewers are entirely <strong>free to interact</strong> with and <strong>explore</strong> it in any order and at their own pace<sup id="fnref:roll" role="doc-noteref"><a href="#fn:roll" class="footnote" rel="footnote">4</a></sup>. Specifically, they can:</p>

<ul>
  <li>have a glanceable, immediate, synthetic <strong>overview</strong> of the narrative meaning of a particular sequence, or portion thereof;</li>
  <li>have <strong>random access</strong> to any piece of a sequence and focus their attention on it at any given time, regardless of its location.</li>
</ul>

<p>The above points become crucial for web-based narration, since Web viewers are in an <strong>active stance</strong> while surfing the net and expect to drive any artefact they interact with<sup id="fnref:progress-bar" role="doc-noteref"><a href="#fn:progress-bar" class="footnote" rel="footnote">5</a></sup>.</p>

<p>In a medlay artefact, viewers actively move the narration forward by exploring the various sequences of pieces and scrolling the canvas: the journey through space becomes the narration.</p>

<hr />

<p>If you have any suggestions or spot anything that needs fixing, please let me know. Your thoughts, critiques, and recommendations are more than welcome.</p>

<p>Thank you!</p>

<div class="footnotes" role="doc-endnotes">
  <ol>
    <li id="fn:one-piece-sequence" role="doc-endnote">
      <p>A sequence consisting of one piece is possible but but should be considered an edge case, as a single-panel comic strip. <a href="#fnref:one-piece-sequence" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:pieces" role="doc-endnote">
      <p>More on pieces can be found in the previous chapters, <em><a href="/chapters/pieces.html">Pieces</a></em>. <a href="#fnref:pieces" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:page" role="doc-endnote">
      <p>Or at least, it should not be: in reality, comic artifacts on the Web are still often shaped into pages. <a href="#fnref:page" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:roll" role="doc-endnote">
      <p>The viewing time of a sequence is not dictated by the unavoidable roll of moving images, as it happens in a movie. <a href="#fnref:roll" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:progress-bar" role="doc-endnote">
      <p>How often do you impatiently jump from one moment to another of a video clip by interacting with its progress bar? <strong>Attention span</strong> on the Web behaves differently than on television or in printed matter. <a href="#fnref:progress-bar" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
  </ol>
</div>]]></content><author><name>Andrea Buran</name></author><category term="cinema" /><category term="comics" /><category term="media form" /><category term="Medlay" /><category term="space" /><category term="time" /><summary type="html"><![CDATA[Sequences are the narrative units of a Medlay artifact and consist of one or more series of pieces sequentially juxtaposed in space.]]></summary></entry><entry><title type="html">Pieces, *Medlay*, Part 2</title><link href="https://www.andreaburan.com/post/medlay-pieces.html" rel="alternate" type="text/html" title="Pieces, *Medlay*, Part 2" /><published>2015-02-01T08:00:00+01:00</published><updated>2015-02-01T08:00:00+01:00</updated><id>https://www.andreaburan.com/post/medlay-pieces</id><content type="html" xml:base="https://www.andreaburan.com/post/medlay-pieces.html"><![CDATA[<p>A piece is the fundamental <strong>building block</strong> of a <em>Medlay</em> artifact.</p>

<p>It is a hybrid between a cinematographic shot and a comic panel. Like its precursors, it gains significance when placed in context with other pieces—specifically, when it is <strong>spatially juxtaposed in a sequence</strong><sup id="fnref:sequences" role="doc-noteref"><a href="#fn:sequences" class="footnote" rel="footnote">1</a></sup> of pieces.</p>

<ul class="toc" id="markdown-toc">
  <li><a href="#series-of-images-into-loop" id="markdown-toc-series-of-images-into-loop">Series of images into loop</a></li>
  <li><a href="#different-types-of-pieces" id="markdown-toc-different-types-of-pieces">Different types of pieces</a></li>
  <li><a href="#length-of-time" id="markdown-toc-length-of-time">Length of time</a></li>
  <li><a href="#viewers-interaction" id="markdown-toc-viewers-interaction">Viewer’s interaction</a></li>
  <li><a href="#frame" id="markdown-toc-frame">Frame</a></li>
</ul>

<h3 id="series-of-images-into-loop">Series of images into loop</h3>

<p>A piece consists of one or more dynamic <strong>series of images</strong><sup id="fnref:shot" role="doc-noteref"><a href="#fn:shot" class="footnote" rel="footnote">2</a></sup> sequentially <strong>juxtaposed over time</strong>.</p>

<p>Each piece is <strong>structured as a loop</strong>, allowing the content to be repeated over and over in time and always accessible to viewers.</p>

<div class="figures">
  

<figure class="video-embed-m" id="piece_00">
  <div class="ratio" style="padding-bottom: 56.25%;background-color: #252525;" target="blank">
    <video class="video-content" controls="controls" loop="loop" poster="../media/posts-optimized/medlay-pieces/videos/piece_00.jpg">
      <source src="../media/posts-optimized/medlay-pieces/videos/piece_00.webm" type="video/webm" />
      <source src="../media/posts-optimized/medlay-pieces/videos/piece_00.mp4" type="video/mp4" />
      <source src="../media/posts-optimized/medlay-pieces/videos/piece_00.ogv" type="video/ogv" />
      Your browser cannot play this video because it does not support the HTML5 video tag. Please <a href="../media/posts-optimized/medlay-pieces/videos/piece_00.mp4" target="_blank">download the video</a> to watch it instead.
    </video>
  </div>
  <figcaption class="typo-s">
    <p>A piece formed into a loop.</p>

  </figcaption>
</figure>
</div>

<h3 id="different-types-of-pieces">Different types of pieces</h3>

<p>When a piece is formed into a loop, it means that the one or more series of images it is composed of are spliced together.</p>

<p>The <strong>splicing</strong> can be either continuous<sup id="fnref:continuity-editing" role="doc-noteref"><a href="#fn:continuity-editing" class="footnote" rel="footnote">3</a></sup>, achieved through a smooth <a href="https://en.wikipedia.org/wiki/Film_transition" title="Film Transition in Wikipedia">transition</a> of time and space, or discontinuous, marked by the absence of such a transition.</p>

<div class="figures">
  

<figure class="video-embed-m" id="piece_discontinuous_series_00">
  <div class="ratio" style="padding-bottom: 56.25%;background-color: #252525;" target="blank">
    <video class="video-content" controls="controls" loop="loop" poster="../media/posts-optimized/medlay-pieces/videos/piece_discontinuous_series_00.jpg">
      <source src="../media/posts-optimized/medlay-pieces/videos/piece_discontinuous_series_00.webm" type="video/webm" />
      <source src="../media/posts-optimized/medlay-pieces/videos/piece_discontinuous_series_00.mp4" type="video/mp4" />
      <source src="../media/posts-optimized/medlay-pieces/videos/piece_discontinuous_series_00.ogv" type="video/ogv" />
      Your browser cannot play this video because it does not support the HTML5 video tag. Please <a href="../media/posts-optimized/medlay-pieces/videos/piece_discontinuous_series_00.mp4" target="_blank">download the video</a> to watch it instead.
    </video>
  </div>
  <figcaption class="typo-s">
    <p>A piece consisting of a <strong>single discontinuous series</strong>. The splicing is immediately perceivable.</p>

  </figcaption>
</figure>
</div>
<div class="figures">
  

<figure class="video-embed-m" id="piece_continuous_series_00">
  <div class="ratio" style="padding-bottom: 56.25%;background-color: #252525;" target="blank">
    <video class="video-content" controls="controls" loop="loop" poster="../media/posts-optimized/medlay-pieces/videos/piece_continuous_series_00.jpg">
      <source src="../media/posts-optimized/medlay-pieces/videos/piece_continuous_series_00.webm" type="video/webm" />
      <source src="../media/posts-optimized/medlay-pieces/videos/piece_continuous_series_00.mp4" type="video/mp4" />
      <source src="../media/posts-optimized/medlay-pieces/videos/piece_continuous_series_00.ogv" type="video/ogv" />
      Your browser cannot play this video because it does not support the HTML5 video tag. Please <a href="../media/posts-optimized/medlay-pieces/videos/piece_continuous_series_00.mp4" target="_blank">download the video</a> to watch it instead.
    </video>
  </div>
  <figcaption class="typo-s">
    <p>A piece consisting of a <strong>single continuous series</strong>. The splicing is not immediately perceivable.</p>

  </figcaption>
</figure>
</div>

<p>When a piece consists of a sequence from a <strong>single series</strong>, the last and first images of the series are spliced together at the end of the piece, meaning the series<sup id="fnref:coincidence" role="doc-noteref"><a href="#fn:coincidence" class="footnote" rel="footnote">4</a></sup> is juxtaposed in time with itself.</p>

<div class="figures">
  

<figure class="video-embed-m" id="piece_single_series_00">
  <div class="ratio" style="padding-bottom: 56.25%;background-color: #252525;" target="blank">
    <video class="video-content" controls="controls" loop="loop" poster="../media/posts-optimized/medlay-pieces/videos/piece_single_series_00.jpg">
      <source src="../media/posts-optimized/medlay-pieces/videos/piece_single_series_00.webm" type="video/webm" />
      <source src="../media/posts-optimized/medlay-pieces/videos/piece_single_series_00.mp4" type="video/mp4" />
      <source src="../media/posts-optimized/medlay-pieces/videos/piece_single_series_00.ogv" type="video/ogv" />
      Your browser cannot play this video because it does not support the HTML5 video tag. Please <a href="../media/posts-optimized/medlay-pieces/videos/piece_single_series_00.mp4" target="_blank">download the video</a> to watch it instead.
    </video>
  </div>
  <figcaption class="typo-s">
    <p>A piece consisting of a <strong>single series</strong>.</p>

  </figcaption>
</figure>
</div>

<p>When a piece consists of a sequence of <strong>multiple series</strong>, the last image of the last series and the first image of the first series are spliced together at the end of the piece, meaning the last series is juxtaposed in time with the first.</p>

<div class="figures">
  

<figure class="video-embed-m" id="piece_multiple_series_00">
  <div class="ratio" style="padding-bottom: 56.25%;background-color: #252525;" target="blank">
    <video class="video-content" controls="controls" loop="loop" poster="../media/posts-optimized/medlay-pieces/videos/piece_multiple_series_00.jpg">
      <source src="../media/posts-optimized/medlay-pieces/videos/piece_multiple_series_00.webm" type="video/webm" />
      <source src="../media/posts-optimized/medlay-pieces/videos/piece_multiple_series_00.mp4" type="video/mp4" />
      <source src="../media/posts-optimized/medlay-pieces/videos/piece_multiple_series_00.ogv" type="video/ogv" />
      Your browser cannot play this video because it does not support the HTML5 video tag. Please <a href="../media/posts-optimized/medlay-pieces/videos/piece_multiple_series_00.mp4" target="_blank">download the video</a> to watch it instead.
    </video>
  </div>
  <figcaption class="typo-s">
    <p>A piece consisting of a <strong>multiple series</strong> <strong>1–2</strong>.</p>

  </figcaption>
</figure>
</div>

<p>A <strong>particular case</strong> of a multiple-series piece occurs when it consists of a sequence of two series of images where the second series is simply the first one, time-reversed and played back.</p>

<div class="figures">
  

<figure class="video-embed-m" id="piece_multiple_series_01">
  <div class="ratio" style="padding-bottom: 56.25%;background-color: #252525;" target="blank">
    <video class="video-content" controls="controls" loop="loop" poster="../media/posts-optimized/medlay-pieces/videos/piece_multiple_series_01.jpg">
      <source src="../media/posts-optimized/medlay-pieces/videos/piece_multiple_series_01.webm" type="video/webm" />
      <source src="../media/posts-optimized/medlay-pieces/videos/piece_multiple_series_01.mp4" type="video/mp4" />
      <source src="../media/posts-optimized/medlay-pieces/videos/piece_multiple_series_01.ogv" type="video/ogv" />
      Your browser cannot play this video because it does not support the HTML5 video tag. Please <a href="../media/posts-optimized/medlay-pieces/videos/piece_multiple_series_01.mp4" target="_blank">download the video</a> to watch it instead.
    </video>
  </div>
  <figcaption class="typo-s">
    <p>A piece consisting of a <strong>multiple series</strong> <strong>1–1</strong> <strong>back and forth</strong>.</p>

  </figcaption>
</figure>
</div>

<h3 id="length-of-time">Length of time</h3>

<p>Each series is designed to run for a <strong>short period</strong> rather than a long one. The shorter the series, the shorter the resulting piece, and the less time viewers need to go through it and fully grasp it.</p>

<p>The duration of each series must always be considered when crafting a <strong>quickly digestible piece</strong>, especially when the piece is composed of multiple series in sequence.</p>

<h3 id="viewers-interaction">Viewer’s interaction</h3>

<p>A piece can be programmed to respond to viewers’ interactions and/or focus of attention, shifting from a passive state to an active one when <strong>triggered by an event</strong><sup id="fnref:events" role="doc-noteref"><a href="#fn:events" class="footnote" rel="footnote">5</a></sup>.</p>

<p>For example, a piece consisting of a single series may change state and transition<sup id="fnref:transition" role="doc-noteref"><a href="#fn:transition" class="footnote" rel="footnote">6</a></sup> to a different series in response to viewers tapping the piece or scrolling the canvas to a specific area of focus.</p>

<div class="figures">
  

<figure class="video-embed-m" id="piece_multiple_series_02">
  <div class="ratio" style="padding-bottom: 56.25%;background-color: #252525;" target="blank">
    <video class="video-content" controls="controls" loop="loop" poster="../media/posts-optimized/medlay-pieces/videos/piece_multiple_series_02.jpg">
      <source src="../media/posts-optimized/medlay-pieces/videos/piece_multiple_series_02.webm" type="video/webm" />
      <source src="../media/posts-optimized/medlay-pieces/videos/piece_multiple_series_02.mp4" type="video/mp4" />
      <source src="../media/posts-optimized/medlay-pieces/videos/piece_multiple_series_02.ogv" type="video/ogv" />
      Your browser cannot play this video because it does not support the HTML5 video tag. Please <a href="../media/posts-optimized/medlay-pieces/videos/piece_multiple_series_02.mp4" target="_blank">download the video</a> to watch it instead.
    </video>
  </div>
  <figcaption class="typo-s">
    <p>A piece consisting of <strong>multiple interactive series</strong> <strong>1–2–1</strong>. The 1<sup>st</sup> series cuts to the 2<sup>nd</sup> one in response to the viewer’s tap. As soon as the 2<sup>nd</sup> series ends, the piece resets to its initial state.</p>

  </figcaption>
</figure>
</div>
<div class="figures">
  

<figure class="video-embed-m" id="piece_multiple_series_03">
  <div class="ratio" style="padding-bottom: 56.25%;background-color: #252525;" target="blank">
    <video class="video-content" controls="controls" loop="loop" poster="../media/posts-optimized/medlay-pieces/videos/piece_multiple_series_03.jpg">
      <source src="../media/posts-optimized/medlay-pieces/videos/piece_multiple_series_03.webm" type="video/webm" />
      <source src="../media/posts-optimized/medlay-pieces/videos/piece_multiple_series_03.mp4" type="video/mp4" />
      <source src="../media/posts-optimized/medlay-pieces/videos/piece_multiple_series_03.ogv" type="video/ogv" />
      Your browser cannot play this video because it does not support the HTML5 video tag. Please <a href="../media/posts-optimized/medlay-pieces/videos/piece_multiple_series_03.mp4" target="_blank">download the video</a> to watch it instead.
    </video>
  </div>
  <figcaption class="typo-s">
    <p>A piece consisting of <strong>multiple interactive series</strong> <strong>1–2–3</strong>. The 1<sup>st</sup> series cuts to the 2<sup>nd</sup> transitional series in response to the viewer’s tap. Once the 2<sup>nd</sup> transitional series ends, the piece transitions to its final state, where the 3<sup>rd</sup> series is played.</p>

  </figcaption>
</figure>
</div>

<h3 id="frame">Frame</h3>

<p>Since a piece is spatially juxtaposed on a canvas, its frame is directly visible<sup id="fnref:cinematographic-frame" role="doc-noteref"><a href="#fn:cinematographic-frame" class="footnote" rel="footnote">7</a></sup> to viewers. The frame’s <strong>size</strong>, <strong>shape</strong> and <strong>borders</strong> become <strong>significant</strong> elements that can be shaped to express or reinforce the meaning of the piece.</p>

<div class="figures">
  

<figure class="video-embed-m" id="piece_shapes_00">
  <div class="ratio" style="padding-bottom: 56.25%;background-color: #252525;" target="blank">
    <video class="video-content" controls="controls" loop="loop" poster="../media/posts-optimized/medlay-pieces/videos/piece_shapes_00.jpg">
      <source src="../media/posts-optimized/medlay-pieces/videos/piece_shapes_00.webm" type="video/webm" />
      <source src="../media/posts-optimized/medlay-pieces/videos/piece_shapes_00.mp4" type="video/mp4" />
      <source src="../media/posts-optimized/medlay-pieces/videos/piece_shapes_00.ogv" type="video/ogv" />
      Your browser cannot play this video because it does not support the HTML5 video tag. Please <a href="../media/posts-optimized/medlay-pieces/videos/piece_shapes_00.mp4" target="_blank">download the video</a> to watch it instead.
    </video>
  </div>
  <figcaption class="typo-s">
    <p>A vertical or horizontal shape can better emphasize the content of a piece.</p>

  </figcaption>
</figure>
</div>
<div class="figures">
  

<figure class="video-embed-m" id="piece_sizes_00">
  <div class="ratio" style="padding-bottom: 56.25%;background-color: #252525;" target="blank">
    <video class="video-content" controls="controls" loop="loop" poster="../media/posts-optimized/medlay-pieces/videos/piece_sizes_00.jpg">
      <source src="../media/posts-optimized/medlay-pieces/videos/piece_sizes_00.webm" type="video/webm" />
      <source src="../media/posts-optimized/medlay-pieces/videos/piece_sizes_00.mp4" type="video/mp4" />
      <source src="../media/posts-optimized/medlay-pieces/videos/piece_sizes_00.ogv" type="video/ogv" />
      Your browser cannot play this video because it does not support the HTML5 video tag. Please <a href="../media/posts-optimized/medlay-pieces/videos/piece_sizes_00.mp4" target="_blank">download the video</a> to watch it instead.
    </video>
  </div>
  <figcaption class="typo-s">
    <p>Significant size.</p>

  </figcaption>
</figure>
</div>
<div class="figures">
  

<figure class="video-embed-m" id="piece_borders_00">
  <div class="ratio" style="padding-bottom: 56.25%;background-color: #252525;" target="blank">
    <video class="video-content" controls="controls" loop="loop" poster="../media/posts-optimized/medlay-pieces/videos/piece_borders_00.jpg">
      <source src="../media/posts-optimized/medlay-pieces/videos/piece_borders_00.webm" type="video/webm" />
      <source src="../media/posts-optimized/medlay-pieces/videos/piece_borders_00.mp4" type="video/mp4" />
      <source src="../media/posts-optimized/medlay-pieces/videos/piece_borders_00.ogv" type="video/ogv" />
      Your browser cannot play this video because it does not support the HTML5 video tag. Please <a href="../media/posts-optimized/medlay-pieces/videos/piece_borders_00.mp4" target="_blank">download the video</a> to watch it instead.
    </video>
  </div>
  <figcaption class="typo-s">
    <p>Significant border.</p>

  </figcaption>
</figure>
</div>

<hr />

<p>If you have any suggestions or spot anything that needs fixing, please let me know. Your thoughts, critiques, and recommendations are more than welcome.</p>

<p>Thank you!</p>

<div class="footnotes" role="doc-endnotes">
  <ol>
    <li id="fn:sequences" role="doc-endnote">
      <p>More on sequences of pieces in the next post, <em><a href="/post/medlay-sequences.html">Sequences</a></em>. <a href="#fnref:sequences" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:shot" role="doc-endnote">
      <p>What in cinematographic language are called <a href="https://en.wikipedia.org/wiki/Shot_%28filmmaking%29" title="Shot in Wikipedia">shots</a>.</p>

      <p>In this context, I prefer using the more generic term <strong><em>series</em></strong>, mainly because the term <strong><em>shot</em></strong> is too strongly connected to the cinematic media form and its primarily photographic nature. <a href="#fnref:shot" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:continuity-editing" role="doc-endnote">
      <p>Here, the bag of tricks from <a href="https://en.wikipedia.org/wiki/Continuity_editing" title="Continuity Editing in Wikipedia">continuity editing</a> comes into play. <a href="#fnref:continuity-editing" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:coincidence" role="doc-endnote">
      <p>The series coincides with the piece itself, as the piece is the series. <a href="#fnref:coincidence" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:events" role="doc-endnote">
      <p>On mouseover, on tap, on scroll, …. <a href="#fnref:events" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:transition" role="doc-endnote">
      <p>The transition can be either a <strong>cut</strong> or an entirely new <strong>transitional series</strong>, which plays only once and serves primarily as a connector between the starting and finishing states of the piece. <a href="#fnref:transition" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:cinematographic-frame" role="doc-endnote">
      <p>Similar to a comic panel and different from a cinematographic shot, which latter frame is fixed sized and shape and has transparent, non-significant borders. <a href="#fnref:cinematographic-frame" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
  </ol>
</div>]]></content><author><name>Andrea Buran</name></author><category term="cinema" /><category term="comics" /><category term="media form" /><category term="Medlay" /><category term="space" /><category term="time" /><summary type="html"><![CDATA[Pieces are the fundamental building blocks of a Medlay artifact and derive from a hybrid between a cinematographic shot and a comic panel.]]></summary></entry><entry><title type="html">Introduction, *Medlay*, Part 1</title><link href="https://www.andreaburan.com/post/medlay-introduction.html" rel="alternate" type="text/html" title="Introduction, *Medlay*, Part 1" /><published>2015-02-01T07:00:00+01:00</published><updated>2015-02-01T07:00:00+01:00</updated><id>https://www.andreaburan.com/post/medlay-introduction</id><content type="html" xml:base="https://www.andreaburan.com/post/medlay-introduction.html"><![CDATA[<p><em>Medlay</em> (<em>medley</em> + <em>lay</em>) is a <strong>hybrid media form</strong> for creating a multimedia artifact that narrates a story or communicates an idea on the Web.</p>

<p>A <strong>media form</strong> is to a <strong>media artifact</strong> as comics is to a particular comic book or as cinema is to a particular movie: the latter is a specific application of the former.</p>

<div class="figures">
  

<figure class="image-m" id="the_last_dispatch_6671.jpg">
  <a class="ratio" href="../media/posts-optimized/medlay-introduction/images/1440/the_last_dispatch_6671.jpg" style="padding-bottom: 144.0%;background-color: #252525;" target="_blank">
    <img loading="lazy" src="
      ../media/posts-optimized/medlay-introduction/images/720/the_last_dispatch_6671.jpg
      " srcset="
      ../media/posts-optimized/medlay-introduction/images/1440/the_last_dispatch_6671.jpg 1440w,
      ../media/posts-optimized/medlay-introduction/images/1080/the_last_dispatch_6671.jpg 1080w,
      ../media/posts-optimized/medlay-introduction/images/720/the_last_dispatch_6671.jpg 720w,
      ../media/posts-optimized/medlay-introduction/images/360/the_last_dispatch_6671.jpg 360w
      " sizes="
      (min-width: 30em) 36em,
      22em
      " alt="
      A screenshot from the proof of concept The Last Dispatch.
      " />
  </a>
  <figcaption class="typo-s">
    <p>A screenshot from the proof of concept <em>The Last Dispatch</em>.</p>
  </figcaption>
</figure>

</div>

<p><em>Medlay</em> is hybrid because it combines the strengths of two popular media forms: <strong>cinema</strong> and <strong>comics</strong>. For example, the moving image in cinema or the variably sized and shaped panel in comics.</p>

<p>Specifically, it fuses the one-image-at-a-time <strong>temporal narration</strong> typical of cinema with the multi-images <strong>spatial narration</strong> characteristic of comics.</p>

<div class="figures">
  

<figure class="video-embed-m" id="cinema_00">
  <div class="ratio" style="padding-bottom: 75.0%;background-color: #252525;" target="blank">
    <video class="video-content" controls="controls" loop="loop" poster="../media/posts-optimized/medlay-introduction/videos/cinema_00.jpg">
      <source src="../media/posts-optimized/medlay-introduction/videos/cinema_00.webm" type="video/webm" />
      <source src="../media/posts-optimized/medlay-introduction/videos/cinema_00.mp4" type="video/mp4" />
      <source src="../media/posts-optimized/medlay-introduction/videos/cinema_00.ogv" type="video/ogv" />
      Your browser cannot play this video because it does not support the HTML5 video tag. Please <a href="../media/posts-optimized/medlay-introduction/videos/cinema_00.mp4" target="_blank">download the video</a> to watch it instead.
    </video>
  </div>
  <figcaption class="typo-s">
    <p>One-image-at-a-time temporal narration.</p>

  </figcaption>
</figure>
</div>

<div class="figures">
  

<figure class="image-xl" id="jojo_00.jpg">
  <a class="ratio" href="../media/posts-optimized/medlay-introduction/images/1440/jojo_00.jpg" style="padding-bottom: 79.16666666666666%;" target="_blank">
    <img loading="lazy" src="
      ../media/posts-optimized/medlay-introduction/images/1440/jojo_00.jpg
      " srcset="
      ../media/posts-optimized/medlay-introduction/images/2880/jojo_00.jpg 2880w,
      ../media/posts-optimized/medlay-introduction/images/2160/jojo_00.jpg 2160w,
      ../media/posts-optimized/medlay-introduction/images/1440/jojo_00.jpg 1440w,
      ../media/posts-optimized/medlay-introduction/images/1080/jojo_00.jpg 1080w,
      ../media/posts-optimized/medlay-introduction/images/720/jojo_00.jpg 720w,
      ../media/posts-optimized/medlay-introduction/images/360/jojo_00.jpg 360w
      " sizes="
      (min-width: 72em) 72em,
      (min-width: 54em) 54em,
      (min-width: 30em) 36em,
      22em
      " alt="
      A double page from the manga Jojo’s Bizarre Adventure.
      " />
  </a>
  <figcaption class="typo-s">
    <p>Multi-images spatial narration. Hirohiko Araki, <em>Jojo’s Bizarre Adventure</em>.</p>
  </figcaption>
</figure>

</div>

<p>Two proof-of-concept prototypes have been created to demonstrate the potential uses of Medlay: <em><a href="/project/medlay-the-last-dispatch.html">The Last Dispatch</a></em> and <em><a href="/project/medlay-ubik.html">Ubik Chap. 6</a></em>. Both narrate a short story.</p>

<div class="figures">
  

<figure class="image-m" id="ubik_6696.jpg">
  <a class="ratio" href="../media/posts-optimized/medlay-introduction/images/1440/ubik_6696.jpg" style="padding-bottom: 119.0%;background-color: #252525;" target="_blank">
    <img loading="lazy" src="
      ../media/posts-optimized/medlay-introduction/images/720/ubik_6696.jpg
      " srcset="
      ../media/posts-optimized/medlay-introduction/images/1440/ubik_6696.jpg 1440w,
      ../media/posts-optimized/medlay-introduction/images/1080/ubik_6696.jpg 1080w,
      ../media/posts-optimized/medlay-introduction/images/720/ubik_6696.jpg 720w,
      ../media/posts-optimized/medlay-introduction/images/360/ubik_6696.jpg 360w
      " sizes="
      (min-width: 30em) 36em,
      22em
      " alt="
      A screenshot from the proof of concept Ubik Chap. 6.
      " />
  </a>
  <figcaption class="typo-s">
    <p>A screenshot from the proof of concept <em>Ubik Chap. 6</em>.</p>
  </figcaption>
</figure>

</div>

<p>Viewers of a <em>Medlay</em> artifact can <strong>actively</strong> and <strong>freely</strong> <strong>explore</strong><sup id="fnref:exploration" role="doc-noteref"><a href="#fn:exploration" class="footnote" rel="footnote">1</a></sup> the time and space of a multimedia narration.</p>

<p>The <strong>watching time</strong> of a <em>Medlay</em> artifact is not dictated by the roll of moving images as it is in a movie, allowing viewers to interact with the narrative sequence in an <strong>order</strong> and <strong>pace</strong> of their own choosing.</p>

<div class="figures">
  

<figure class="video-embed-m" id="viewing_00">
  <div class="ratio" style="padding-bottom: 75.0%;background-color: #252525;" target="blank">
    <video class="video-content" controls="controls" loop="loop" poster="../media/posts-optimized/medlay-introduction/videos/viewing_00.jpg">
      <source src="../media/posts-optimized/medlay-introduction/videos/viewing_00.webm" type="video/webm" />
      <source src="../media/posts-optimized/medlay-introduction/videos/viewing_00.mp4" type="video/mp4" />
      <source src="../media/posts-optimized/medlay-introduction/videos/viewing_00.ogv" type="video/ogv" />
      Your browser cannot play this video because it does not support the HTML5 video tag. Please <a href="../media/posts-optimized/medlay-introduction/videos/viewing_00.mp4" target="_blank">download the video</a> to watch it instead.
    </video>
  </div>
</figure>
</div>

<hr />

<p>If you have any suggestions or spot anything that needs fixing, please let me know. Your thoughts, critiques, and recommendations are more than welcome.</p>

<p>Thank you!</p>

<div class="footnotes" role="doc-endnotes">
  <ol>
    <li id="fn:exploration" role="doc-endnote">
      <p>Through desktop and mobile devices using an up-to-date browser. <a href="#fnref:exploration" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
  </ol>
</div>]]></content><author><name>Andrea Buran</name></author><category term="cinema" /><category term="comics" /><category term="media form" /><category term="Medlay" /><category term="space" /><category term="time" /><summary type="html"><![CDATA[Medlay is a hybrid media form that combines the strengths of cinema and comics to narrate a story or communicate an idea on the Web.]]></summary></entry></feed>