Introduction#

Why I chose Go#

I didn’t overthink it ─ Go caught my attention, and I decided to give it a shot. Sometimes the best choices are the spontaneous ones, right?

The appeal of building a static-site generator#

I wanted a manageable project to explore Go. Plus, it’s perfect for practicing file handling, working with templates, and dealing with text-based data. It’s small enough to learn but rewarding enough to build something useful.

My background in programming#

I’m a CS student with experience as a sysadmin, so I’ve played around with plenty of programming languages. But Go was a fresh start and a fun addition to my toolkit.


The Project Idea#

Why a static-site generator#

It’s a great excuse to learn Go while building something practical. Plus, it’s a tool I can use to simplify blogging or web content management.

How I plan to convert Markdown into HTML.#

The plan is simple:

  • Templates: The templates/ folder holds the HTML layouts
  • Content: All Markdown files (like this blog post!) live in content/
  • Output: This is where Go will generate the final HTML files, neatly stored in output/

What features I want to include#

  • Template support to customize pages.
  • A clean directory structure for better organization.
  • Basic Markdown-to-HTML conversion to start, with room to grow.

Learning Go#

First impressions of Go#

Go feels minimalist yet powerful. It’s beginner-friendly, with straightforward syntax and a shallow learning curve. Honestly, it feels like Go wants you to succeed.

The challenges and rewards of learning Go#

I ran into a snag with imports early on (rookie mistake), but fixing it taught me how Go handles dependencies. Every challenge is just another step toward mastering the language.

Any resources I’ve found helpful#

I haven’t leaned on specific resources yet ─ it’s been a lot of hands-on trial and error. Sometimes the best teacher is diving in and figuring things out as you go.


Project Progress#

Steps I’ve taken so far#

I’ve set up my project structure and worked with Markdown files. I’ve also experimented with templates. It’s coming together bit by bit.

Challenges I’ve faced and how I overcame them#

Conditional imports tricky at first, but I simplified things by removing the unnecessary build constraints. Problem solved.


Why This Matters#

What I’ve been learning from this project#

This project has been a crash course in Go, from syntax to real-world problem-solving. I’m learning how to make code do something tangible, and that’s always rewarding.

How it’s helping me grow as a developer#

It’s my first time building something end-to-end in Go, and it’s shown me how fun and approachable the language can be. It’s also helping me think more modularly about projects.

Future plans for this project#

  • Adding a CLI for easier interaction.
  • Supporting customization with user-defined templates.
  • Polishing the design with CSS and making it responsive.

Conclusion#

If you’ve been curious about Go, my advice is: Just start. Pick a small project, like a static-site generator, and dive in. My goal is to keep improving this project, and who knows ─ maybe it’ll inspire someone else to try Go too!