silicate-guide/content/tutorials/getting-started/new-comic-and-pages/index.md

6.6 KiB

+++ title = 'Adding a comic and comic pages' show_toc = true weight = 30 +++

{{< warning >}} Page under redaction. {{< /warning >}}

Ok! We have a blank site with Silicate installed!

Now, we can start the insteresting part: adding actual comic pages!

For this tutorial, we'll use Pepper & Carrot pages.

This guide has a premade archive with everything you'll need. You can download it as a tar.gz archive for Linux/Mac or a zip for Windows.

{{< warning >}} Archives will be created soon. {{< /warning >}}

But if you have your own comic already, you can use your it too!

Setting up the comic

First off, let's create a comic/ folder in my_website/content/. It will be where all comic pages will go.

{{< warning >}} Information on how to set the comic title and description will be added soon. {{< /warning >}}

Adding a new comic page

Now we'll add page 01 from episode 01 from Pepper & Carrot!

Create a E01P01/ folder inside comic/. If you use your own webcomic, you can use your own page title as a folder name (just avoid spaces and specials characters because this folder name will be used as a URL for this page).

Then create a text file named index.md (If you are on Windows, make sure the file created isn't index.md.txt; Windows likes to hide file extensions from you may need to force windows to display them).

This index.md file tells Hugo that the E01P01 folder is a page and that all other files inside this folder belong to this page. This is what Hugo calls a "Page Bundle".

Post content

Most webcomics will have a small "blog" post associated with a page -- a description, some lore, etc.

You can do this by adding the post content to index.md.

Here, for example, we can add the credit of the first Pepper & Carrot page :

+++
title = 'Episode 1 - Page 1'
weight = 10
+++

Creative Commons Attribution 4.0 International license

------

Attribution to:

Art: David Revoy.

Scenario: David Revoy.

English (original version)

Proofreading: Amireeti, Alex Gryson.

------

Credit for the universe of Pepper&Carrot, Hereva:

Creation: David Revoy.

Lead Maintainer: Craig Maloney.

Writers: Craig Maloney, Nicolas Artance, Scribblemaniac, Valvin.

Correctors: Alex Gryson, CGand, Hali, Marno van der Maas, Moini, Willem Sonke.

This content uses the Markdown syntax, so you can have some simple styling, like *italic text*, **bold text**, etc.

{{< warning >}} Full description of Markdown possibilities will be added later. {{< /warning >}}

What is the weird text block with the "+++"?

This block is called a front matter, it is used to add attributes to the page, such as its title.

The weight attribute will be explained in Page ordering.

Comic pictures

Now, all we need are pictures for the comic page.

Create a strips/ folder inside E01P01/

Get the pages/E01P01.jpg file from the resources you downloaded -- or your own comic page -- and add it inside the strips/ folder.

You should now have this (and some other files and/or folders) :

my_webcomic/
    hugo.toml
    content/
        comic/
            E01P01/
                index.md
                strips/
                    E01P01.jpg

If your [website is running]({{% relref "tutorials/getting-started/site-creation" %}}#starting-your-site), then the home page should display the page you just added like so!:

{{< warning >}} Screenshot will be added soon. {{< /warning >}}

Also, you can add multiple pictures inside strips/, Silicate will look for everything that is a PNG, JPG or WEBP. On the website, they'll be ordered top to bottom by name, so you can make a Webtoon-style long comic strip from many smaller strips.

Page ordering

Page ordering is important, and can get tricky.

Imagine you have a naming convention for your pages like so: P1, P2, ..., P10, P11, ...

If you order them by name, then you have a trouble, because they'll get ordered like so:

  1. P1
  2. P10
  3. P11
  4. P2
  5. ...

It gets even worse if your pages have an actual name and no naming convention.

Wait! Why not use a creation or publication date?

We could use a publication date, but imagine you want to add a new page between two others. We now have another problem because you either can't or have to lie about the date to make it work.

That's why Silicate relies only on ...

Weight

The way Silicate handles ordering is by using the weight of the page.

You can see it like this: pages with a small weight floats up to the top and are first, pages with a big weight sink to the bottom and are last.

Weight schema

You can set the weight with the line weight = ... in the front matter. It has to be a positive whole number, things like 4.7 and -1 won't work.

Best practice

What you should probably do is this:

  • Page 1 gets a weight of 10
  • Page 2 gets a weight of 20
  • ...
  • Page 50 gets a weight of 500

Why? Because starting at 10 then incrementing the weight by 10 each time lets you insert up to nine pages before or after any page, should the need arise.

Won't I run out of values? My webcomic is very long.

Even if you have a lot of pages -- say 4000 -- you would use a weight of 40 000, which is way below the maximum (which is at least 2 147 483 647).

Page creation date

If you want, you can set a creation date for the page. It will be displayed on the website under the page title.

You can add a date='...' field in the front matter. The date format can be multiple things.

Let's say the date of the page we just created was 9H35 the 2025 / May / 31, then the value to add is :

date = '2025-05-31T09:35:00'

(If we care only about the day, then we can add: date = '2025-05-31')

Now, the page should be displayed with a creation date under its title!:

{{< warning >}} Screenshot will be added soon. {{< /warning >}}

Recap

Now you have most of what you need to have a simple webcomic!

You can just keep adding new pages!

Here's what to remember:

  • Website configuraiton is in hugo.toml.
  • Comic pages go inside content/comic/.
  • Comic pages are folders with an index.md file.
  • Comic page pictures go into a strips/ sub-folder.
  • index.md has a front matter to set its title, ordering and creation date.
  • Ordering is done through weights. Light/Small = first, heavy/big = last.