<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><generator uri="https://jekyllrb.com/" version="4.3.4">Jekyll</generator><link href="https://hydejack.com/feed.xml" rel="self" type="application/atom+xml" /><link href="https://hydejack.com/" rel="alternate" type="text/html" hreflang="en" /><updated>2024-11-29T08:56:26+00:00</updated><id>https://hydejack.com/feed.xml</id><title type="html">Hydejack</title><subtitle>Hydejack is a boutique Jekyll theme for hackers, nerds, and academics, with a focus on personal sites that are meant to impress.
</subtitle><author><name>Florian Klampfer</name><email>mail@qwtel.com</email></author><entry><title type="html">X Marks the Spot in Hydejack 9.2</title><link href="https://hydejack.com/blog/hydejack/2024-09-08-x-marks-the-spot-in-hydejack-9-2/" rel="alternate" type="text/html" title="X Marks the Spot in Hydejack 9.2" /><published>2024-09-08T00:00:00+00:00</published><updated>2024-09-08T08:56:04+00:00</updated><id>https://hydejack.com/blog/hydejack/x-marks-the-spot-in-hydejack-9-2</id><content type="html" xml:base="https://hydejack.com/blog/hydejack/2024-09-08-x-marks-the-spot-in-hydejack-9-2/"><![CDATA[<h2 id="new-social-media-icons">New Social Media Icons</h2>

<p>Lots of things have changed in the world of social media since the last release. To bring Hydejack up to date, the default logo for Twitter has changed:</p>

<p class="larger"><span class="icon-twitter-old"></span> → <span class="icon-twitter"></span></p>

<!--more-->

<ul class="large-only" id="markdown-toc">
  <li><a href="#new-social-media-icons" id="markdown-toc-new-social-media-icons">New Social Media Icons</a></li>
  <li><a href="#dark-mode-is-now-free" id="markdown-toc-dark-mode-is-now-free">Dark Mode is Now Free</a></li>
  <li><a href="#updated-docs" id="markdown-toc-updated-docs">Updated Docs</a></li>
  <li><a href="#google-fonts-off-by-default" id="markdown-toc-google-fonts-off-by-default">Google Fonts Off by Default</a></li>
</ul>

<p class="note smaller">If you prefer the old Twitter logo, you can use it through <code class="language-plaintext highlighter-rouge">twitter-old</code>.</p>

<p>There are also many new social media networks, some of which are now included by default:</p>

<table>
  <thead>
    <tr>
      <th style="text-align: left">Name</th>
      <th>Icon</th>
      <th style="text-align: left">Name</th>
      <th>Icon</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td style="text-align: left">signal</td>
      <td><span class="larger icon-signal"></span></td>
      <td style="text-align: left">threads</td>
      <td><span class="larger icon-threads"></span></td>
    </tr>
    <tr>
      <td style="text-align: left">playstation</td>
      <td><span class="larger icon-playstation"></span></td>
      <td style="text-align: left">messenger</td>
      <td><span class="larger icon-messenger"></span></td>
    </tr>
    <tr>
      <td style="text-align: left">stripe</td>
      <td><span class="larger icon-stripe"></span></td>
      <td style="text-align: left">slack</td>
      <td><span class="larger icon-slack"></span></td>
    </tr>
    <tr>
      <td style="text-align: left">gitlab</td>
      <td><span class="larger icon-gitlab"></span></td>
      <td style="text-align: left">line</td>
      <td><span class="larger icon-line"></span></td>
    </tr>
    <tr>
      <td style="text-align: left">medium</td>
      <td><span class="larger icon-medium"></span></td>
      <td style="text-align: left">xbox</td>
      <td><span class="larger icon-xbox"></span></td>
    </tr>
    <tr>
      <td style="text-align: left">wechat</td>
      <td><span class="larger icon-wechat"></span></td>
      <td style="text-align: left">discord</td>
      <td><span class="larger icon-discord"></span></td>
    </tr>
    <tr>
      <td style="text-align: left">mastodon</td>
      <td><span class="larger icon-mastodon"></span></td>
      <td style="text-align: left">twitter</td>
      <td><span class="larger icon-twitter"></span></td>
    </tr>
  </tbody>
</table>

<p>If your perferred network is missing, note that you can always <a href="/docs/advanced/#adding-a-custom-social-media-icon">follow the steps to add custom icons</a> from the docs, which is what I did for this release.</p>

<h2 id="dark-mode-is-now-free">Dark Mode is Now Free</h2>
<p>When I first added dark mode to Hydejack it was still considered a novelty. 
Unity, a popular game engine, was limiting dark mode to its paid version at the time — a model that I’ve adopted for Hydejack. 
Today, dark mode is considered a minimal requirement for any new theme and to reflect that reality, 
starting with Hydejack 9.2, dark mode is included in all versions of Hydejack.</p>

<h2 id="updated-docs">Updated Docs</h2>
<p>The documentation has been updated with a focus on deployment via GitHub Actions and CI pipelines. 
I’ve added a chapter on how to <a href="/docs/deploy/" class="heading flip-title">Deploy</a> and updated many of the existing chapters.</p>

<p>The deployment experience for <strong>PRO customers</strong> has also been improved. You are now automatically added to a “PRO Customers” team on GitHub if you provide a GitHub username during checkout (existing customers can request an invite through <a href="mailto:mail@hydejack.com">mail@hydejack.com</a>).
Members of this team have read access to the pro repository, which allows the theme to be fetched during a CI run. 
For detail, check out the new <a href="/docs/deploy/" class="heading flip-title">Deploy</a> chapter.</p>

<h2 id="google-fonts-off-by-default">Google Fonts Off by Default</h2>
<p>Google Fonts are now turned off by default in the starter kits, but remain in use on hydejack.com for visual continuity. All associated options continue to work as they did before. Only new users have to enable them in the config file if they want to match the look of hydejack.com.</p>

<p>The reason for this change is that sensibilities around privacy have changed in recent years. 
No Google product feels appropriate as a default option for an ownership and self-hosting oriented product like Hydejack.</p>

<p>To restore the old look that matches hydejack.com, add the following to your <code class="language-plaintext highlighter-rouge">_config.yml</code> file:</p>

<div class="language-yml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="na">google_fonts</span><span class="pi">:</span>          <span class="s">Roboto+Slab:700|Noto+Sans:400,400i,700,700i</span>
<span class="na">font</span><span class="pi">:</span>                  <span class="s">Noto Sans, Helvetica, Arial, sans-serif</span>
<span class="na">font_heading</span><span class="pi">:</span>          <span class="s">Roboto Slab, Helvetica, Arial, sans-serif</span>
</code></pre></div></div>

