blinkinglights.io is live!

August 12, 2023

3 min read

For the past few years, I've been using www.samuelvanallen.com as my portfolio website. The old site was written back in 2015 when I was still a student, as part of a really basic web development course.

Old Site: Various Limitations

Being written in pure html + css + js, it had a number of serious issues. The biggest of which was that updating content involved editing raw html files that were dynamically loaded with ajax. This made the process of making changes to the contents a really time-consuming and unpleasant chore.

The site was also extremely slow and non-responsive. It was fine back in 2015, but these days with the prevalence of mobile, this affects a large number of visitors.

I've wanted to rebuild the old site for quite some time. However, as someone who knew very little about modern web development, I wanted to first spend some time so that I can make sure that I do it right this time. I spent most of the Obon holidays here in Japan researching the tools for the job and ended up with something that works quite well for my needs.

New and Improved

Written with Nuxt 3 and Nuxt Content 2, all content on this site is written in markdown. This is a huge improvement over needing to update html each time changes were made.

Styling is mostly done with Tailwind CSS, which means that blinkinglights.io is built with mobile-first in mind.

I've also extended Nuxt Content's markdown system to support a few additional features that I think will be useful.

Better code block support

Extending the code blocks, I've added some custom line number handling and line highlighting features:

postprocess.hlsl
ConstantBuffer<GlobalConstants> g_GlobalConstants   : register(b0);
Texture2D<float4> g_SourceTexture                   : register(t0);
RWTexture2D<float4> g_DestinationTexture            : register(u0);

[numthreads(32, 32, 1)]
void CS_Main(uint3 threadID : SV_DispatchThreadID)
{
    g_DestinationTexture[threadID.xy] = g_SourceTexture[threadID.xy];
}

Katex math block support

Similarly, Katex support has been added since it'll absolutely become necessary later:

Projects

Most of my interesting project entries have been migrated from the old site, and have been updated with better explanations and details. Having everything in Markdown format made this process extremely pleasant. If you're interested, you can take a look over at projects.

Blog

@Jiayin_Cao have also been telling me for years now that I need start sharing the work and research that I'm doing in Computer Graphics. I thought that this would be the perfect opportunity to build a framework that allows for that.

As such, starting shortly I'll start posting about things I'm working on that I find interesting and may be useful to readers. I'll be hosting them right here in this blog section.

This post will remain visible until I'm done with the first article.


432 Words

August 12, 2023