<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://fraser.cam/feed.xml" rel="self" type="application/atom+xml" /><link href="https://fraser.cam/" rel="alternate" type="text/html" /><updated>2026-07-04T22:47:44+00:00</updated><id>https://fraser.cam/feed.xml</id><title type="html">Cameron Fraser</title><subtitle>This web site is under construction. It will eventually contain some good content put there by Cameron Fraser, a programmer and urbanist from Seattle.</subtitle><entry><title type="html">Post Containing Test Content For My Brand New Web Site</title><link href="https://fraser.cam/words/test" rel="alternate" type="text/html" title="Post Containing Test Content For My Brand New Web Site" /><published>2026-05-29T03:31:16+00:00</published><updated>2026-05-29T03:31:16+00:00</updated><id>https://fraser.cam/words/test</id><content type="html" xml:base="https://fraser.cam/words/test"><![CDATA[<p>Hello and welcome to my page! This web site is made with Jekyll and features my
very own custom theme. This post exists to test that all the different kinds of
formatting that I can think of look good in this theme.</p>

<p>The introductory paragraph above features a drop-cap: the “H” in “Hello” is
huge. The behavior of drop-caps is a bit customizable. So if, for instance, I
know that the first paragraph of this article is just a single sentence and the
drop-cap would look silly, I can disable it. Besides “off,” the available
options for drop-caps are <code class="language-plaintext highlighter-rouge">init</code>, <code class="language-plaintext highlighter-rouge">section</code>, and <code class="language-plaintext highlighter-rouge">all</code>, for one or both of the
two cases where drop-caps may be added. The very first paragraph of the article
is the <code class="language-plaintext highlighter-rouge">init</code> case. We’ll see the other later. First…</p>

<h2 id="this-is-a-section-heading">This is a section heading.</h2>

<p>It’s indicated with two pound signs in Markdown, but gets rendered as an <code class="language-plaintext highlighter-rouge">h2</code>
element once it gets transformed into HTML. <code class="language-plaintext highlighter-rouge">h1</code> is reserved for the article
title and shouldn’t be used in the document body. Fun fact: apparently
including plenty of <code class="language-plaintext highlighter-rouge">h2</code>s in your document is important for SEO? Or maybe my
information is out of date. Maybe none of that matters anymore in the age of
AI and we’ve given up on making our stuff appear on Google. I’m not totally
sure where I heard that <code class="language-plaintext highlighter-rouge">h2</code> thing anyways.</p>

<p>There are further levels of headings:</p>

<h3 id="this-is-a-level-3-heading-its-an-h3-element">This is a level 3 heading. It’s an <code class="language-plaintext highlighter-rouge">h3</code> element.</h3>

<h4 id="this-is-a-level-4-heading-it-contains-bold-text">This is a level 4 heading. <strong>It contains bold text.</strong></h4>

<h5 id="this-is-a-level-5-heading-it-contains-italic-text">This is a level 5 heading. <em>It contains italic text.</em></h5>

<p>All these lower-level heading types appear in the body font, Roboto, rather
than the title font, Lato. Which reminds me: I should test formatting in my
section headings as well. Here we go:</p>

<h2 id="this-is-another-section-heading-it-contains-code-italics-and-bold-type-besides-which-its-just-very-long">This is another section heading. It contains <code class="language-plaintext highlighter-rouge">code</code>, <em>italics</em>, and <strong>bold type</strong>. Besides which, it’s just very long.</h2>

<p>Links are important elements of the World Wide Web. The last word in this
sentence is a link to my <a href="https://bsky.app/profile/fraser.cam">Bluesky</a>. Links
come in all sorts of different lengths. <a href="https://github.com/frasercl">This entire sentence links to my
GitHub.</a></p>

<p>You can also link to different locations within the same document. This
sentence contains a link to <a href="#this-is-a-section-heading">the first section</a> of
this page. This sentence has a footnote.<sup id="fnref:1" role="doc-noteref"><a href="#fn:1" class="footnote" rel="footnote">1</a></sup></p>

<p>Next up is a block quote. This particular quote is from YouTube video essayist
Noah Caldwell-Gervais, chosen for no other reason than I had it written down in
my Supernote and it was close to hand.</p>

<blockquote>
  <p>This is the power of the road narrative in American culture, its deepest and
and least-articulated appeal: that there is peace in the journey because the
destination might be illusory. I really do love this country, but what I love
most about it are always the things that it’s told me it wanted to be, and so
much more rarely what it is in practice.</p>
</blockquote>

<hr />

