Webring

Do you remember webrings? It seemed like every Geocities page had one, back in the day. Do you want some of that nostalgia back? Well, good news, comic_git supports them!

To set up a webring, you'll be working with a JSON file. Don't worry if that sounds intimidating, JSON files are just text files with a specific format, like the INI files you've already been working with.

The first thing you'll need is to create a JSON file that's accessible on the public internet somewhere. This file will contain the information for all the sites on the webring, and each site using it will need to access it. See the JSON File section below for how to set that up.

Then, you'll need to add a [Webring] section to your comic_info.ini file, and add some config options to it. See the Config Options section below for more info on that.

After that, just build your website and you should see your webring showing up at the bottom of each page on your website!

Default layout with Home
"Show all members" with Home
Default layout without Home
"Show all members" without Home

JSON File

The JSON file will contain all the information needed for a site to build its own webring layout. Its structure is important, so make sure to follow the schema defined below.

Important Note: If someone else has already created this file and you're just trying to enable the webring on your own comic_git site, you can skip this section and go right to Config Options below.

version
  • Required

  • Value: number: 1

label
  • Optional

  • Value: string

  • Default: empty string

The name of the header above the webring on the user's site.

home
  • Optional

  • Value: dictionary

  • Default: none

If defined, a link to the webring homepage will be included in the webring layout. Must follow the schema of the Comic dictionary below.

members
  • Required

  • Value: list of dictionaries

A list of all the comics in the webring. Each item in the list must be a dictionary matching the Comic dictionary schema below. The order of the dictionaries in the list defines what comic is the "previous" and "next" links for a given comic.

The list wraps around, so if we take the Example Payload below, for Clara's Cliffside, the "Previous" comic would be Bertrand's Barn and the "Next" comic would be Albert's Atrium.

Comic dictionary

id
  • Required

  • Value: string

Any string uniquely identifying the given comic. It does not have to match the name of the comic. It will be used by a user when setting his Config Options, so that comic_git can identify what the "Previous" and "Next" comics will be.

This value is not required when defining the dictionary for the home entry.

name
  • Optional

  • Value: string

  • Default: empty string

The name of the comic as displayed on the website. May not be displayed if image is defined.

url
  • Required

  • Value: string : URL

The URL linking to the homepage of the given comic.

image
  • Optional:

  • Value: string : URL of an image file

  • Default: none

If defined, the given image will be displayed as a link to the given comic.

Example Payload

{
    "version": 1,
    "label": "Our Comics Webring!",
    "home": {
        "name": "Home",
        "url": "https://my.webring.com/",
        "image": "https://my.webring.com/icon.png"
    },
    "members": [
        {
            "id": "comic_a",
            "name": "Albert's Atrium",
            "url": "https://comic.albert.net/",
            "image": "https://comic.albert.net/icon.png"
        },
        {
            "id": "comic_b",
            "name": "Bertrand's Barn",
            "url": "https://bertrand.github.io/my_barn",
            "image": "https://bertrand.github.io/my_barn/your_content/images/webring.jpg"
        },
        {
            "id": "comic_c",
            "name": "Clara's Cliffside",
            "url": "https://clara-is-cool.neocities.org/",
            "image": "https://images.ctfassets.net/hrltx12pl8hq/7JnR6tVVwDyUM8Cbci3GtJ/bf74366cff2ba271471725d0b0ef418c/shutterstock_376532611-og.jpg"
        }
    ]
}

Config Options

Enable webring
  • Optional

  • Value: boolean: True or False

  • Default: False

If True, enables the webring feature. If False, all other options in this section are ignored.

Endpoint
  • Required if "Enable webring" is True

  • Value: string

The URL to the JSON file containing the webring data. See JSON File below.

This can be a URL to a file on another website (e.g. https://my.webring.com/webring.json) or to a file on your own site (e.g. /your_content/webring.json).

Webring ID
  • Required if "Enable webring" is True

  • Value: string

A unique ID for your comic, as defined in id field of the webring data returned by the Endpoint. This is needed to know where your comic is in the list of comics in the webring.

Show all members
  • Optional

  • Value: boolean: True or False

  • Default: False

If True, instead of the webring displaying a Previous and Next link, it will display all webring members at once in a list.

Exclude own comic from members
  • Optional

  • Value: boolean

  • Default: False

By default, the "Show all members" option will include your own comic in that list. If you set this option to True, your comic won't show up in the list of webring members.

Example

[Webring]
Enable webring = True
Endpoint = https://my.webring.com/webring.json
Webring ID = comic_b
Show all members = True
Exclude own comic from members = True

Last updated