<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type="text/xml" href="https://apollo.vikash.me/feed.xslt.xml"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator><link href="https://apollo.vikash.me/essays/feed.xml" rel="self" type="application/atom+xml" /><link href="https://apollo.vikash.me/" rel="alternate" type="text/html" /><updated>2026-08-20T02:50:54+00:00</updated><id>https://apollo.vikash.me/essays/feed.xml</id><title type="html">Apollo | Essays</title><subtitle>Jekyll template defaults for subtree vendoring</subtitle><author><name>Apollo</name></author><entry><title type="html">Social Fallback Demo</title><link href="https://apollo.vikash.me/essays/social-fallback-demo/" rel="alternate" type="text/html" title="Social Fallback Demo" /><published>2024-04-06T00:00:00+00:00</published><updated>2024-04-06T00:00:00+00:00</updated><id>https://apollo.vikash.me/essays/social-fallback-demo</id><content type="html" xml:base="https://apollo.vikash.me/essays/social-fallback-demo/"><![CDATA[<p>This page intentionally omits <code class="language-plaintext highlighter-rouge">social_image</code>. Apollo should use <code class="language-plaintext highlighter-rouge">hero.image</code> for Open Graph and Twitter metadata.</p>

<p>For production posts, prefer an explicit <code class="language-plaintext highlighter-rouge">social_image</code> when the hero image is not already cropped for social cards. The recommended size is <code class="language-plaintext highlighter-rouge">1200x630</code>.</p>]]></content><author><name>Apollo</name></author><summary type="html"><![CDATA[A sample essay that relies on Apollo's social image fallback chain instead of explicit social_image front matter.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://apollo.vikash.me/assets/images/og/essays/social-fallback-demo.png" /><media:content medium="image" url="https://apollo.vikash.me/assets/images/og/essays/social-fallback-demo.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Rich Content Demo</title><link href="https://apollo.vikash.me/essays/rich-content-demo/" rel="alternate" type="text/html" title="Rich Content Demo" /><published>2024-04-05T00:00:00+00:00</published><updated>2024-04-05T00:00:00+00:00</updated><id>https://apollo.vikash.me/essays/rich-content-demo</id><content type="html" xml:base="https://apollo.vikash.me/essays/rich-content-demo/"><![CDATA[<p>This essay is intentionally practical: it gives the example site one page that touches the rich content helpers Apollo adds on top of regular Markdown.</p>

<h2 id="hero-and-social-images">Hero and Social Images</h2>

<p>The front matter for this page sets both <code class="language-plaintext highlighter-rouge">hero.image</code> and <code class="language-plaintext highlighter-rouge">social_image</code>. The essay layout should render the hero image above this content, while SEO/social metadata should use the explicit <code class="language-plaintext highlighter-rouge">social_image</code> value.</p>

<h2 id="figures">Figures</h2>

<p>Inline figures use the <code class="language-plaintext highlighter-rouge">figure.html</code> include. The default layout stays within the text measure and lazy-loads the image.</p>

<figure class="apollo-figure">
  <img src="/assets/images/essays/welcome-demo.png" alt="A minimalist abstract composition inside a standard figure" loading="lazy" decoding="async" width="1200" height="800" />
  
  <figcaption>
    Default figures stay aligned with the article content.
    <span class="figure-credit">Demo artwork from the Apollo example assets.</span>
  </figcaption>
  
</figure>

<p>The same include can opt into a wide layout when an image benefits from more horizontal space.</p>

<figure class="apollo-figure wide">
  <img src="/assets/images/essays/welcome-demo.png" alt="A minimalist abstract composition shown in a wide figure" loading="lazy" decoding="async" width="1200" height="800" />
  
  <figcaption>
    Wide figures break out from the text column while keeping captions attached.
    
  </figcaption>
  
</figure>

<h2 id="video">Video</h2>

<p>Apollo can turn a YouTube, Vimeo, or direct video URL into a responsive player. Use the include when you want a caption:</p>

<div class="language-liquid highlighter-rouge"><div class="highlight"><pre class="highlight"><code>
<span class="cp">{%</span><span class="w"> </span><span class="nt">include</span><span class="w"> </span>video.html<span class="w">
  </span><span class="na">src</span><span class="o">=</span><span class="s2">"https://www.youtube.com/watch?v=M7lc1UVf-VE"</span><span class="w">
  </span><span class="na">caption</span><span class="o">=</span><span class="s2">"Embedded video players keep the same rhythm as figures."</span><span class="w">
</span><span class="cp">%}</span>

</code></pre></div></div>

<div class="apollo-video" data-video-src="https://www.youtube.com/watch?v=M7lc1UVf-VE" data-video-title="Embedded video players keep the same rhythm as figures." data-video-caption="&lt;p&gt;Embedded video players keep the same rhythm as figures.&lt;/p&gt;"></div>

<p>Standalone video links also become players:</p>

<p>https://vimeo.com/76979871</p>

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

<p>Language labels and copy buttons are added after render. This TypeScript block should display a <code class="language-plaintext highlighter-rouge">TypeScript</code> label.</p>

<div class="language-typescript highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">type</span> <span class="nx">FeatureFlag</span> <span class="o">=</span> <span class="p">{</span>
  <span class="na">key</span><span class="p">:</span> <span class="dl">'</span><span class="s1">math</span><span class="dl">'</span> <span class="o">|</span> <span class="dl">'</span><span class="s1">mermaid</span><span class="dl">'</span> <span class="o">|</span> <span class="dl">'</span><span class="s1">figures</span><span class="dl">'</span> <span class="o">|</span> <span class="dl">'</span><span class="s1">codeCopy</span><span class="dl">'</span><span class="p">;</span>
  <span class="nl">enabled</span><span class="p">:</span> <span class="nx">boolean</span><span class="p">;</span>
<span class="p">};</span>

<span class="kd">const</span> <span class="nx">enabled</span> <span class="o">=</span> <span class="p">(</span><span class="nx">features</span><span class="p">:</span> <span class="nx">FeatureFlag</span><span class="p">[])</span> <span class="o">=&gt;</span> <span class="p">{</span>
  <span class="k">return</span> <span class="nx">features</span><span class="p">.</span><span class="nf">filter</span><span class="p">((</span><span class="nx">feature</span><span class="p">)</span> <span class="o">=&gt;</span> <span class="nx">feature</span><span class="p">.</span><span class="nx">enabled</span><span class="p">).</span><span class="nf">map</span><span class="p">((</span><span class="nx">feature</span><span class="p">)</span> <span class="o">=&gt;</span> <span class="nx">feature</span><span class="p">.</span><span class="nx">key</span><span class="p">);</span>
<span class="p">};</span>

<span class="nx">console</span><span class="p">.</span><span class="nf">log</span><span class="p">(</span><span class="nf">enabled</span><span class="p">([</span>
  <span class="p">{</span> <span class="na">key</span><span class="p">:</span> <span class="dl">'</span><span class="s1">math</span><span class="dl">'</span><span class="p">,</span> <span class="na">enabled</span><span class="p">:</span> <span class="kc">true</span> <span class="p">},</span>
  <span class="p">{</span> <span class="na">key</span><span class="p">:</span> <span class="dl">'</span><span class="s1">mermaid</span><span class="dl">'</span><span class="p">,</span> <span class="na">enabled</span><span class="p">:</span> <span class="kc">true</span> <span class="p">},</span>
  <span class="p">{</span> <span class="na">key</span><span class="p">:</span> <span class="dl">'</span><span class="s1">figures</span><span class="dl">'</span><span class="p">,</span> <span class="na">enabled</span><span class="p">:</span> <span class="kc">true</span> <span class="p">},</span>
  <span class="p">{</span> <span class="na">key</span><span class="p">:</span> <span class="dl">'</span><span class="s1">codeCopy</span><span class="dl">'</span><span class="p">,</span> <span class="na">enabled</span><span class="p">:</span> <span class="kc">true</span> <span class="p">}</span>
<span class="p">]));</span>
</code></pre></div></div>

<p>Diff fences should highlight inserted and deleted lines.</p>

<div class="language-diff highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="gd">- image: /assets/images/og/essays/welcome.png
</span><span class="gi">+ hero:
+   image: /assets/images/essays/welcome-demo.png
+   alt: A readable description
+ social_image: /assets/images/og/essays/welcome.png
</span></code></pre></div></div>

<h2 id="mermaid">Mermaid</h2>

<p>With <code class="language-plaintext highlighter-rouge">mermaid: true</code>, Mermaid fences are converted from highlighted code into a diagram container and rendered by the client-side Mermaid bundle.</p>

<pre><code class="language-mermaid">flowchart LR
  Content[Markdown Content] --&gt; Render[Jekyll Render]
  Render --&gt; Enhance[Content Enhancements]
  Enhance --&gt; Browser[Browser Scripts]
  Browser --&gt; Reader[Reader Experience]
</code></pre>

<h2 id="math">Math</h2>

<p>With <code class="language-plaintext highlighter-rouge">math: true</code>, MathJax renders inline expressions like $a^2 + b^2 = c^2$ and display equations:</p>

\[\operatorname{score}(page) = \frac{readability + media + metadata}{3}\]

<h2 id="expected-result">Expected Result</h2>

<p>When this page is built locally, it should show a hero image with a caption, two captioned figures, responsive video players, copyable code blocks with labels, highlighted diff lines, a rendered Mermaid diagram, and rendered math.</p>]]></content><author><name>Apollo</name></author><summary type="html"><![CDATA[A single sample essay for testing Apollo's figures, video players, code blocks, math, and Mermaid diagrams.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://apollo.vikash.me/assets/images/og/essays/rich-content-demo.png" /><media:content medium="image" url="https://apollo.vikash.me/assets/images/og/essays/rich-content-demo.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Welcome to Apollo</title><link href="https://apollo.vikash.me/essays/welcome/" rel="alternate" type="text/html" title="Welcome to Apollo" /><published>2024-03-01T00:00:00+00:00</published><updated>2024-03-01T00:00:00+00:00</updated><id>https://apollo.vikash.me/essays/welcome</id><content type="html" xml:base="https://apollo.vikash.me/essays/welcome/"><![CDATA[<p>Apollo is a minimalist yet powerful theme designed for writers, researchers, and developers. It’s built with Jekyll and focuses on typography, readability, and a clean aesthetic inspired by modern reading experiences.</p>

<h2 id="typography">Typography</h2>

<p>Apollo uses <strong>Newsreader</strong> for body text, a typeface designed specifically for on-screen reading. It pairs elegant serifs with a clean monospace font for code.</p>

<blockquote>
  <p>“Typography is the craft of endowing human language with a durable visual form.”</p>
</blockquote>

<p>Headers are bold and distinct, while body text is set at a comfortable size with generous line height.</p>

<h2 id="features-at-a-glance">Features at a Glance</h2>

<ul>
  <li><strong>Responsive Design</strong>: Looks great on mobile and desktop.</li>
  <li><strong>Dark Mode</strong>: Automatic theme switching based on system preference.</li>
  <li><strong>Syntax Highlighting</strong>: Beautiful code blocks for various languages.</li>
  <li><strong>Math Support</strong>: Render mathematical content easily.</li>
</ul>

<h2 id="images-and-media">Images and Media</h2>

<p>Images expand to fill the available width, maintaining a visual balance with the text.</p>

<figure class="apollo-figure wide">
  <img src="/assets/images/essays/welcome-demo.png" alt="A minimalist abstract composition" loading="lazy" decoding="async" />
  
  <figcaption>
    Inline figures support captions, lazy loading, dimensions, and wide layouts.
    
  </figcaption>
  
</figure>

<h2 id="next-steps">Next Steps</h2>

<p>Check out the <a href="/essays/technical/">Technical Demo</a> to see code highlighting and advanced formatting in action, or read <a href="/essays/thoughts-on-ai-safety/">Thoughts on AI Safety</a> for a long-form content example.</p>]]></content><author><name>Apollo</name></author><category term="Design" /><category term="Writing" /><summary type="html"><![CDATA[A classic, beautiful theme for personal websites and portfolios.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://apollo.vikash.me/assets/images/og/essays/welcome.png" /><media:content medium="image" url="https://apollo.vikash.me/assets/images/og/essays/welcome.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Thoughts on AI Safety</title><link href="https://apollo.vikash.me/essays/thoughts-on-ai-safety/" rel="alternate" type="text/html" title="Thoughts on AI Safety" /><published>2024-02-10T00:00:00+00:00</published><updated>2024-02-10T00:00:00+00:00</updated><id>https://apollo.vikash.me/essays/thoughts-on-ai-safety</id><content type="html" xml:base="https://apollo.vikash.me/essays/thoughts-on-ai-safety/"><![CDATA[<p>As we stand at the threshold of increasingly powerful AI systems, the question of safety becomes more pressing than ever. This essay explores some key considerations in AI safety research.</p>

<h2 id="the-current-landscape">The Current Landscape</h2>

<p>AI safety research has evolved significantly over the past decade. We’ve moved from theoretical concerns to practical implementations, with major research institutions dedicating substantial resources to understanding and mitigating AI risks.</p>

<h3 id="key-areas-of-focus">Key Areas of Focus</h3>

<ol>
  <li><strong>Alignment</strong>: Ensuring AI systems pursue intended goals</li>
  <li><strong>Robustness</strong>: Building systems that perform reliably across diverse conditions</li>
  <li><strong>Interpretability</strong>: Understanding how AI systems make decisions</li>
  <li><strong>Control</strong>: Maintaining human oversight and intervention capabilities</li>
</ol>

<h2 id="challenges-ahead">Challenges Ahead</h2>

<p>The path forward in AI safety is not without obstacles. Some of the most significant challenges include:</p>

<ul>
  <li>Balancing capability advancement with safety measures</li>
  <li>Coordinating research efforts across organizations</li>
  <li>Addressing both near-term and long-term risks</li>
  <li>Ensuring inclusive and diverse perspectives in safety research</li>
</ul>

<h2 id="a-path-forward">A Path Forward</h2>

<p>Effective AI safety requires collaboration between researchers, policymakers, and industry leaders. We need robust testing frameworks, transparent research practices, and continued investment in fundamental safety research.</p>

<p>The stakes are high, but so is the potential for positive impact. By prioritizing safety alongside capability, we can work toward AI systems that benefit humanity while minimizing risks.</p>]]></content><author><name>Apollo</name></author><category term="AI" /><category term="Safety" /><summary type="html"><![CDATA[Reflections on the current state and future challenges of AI safety research.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://apollo.vikash.me/assets/images/og/essays/thoughts-on-ai-safety.png" /><media:content medium="image" url="https://apollo.vikash.me/assets/images/og/essays/thoughts-on-ai-safety.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Technical Demo</title><link href="https://apollo.vikash.me/essays/technical/" rel="alternate" type="text/html" title="Technical Demo" /><published>2024-01-20T00:00:00+00:00</published><updated>2024-01-20T00:00:00+00:00</updated><id>https://apollo.vikash.me/essays/technical</id><content type="html" xml:base="https://apollo.vikash.me/essays/technical/"><![CDATA[<p>This post demonstrates the technical capabilities of the Apollo theme, including syntax highlighting for various languages and mathematical rendering.</p>

<h2 id="syntax-highlighting">Syntax Highlighting</h2>

<p>Apollo supports syntax highlighting for over 100 languages. Code blocks adapt to both light and dark modes automatically.</p>

<h3 id="python">Python</h3>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">def</span> <span class="nf">fibonacci</span><span class="p">(</span><span class="n">n</span><span class="p">):</span>
    <span class="k">if</span> <span class="n">n</span> <span class="o">&lt;=</span> <span class="mi">1</span><span class="p">:</span>
        <span class="k">return</span> <span class="n">n</span>
    <span class="k">else</span><span class="p">:</span>
        <span class="k">return</span> <span class="nf">fibonacci</span><span class="p">(</span><span class="n">n</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="o">+</span> <span class="nf">fibonacci</span><span class="p">(</span><span class="n">n</span><span class="o">-</span><span class="mi">2</span><span class="p">)</span>

<span class="nf">print</span><span class="p">([</span><span class="nf">fibonacci</span><span class="p">(</span><span class="n">i</span><span class="p">)</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nf">range</span><span class="p">(</span><span class="mi">10</span><span class="p">)])</span>
<span class="c1"># Output: [0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
</span></code></pre></div></div>

<h3 id="typescript--javascript">TypeScript / JavaScript</h3>

<div class="language-typescript highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kr">interface</span> <span class="nx">User</span> <span class="p">{</span>
  <span class="nl">id</span><span class="p">:</span> <span class="kr">number</span><span class="p">;</span>
  <span class="nl">name</span><span class="p">:</span> <span class="kr">string</span><span class="p">;</span>
  <span class="nl">role</span><span class="p">:</span> <span class="dl">'</span><span class="s1">admin</span><span class="dl">'</span> <span class="o">|</span> <span class="dl">'</span><span class="s1">user</span><span class="dl">'</span><span class="p">;</span>
<span class="p">}</span>

<span class="kd">const</span> <span class="nx">greet</span> <span class="o">=</span> <span class="p">(</span><span class="nx">user</span><span class="p">:</span> <span class="nx">User</span><span class="p">):</span> <span class="kr">string</span> <span class="o">=&gt;</span> <span class="p">{</span>
  <span class="k">return</span> <span class="s2">`Hello, </span><span class="p">${</span><span class="nx">user</span><span class="p">.</span><span class="nx">name</span><span class="p">}</span><span class="s2">!`</span><span class="p">;</span>
<span class="p">};</span>

<span class="kd">const</span> <span class="nx">admin</span><span class="p">:</span> <span class="nx">User</span> <span class="o">=</span> <span class="p">{</span> <span class="na">id</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span> <span class="na">name</span><span class="p">:</span> <span class="dl">"</span><span class="s2">Apollo</span><span class="dl">"</span><span class="p">,</span> <span class="na">role</span><span class="p">:</span> <span class="dl">"</span><span class="s2">admin</span><span class="dl">"</span> <span class="p">};</span>
<span class="nx">console</span><span class="p">.</span><span class="nf">log</span><span class="p">(</span><span class="nf">greet</span><span class="p">(</span><span class="nx">admin</span><span class="p">));</span>
</code></pre></div></div>

<h3 id="rust">Rust</h3>

<div class="language-rust highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">fn</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
    <span class="k">let</span> <span class="n">greetings</span> <span class="o">=</span> <span class="p">[</span><span class="s">"Hello"</span><span class="p">,</span> <span class="s">"Hola"</span><span class="p">,</span> <span class="s">"Bonjour"</span><span class="p">];</span>

    <span class="k">for</span> <span class="n">greeting</span> <span class="k">in</span> <span class="n">greetings</span><span class="nf">.iter</span><span class="p">()</span> <span class="p">{</span>
        <span class="nd">println!</span><span class="p">(</span><span class="s">"{}, world!"</span><span class="p">,</span> <span class="n">greeting</span><span class="p">);</span>
    <span class="p">}</span>
<span class="p">}</span>
</code></pre></div></div>

<h3 id="diff">Diff</h3>

<div class="language-diff highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="gd">- const theme = "light";
</span><span class="gi">+ const theme = userPreference ?? "light";
</span></code></pre></div></div>

<h2 id="diagrams">Diagrams</h2>

<pre><code class="language-mermaid">flowchart LR
  Draft[Draft] --&gt; Preview[Preview]
  Preview --&gt; Publish[Publish]
</code></pre>

<h2 id="mathematical-notation">Mathematical Notation</h2>

<p>You can include math equations using LaTeX syntax by setting <code class="language-plaintext highlighter-rouge">math: true</code> in front matter.</p>

\[E = mc^2\]

<h2 id="lists-and-formatting">Lists and Formatting</h2>

<ul>
  <li>Unordered lists are clean and spacious.</li>
  <li>They support <strong>bold</strong> and <em>italic</em> text.
    <ul>
      <li>And nested items.</li>
    </ul>
  </li>
</ul>

<ol>
  <li>Ordered lists are also supported.</li>
  <li>Perfect for tutorials or step-by-step guides.</li>
</ol>

<hr />

<p>The theme handles all standard Markdown elements gracefully, ensuring your technical content is as readable as your prose.</p>]]></content><author><name>Apollo</name></author><category term="Code" /><category term="Jekyll" /><summary type="html"><![CDATA[Showcasing code highlighting and advanced typography features.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://apollo.vikash.me/assets/images/og/essays/technical.png" /><media:content medium="image" url="https://apollo.vikash.me/assets/images/og/essays/technical.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry></feed>