<p>The element above is an <code class="language-plaintext highlighter-rouge">hr</code>, or “horizontal rule.” It can be used to divide sections of text from each other without using a heading.</p>

<p>You’ll notice this section also began with a drop-cap. This is the <code class="language-plaintext highlighter-rouge">section</code>
case for the drop-cap rule. When this rule is active, paragraphs immediately
after a section break get a drop-cap. This might be standard practice, but I
specifically observed this behavior on <a href="https://theverge.com">The Verge</a>. As
best I can tell, features on that website get a drop-cap at the beginning and
after section breaks, but not after section headings.</p>

<h2 id="now-lets-test-different-kinds-of-list">Now let’s test different kinds of list!</h2>

<h3 id="first-an-unordered-list">First: an unordered list.</h3>

<p>Some of my priorities for this Jekyll theme are:</p>

<ul>
  <li>Magazine-like appearance</li>
  <li>Good for short posts and for very long ones</li>
  <li>Short URLs, long article titles
    <ul>
      <li>I like very short, memorable URLs</li>
      <li>Having shorter URLs means the header bar above can contain a largeish
breadcrumb trail
        <ul>
          <li>Having a largeish breadcrumb trail means the breadcrumbs can double as
a page title</li>
        </ul>
      </li>
    </ul>
  </li>
</ul>

<h3 id="second-an-ordered-list">Second: an ordered list.</h3>

<p>I’ve got a project I’ve been thinking about a lot lately. I want to
procedurally generate a pretty 3D mountain scene with WebGPU. This scene will
include some features:</p>

<ol>
  <li>Mountain
    <ul>
      <li>Generated with diffusion-limited aggregation? Can it be made
 compute-shader-friendly?</li>
    </ul>
  </li>
  <li>Trees
    <ul>
      <li>Lots of previous work on this</li>
      <li><a href="https://github.com/dgreenheck/ez-tree">This</a> looks promising</li>
      <li>So does <a href="https://github.com/friggog/tree-gen">this</a></li>
    </ul>
  </li>
  <li>Grass</li>
  <li>Water?</li>
  <li>Glacier?</li>
</ol>

<h3 id="third-a-checklist">Third: a checklist!</h3>

<p>Here are some content elements I’ve tested so far:</p>

<ul class="task-list">
  <li class="task-list-item"><input type="checkbox" class="task-list-item-checkbox" disabled="disabled" checked="checked" />Headers</li>
  <li class="task-list-item"><input type="checkbox" class="task-list-item-checkbox" disabled="disabled" />Lists
    <ul class="task-list">
      <li class="task-list-item"><input type="checkbox" class="task-list-item-checkbox" disabled="disabled" checked="checked" />Unordered</li>
      <li class="task-list-item"><input type="checkbox" class="task-list-item-checkbox" disabled="disabled" checked="checked" />Ordered</li>
      <li class="task-list-item"><input type="checkbox" class="task-list-item-checkbox" disabled="disabled" />Check (this list)</li>
    </ul>
  </li>
  <li class="task-list-item"><input type="checkbox" class="task-list-item-checkbox" disabled="disabled" />Code blocks (coming next!)</li>
  <li class="task-list-item"><input type="checkbox" class="task-list-item-checkbox" disabled="disabled" />Tables</li>
</ul>

<h2 id="did-you-know-i-write-code-for-a-living">Did you know I write code for a living?</h2>

<p>It’s true! And I might want to write about it. And when I write about it, I’m
likely to want to add snippets of code to my post. Theoretically, I should be
able to get syntax highlighting for multiple different languages in my code
blocks. So let’s test that too. Here’s some example TypeScript code:</p>

<div class="language-typescript highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">class</span> <span class="nx">Vector2</span><span class="o">&lt;</span><span class="nx">T</span> <span class="o">=</span> <span class="kr">number</span><span class="o">&gt;</span> <span class="p">{</span>
  <span class="kd">constructor</span><span class="p">(</span><span class="k">public</span> <span class="na">x</span><span class="p">:</span> <span class="nx">T</span><span class="p">,</span> <span class="k">public</span> <span class="na">y</span><span class="p">:</span> <span class="nx">T</span><span class="p">)</span> <span class="p">{}</span>

  <span class="nx">add</span><span class="p">(</span><span class="na">other</span><span class="p">:</span> <span class="nx">Vector2</span><span class="o">&lt;</span><span class="nx">T</span><span class="o">&gt;</span><span class="p">):</span> <span class="nx">Vector2</span><span class="o">&lt;</span><span class="nx">T</span><span class="o">&gt;</span> <span class="p">{</span>
    <span class="k">return</span> <span class="k">new</span> <span class="nx">Vector2</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">x</span> <span class="o">+</span> <span class="nx">other</span><span class="p">.</span><span class="nx">x</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">y</span> <span class="o">+</span> <span class="nx">other</span><span class="p">.</span><span class="nx">y</span><span class="p">);</span>
  <span class="p">}</span>
