GitHunt
NO

noaione/blog.n4o.xyz

Blog based on Nuxt.js and Tailwind | The "generated from" is the base theme I've derived it from

N4O Personal Blog

My personal blog where I yap about random stuff I found or did.

This blog has been rewritten too many times that I should actually start writing something:

  1. Jekyll
  2. Hugo
  3. Next.js
  4. Nuxt (You are here)

Why?

Because it would be funny to rewrite this blog again.

Features

  • ๐ŸŒ™ Dark mode
  • โŒจ๏ธ Markdown with a ton of plugins (thanks to nuxt/mdc)
    • ๐ŸŽจ Code Highlighter via Shiki
    • ๐Ÿงœ Diagram render support via Mermaid
    • ๐Ÿง‘โ€๐Ÿ’ป Embedded Gist, Github code snippet, and repository card support.
    • ๐Ÿ’ป Asciinema render
    • ๐Ÿ˜€ Emoji support via Twemoji
  • ๐ŸŒ Multilingual or i18n support (Mainly in Indonesian and English)
    • A nicer fallback page for when a certain posts not available in another languages
  • ๐Ÿค– Monospaced-like font (using Monaspace Xenon for main font and Neon for code)
  • ๐Ÿ“ Use variable font by default for better performance
  • ๐Ÿš€ Fast (arguably)
  • ๐Ÿ“œ SEO friendly (I hope)
  • ๐Ÿ“ฑ Mobile friendly (as friendly as I can make it)
  • ๐Ÿ“ˆ Proper sitemap and RSS feed
  • ๐Ÿ’ฌ Comment feature (via giscus.app)
  • ๐Ÿ“ Draft-like feature so you don't publish your bad writing immediately
  • ๐ŸŽง Spotify information
  • ๐Ÿ‘๏ธ Plausible/view count

For both Spotify and Plausible, you would need to set BLOG_API_HOST environment variable to your blog API.

You can get blog API from here: https://github.com/noaione/blog-api

Features that is "hardcoded"

  • ๐Ÿ“š Literal.club support
    • Although you can change the username or just disable it by commenting the code
    • If you do change it, ensure that your profile is public

See nuxt.config.ts for more information.

Development

You need yarn berry, not yarn classic, then install everything with:

yarn

Then run the development server with:

yarn dev

Open http://localhost:4500 with your browser to see the result.

Frontmatter

  • title (required) [string]
  • author (required, depends on data/author.json) [string]
  • date (optional, but recommended) [date-like]
  • tags (optional, can be empty array) [string[]]
  • lastmod (optional) [date-like]
  • draft (optional) [boolean]
  • description (optional) [string]
  • image (optional, if none provided fallback to default image) [string]

Here's an example of a post's frontmatter:

---
title: Markdown
description: Halaman ini memiliki judul dan beberapa konten untuk demonstrasi markdown.
image: https://octodex.github.com/images/minion.png
date: 2021-01-01
draft: true
tags:
  - demo
  - testing
author: noaione
---

Credits

License

All the content in this repository is licensed under MIT License with the exception of the content in the content folder which is licensed under Creative Commons Attribution 4.0 International License with modification regarding about AI/ML usages.

Font License

Monaspace Xenon and Neon font is created by GitHub Next and Lettermatic and licensed under SIL Open Font License 1.1.

Languages

Vue46.8%TypeScript46.1%JavaScript4.7%CSS2.4%

Contributors

Other
Created May 7, 2021
Updated May 17, 2025