<p>On a related note, I’ve also decided against updating the included Google Analytics script, in part because the upgrade path is incomprehensible, but also due the the same privacy concerns that make Google Fonts a bad default option. I recommend independent analytics services like 
<a href="https://plausible.io">Plausible</a>, <a href="https://matomo.org/">Matomo</a> or maybe even <a href="https://counterscale.dev">Counterscale</a> (if you are a Cloudflare customer).
You can include the tracking scripts by <a href="/docs/basics/#adding-custom-html-to-the-head">adding them as custom HTML</a>.</p>]]></content><author><name>Florian Klampfer</name><email>mail@qwtel.com</email></author><category term="hydejack" /><summary type="html"><![CDATA[This feature release adds new social media icons for 2024 and makes dark mode available to everyone.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://hydejack.com/assets/img/blog/pawel-czerwinski-848z7lbCjoo-unsplash.jpg" /><media:content medium="image" url="https://hydejack.com/assets/img/blog/pawel-czerwinski-848z7lbCjoo-unsplash.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Service Release For 9.1</title><link href="https://hydejack.com/blog/hydejack/2024-09-04-service-release-for-9-1/" rel="alternate" type="text/html" title="Service Release For 9.1" /><published>2024-09-04T00:00:00+00:00</published><updated>2024-09-05T09:09:41+00:00</updated><id>https://hydejack.com/blog/hydejack/service-release-for-9-1</id><content type="html" xml:base="https://hydejack.com/blog/hydejack/2024-09-04-service-release-for-9-1/"><![CDATA[<p>A full-time job and focus to my many other side projects meant that Hydejack has been effectively abandoned for the last couple of years.</p>

<p>Recently I’ve used Hydejack myself to blog on my personal site, and while it may sound silly, <strong>I came away impressed with my own product</strong>.</p>

<!--more-->

<p>When I was actively working on Hydejack, all I could see were its flaws, but looking at it with fresh eyes, it struck me as  a pretty good product and in many ways ahead of its time: 
Just recently the <a href="https://developer.mozilla.org/en-US/docs/Web/API/View_Transitions_API">View Transitions API</a> has landed in major browsers, enabling the kinds of animations that have been the bread and butter of Hydejack for years (back then painstakingly hand-coded using JavaScript).</p>

<p>While I can’t go back to working full-time on this project — the economics of a niche one-time purchase like this hard to justify — I’m going to dedicate 1-2 weeks to brushing it up, starting with <strong>a service release that removes the annoying deprecation warnings</strong> that you’ve likely encountered:</p>

<p><img src="/assets/img/blog/deprecation-warnings.png" alt="Deprecation Warnings" class="border" /></p>

<p>With that out of the way, another thing I want to improve is the documentation for deployments. Things have changed since I wrote the original docs. There are now much better ways of deploying to GitHub Pages and from GitHub Actions in general.</p>

<p>The deployment experience for PRO customers could also be improved. Upgrading from Free to PRO hasn’t been as smooth as it could be due to the need to manually manage source files. Instead, it would be possible to create a GitHub Organization for all customers which would allow pulling PRO code directly from a private repository in most CI pipelines.</p>

<p>Privacy has become a big focus in recent years, which means enabling Google Analytics and Google Fonts by default can no longer be considered good taste for a ownership focused web presence. 
The default newsletter provider Tinyletter has folded since the last release and needs a replacement. 
These things could be remedied in a future release.</p>

<p>If there’s time left, I will also look into deleting 100s of lines of custom JS code in favor of the View Transitions API.
Let’s see how things go.</p>]]></content><author><name>Florian Klampfer</name><email>mail@qwtel.com</email></author><category term="hydejack" /><summary type="html"><![CDATA[Hydejack is back from the dead with a few long overdue bugfixes.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://hydejack.com/assets/img/blog/nick-wright-Cp19i8IOjk4-unsplash.jpg" /><media:content medium="image" url="https://hydejack.com/assets/img/blog/nick-wright-Cp19i8IOjk4-unsplash.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">What’s New in Hydejack 9.1?</title><link href="https://hydejack.com/blog/hydejack/2021-02-13-whats-new-in-hydejack-9-1/" rel="alternate" type="text/html" title="What’s New in Hydejack 9.1?" /><published>2021-02-13T00:00:00+00:00</published><updated>2024-09-07T09:42:15+00:00</updated><id>https://hydejack.com/blog/hydejack/whats-new-in-hydejack-9-1</id><content type="html" xml:base="https://hydejack.com/blog/hydejack/2021-02-13-whats-new-in-hydejack-9-1/"><![CDATA[<p>What’s New in Hydejack 9.1?</p>

<ul id="markdown-toc">
  <li><a href="#stripe-ified-design" id="markdown-toc-stripe-ified-design">Stripe-ified Design</a></li>
  <li><a href="#inverted-sidebars" id="markdown-toc-inverted-sidebars">Inverted Sidebars</a></li>
  <li><a href="#code-block-headers" id="markdown-toc-code-block-headers">Code Block Headers</a></li>
  <li><a href="#resume-download-buttons" id="markdown-toc-resume-download-buttons">Resume Download Buttons</a></li>
  <li><a href="#serp-breadcrumbs" id="markdown-toc-serp-breadcrumbs"><abbr title="Search Engine Results Page">SERP</abbr> Breadcrumbs</a></li>
  <li><a href="#last-modified-at" id="markdown-toc-last-modified-at">Last Modified At</a></li>
  <li><a href="#clap-button-preview" id="markdown-toc-clap-button-preview"><del>Clap Button Preview</del></a></li>
  <li><a href="#credits" id="markdown-toc-credits">Credits</a></li>
</ul>

<h2 id="stripe-ified-design">Stripe-ified Design</h2>
<p>Most elements now have rounded borders, making the design look more modern (dare I say “Stripe-ified”) than ever before.</p>

<p>The goal of Hydejack was always to provide a theme that looks “designed” combined the amenities of a typical Jekyll theme for coders.
This is an important step in maintaining this goal.</p>

<p>At the same time, I’m introducing nerdy elements like <a href="#serp-breadcrumbs">breadcrumbs</a>, that are almost ornamental in nature.
You wouldn’t find these on other Stripe-like designs, but I think they are appealing to developer types like myself. 
Like most additions to Hydejack, they can be disabled via configuration.</p>

<h2 id="inverted-sidebars">Inverted Sidebars</h2>
<p>The colors on the sidebar can now be inverted to allow brighter sidebar images. This can be enabled per-page in the fort matter:</p>

<div class="language-yml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="na">invert_sidebar</span><span class="pi">:</span> <span class="kc">true</span>
</code></pre></div></div>

<h2 id="code-block-headers">Code Block Headers</h2>
<p>Code blocks can now have headers:</p>

<div class="language-js highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1">// file: 'hello-world.js'</span>
<span class="nx">console</span><span class="p">.</span><span class="nf">log</span><span class="p">(</span><span class="dl">'</span><span class="s1">Hello World!</span><span class="dl">'</span><span class="p">);</span>
</code></pre></div></div>

<p>Headers are added by making the first line a comment of the form <code class="language-plaintext highlighter-rouge">(file|title): ['"].*['"]</code>, e.g.:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>~~~js
// file: 'hello-world.js'
console.log('Hello World!');
~~~
</code></pre></div></div>

<p>Code blocks with and without headers now also come with a copy button. 
In the case of header-less code blocks, the button only shows on hover to prevent potential overlap.</p>

<h2 id="resume-download-buttons">Resume Download Buttons</h2>
<p>Resumes can now have download buttons:</p>

<p><img src="/assets/img/blog/9.1.0-3.png" alt="Download Buttons" class="border lead" width="1776" height="258" loading="lazy" /></p>

<p class="figcaption">Resumes can now have download buttons.</p>

<p>The documentation has been updated with a chapter on <a href="/docs/basics/#downloads">how to configure the buttons</a>.</p>

<h2 id="serp-breadcrumbs"><abbr title="Search Engine Results Page">SERP</abbr> Breadcrumbs</h2>
<p>Added breadcrumbs above page title:</p>

<p><img src="/assets/img/blog/9.1.0-2.png" alt="Breadcrumbs" class="border lead" width="1588" height="164" loading="lazy" /></p>

<p class="figcaption">Bread crumbs are now shown above each page title.</p>

<p>Note that this requires a <a href="https://qwtel.com/posts/software/urls-are-directories/">directory-like URL structure</a> on your entire site, 
otherwise the intermediate links will point to nonexisting sites.</p>

<p>On a side note, Hydejack now has built-in tooltips for abbreviations like <abbr title="Search Engine Results Page">SERP</abbr> (activated via tap/click).
See <a href="/blog/hyde/2012-02-07-example-content/#inline-html-elements">Example Content</a> on how to add them to your content.</p>

<h2 id="last-modified-at">Last Modified At</h2>
<p>Blog posts can now have a “last modified at” date in the sub title row.</p>

<p><img src="/assets/img/blog/9.1.0-1.png" alt="Last modified at" class="border lead" width="1254" height="218" loading="lazy" /></p>

<p>Note that this depends on the <code class="language-plaintext highlighter-rouge">last_modified_at</code> property of the page, which must be either set manually in the frontmatter (not recommended), or via a plugin like <a href="https://github.com/gjtorikian/jekyll-last-modified-at"><code class="language-plaintext highlighter-rouge">jekyll-last-modified-at</code></a>. Note that the later is not available when building on GitHub Pages and can increase build times.</p>

<h2 id="clap-button-preview"><del>Clap Button Preview</del></h2>
<p><del>I’ve been trying something new with <strong>getclaps.app</strong>, a feedback and analytics tool for personal sites like those powered by Hydejack.</del></p>

<p><del>It is a separate product from Hydejack and not enabled by default. Because it depends on a backend component, it requires a monthly fee.</del>
<del>If enabled, it is placed below posts and pages where the dingbat character (❖) used to be.</del></p>

<p><del>I can’t claim that this product is fully baked (feedback welcome), but I’ve been using it on my personal site and here for the last couple of months with no issues.</del>
<del>For more, see the dedicated website.</del></p>

<hr style="margin:2rem 0" />

<p>There are many more changes and bugfixes in 9.1. See the <a href="/CHANGELOG/" class="heading flip-title">CHANGELOG</a> for details.</p>

<h2 id="credits">Credits</h2>

<p><span>Photo by <a href="https://unsplash.com/@jjying?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">JJ Ying</a> on <a href="https://unsplash.com/?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a></span></p>]]></content><author><name>Florian Klampfer</name><email>mail@qwtel.com</email></author><category term="hydejack" /><summary type="html"><![CDATA[Version 9.1 provides minor design changes, new features, and closes multiple issues.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://hydejack.com/assets/img/blog/jj-ying.jpg" /><media:content medium="image" url="https://hydejack.com/assets/img/blog/jj-ying.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Introducing Hydejack 9</title><link href="https://hydejack.com/blog/hydejack/2020-07-03-introducing-hydejack-9/" rel="alternate" type="text/html" title="Introducing Hydejack 9" /><published>2020-07-03T00:00:00+00:00</published><updated>2024-11-29T08:53:10+00:00</updated><id>https://hydejack.com/blog/hydejack/introducing-hydejack-9</id><content type="html" xml:base="https://hydejack.com/blog/hydejack/2020-07-03-introducing-hydejack-9/"><![CDATA[<p class="lead">Version 9 is the most complete version of Hydejack yet.</p>

<p><a href="#linking-in-style">Modernized</a> <a href="#whats-in-the-cards">design</a>, <a href="#ready-for-the-big-screen">big headlines</a>, big new features: <a href="#built-in-search">Built-In Search</a>, <a href="#sticky-table-of-contents">Sticky Table of Contents</a>, and <a href="#auto-hiding-navbar">Auto-Hiding Navbar</a>. That <a href="#and-much-more">and more</a> is Hydejack 9.</p>

<ul class="large-only" id="markdown-toc">
  <li><a href="#linking-in-style" id="markdown-toc-linking-in-style">Linking in Style</a></li>
  <li><a href="#ready-for-the-big-screen" id="markdown-toc-ready-for-the-big-screen">Ready for the Big Screen</a></li>
  <li><a href="#whats-in-the-cards" id="markdown-toc-whats-in-the-cards">What’s in the Cards?</a></li>
  <li><a href="#built-in-search" id="markdown-toc-built-in-search">Built-In Search</a></li>
  <li><a href="#auto-hiding-navbar" id="markdown-toc-auto-hiding-navbar">Auto-Hiding Navbar</a></li>
  <li><a href="#sticky-table-of-contents" id="markdown-toc-sticky-table-of-contents">Sticky Table of Contents</a></li>
  <li><a href="#and-much-more" id="markdown-toc-and-much-more">…and much more</a></li>
  <li><a href="#even-more-to-come" id="markdown-toc-even-more-to-come">Even More to Come</a></li>
  <li><a href="#get-it-now" id="markdown-toc-get-it-now">Get It Now</a></li>
</ul>

<h2 id="linking-in-style">Linking in Style</h2>

<p>Ever since the introduction of Dark Mode, link styles have been a bit of an issue. Specifically, finding an accent color that worked on both light and dark backgrounds was the problem. With Hydejack 9, the <a href="#linking-in-style">link style</a> has been revamped so that legibility is no longer tied to the choice of accent_color, giving you much more freedom in creating a unique design flavor for your site.</p>

<h2 id="ready-for-the-big-screen">Ready for the Big Screen</h2>

<p>The theme on which Hydejack is based was designed for a different era of the web. Hydejack has inherited many of its limitations, but over time I’ve made adjustments, such as centering the content column for better reading ergonomics.</p>

<p>With version 9, Hydejack takes full advantage of large displays. Whether it’s design indulgences such as oversized headlines, or quality of life improvements such as a floating table of contents, Hydejack now finds use for all that extra screen real estate<sup id="fnref:1"><a href="#fn:1" class="footnote" rel="footnote" role="doc-noteref">1</a></sup>.</p>

<h2 id="whats-in-the-cards">What’s in the Cards?</h2>

<p>Hydejack 9 now lets you use content cards for both projects and posts. 
The cards have been redesigned with a new hover style and drop shadows and they retain their unique transition-to-next-page animations, which now also work on the <code class="language-plaintext highlighter-rouge">blog</code> layout. The new <code class="language-plaintext highlighter-rouge">grid</code> layout lets you do that.</p>

<p>Good images are key to making the most out of content cards. For that reason, a <a href="/docs/basics/#adding-images">chapter on images</a> has been added to the documentation.</p>

<h2 id="built-in-search">Built-In Search</h2>

<p>Hydejack now has Built-In Search. It even works offline. I’ve been prototyping many approaches and eventually settled on a fully client-side, off-the-main thread solution that perfectly fits the use case of personal sites and shows surprisingly good results<sup id="fnref:2"><a href="#fn:2" class="footnote" rel="footnote" role="doc-noteref">2</a></sup>.</p>

<p>The new search UI is custom made for Hydejack and shows beautiful previews of your posts and pages, right on top of your regular content.</p>

<p>Together with the Auto-Hiding Navbar, your entire content library is now only a couple of keystrokes away.</p>

<h2 id="auto-hiding-navbar">Auto-Hiding Navbar</h2>

<p>A navbar that’s there when you need it, and disappears when you don’t. Simple as that.</p>

<h2 id="sticky-table-of-contents">Sticky Table of Contents</h2>

<p>Already a staple on so many sites on the web, this pattern is now also available in Hydejack. 
What’s unique about it is that it simply picks up the table of contents already created by kramdown’s <code class="language-plaintext highlighter-rouge">{:toc}</code> tag and transparently upgrades it to a fully dynamic version.</p>

<h2 id="and-much-more">…and much more</h2>

<p>Other noteworthy changes include:</p>
<ul>
  <li>Support for Jekyll 4</li>
  <li>Choice between MathJax and KaTeX for math rendering</li>
  <li>Use of <code class="language-plaintext highlighter-rouge">jekyll-include-cache</code> for drastically improved page building speeds</li>
  <li>New variables configuration file — adjust content width, sidebar width, font size, etc…</li>
  <li>…and the option to disable grouping projects by year.</li>
</ul>

<p>Read the the <a href="/CHANGELOG/" class="heading flip-title">CHANGELOG</a> for the full scope of features and improvements made in Hydejack 9.
Maybe just glance at it to confirm that it is indeed a pretty long list.</p>

<h2 id="even-more-to-come">Even More to Come</h2>

<p>New features for 9.1 are already lined up. Code block headers and code line highlights for even better technical blogging, as well as download buttons on the resume page for PDF, vCard, and Resume JSON are just around the corner.</p>

<h2 id="get-it-now">Get It Now</h2>
<p>The Free Version of Hydejack is now availabe on <a href="https://rubygems.org/gems/jekyll-theme-hydejack">RubyGems</a>
and for the first time also on <a href="https://github.com/hydecorp/hydejack/packages">GitHub Packages</a>. 
The source code is available on <a href="https://github.com/hydecorp/hydejack">GitHub</a> as always.</p>

<p>The PRO Version is scheduled to release on July 7th on <del>Gumroad</del>. Pre-Orders are open now:</p>

<p><a class="no-mark" href="https://buy.polar.sh/polar_cl_CczddJM50iZgR_iuUhc_54RcSg1KasTEJtOSqTvlpUI"><img src="https://polar.sh/embed/product.svg?organizationId=b750a733-43ac-41dd-acee-c0433b7c3d34&amp;productId=6533b366-39b9-4af1-a7e4-9fbdbd658d2b" alt="Hydejack PRO" /></a></p>

<div class="footnotes" role="doc-endnotes">
  <ol>
    <li id="fn:1">
      <p>If you are a fan of the old two-column layout, or don’t like modern design tropes such as mega headlines, Hydejack lets you revert these changes on a case-by-case basis via configuration options. <a href="#fnref:1" class="reversefootnote" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
    </li>
    <li id="fn:2">

      <p>Search was mainly tested for English and German. Please let me know about issues in other languages. 
  While I’ve tried to find a multi-language solution, most showed drastically worse  results for the English base case.
  If you’re technically inclined, you can adopt the code located in <code class="language-plaintext highlighter-rouge">_includes/js/search-worker.js</code> to your needs. <a href="#fnref:2" class="reversefootnote" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
    </li>
  </ol>
</div>]]></content><author><name>Florian Klampfer</name><email>mail@qwtel.com</email></author><category term="hydejack" /><summary type="html"><![CDATA[Version 9 is the most complete version of Hydejack yet. Modernized design, big headlines, and big new features.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://hydejack.com/assets/img/blog/jeremy-bishop@0,5x.jpg" /><media:content medium="image" url="https://hydejack.com/assets/img/blog/jeremy-bishop@0,5x.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">About Upcoming Versions of Hydejack</title><link href="https://hydejack.com/blog/hydejack/2019-11-10-about-upcoming-versions-of-hydejack/" rel="alternate" type="text/html" title="About Upcoming Versions of Hydejack" /><published>2019-11-10T00:00:00+00:00</published><updated>2020-06-11T13:53:01+00:00</updated><id>https://hydejack.com/blog/hydejack/about-upcoming-versions-of-hydejack</id><content type="html" xml:base="https://hydejack.com/blog/hydejack/2019-11-10-about-upcoming-versions-of-hydejack/"><![CDATA[<p>I think it’s time to post an update on upcoming versions of Hydejack, in part to get me back into the mood for writing. Missing documentation is, as always, what’s holding up the release. There are currently plenty of features that would be useful to many people that simply aren’t documented, including everything that is work in progress for v9. It’s both the least fun and most valuable part of the project.</p>

<ul class="large-only" id="markdown-toc">
  <li><a href="#version-9" id="markdown-toc-version-9">Version 9</a></li>
  <li><a href="#grid-layout" id="markdown-toc-grid-layout">Grid Layout</a></li>
  <li><a href="#auto-hiding-navbar" id="markdown-toc-auto-hiding-navbar">Auto-Hiding Navbar</a></li>
  <li><a href="#pricing" id="markdown-toc-pricing">Pricing</a></li>
  <li><a href="#pro" id="markdown-toc-pro">PRO+</a></li>
  <li><a href="#communication" id="markdown-toc-communication">Communication</a></li>
</ul>

<h2 id="version-9">Version 9</h2>
<p>Version 9 is the next “major” version of Hydejack, that will once again alter its design. The reason for this is that with the current style for hyperlinks, the choice of accent colors is quite limited, as some might look good on white background, but be barely legible on dark background and vice-versa. Instead of solving this in the most complicated way possible through some advanced color arithmetic (assuming that’s what it’s called), I’ve opted to reduce the use of the accent color instead. You can see a work-in-progress on <a href="https://qwtel.com/">my personal site</a>. I have to say I’m quite please with the results.</p>

<h2 id="grid-layout">Grid Layout</h2>
<p>Purchasers of the PRO version will have access to a new grid layout (see screenshot) that’s basically a version of the project cards adapted for posts.</p>

<h2 id="auto-hiding-navbar">Auto-Hiding Navbar</h2>
<p>One of the annoyances of the current version of Hydejack is the inability to reach the navbar from the middle of the page. I won’t be implemented a “Jump to Top” button, since I’ve never used one myself and wondering if anyone ever did.</p>

<p>In the past I’ve set the header to <code class="language-plaintext highlighter-rouge">fixed</code>, but this either caused overlapping artifacts, or took away too much screen real estate when adding a background color. In V9 this is resolved by a auto-hiding navbar, that will disappear when scrolling down, and reappear when scrolling up. Obviously, this pattern is not new, but getting it work smoothly took a bit of figuring out and there are still improvements to be made, though I thik the current version is “good enough”. Again, <a href="https://qwtel.com/">my personal site</a> has the work-in-progress.</p>

<!-- ## Release Date
I plan on releasing V9 in 2019 to keep the naming scheme -->

<h2 id="pricing">Pricing</h2>
<p>To state the obvious, v9 will be a paid upgrade. As before, I won’t give away work for free only to have people complain that I’ve changed their design. Instead, v9 is a paid opt-in for those who like the new design and features. Against any economic sense, I will also release many of the behind the scenes updates as part of the 8.6 release. The details are yet to be worked out, but it will solve several of the <a href="https://github.com/hydecorp/hydejack">open issues</a>.</p>

<p>Since v9 will be a pretty small update otherwise, the cost will be something along $20 via a discount code included on the 8.6 release zip.</p>

<h2 id="pro">PRO+</h2>
<p>For the first time I will be offering a PRO+ Version that will include an hour of my time to be used for anything from asking questions to debugging a particular issue. In the past I’ve shut down many if not most support requests because I have this habit of not wanting to do professional work free of charge.</p>

<p>At the same time there was no path for someone who — quite correctly — calculated that I could fix their particular issue in a fraction of the time they themselves or any Jekyll developer on the marketplace could. For them, as well as anyone who isn’t quite as price sensitive to begin with, there will be the PRO+ option that will include a priority email to contact me. Support requests to the regular email will be discarded with no exceptions once this option is available.</p>

<h2 id="communication">Communication</h2>
<p>As with this post, going forward I’ll be communicating in a more personal, less business-y tone. I’ve made the mistake of dabbling in marketing speak, even imitating Apple at times, though it is a poor fit for the product at hand. Hydejack is a very niche, very opinionated product that wouldn’t even exist if I didn’t want it for myself. Given that, the “broadest possible reach”-style of communication is… ineffective. If nothing else, writing bland, gentrified copy is boring and takes too long, while “thinking out loud” type of writing is both fun to write and quicker to produce.</p>]]></content><author><name>Florian Klampfer</name><email>mail@qwtel.com</email></author><category term="hydejack" /><summary type="html"><![CDATA[It's time to post an update on upcoming versions of Hydejack, in part to get me back into the mood for writing, as missing documentation is what's holding it up.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://hydejack.com/assets/img/blog/grid.jpg" /><media:content medium="image" url="https://hydejack.com/assets/img/blog/grid.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Service Release 8.5</title><link href="https://hydejack.com/blog/hydejack/2019-07-31-service-release-8.5.0/" rel="alternate" type="text/html" title="Service Release 8.5" /><published>2019-07-31T00:00:00+00:00</published><updated>2020-06-30T03:01:04+00:00</updated><id>https://hydejack.com/blog/hydejack/service-release-8.5.0</id><content type="html" xml:base="https://hydejack.com/blog/hydejack/2019-07-31-service-release-8.5.0/"><![CDATA[<p>Service release 8.5 includes a number of obvious improvements made possible by changes in the way the web works.</p>

<ol class="large-only" id="markdown-toc">
  <li><a href="#better-dark-mode" id="markdown-toc-better-dark-mode">Better Dark Mode</a></li>
  <li><a href="#better-cover-pages" id="markdown-toc-better-cover-pages">Better Cover Pages</a></li>
  <li><a href="#better-font-loading" id="markdown-toc-better-font-loading">Better Font Loading</a></li>
  <li><a href="#whats-next" id="markdown-toc-whats-next">What’s Next?</a></li>
</ol>

<h2 id="better-dark-mode">Better Dark Mode</h2>
<p>This service release includes a major improvement to dark mode, which is now matching the operating system’s default. This is already possible in Safari, and just this week a new version of Chrome shipped with this feature as well.</p>

<h2 id="better-cover-pages">Better Cover Pages</h2>
<p>Scrolling on a cover page will now close the drawer. This makes the cover page much more useable since it will no longer confuse to new visitors. This is especially true for desktops, where swiping horizontally isn’t a typical interaction pattern.
A future version of Hydejack could link the extension of the drawer the the scroll position, similar to how many marketing sites work these days.</p>

<h2 id="better-font-loading">Better Font Loading</h2>
<p>The awkward JS-based font loading mechanism is gone and now replaced by <code class="language-plaintext highlighter-rouge">font-display: swap</code>. Support for this in Google Fonts landed earlier this year and is now used by Hydejack. As a side effect, fonts are now properly displayed in IE11 again, greatly improving backwards compatibility of the theme.</p>

<p>There are many more smaller changes and bugfixes. As always, yo can read the full patch notes in the <a href="/CHANGELOG/" class="heading flip-title">CHANGELOG</a>.</p>

<h2 id="whats-next">What’s Next?</h2>
<p>8.6 will include a rewrite of the drawer, dynamic page loading, and image lazy-loading components. These are new written with TypeScript and <a href="https://lit-element.polymer-project.org">LitElement</a> for better code quality, browser integration, and future-proofness. The rewrites also include many bug fixes and performance improvements.</p>

<p>While I would also like to do a v9 (and accompanying price hike), most of the work I’ve done on it is now on the 8.5 and 8.6 tracks.</p>]]></content><author><name>Florian Klampfer</name><email>mail@qwtel.com</email></author><category term="hydejack" /><summary type="html"><![CDATA[Service release 8.5 includes a number of obvious improvements made possible by changes in the way the web works.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://hydejack.com/assets/img/blog/louis-hansel.jpg" /><media:content medium="image" url="https://hydejack.com/assets/img/blog/louis-hansel.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Improving Hydejack’s Build Speed</title><link href="https://hydejack.com/blog/hydejack/2019-02-18-improving-site-build-speed/" rel="alternate" type="text/html" title="Improving Hydejack’s Build Speed" /><published>2019-02-18T00:00:00+00:00</published><updated>2024-09-05T09:09:41+00:00</updated><id>https://hydejack.com/blog/hydejack/improving-site-build-speed</id><content type="html" xml:base="https://hydejack.com/blog/hydejack/2019-02-18-improving-site-build-speed/"><![CDATA[<p>Hydejack was designed with personal sites in mind, i.e. sites with around 100 pages. Because of this, build speed hasn’t been a major concern during its development. When attempting to use Hydejack with thousands of pages this becomes very apparent, as build times go from seconds, to minutes, to hours.</p>

<p class="note" title="Important"><strong>Starting with version 9, Hydejack is using caching techniques that should make most of the tips here obsolete!</strong></p>

<ul class="large-only" id="markdown-toc">
  <li><a href="#disable-inline-css" id="markdown-toc-disable-inline-css">Disable Inline CSS</a></li>
  <li><a href="#disable-per-page-styles" id="markdown-toc-disable-per-page-styles">Disable Per-Page Styles</a></li>
  <li><a href="#use-simpler-related-posts" id="markdown-toc-use-simpler-related-posts">Use Simpler Related Posts</a></li>
  <li><a href="#define-sidebar-entries-in-the-config-file" id="markdown-toc-define-sidebar-entries-in-the-config-file">Define Sidebar Entries in the Config File</a></li>
  <li><a href="#conclusion" id="markdown-toc-conclusion">Conclusion</a></li>
</ul>

<p>Before we get started, if you are primarily concerned with build times during writing/previewing new articles, try using the <code class="language-plaintext highlighter-rouge">--incremental</code> flag, e.g.</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>bundle exec jekyll serve --incremental
</code></pre></div></div>

<p>For more, see the <a href="https://jekyllrb.com/docs/configuration/#build-command-options">Jekyll docs</a> .</p>

<p>With that out of the way, here are three ways to improve Hydejack’s production build speed:</p>

<h2 id="disable-inline-css">Disable Inline CSS</h2>
<p>Inlining critial CSS into each page increases page load speed in the browser, but it also introduces a <em>significant</em> build time increase. This is due to <code class="language-plaintext highlighter-rouge">scssify</code> being called for every single page with a large chunk of Hydejack’s SCSS as input.</p>

<p>To disable this optimization, set <code class="language-plaintext highlighter-rouge">no_inline_css</code> to <code class="language-plaintext highlighter-rouge">true</code> in the config file.</p>

<div class="language-yml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="na">hydejack</span><span class="pi">:</span>
  <span class="na">no_inline_css</span><span class="pi">:</span> <span class="kc">true</span>
</code></pre></div></div>

<h2 id="disable-per-page-styles">Disable Per-Page Styles</h2>
<p>Hydejack allows you to change the accent color on a per-page basis. While this is a neat feature, it’s certainly not necessary and many sites don’t use it. Similar to inline CSS, it involves a call to <code class="language-plaintext highlighter-rouge">scssify</code> per page, which increases build time (though to a lesser extent).</p>

<p>To disable this feature, set <code class="language-plaintext highlighter-rouge">no_page_style</code> to <code class="language-plaintext highlighter-rouge">true</code> in the config file.</p>

<div class="language-yml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="na">hydejack</span><span class="pi">:</span>
  <span class="na">no_page_style</span><span class="pi">:</span> <span class="kc">true</span>
</code></pre></div></div>

<h2 id="use-simpler-related-posts">Use Simpler Related Posts</h2>

<p>Hydejack does some clever things to show more related “Related Posts” on the bottom of blog posts. However, clever things (implemented within the liquid templating engine) take time, and this becomes apparent when trying to build a site with 10,000 posts.</p>

<p>To speed up building further, set the (admittedly poorly named) <code class="language-plaintext highlighter-rouge">use_lsi</code> option to <code class="language-plaintext highlighter-rouge">true</code>:</p>

<div class="language-yml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="na">hydejack</span><span class="pi">:</span>
  <span class="na">use_lsi</span><span class="pi">:</span> <span class="kc">true</span>
</code></pre></div></div>

<h2 id="define-sidebar-entries-in-the-config-file">Define Sidebar Entries in the Config File</h2>
<p>In previous versions of Hydejack adding entries to the sidebar was done by setting <code class="language-plaintext highlighter-rouge">menu</code> to <code class="language-plaintext highlighter-rouge">true</code> in the front matter of a page. This meant that finding the sidebar entries required checking every page for the <code class="language-plaintext highlighter-rouge">menu</code> flag, once per page. This was slow and the time increased quadratically with the number of pages. 
Staring with version 8.3, you can define sidebar entries in the config file under the <code class="language-plaintext highlighter-rouge">menu</code> key like so:</p>

<div class="language-yml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="na">menu</span><span class="pi">:</span>
  <span class="pi">-</span> <span class="na">title</span><span class="pi">:</span> <span class="s">Blog</span>
    <span class="na">url</span><span class="pi">:</span>   <span class="s">/blog/</span>
  <span class="pi">-</span> <span class="na">title</span><span class="pi">:</span> <span class="s">Projects</span>
    <span class="na">url</span><span class="pi">:</span>   <span class="s">/projects/</span>
  <span class="pi">-</span> <span class="na">title</span><span class="pi">:</span> <span class="s">Resume</span>
    <span class="na">url</span><span class="pi">:</span>   <span class="s">/resume/</span>
  <span class="pi">-</span> <span class="na">title</span><span class="pi">:</span> <span class="s">About</span>
    <span class="na">url</span><span class="pi">:</span>   <span class="s">/about/</span>
</code></pre></div></div>

<p class="note">The old way of doing things still works if you upgrade to 8.3. Only when you set the <code class="language-plaintext highlighter-rouge">menu</code> key will Hydejack switch to the new behavior.</p>

<h2 id="conclusion">Conclusion</h2>
<p>Hydejack’s default settings are fine for small personal blogs of around 100 pages. However, when building large sites with 1,000 pages or more, build time becomes an issue. The following settings will help, but can’t overcome the inherent limitations of Jekyll.</p>

<div class="language-yml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1"># file: `_config.yml`</span>
<span class="na">hydejack</span><span class="pi">:</span>
  <span class="na">no_inline_css</span><span class="pi">:</span> <span class="kc">true</span>
  <span class="na">no_page_style</span><span class="pi">:</span> <span class="kc">true</span>
  <span class="na">use_lsi</span><span class="pi">:</span>       <span class="kc">true</span>

<span class="na">menu</span><span class="pi">:</span>
  <span class="pi">-</span> <span class="na">title</span><span class="pi">:</span> <span class="s">Blog</span>
    <span class="na">url</span><span class="pi">:</span>   <span class="s">/blog/</span>
  <span class="pi">-</span> <span class="na">title</span><span class="pi">:</span> <span class="s">Projects</span>
    <span class="na">url</span><span class="pi">:</span>   <span class="s">/projects/</span>
  <span class="pi">-</span> <span class="na">title</span><span class="pi">:</span> <span class="s">Resume</span>
    <span class="na">url</span><span class="pi">:</span>   <span class="s">/resume/</span>
  <span class="pi">-</span> <span class="na">title</span><span class="pi">:</span> <span class="s">About</span>
    <span class="na">url</span><span class="pi">:</span>   <span class="s">/about/</span>
</code></pre></div></div>]]></content><author><name>Florian Klampfer</name><email>mail@qwtel.com</email></author><category term="hydejack" /><summary type="html"><![CDATA[Hydejack 8.3 introduces new options to bring Hydejack's build time in line with other Jekyll themes.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://hydejack.com/assets/img/blog/wade-lambert.jpg" /><media:content medium="image" url="https://hydejack.com/assets/img/blog/wade-lambert.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Introducing Dark Mode</title><link href="https://hydejack.com/blog/hydejack/2018-09-01-introducing-dark-mode/" rel="alternate" type="text/html" title="Introducing Dark Mode" /><published>2018-09-01T00:00:00+00:00</published><updated>2024-11-29T08:53:10+00:00</updated><id>https://hydejack.com/blog/hydejack/introducing-dark-mode</id><content type="html" xml:base="https://hydejack.com/blog/hydejack/2018-09-01-introducing-dark-mode/"><![CDATA[<p>Like many people, I’m a sucker for dark UI themes, whether it’s Twitter, macOS, or code editors. I even <a href="https://atom.io/packages/theme-flux-solar">built an addon for Atom</a> that automatically switches between light and dark based on sunset and sunrise.</p>

<p>When I was playing around with Unity, I even considered a subscription just so I could use the dark theme, which is exclusive to subscribers. Following this line of thought, I’ve added a Dark Mode to the PRO version of Hydejack.</p>

<p class="figure"><img src="/assets/img/blog/dark-mode.jpg" alt="Dark Mode" width="1440" height="836" />
<em>This is what it looks like!</em></p>

<p>A unique challenge with regards to Hydejack was its color customization feature. As it turns out, a generic gray does not look good when combined with many accent colors, while a slightly tinted gray only looks good with a small range of accent colors.</p>

<p>To solve the problem, Hydejack’s Dark Mode adjusts the background based on the <code class="language-plaintext highlighter-rouge">theme_color</code>. This property can be set for the entire site, or individual pages just like <code class="language-plaintext highlighter-rouge">accent_color</code>. It also adjusts the UI of many browsers that support the Web App Manifest API, making the whole experience even more seamless.</p>

<p class="figure"><img src="/assets/img/blog/dark-mode-ii.jpg" alt="Adaptive Dark Mode Example" width="1440" height="836" />
Dark Mode adjusts to a different accent colors.</p>

<p>While it’s not feasible to enable Dark Mode based on a visitor’s exact sunrise and sunset times<sup id="fnref:1"><a href="#fn:1" class="footnote" rel="footnote" role="doc-noteref">1</a></sup>, site authors can opt-in to enable Dark Mode based on a visitor’s local time.</p>

<p>Site authors can also enable Dark Mode by default and/or hide the light switch:</p>

<div class="language-yml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="na">hydejack</span><span class="pi">:</span>
  <span class="na">dark_mode</span><span class="pi">:</span>
    <span class="c1"># Set to `true` to always use the dark theme.</span>
    <span class="na">always</span><span class="pi">:</span>            <span class="kc">false</span>

    <span class="c1"># Set to `true` to use the dark theme based on visitors' local time.</span>
    <span class="na">dynamic</span><span class="pi">:</span>           <span class="kc">true</span>
    <span class="na">sunrise</span><span class="pi">:</span>           <span class="m">6</span>
    <span class="na">sunset</span><span class="pi">:</span>            <span class="m">18</span>

    <span class="c1"># Set to `true` to allow visitors to switch between light and dark mode.</span>
    <span class="na">icon</span><span class="pi">:</span>              <span class="kc">true</span>
</code></pre></div></div>

<p>Dark Mode is now available for buyers of the <a href="https://buy.polar.sh/polar_cl_CczddJM50iZgR_iuUhc_54RcSg1KasTEJtOSqTvlpUI">PRO version</a>.</p>

<script type="module">
  const classes = document.body.classList.toString();
  document.body.classList.add('dark-mode');
  document.querySelector('hy-push-state').addEventListener('after', () => setTimeout(() => document.body.setAttribute('class', classes), 700), { once: true });
</script>

<div class="footnotes" role="doc-endnotes">
  <ol>
    <li id="fn:1">
      <p>This would require visitors’ permission to read their geolocation, which is not reasonable or practical for this use case. <a href="#fnref:1" class="reversefootnote" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
    </li>
  </ol>
</div>]]></content><author><name>Florian Klampfer</name><email>mail@qwtel.com</email></author><category term="hydejack" /><summary type="html"><![CDATA[The PRO version of Hydejack now includes an optional Dark Mode, making it the first Jekyll theme to include this feature.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://hydejack.com/assets/img/blog/steve-harvey.jpg" /><media:content medium="image" url="https://hydejack.com/assets/img/blog/steve-harvey.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Introducing Hydejack 8</title><link href="https://hydejack.com/blog/hydejack/2018-06-30-introducing-hydejack-8/" rel="alternate" type="text/html" title="Introducing Hydejack 8" /><published>2018-06-30T00:00:00+00:00</published><updated>2020-09-08T05:12:01+00:00</updated><id>https://hydejack.com/blog/hydejack/introducing-hydejack-8</id><content type="html" xml:base="https://hydejack.com/blog/hydejack/2018-06-30-introducing-hydejack-8/"><![CDATA[<p>After a long wait, Hydejack 8 finally sees the day of its release. It makes Hydejack look more elegant (no more super bold headings) and introduces features that make your site more impressive to first time visitors, while loading faster for repeat visitors.</p>

<ul class="large-only" id="markdown-toc">
  <li><a href="#cover-pages" id="markdown-toc-cover-pages">Cover Pages</a></li>
  <li><a href="#lazy-loading-images" id="markdown-toc-lazy-loading-images">Lazy-Loading Images</a></li>
  <li><a href="#better-blog-layout" id="markdown-toc-better-blog-layout">Better Blog Layout</a></li>
  <li><a href="#dark-mode--coming-soon" id="markdown-toc-dark-mode--coming-soon">Dark Mode 🌗 (coming soon)</a></li>
  <li><a href="#offline-support-️" id="markdown-toc-offline-support-️">Offline Support ⚡️</a></li>
</ul>

<h3 id="cover-pages">Cover Pages</h3>

<p>The new design doubles down on Hydejack as your personal site. The new Cover Pages let visitors know what you’re about at a glance, showing your logo or profile picture, tagline or description, and selection of social media icons.</p>

<p class="figure"><img src="/assets/img/blog/cover-page.jpg" alt="Cover page slide animation" class="lead" width="1440" height="836" loading="lazy" />
Sliding over a cover page will reveal the content below.</p>

<h3 id="lazy-loading-images">Lazy-Loading Images</h3>

<p>Using lots of images can severely impact the performance of a site. It can also cause layout quirks when images pop into existence.
In Hydejack 8 you have the option to provide <code class="language-plaintext highlighter-rouge">width</code> and <code class="language-plaintext highlighter-rouge">height</code> information for your images and let Hydejack lazy-load them as readers scroll the page.</p>

<p class="figure"><img src="/assets/img/blog/lazy-images.jpg" alt="Lazy loading demo" class="lead" width="1440" height="836" loading="lazy" />
Images are loaded as they are scrolled into view.</p>

<h3 id="better-blog-layout">Better Blog Layout</h3>

<p>The <code class="language-plaintext highlighter-rouge">blog</code> layout finally catches up to modern design standards and renders a posts’s <code class="language-plaintext highlighter-rouge">image</code> as part of the preview, giving it a tastier look that makes visitors more likely to engage.</p>

<p class="figure"><img src="/assets/img/blog/blog-layout.jpg" alt="Scrolling through the blog layout" class="lead" width="1440" height="836" loading="lazy" />
Hydejack’s improved blog layout renders each post’s image.</p>

<h3 id="dark-mode--coming-soon">Dark Mode 🌗 (coming soon)</h3>

<p>In 8.1, buyers of the PRO version will have access to Dark Mode. At your choosing, it will be enabled by default, enabled based on visitors’ local time, or flipped on by a switch.</p>

<p class="figure"><img src="/assets/img/blog/dark-mode.jpg" alt="Dark Mode Teaser" class="lead" width="1440" height="836" loading="lazy" />
Hydejack switches between light and dark mode fluidly.</p>

<h3 id="offline-support-️">Offline Support ⚡️</h3>

<p>Version 8 introduces experimental offline support. This allows visitors to navigate your site while offline and continue reading articles when connectivity is lost. It also improves loading times for repeat visitors dramatically.</p>]]></content><author><name>Florian Klampfer</name><email>mail@qwtel.com</email></author><category term="hydejack" /><summary type="html"><![CDATA[Hydejack 8 is the best version of Hydejack yet. It introduces Cover Pages, Offline Support, and soon... Dark Mode.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://hydejack.com/assets/img/blog/hydejack-8.jpg" /><media:content medium="image" url="https://hydejack.com/assets/img/blog/hydejack-8.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Example Content III</title><link href="https://hydejack.com/blog/hydejack/2018-06-01-example-content-iii/" rel="alternate" type="text/html" title="Example Content III" /><published>2018-06-01T00:00:00+00:00</published><updated>2021-11-16T03:26:54+00:00</updated><id>https://hydejack.com/blog/hydejack/example-content-iii</id><content type="html" xml:base="https://hydejack.com/blog/hydejack/2018-06-01-example-content-iii/"><![CDATA[<p>Hydejack offers a few additional features to markup your markdown.
Don’t worry, these are merely CSS classes added with kramdown’s <code class="language-plaintext highlighter-rouge">{:...}</code> syntax,
so that your content remains compatible with other Jekyll themes.</p>

<ul id="markdown-toc">
  <li><a href="#large-tables" id="markdown-toc-large-tables">Large Tables</a></li>
  <li><a href="#code-blocks" id="markdown-toc-code-blocks">Code blocks</a></li>
  <li><a href="#math" id="markdown-toc-math">Math</a></li>
  <li><a href="#message-boxes" id="markdown-toc-message-boxes">Message boxes</a></li>
  <li><a href="#large-text" id="markdown-toc-large-text">Large text</a></li>
  <li><a href="#large-images" id="markdown-toc-large-images">Large images</a></li>
  <li><a href="#captions-to-images" id="markdown-toc-captions-to-images">Captions to images</a></li>
  <li><a href="#large-quotes" id="markdown-toc-large-quotes">Large quotes</a></li>
  <li><a href="#faded-text" id="markdown-toc-faded-text">Faded text</a></li>
</ul>

<h2 id="large-tables">Large Tables</h2>

<table class="scroll-table">
  <thead>
    <tr>
      <th>Default aligned</th>
      <th style="text-align: left">Left aligned</th>
      <th style="text-align: center">Center aligned</th>
      <th style="text-align: right">Right aligned</th>
      <th>Default aligned</th>
      <th style="text-align: left">Left aligned</th>
      <th style="text-align: center">Center aligned</th>
      <th style="text-align: right">Right aligned</th>
      <th>Default aligned</th>
      <th style="text-align: left">Left aligned</th>
      <th style="text-align: center">Center aligned</th>
      <th style="text-align: right">Right aligned</th>
      <th>Default aligned</th>
      <th style="text-align: left">Left aligned</th>
      <th style="text-align: center">Center aligned</th>
      <th style="text-align: right">Right aligned</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>First body part</td>
      <td style="text-align: left">Second cell</td>
      <td style="text-align: center">Third cell</td>
      <td style="text-align: right">fourth cell</td>
      <td>First body part</td>
      <td style="text-align: left">Second cell</td>
      <td style="text-align: center">Third cell</td>
      <td style="text-align: right">fourth cell</td>
      <td>First body part</td>
      <td style="text-align: left">Second cell</td>
      <td style="text-align: center">Third cell</td>
      <td style="text-align: right">fourth cell</td>
      <td>First body part</td>
      <td style="text-align: left">Second cell</td>
      <td style="text-align: center">Third cell</td>
      <td style="text-align: right">fourth cell</td>
    </tr>
    <tr>
      <td>Second line</td>
      <td style="text-align: left">foo</td>
      <td style="text-align: center"><strong>strong</strong></td>
      <td style="text-align: right">baz</td>
      <td>Second line</td>
      <td style="text-align: left">foo</td>
      <td style="text-align: center"><strong>strong</strong></td>
      <td style="text-align: right">baz</td>
      <td>Second line</td>
      <td style="text-align: left">foo</td>
      <td style="text-align: center"><strong>strong</strong></td>
      <td style="text-align: right">baz</td>
      <td>Second line</td>
      <td style="text-align: left">foo</td>
      <td style="text-align: center"><strong>strong</strong></td>
      <td style="text-align: right">baz</td>
    </tr>
    <tr>
      <td>Third line</td>
      <td style="text-align: left">quux</td>
      <td style="text-align: center">baz</td>
      <td style="text-align: right">bar</td>
      <td>Third line</td>
      <td style="text-align: left">quux</td>
      <td style="text-align: center">baz</td>
      <td style="text-align: right">bar</td>
      <td>Third line</td>
      <td style="text-align: left">quux</td>
      <td style="text-align: center">baz</td>
      <td style="text-align: right">bar</td>
      <td>Third line</td>
      <td style="text-align: left">quux</td>
      <td style="text-align: center">baz</td>
      <td style="text-align: right">bar</td>
    </tr>
    <tr>
      <td>Second body</td>
      <td style="text-align: left"> </td>
      <td style="text-align: center"> </td>
      <td style="text-align: right"> </td>
      <td>Second body</td>
      <td style="text-align: left"> </td>
      <td style="text-align: center"> </td>
      <td style="text-align: right"> </td>
      <td>Second body</td>
      <td style="text-align: left"> </td>
      <td style="text-align: center"> </td>
      <td style="text-align: right"> </td>
      <td>Second body</td>
      <td style="text-align: left"> </td>
      <td style="text-align: center"> </td>
      <td style="text-align: right"> </td>
    </tr>
    <tr>
      <td>2 line</td>
      <td style="text-align: left"> </td>
      <td style="text-align: center"> </td>
      <td style="text-align: right"> </td>
      <td>2 line</td>
      <td style="text-align: left"> </td>
      <td style="text-align: center"> </td>
      <td style="text-align: right"> </td>
      <td>2 line</td>
      <td style="text-align: left"> </td>
      <td style="text-align: center"> </td>
      <td style="text-align: right"> </td>
      <td>2 line</td>
      <td style="text-align: left"> </td>
      <td style="text-align: center"> </td>
      <td style="text-align: right"> </td>
    </tr>
    <tr>
      <td>Footer row</td>
      <td style="text-align: left"> </td>
      <td style="text-align: center"> </td>
      <td style="text-align: right"> </td>
      <td>Footer row</td>
      <td style="text-align: left"> </td>
      <td style="text-align: center"> </td>
      <td style="text-align: right"> </td>
      <td>Footer row</td>
      <td style="text-align: left"> </td>
      <td style="text-align: center"> </td>
      <td style="text-align: right"> </td>
      <td>Footer row</td>
      <td style="text-align: left"> </td>
      <td style="text-align: center"> </td>
      <td style="text-align: right"> </td>
    </tr>
  </tbody>
</table>

<h2 id="code-blocks">Code blocks</h2>

<div class="language-js highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1">// Example can be run directly in your JavaScript console</span>

<span class="c1">// Create a function that takes two arguments and returns the sum of those</span>
<span class="c1">// arguments</span>
<span class="kd">var</span> <span class="nx">adder</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">Function</span><span class="p">(</span><span class="dl">"</span><span class="s2">a</span><span class="dl">"</span><span class="p">,</span> <span class="dl">"</span><span class="s2">b</span><span class="dl">"</span><span class="p">,</span> <span class="dl">"</span><span class="s2">return a + b</span><span class="dl">"</span><span class="p">);</span>

<span class="c1">// Call the function</span>
<span class="nf">adder</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">6</span><span class="p">);</span>
<span class="c1">// &gt; 8</span>
</code></pre></div></div>

<h2 id="math">Math</h2>
<p>Lorem ipsum <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>f</mi><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo><mo>=</mo><msup><mi>x</mi><mn>2</mn></msup></mrow><annotation encoding="application/x-tex">f(x) = x^2</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathnormal" style="margin-right:0.10764em;">f</span><span class="mopen">(</span><span class="mord mathnormal">x</span><span class="mclose">)</span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:0.8141em;"></span><span class="mord"><span class="mord mathnormal">x</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.8141em;"><span style="top:-3.063em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">2</span></span></span></span></span></span></span></span></span></span></span>.</p>

<span class="katex-display"><span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML" display="block"><semantics><mtable rowspacing="0.25em" columnalign="right left" columnspacing="0em"><mtr><mtd><mstyle scriptlevel="0" displaystyle="true"><mrow><mi>ϕ</mi><mo stretchy="false">(</mo><mi>x</mi><mo separator="true">,</mo><mi>y</mi><mo stretchy="false">)</mo></mrow></mstyle></mtd><mtd><mstyle scriptlevel="0" displaystyle="true"><mrow><mrow></mrow><mo>=</mo><mi>ϕ</mi><mrow><mo fence="true">(</mo><munderover><mo>∑</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></munderover><msub><mi>x</mi><mi>i</mi></msub><msub><mi>e</mi><mi>i</mi></msub><mo separator="true">,</mo><munderover><mo>∑</mo><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></munderover><msub><mi>y</mi><mi>j</mi></msub><msub><mi>e</mi><mi>j</mi></msub><mo fence="true">)</mo></mrow></mrow></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="true"><mrow></mrow></mstyle></mtd><mtd><mstyle scriptlevel="0" displaystyle="true"><mrow><mrow></mrow><mo>=</mo><munderover><mo>∑</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></munderover><munderover><mo>∑</mo><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></munderover><msub><mi>x</mi><mi>i</mi></msub><msub><mi>y</mi><mi>j</mi></msub><mi>ϕ</mi><mo stretchy="false">(</mo><msub><mi>e</mi><mi>i</mi></msub><mo separator="true">,</mo><msub><mi>e</mi><mi>j</mi></msub><mo stretchy="false">)</mo></mrow></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="true"><mrow></mrow></mstyle></mtd><mtd><mstyle scriptlevel="0" displaystyle="true"><mrow><mrow></mrow><mo>=</mo><mo stretchy="false">(</mo><msub><mi>x</mi><mn>1</mn></msub><mo separator="true">,</mo><mo>…</mo><mo separator="true">,</mo><msub><mi>x</mi><mi>n</mi></msub><mo stretchy="false">)</mo><mrow><mo fence="true">(</mo><mtable rowspacing="0.16em" columnalign="center center center" columnspacing="1em"><mtr><mtd><mstyle scriptlevel="0" displaystyle="false"><mrow><mi>ϕ</mi><mo stretchy="false">(</mo><msub><mi>e</mi><mn>1</mn></msub><mo separator="true">,</mo><msub><mi>e</mi><mn>1</mn></msub><mo stretchy="false">)</mo></mrow></mstyle></mtd><mtd><mstyle scriptlevel="0" displaystyle="false"><mo lspace="0em" rspace="0em">⋯</mo></mstyle></mtd><mtd><mstyle scriptlevel="0" displaystyle="false"><mrow><mi>ϕ</mi><mo stretchy="false">(</mo><msub><mi>e</mi><mn>1</mn></msub><mo separator="true">,</mo><msub><mi>e</mi><mi>n</mi></msub><mo stretchy="false">)</mo></mrow></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="false"><mi><mi mathvariant="normal">⋮</mi><mpadded height="0em" voffset="0em"><mspace mathbackground="black" width="0em" height="1.5em"></mspace></mpadded></mi></mstyle></mtd><mtd><mstyle scriptlevel="0" displaystyle="false"><mo lspace="0em" rspace="0em">⋱</mo></mstyle></mtd><mtd><mstyle scriptlevel="0" displaystyle="false"><mi><mi mathvariant="normal">⋮</mi><mpadded height="0em" voffset="0em"><mspace mathbackground="black" width="0em" height="1.5em"></mspace></mpadded></mi></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="false"><mrow><mi>ϕ</mi><mo stretchy="false">(</mo><msub><mi>e</mi><mi>n</mi></msub><mo separator="true">,</mo><msub><mi>e</mi><mn>1</mn></msub><mo stretchy="false">)</mo></mrow></mstyle></mtd><mtd><mstyle scriptlevel="0" displaystyle="false"><mo lspace="0em" rspace="0em">⋯</mo></mstyle></mtd><mtd><mstyle scriptlevel="0" displaystyle="false"><mrow><mi>ϕ</mi><mo stretchy="false">(</mo><msub><mi>e</mi><mi>n</mi></msub><mo separator="true">,</mo><msub><mi>e</mi><mi>n</mi></msub><mo stretchy="false">)</mo></mrow></mstyle></mtd></mtr></mtable><mo fence="true">)</mo></mrow><mrow><mo fence="true">(</mo><mtable rowspacing="0.16em" columnalign="center" columnspacing="1em"><mtr><mtd><mstyle scriptlevel="0" displaystyle="false"><msub><mi>y</mi><mn>1</mn></msub></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="false"><mi><mi mathvariant="normal">⋮</mi><mpadded height="0em" voffset="0em"><mspace mathbackground="black" width="0em" height="1.5em"></mspace></mpadded></mi></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="false"><msub><mi>y</mi><mi>n</mi></msub></mstyle></mtd></mtr></mtable><mo fence="true">)</mo></mrow></mrow></mstyle></mtd></mtr></mtable><annotation encoding="application/x-tex">\begin{aligned}
  \phi(x,y) &amp;= \phi \left(\sum_{i=1}^n x_ie_i, \sum_{j=1}^n y_je_j \right) \\[2em]
            &amp;= \sum_{i=1}^n \sum_{j=1}^n x_i y_j \phi(e_i, e_j)            \\[2em]
            &amp;= (x_1, \ldots, x_n)
               \left(\begin{array}{ccc}
                 \phi(e_1, e_1)  &amp; \cdots &amp; \phi(e_1, e_n) \\
                 \vdots          &amp; \ddots &amp; \vdots         \\
                 \phi(e_n, e_1)  &amp; \cdots &amp; \phi(e_n, e_n)
               \end{array}\right)
               \left(\begin{array}{c}
                 y_1    \\
                 \vdots \\
                 y_n
               \end{array}\right)
\end{aligned}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:13.2814em;vertical-align:-6.3907em;"></span><span class="mord"><span class="mtable"><span class="col-align-r"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:6.8907em;"><span style="top:-9.5207em;"><span class="pstrut" style="height:4.38em;"></span><span class="mord"><span class="mord mathnormal">ϕ</span><span class="mopen">(</span><span class="mord mathnormal">x</span><span class="mpunct">,</span><span class="mspace" style="margin-right:0.1667em;"></span><span class="mord mathnormal" style="margin-right:0.03588em;">y</span><span class="mclose">)</span></span></span><span style="top:-5.2093em;"><span class="pstrut" style="height:4.38em;"></span><span class="mord"></span></span><span style="top:-0.1693em;"><span class="pstrut" style="height:4.38em;"></span><span class="mord"></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:6.3907em;"><span></span></span></span></span></span><span class="col-align-l"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:6.8907em;"><span style="top:-9.5207em;"><span class="pstrut" style="height:4.38em;"></span><span class="mord"><span class="mord"></span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mord mathnormal">ϕ</span><span class="mspace" style="margin-right:0.1667em;"></span><span class="minner"><span class="mopen delimcenter" style="top:0em;"><span class="delimsizing size4">(</span></span><span class="mop op-limits"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.6514em;"><span style="top:-1.8723em;margin-left:0em;"><span class="pstrut" style="height:3.05em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathnormal mtight">i</span><span class="mrel mtight">=</span><span class="mord mtight">1</span></span></span></span><span style="top:-3.05em;"><span class="pstrut" style="height:3.05em;"></span><span><span class="mop op-symbol large-op">∑</span></span></span><span style="top:-4.3em;margin-left:0em;"><span class="pstrut" style="height:3.05em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathnormal mtight">n</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:1.2777em;"><span></span></span></span></span></span><span class="mspace" style="margin-right:0.1667em;"></span><span class="mord"><span class="mord mathnormal">x</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3117em;"><span style="top:-2.55em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathnormal mtight">i</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mord"><span class="mord mathnormal">e</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3117em;"><span style="top:-2.55em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathnormal mtight">i</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mpunct">,</span><span class="mspace" style="margin-right:0.1667em;"></span><span class="mop op-limits"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.6514em;"><span style="top:-1.8723em;margin-left:0em;"><span class="pstrut" style="height:3.05em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathnormal mtight" style="margin-right:0.05724em;">j</span><span class="mrel mtight">=</span><span class="mord mtight">1</span></span></span></span><span style="top:-3.05em;"><span class="pstrut" style="height:3.05em;"></span><span><span class="mop op-symbol large-op">∑</span></span></span><span style="top:-4.3em;margin-left:0em;"><span class="pstrut" style="height:3.05em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathnormal mtight">n</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:1.4138em;"><span></span></span></span></span></span><span class="mspace" style="margin-right:0.1667em;"></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.03588em;">y</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3117em;"><span style="top:-2.55em;margin-left:-0.0359em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathnormal mtight" style="margin-right:0.05724em;">j</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.2861em;"><span></span></span></span></span></span></span><span class="mord"><span class="mord mathnormal">e</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3117em;"><span style="top:-2.55em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathnormal mtight" style="margin-right:0.05724em;">j</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.2861em;"><span></span></span></span></span></span></span><span class="mclose delimcenter" style="top:0em;"><span class="delimsizing size4">)</span></span></span></span></span><span style="top:-5.2093em;"><span class="pstrut" style="height:4.38em;"></span><span class="mord"><span class="mord"></span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mop op-limits"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.6514em;"><span style="top:-1.8723em;margin-left:0em;"><span class="pstrut" style="height:3.05em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathnormal mtight">i</span><span class="mrel mtight">=</span><span class="mord mtight">1</span></span></span></span><span style="top:-3.05em;"><span class="pstrut" style="height:3.05em;"></span><span><span class="mop op-symbol large-op">∑</span></span></span><span style="top:-4.3em;margin-left:0em;"><span class="pstrut" style="height:3.05em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathnormal mtight">n</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:1.2777em;"><span></span></span></span></span></span><span class="mspace" style="margin-right:0.1667em;"></span><span class="mop op-limits"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.6514em;"><span style="top:-1.8723em;margin-left:0em;"><span class="pstrut" style="height:3.05em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathnormal mtight" style="margin-right:0.05724em;">j</span><span class="mrel mtight">=</span><span class="mord mtight">1</span></span></span></span><span style="top:-3.05em;"><span class="pstrut" style="height:3.05em;"></span><span><span class="mop op-symbol large-op">∑</span></span></span><span style="top:-4.3em;margin-left:0em;"><span class="pstrut" style="height:3.05em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathnormal mtight">n</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:1.4138em;"><span></span></span></span></span></span><span class="mspace" style="margin-right:0.1667em;"></span><span class="mord"><span class="mord mathnormal">x</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3117em;"><span style="top:-2.55em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathnormal mtight">i</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.03588em;">y</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3117em;"><span style="top:-2.55em;margin-left:-0.0359em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathnormal mtight" style="margin-right:0.05724em;">j</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.2861em;"><span></span></span></span></span></span></span><span class="mord mathnormal">ϕ</span><span class="mopen">(</span><span class="mord"><span class="mord mathnormal">e</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3117em;"><span style="top:-2.55em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathnormal mtight">i</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mpunct">,</span><span class="mspace" style="margin-right:0.1667em;"></span><span class="mord"><span class="mord mathnormal">e</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3117em;"><span style="top:-2.55em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathnormal mtight" style="margin-right:0.05724em;">j</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.2861em;"><span></span></span></span></span></span></span><span class="mclose">)</span></span></span><span style="top:-0.1693em;"><span class="pstrut" style="height:4.38em;"></span><span class="mord"><span class="mord"></span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mopen">(</span><span class="mord"><span class="mord mathnormal">x</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3011em;"><span style="top:-2.55em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">1</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mpunct">,</span><span class="mspace" style="margin-right:0.1667em;"></span><span class="minner">…</span><span class="mspace" style="margin-right:0.1667em;"></span><span class="mpunct">,</span><span class="mspace" style="margin-right:0.1667em;"></span><span class="mord"><span class="mord mathnormal">x</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.1514em;"><span style="top:-2.55em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathnormal mtight">n</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mclose">)</span><span class="mspace" style="margin-right:0.1667em;"></span><span class="minner"><span class="mopen"><span class="delimsizing mult"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:2.35em;"><span style="top:-4.35em;"><span class="pstrut" style="height:6.2em;"></span><span style="width:0.875em;height:4.200em;"><svg xmlns="http://www.w3.org/2000/svg" width='0.875em' height='4.200em' viewBox='0 0 875 4200'><path d='M863,9c0,-2,-2,-5,-6,-9c0,0,-17,0,-17,0c-12.7,0,-19.3,0.3,-20,1
c-5.3,5.3,-10.3,11,-15,17c-242.7,294.7,-395.3,682,-458,1162c-21.3,163.3,-33.3,349,
-36,557 l0,684c0.2,6,0,26,0,60c2,159.3,10,310.7,24,454c53.3,528,210,
949.7,470,1265c4.7,6,9.7,11.7,15,17c0.7,0.7,7,1,19,1c0,0,18,0,18,0c4,-4,6,-7,6,-9
c0,-2.7,-3.3,-8.7,-10,-18c-135.3,-192.7,-235.5,-414.3,-300.5,-665c-65,-250.7,-102.5,
-544.7,-112.5,-882c-2,-104,-3,-167,-3,-189
l0,-692c0,-162.7,5.7,-314,17,-454c20.7,-272,63.7,-513,129,-723c65.3,
-210,155.3,-396.3,270,-559c6.7,-9.3,10,-15.3,10,-18z'/></svg></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:1.85em;"><span></span></span></span></span></span></span><span class="mord"><span class="mtable"><span class="arraycolsep" style="width:0.5em;"></span><span class="col-align-c"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:2.38em;"><span style="top:-5.2275em;"><span class="pstrut" style="height:3.6875em;"></span><span class="mord"><span class="mord mathnormal">ϕ</span><span class="mopen">(</span><span class="mord"><span class="mord mathnormal">e</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3011em;"><span style="top:-2.55em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">1</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mpunct">,</span><span class="mspace" style="margin-right:0.1667em;"></span><span class="mord"><span class="mord mathnormal">e</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3011em;"><span style="top:-2.55em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">1</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mclose">)</span></span></span><span style="top:-3.3675em;"><span class="pstrut" style="height:3.6875em;"></span><span class="mord"><span class="mord"><span class="mord">⋮</span><span class="mord rule" style="border-right-width:0em;border-top-width:1.5em;bottom:0em;"></span></span></span></span><span style="top:-2.1675em;"><span class="pstrut" style="height:3.6875em;"></span><span class="mord"><span class="mord mathnormal">ϕ</span><span class="mopen">(</span><span class="mord"><span class="mord mathnormal">e</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.1514em;"><span style="top:-2.55em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathnormal mtight">n</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mpunct">,</span><span class="mspace" style="margin-right:0.1667em;"></span><span class="mord"><span class="mord mathnormal">e</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3011em;"><span style="top:-2.55em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">1</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mclose">)</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:1.88em;"><span></span></span></span></span></span><span class="arraycolsep" style="width:0.5em;"></span><span class="arraycolsep" style="width:0.5em;"></span><span class="col-align-c"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:2.38em;"><span style="top:-5.04em;"><span class="pstrut" style="height:3.5em;"></span><span class="mord"><span class="minner">⋯</span></span></span><span style="top:-3.18em;"><span class="pstrut" style="height:3.5em;"></span><span class="mord"><span class="minner">⋱</span></span></span><span style="top:-1.98em;"><span class="pstrut" style="height:3.5em;"></span><span class="mord"><span class="minner">⋯</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:1.88em;"><span></span></span></span></span></span><span class="arraycolsep" style="width:0.5em;"></span><span class="arraycolsep" style="width:0.5em;"></span><span class="col-align-c"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:2.38em;"><span style="top:-5.2275em;"><span class="pstrut" style="height:3.6875em;"></span><span class="mord"><span class="mord mathnormal">ϕ</span><span class="mopen">(</span><span class="mord"><span class="mord mathnormal">e</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3011em;"><span style="top:-2.55em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">1</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mpunct">,</span><span class="mspace" style="margin-right:0.1667em;"></span><span class="mord"><span class="mord mathnormal">e</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.1514em;"><span style="top:-2.55em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathnormal mtight">n</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mclose">)</span></span></span><span style="top:-3.3675em;"><span class="pstrut" style="height:3.6875em;"></span><span class="mord"><span class="mord"><span class="mord">⋮</span><span class="mord rule" style="border-right-width:0em;border-top-width:1.5em;bottom:0em;"></span></span></span></span><span style="top:-2.1675em;"><span class="pstrut" style="height:3.6875em;"></span><span class="mord"><span class="mord mathnormal">ϕ</span><span class="mopen">(</span><span class="mord"><span class="mord mathnormal">e</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.1514em;"><span style="top:-2.55em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathnormal mtight">n</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mpunct">,</span><span class="mspace" style="margin-right:0.1667em;"></span><span class="mord"><span class="mord mathnormal">e</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.1514em;"><span style="top:-2.55em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathnormal mtight">n</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mclose">)</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:1.88em;"><span></span></span></span></span></span><span class="arraycolsep" style="width:0.5em;"></span></span></span><span class="mclose"><span class="delimsizing mult"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:2.35em;"><span style="top:-4.35em;"><span class="pstrut" style="height:6.2em;"></span><span style="width:0.875em;height:4.200em;"><svg xmlns="http://www.w3.org/2000/svg" width='0.875em' height='4.200em' viewBox='0 0 875 4200'><path d='M76,0c-16.7,0,-25,3,-25,9c0,2,2,6.3,6,13c21.3,28.7,42.3,60.3,
63,95c96.7,156.7,172.8,332.5,228.5,527.5c55.7,195,92.8,416.5,111.5,664.5
c11.3,139.3,17,290.7,17,454c0,28,1.7,43,3.3,45l0,609
c-3,4,-3.3,16.7,-3.3,38c0,162,-5.7,313.7,-17,455c-18.7,248,-55.8,469.3,-111.5,664
c-55.7,194.7,-131.8,370.3,-228.5,527c-20.7,34.7,-41.7,66.3,-63,95c-2,3.3,-4,7,-6,11
c0,7.3,5.7,11,17,11c0,0,11,0,11,0c9.3,0,14.3,-0.3,15,-1c5.3,-5.3,10.3,-11,15,-17
c242.7,-294.7,395.3,-681.7,458,-1161c21.3,-164.7,33.3,-350.7,36,-558
l0,-744c-2,-159.3,-10,-310.7,-24,-454c-53.3,-528,-210,-949.7,
-470,-1265c-4.7,-6,-9.7,-11.7,-15,-17c-0.7,-0.7,-6.7,-1,-18,-1z'/></svg></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:1.85em;"><span></span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.1667em;"></span><span class="minner"><span class="mopen"><span class="delimsizing mult"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:2.35em;"><span style="top:-4.35em;"><span class="pstrut" style="height:6.2em;"></span><span style="width:0.875em;height:4.200em;"><svg xmlns="http://www.w3.org/2000/svg" width='0.875em' height='4.200em' viewBox='0 0 875 4200'><path d='M863,9c0,-2,-2,-5,-6,-9c0,0,-17,0,-17,0c-12.7,0,-19.3,0.3,-20,1
c-5.3,5.3,-10.3,11,-15,17c-242.7,294.7,-395.3,682,-458,1162c-21.3,163.3,-33.3,349,
-36,557 l0,684c0.2,6,0,26,0,60c2,159.3,10,310.7,24,454c53.3,528,210,
949.7,470,1265c4.7,6,9.7,11.7,15,17c0.7,0.7,7,1,19,1c0,0,18,0,18,0c4,-4,6,-7,6,-9
c0,-2.7,-3.3,-8.7,-10,-18c-135.3,-192.7,-235.5,-414.3,-300.5,-665c-65,-250.7,-102.5,
-544.7,-112.5,-882c-2,-104,-3,-167,-3,-189
l0,-692c0,-162.7,5.7,-314,17,-454c20.7,-272,63.7,-513,129,-723c65.3,
-210,155.3,-396.3,270,-559c6.7,-9.3,10,-15.3,10,-18z'/></svg></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:1.85em;"><span></span></span></span></span></span></span><span class="mord"><span class="mtable"><span class="arraycolsep" style="width:0.5em;"></span><span class="col-align-c"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:2.38em;"><span style="top:-5.2275em;"><span class="pstrut" style="height:3.6875em;"></span><span class="mord"><span class="mord"><span class="mord mathnormal" style="margin-right:0.03588em;">y</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3011em;"><span style="top:-2.55em;margin-left:-0.0359em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">1</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span><span style="top:-3.3675em;"><span class="pstrut" style="height:3.6875em;"></span><span class="mord"><span class="mord"><span class="mord">⋮</span><span class="mord rule" style="border-right-width:0em;border-top-width:1.5em;bottom:0em;"></span></span></span></span><span style="top:-2.1675em;"><span class="pstrut" style="height:3.6875em;"></span><span class="mord"><span class="mord"><span class="mord mathnormal" style="margin-right:0.03588em;">y</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.1514em;"><span style="top:-2.55em;margin-left:-0.0359em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathnormal mtight">n</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:1.88em;"><span></span></span></span></span></span><span class="arraycolsep" style="width:0.5em;"></span></span></span><span class="mclose"><span class="delimsizing mult"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:2.35em;"><span style="top:-4.35em;"><span class="pstrut" style="height:6.2em;"></span><span style="width:0.875em;height:4.200em;"><svg xmlns="http://www.w3.org/2000/svg" width='0.875em' height='4.200em' viewBox='0 0 875 4200'><path d='M76,0c-16.7,0,-25,3,-25,9c0,2,2,6.3,6,13c21.3,28.7,42.3,60.3,
63,95c96.7,156.7,172.8,332.5,228.5,527.5c55.7,195,92.8,416.5,111.5,664.5
c11.3,139.3,17,290.7,17,454c0,28,1.7,43,3.3,45l0,609
c-3,4,-3.3,16.7,-3.3,38c0,162,-5.7,313.7,-17,455c-18.7,248,-55.8,469.3,-111.5,664
c-55.7,194.7,-131.8,370.3,-228.5,527c-20.7,34.7,-41.7,66.3,-63,95c-2,3.3,-4,7,-6,11
c0,7.3,5.7,11,17,11c0,0,11,0,11,0c9.3,0,14.3,-0.3,15,-1c5.3,-5.3,10.3,-11,15,-17
c242.7,-294.7,395.3,-681.7,458,-1161c21.3,-164.7,33.3,-350.7,36,-558
l0,-744c-2,-159.3,-10,-310.7,-24,-454c-53.3,-528,-210,-949.7,
-470,-1265c-4.7,-6,-9.7,-11.7,-15,-17c-0.7,-0.7,-6.7,-1,-18,-1z'/></svg></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:1.85em;"><span></span></span></span></span></span></span></span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:6.3907em;"><span></span></span></span></span></span></span></span></span></span></span></span>

<h2 id="message-boxes">Message boxes</h2>
<p class="message"><strong>NOTE</strong>: You can add a message box.</p>

<h2 id="large-text">Large text</h2>
<p class="lead">You can add large text.</p>

<h2 id="large-images">Large images</h2>
<p><img src="https://via.placeholder.com/800x100" alt="Full-width image" class="lead" width="800" height="100" /></p>

<h2 id="captions-to-images">Captions to images</h2>
<p class="figure"><img src="https://via.placeholder.com/800x100" alt="Full-width image" class="lead" width="800" height="100" />
A caption to an image.</p>

<h2 id="large-quotes">Large quotes</h2>
<blockquote class="lead">
  <p>You can make a quote “pop out”.</p>
</blockquote>

<h2 id="faded-text">Faded text</h2>
<p class="faded">I’m faded, faded, faded.</p>]]></content><author><name>Florian Klampfer</name><email>mail@qwtel.com</email></author><category term="hydejack" /><summary type="html"><![CDATA[A page showing Hydejack-specific markdown content.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://hydejack.com/assets/img/blog/example-content-iii.jpg" /><media:content medium="image" url="https://hydejack.com/assets/img/blog/example-content-iii.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry></feed>