<span class="p">}</span>
</code></pre></div></div>

<p>And here’s some Rust code:</p>

<div class="language-rust highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">use</span> <span class="nn">std</span><span class="p">::</span><span class="nn">ops</span><span class="p">::</span><span class="nb">Add</span><span class="p">;</span>

<span class="nd">#[derive(Clone,</span> <span class="nd">Copy)]</span>
<span class="k">pub</span> <span class="k">struct</span> <span class="n">Vec2</span><span class="o">&lt;</span><span class="n">T</span><span class="p">:</span> <span class="nb">Copy</span><span class="o">&gt;</span> <span class="p">{</span>
  <span class="n">x</span><span class="p">:</span> <span class="n">T</span><span class="p">,</span>
  <span class="n">y</span><span class="p">:</span> <span class="n">T</span><span class="p">,</span>
<span class="p">}</span>

<span class="k">impl</span><span class="o">&lt;</span><span class="n">T</span><span class="o">&gt;</span> <span class="n">Vec2</span><span class="o">&lt;</span><span class="n">T</span><span class="o">&gt;</span> <span class="p">{</span>
  <span class="k">pub</span> <span class="k">fn</span> <span class="nf">new</span><span class="p">(</span><span class="n">x</span><span class="p">:</span> <span class="n">T</span><span class="p">,</span> <span class="n">y</span><span class="p">:</span> <span class="n">T</span><span class="p">)</span> <span class="k">-&gt;</span> <span class="k">Self</span> <span class="p">{</span>
    <span class="k">Self</span> <span class="p">{</span> <span class="n">x</span><span class="p">,</span> <span class="n">y</span> <span class="p">}</span>
  <span class="p">}</span>
<span class="p">}</span>

<span class="k">impl</span><span class="o">&lt;</span><span class="n">T</span><span class="p">:</span> <span class="nb">Add</span><span class="o">&gt;</span> <span class="nb">Add</span> <span class="k">for</span> <span class="n">Vec2</span><span class="o">&lt;</span><span class="n">T</span><span class="o">&gt;</span> <span class="p">{</span>
  <span class="k">type</span> <span class="n">Output</span> <span class="o">=</span> <span class="n">Vec2</span><span class="o">&lt;</span><span class="nn">T</span><span class="p">::</span><span class="n">Output</span><span class="o">&gt;</span><span class="p">;</span>

  <span class="k">fn</span> <span class="nf">add</span><span class="p">(</span><span class="k">self</span><span class="p">,</span> <span class="n">rhs</span><span class="p">:</span> <span class="k">Self</span><span class="p">)</span> <span class="k">-&gt;</span> <span class="k">Self</span><span class="p">::</span><span class="n">Output</span> <span class="p">{</span>
    <span class="n">Vec2</span> <span class="p">{</span>
      <span class="n">x</span><span class="p">:</span> <span class="k">self</span><span class="py">.x</span> <span class="o">+</span> <span class="n">rhs</span><span class="py">.x</span><span class="p">,</span>
      <span class="n">y</span><span class="p">:</span> <span class="k">self</span><span class="py">.y</span> <span class="o">+</span> <span class="n">rhs</span><span class="py">.y</span><span class="p">,</span>
    <span class="p">}</span>
  <span class="p">}</span>
<span class="p">}</span>
</code></pre></div></div>

<h2 id="lastly-tables">Lastly, tables!</h2>

<table>
  <thead>
    <tr>
      <th>Foo</th>
      <th>Bar</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1</td>
      <td>This is some text.</td>
    </tr>
    <tr>
      <td>2</td>
      <td>This is much longer text.</td>
    </tr>
    <tr>
      <td>3</td>
      <td>This is some very very long text; it might even push onto a new line.</td>
    </tr>
  </tbody>
</table>

<div class="footnotes" role="doc-endnotes">
  <ol>
    <li id="fn:1" role="doc-endnote">
      <p>Hooray for footnotes! <a href="#fnref:1" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
  </ol>
</div>]]></content><author><name></name></author><category term="jekyll" /><category term="update" /><summary type="html"><![CDATA[Hello and welcome to my page! This web site is made with Jekyll and features my very own custom theme. This post exists to test that all the different kinds of formatting that I can think of look good in this theme.]]></summary></entry></feed>