> For the complete documentation index, see [llms.txt](https://comic-git.gitbook.io/documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://comic-git.gitbook.io/documentation/basic-editing/adding-comic-pages.md).

# Adding Comic Pages

Uploading comic pages to your website is as simple as copying the comic image file to a folder and editing a text file!

<figure><img src="https://raw.githubusercontent.com/ryanvilbrandt/comic_git/docs/docs/img/uploading_your_comic/your_content_dir.png" alt=""><figcaption></figcaption></figure>

Open the `comics` directory. When you created your own comic\_git repository in [Getting Started](/documentation/getting-started/getting-started.md), you created a copy of the original repository. This includes an example comic page to help you get started.

<figure><img src="https://2237275703-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmiTVVg3fJxJoQNT4AA65%2Fuploads%2FlnvreDitDKubfjTDSa1P%2Fimage.png?alt=media&amp;token=7891b809-c583-4f7d-a08c-f725a55b9cde" alt=""><figcaption></figcaption></figure>

You can rename this page's folder to whatever you want, but be aware that it will show up in the URL for that page. E.g. **https\://\[username].github.io/\[repo name]/comic/Page 1/**

Open the new directory you've created, and you should see a few files: `English.txt`, `info.ini`, `post.txt`, and an image file. These files are the traditional page format and remain fully supported. You can optionally replace them with one `info.toml` file as described in [TOML Configuration](/documentation/advanced-editing/toml-configuration.md#comic-pages).

<figure><img src="https://2237275703-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmiTVVg3fJxJoQNT4AA65%2Fuploads%2FGIdgfj3WdhxKz8YN3LVU%2Fimage.png?alt=media&amp;token=beb491a6-0ba0-47bb-a691-6631f9e41cd2" alt=""><figcaption></figcaption></figure>

## Comic File

First things first, delete the existing image file and copy whatever image file you want to use for your comic in its place. The name of your comic image file can be anything you want, even the same name as other comic image files in other folders. However, keep in mind that comic\_git will use the name of your comic image as the title for that page, unless you specify otherwise (see the **Page Info** section for more info).

For an `info.ini` page, comic\_git searches the page folder for image files and displays them vertically in alphabetical filename order. You can override that order with `Filenames` or with structured image sections. TOML pages list every image explicitly and do not use auto-discovery.

Files with any of the following extensions are considered image files: `jpg`, `jpeg`, `png`, `tif`, `tiff`, `gif`, `bmp`, `webp`, `webv`, `svg`, `eps`

You can override this behavior by adding a `Filenames` option to your `info.ini` file, as described in the next section.

{% hint style="info" %}
If you want to make a comic page with no images in it, you can! In that case, the comic image elements will be hidden, and only the blurb and navigation bars will be present. This is useful if you want to have a page that's more of a news post than a comic page.
{% endhint %}

## Page Info

Next, open `info.ini`. The file will look something like this:

```
# Uncomment the line below to give your comic page a specific title, otherwise comic_git will use the name of the image file
# Title = My First Comic Page!!
Post date = August 1, 2025
# You can delete any of the lines below if you don't want to use them.
Alt text = This is where your first comic page will go!
Storyline = Chapter 1
Characters = Alice, Bob, Eve
Tags = Tag 1, Tag 2, Tag 3
```

Edit the values in this file to match the comic you are uploading.

<details>

<summary>Title</summary>

* Optional
* Value: `string`: page title
* Example: `Page 1`

The title of this particular comic page. The page title shows up in the tab every time a page from your website is loaded along with the comic name (for example, **Page 1** - comic\_git Example). It also appears in the info box below the comic on the page itself.

If this option isn't present, comic\_git uses the filename (minus the extension) of the first image. A text-only page falls back to its page-folder name.

</details>

<details>

<summary>Post date</summary>

* Required
* Value: `string`: date and optional time when the comic is posted
* Example: `November 27, 2019`

The date and/or time your comic is posted. The simplest choice is to match the format defined in your `comic_info.ini`, as described in [Editing your Comic Info](/documentation/basic-editing/editing-your-comic-info.md#date-format). If you have not changed that option, just use the same format already in the file.

You can also use a standard date like `2026-09-04` or a timestamp like `2026-09-04T14:30:00`. A timestamp without a timezone uses the **Timezone** from your comic settings. To specify the timezone as part of the timestamp, add `Z` for UTC or an offset, such as `2026-09-04T14:30:00-07:00`.

{% hint style="warning" %}
If you're using the default date format, don't forget the comma after the day!
{% endhint %}

{% hint style="info" %}
**Scheduled Posts**

Any comic with a Post Date set in the future (according to the Timezone you have set in your comic\_info.ini file) will be "scheduled" for later, meaning it will not be published at that point in time. By default, comic\_git automatically reruns every morning at 8am UTC to publish any scheduled posts that might need to be created. See the [Scheduled Posts](/documentation/expert-editing/other-expert-tips.md#scheduled-posts) section for more information, including how to change when comic\_git rechecks the scheduled posts.
{% endhint %}

</details>

<details>

<summary>Filenames</summary>

* Optional
* Value: `string`: list of filenames for the comic images separated by commas
* Example: `Page 1a.png, Page 1b.png`

If this option is present in the info.ini file, comic\_git will not auto-collect images from the folder but will instead use the files defined here. This is useful if you want the images displayed not in alphabetical order, or you want to display only some of the images in this folder.

{% hint style="warning" %}
The filenames are case sensitive, so be sure to write them in exactly as the files are named!
{% endhint %}

</details>

### Structured image settings

An INI page can give each image its own title, alt text, and thumbnail. Add one section per image after the normal page fields:

```ini
Post date = September 4, 2026
Title = Chapter One
Alt text = Fallback alt text for this page

[Image opening]
Filename = page-1.png
Title = Opening panel
Alt text = Alice opens a blue door.
Thumbnail = page-1-thumbnail.jpg

[Image closing]
Filename = page-2.png
```

The text after `Image` is only a label to keep the sections distinct. Image sections appear in file order, and each one requires `Filename`. Do not combine `[Image <label>]` sections with page-level `Filename` or `Filenames`.

Per-image `Title`, `Alt text`, and `Thumbnail` are optional. Missing image alt text uses the page's `Alt text`; missing image titles use the Archive fallback configured in `comic_info.ini`; missing thumbnails use normal thumbnail resolution and generation.

<details>

<summary>Thumbnail</summary>

* Optional
* Value: `string`: filename relative to the page folder

Sets an explicit thumbnail for the whole page. In the default page-based Archive this is the thumbnail for that page. Explicit thumbnail files are never overwritten by automatic thumbnail generation.

</details>

<details>

<summary>Alt text</summary>

* Optional
* Value: `string`: alt text
* Example: `Tamberlane, can you sign "ongoing trauma"?`

The default alt text for images on this page. This is used by accessibility tools such as screen readers and may also appear in social-media preview metadata. A structured image can override it with its own `Alt text`.

</details>

<details>

<summary>Storyline</summary>

* Optional
* Value: `string`: storyline to attach this page to
* Example: `Chapter 1`

The name of the current chapter, book, section, or whatever else you use to separate out different parts of your webcomic. This is used when building the Archive and Infinite Scroll pages. If it is blank, the page appears under `Uncategorized` by default; **Show Uncategorized comics** can hide that group.

</details>

<details>

<summary>Characters</summary>

* Optional
* Value: `string`: list of comic characters separated by commas
* Example: `Alice, Bob, Eve`

A comma-separated list of characters on this page. If the `tagged` page is configured, the default comic template links each name to its generated listing. Otherwise the names are shown as plain text.

</details>

<details>

<summary>Tags</summary>

* Optional
* Value: `string`: list of tags separated by commas
* Example: `Tag 1, Tag 2, Tag 3`

A comma-separated list of non-character tags. If the `tagged` page is configured, the default comic template links each tag to its generated listing. Otherwise tags are shown as plain text.

{% hint style="danger" %}
**Invalid Tag Names**

Due to the way comic\_git generates pages for tags and characters, there are some limitations on what characters you can use in your tags and character lists in the info.ini file. Please avoid using any of the following: `\ / : * ? " < > |`

You can however include unicode in your info.ini files. If you look around, you can find some good unicode options to take the place of those characters if you need them. For example, `？` is a thick version of the standard question mark which won't have the same issues as the standard question mark in a tag name.
{% endhint %}

</details>

When you're done, save and close `info.ini`. If you use `info.toml`, save the equivalent page data there instead; comic\_git will ignore `info.ini` and the page-local legacy text sources for that page.

## News Post

Open `post.txt` in a text editor like Notepad. The file will look something like this:

```
If you'd like some ideas on what you can do next with comic_git...

* Replace the image on this page with your own comic image by replacing the `Page 1.png` file at `your_content/comics/001/`
* Update this page's Post Date, Tags, or other details by updating the `info.ini` file at `your_content/comics/001/`
...
```

This is the file where you put any text that accompanies your comic upload, such as a news post update or a few snarky comments. This file supports both [Markdown](https://daringfireball.net/projects/markdown/syntax) and HTML formatting, including CSS or JavaScript.

{% hint style="info" %}
All paragraphs must have two line breaks (i.e. a blank line) between them. Single line breaks will be ignored and converted into spaces.
{% endhint %}

You can even embed images in this page, like so:

```
Sorry, guys, I'm sick so no comic today. Please enjoy a sad panda instead.

<img src="../../your_content/images/sad_panda.png">
```

## Transcript Files

comic\_git comes with an example of a "transcript file" in this folder: `English.txt`. You can safely delete this file if you don't want to use transcripts in your comic.

See the documentation for [Transcripts](https://comic-git.gitbook.io/documentation/advanced-editing/extra-features#transcripts) for more information.

***

And you're done! You've now created your first comic page! If you like, you can upload your changes now and see them on the web. Or if you prefer, you can first spend some time changing the colors, images, and other layout of your website.

Adding more pages in the future is as easy as copying the comic folder, renaming it, and following the same steps as above. If you wish to make changes to the comic after it's been posted, simply edit the image file in the folder. If you wish to edit the post or page info of any comic, just edit `info.ini` or `post.txt`. If you wish to delete a comic, just delete the whole folder.
