« get me outta code hell

hsmusic-docs - Unnamed repository; edit this file 'description' to name the repository.
about summary refs log tree commit diff
path: root/documents
diff options
context:
space:
mode:
Diffstat (limited to 'documents')
-rw-r--r--documents/album.md88
-rw-r--r--documents/art-tag.md12
-rw-r--r--documents/artist.md17
-rw-r--r--documents/common-fields.md76
-rw-r--r--documents/flash.md57
-rw-r--r--documents/group.md44
-rw-r--r--documents/homepage-layout.md64
-rw-r--r--documents/news.md12
-rw-r--r--documents/static-page.md13
-rw-r--r--documents/track.md93
-rw-r--r--documents/wiki-info.md24
11 files changed, 500 insertions, 0 deletions
diff --git a/documents/album.md b/documents/album.md
new file mode 100644
index 0000000..adf0e0c
--- /dev/null
+++ b/documents/album.md
@@ -0,0 +1,88 @@
+# Album Format
+
+Album documents are stored each in its own file, alongside all the tracks associated with that album, at `album/<directory>.md`. Albums are represented by the first document in an album file, with all the rest being track (or track section) documents.
+
+A typical album file will, in its entirety, look something like this:
+
+```yaml
+# /path/to/data...   /album/homestuck-vol-7.yaml
+Album: 'Homestuck Vol. 7: At the Price of Oblivion'
+Directory: homestuck-vol-7
+Date: May 31, 2011
+---
+Section: Main album
+---
+Track: Black Rose / Green Sun
+Artists:
+- Malcolm Brown
+# ...
+---
+Track: At The Price of Oblivion
+# ...
+---
+Section: Bonus tracks
+---
+Track: Maplehoof's Adventure
+Artist: Michael Guy Bowman
+# ...
+```
+
+## Album documents
+
+Referenced as `album:directory`; extra links: `[[album-commentary:directory]]`, `[[album-gallery:directory]]`.
+
+### Essential info fields
+
+* `Album`: album name
+* `Directory`: unique identifier among other albums
+  * This is used for the URL the album will be accessed at: https://hsmusic.wiki/album/DIRECTORY/
+  * Groups and other wiki objects reference an album by its directory: `album:DIRECTORY`.
+  * This is usually generated automatically from the album's name. [Learn more.](../guidelines/common-fields.md#directory-field)
+  * Just for albums, the directory should match the filename, e.g. *Homestuck Vol. 5* automatically gets the directory `homestuck-vol-5` and its data is saved in the file `album/homestuck-vol-5.yaml`. (The filename isn't actually processed for any data purposes, it's just easier to navigate if it matches the directory.)
+* `Date`: album release date
+* `Cover Art Date`: date cover art created/added, if different from album release date
+* `Date Added`: date album added to wiki
+* `Color`: theme color representing album
+* `URLs`: web URLs for album playback or purchase
+
+### Content fields
+
+* `Commentary`: album-wide commentary from anyone involved in making it
+  * Learn more
+* `Additional Files`: bonus files associated with the album, e.g. album booklet, sheet music, credits files
+
+### Configuration & layout
+
+* `Has Cover Art`: display album main cover art (default: true)
+* `Has Track Art`: display unique art for each track, instead of inheriting from the album cover (default: true)
+* `Has Track Numbers`: display track numbers in main track listing and sidebar (default: true)
+* `Listed on Homepage`: include this album in automatically generated listings on the main homepage (default: true)
+* `Listed in Galleries`: include this album in automatically generated group gallery pages (default: true)
+* `Default Track Cover Art Date`: date track art created/added, if different from album release date; provides default which may be overridden by a track's `Cover Art Date` field
+* `Cover Art File Extension`: corresponds to media file (`cover.jpg`, `cover.png`)
+* `Track Art File Extension`: corresponds to media files; provides default which may be overridden by a track's `Cover Art File Extension` field
+
+### Relational fields
+
+* `Artists`: compositional artists who were largely responsible for the entire album, usually used for solo albums
+* `Wallpaper Artists`: visual artists who created the album's wallpaper art; setting this enables displaying custom wallpaper art for the album
+	* `Wallpaper Style`: CSS property/values to apply to the wallpaper for light tweaks of the original asset
+	* `Wallpaper File Extension`: corresponds to media file (`bg.jpg`, `bg.png`)
+* `Banner Artists`: visual artists who created the album's banner art; setting this enables displaying a banner for the album
+	* `Banner Style`: CSS property/values to apply to the banner for light tweaks of the original asset
+	* `Banner File Extension`: corresponds to media file (`banner.jpg`, `banner.png`)
+	* `Banner Dimensions`: precise dimensions of banner image file e.g. `1100x158` (used to avoid layout shift when loading album page)
+* `Cover Artists`: visual artists who created the album's cover artwork
+* `Default Track Cover Artists`: visual artists who were largely responsible for the entire album's track artworks; may be overridden by a track's `Cover Artists` field
+* `Groups`: links album to group documents, which generally represent bands, online communities, specific projects, etc
+* `Art Tags`: art tags representing characters or features present in the album's cover artwork
+
+## Track section documents
+
+* `Group`: track section name
+* `Color`: color-codes track sections if specified
+* `Date Originally Released`: default applied to tracks in this section
+
+## Track documents
+
+See [Track Format](track.md).
diff --git a/documents/art-tag.md b/documents/art-tag.md
new file mode 100644
index 0000000..fbfaf7e
--- /dev/null
+++ b/documents/art-tag.md
@@ -0,0 +1,12 @@
+# Art Tag Format
+
+Art tag documents are stored all in one file, `tags.yaml`, one document (entry) per tag.
+
+## Art tag documents
+
+Referenced as `tag:directory`.
+
+* `Tag`: art tag name
+* `Directory`: unique identifier among other art tags
+* `Color`: theme color representing art tag
+* `Is CW`: specify to identify tag as a content warning
diff --git a/documents/artist.md b/documents/artist.md
new file mode 100644
index 0000000..38fa1ad
--- /dev/null
+++ b/documents/artist.md
@@ -0,0 +1,17 @@
+# Artist Format
+
+Artist documents are stored all in one file, `artists.yaml`, one document (entry) per artist.
+
+## Artist documents
+
+Referenced as `artist:directory`; extra links: `[[artist-gallery:directory]]`.
+
+* `Name`: artist name
+* `Directory`: unique identifier among other artists
+* `URLs`: web URLs where the artist can be visited
+* `Context Notes`: pertinent info about the artist
+
+* `Has Avatar`: enable displaying avatar (from `artist-avatars` in media directory)
+* `Avatar File Extension`: corresponds to media file
+
+* `Aliases`: list of earlier or non-primary names the artist has gone by
diff --git a/documents/common-fields.md b/documents/common-fields.md
new file mode 100644
index 0000000..658b786
--- /dev/null
+++ b/documents/common-fields.md
@@ -0,0 +1,76 @@
+# Common Fields
+
+## `Directory` field
+
+[*See also: Guidelines for the Directory field.*](../guidelines/common-fields#directory-field)
+
+When **declaring** a wiki object...
+
+* A directory is the unique identifier for a given wiki object, differentiating it from other objects of the same type.
+  * It's possible for two objects of *different* types to have the same directory, e.g. a group's eponymous album, or an art tag which incidentally has the same name and directory as an unrelated artist.
+
+* Directories are important to actual page generation: they tell what subdirectory a given wiki object's page will be served at / written to. (Hence the name!)
+  * For example, Land of Fans and Music 4's directory is `lofam4`, so anybody can access this album's wiki webpage at [https://hsmusic.wiki/album/<b>lofam4</b>/](https://hsmusic.wiki/album/lofam4/).
+
+* Directories can be manually specified, and inherit from a wiki object's name otherwise. Best practice is generally to write them in "kebab-case", which means words are all lowercase and joined together by dashes / "minus" signs (`-`).
+  * If a directory isn't specified manually, it follows this algorithm:
+    1. Replace the spaces (` `) in the object's name with dashes (`-`).
+    2. Replace any instances of "&" with "and".
+    3. Discard any characters that aren't alphanumeric (or dashes).
+    4. Replace consecutive dashes with just one dash (such as between strings of characters that were entirely removed).
+    5. Discard dashes at the start or end.
+    6. Make all remaining alphabet characters lowercase.
+  * There are two main circumstances when a directory should be written manually: when there are multiple similarly named objects which need unique directories to differentiate them, and when an object's name doesn't lend well to the English-centric "`getKebabCase`" algorithm.
+    * The way otherwise identical directories are differentiated will vary for each wiki (and often by further context). Some options include: differentiate tracks by shorthand album name, like `frost-vol6` vs `frost-medium`; differentiate albums by artist/band or year, like `homestuck-swagazaki`; differentiate artists by a longer unique username, like `kobacat` vs `kobacake`.
+    * `getKebabCase` doesn't even try to support languages outside English effectively. If a name includes accents or punctuation which have a particular "ascii-fied" variant that is appropriate, that should be specified by hand. Lots of examples in HSMusic's artist data, e.g. `magnus-palsson` (Magnus Pålsson), `pokemon` (Pokémon), `satoru-kosaki` (Satoru Kōsaki).
+
+When **referencing** a wiki object...
+
+* Directories are used to create links between wiki objects. Most references take effect in both directions, but are only declared in one direction.
+  * Example: A track page links to the track's artists, and those artists' pages each link back to the track; but those bidirectional references are only written in data files once, as the track lists its own artists, and each artist automatically computes which tracks include that artist in their artist lists.
+
+* Most references are listed with an *object reference type*, a colon (`:`), and the object's directory.
+  * Example: The album "Homestuck Vol. 6: Heir Transparent" has a manually written directory, `homestuck-vol-6`. YAML fields will reference this album as `'album:homestuck-vol-6'`. (Quotation marks are needed so it isn't treated as a YAML object, i.e. `{"album": "homestuck-vol-6"}`.)
+  * Example: The track "Let's All Rock the Heist" doesn't have a manual directory, so it inherits from its name. YAML fields will reference this track as `'track:lets-all-rock-the-heist'`.
+
+* When linking to an object from commentary and other static content, the same basic syntax is used, but with double square brackets (`[[hello world]]`) surrounding the reference. You can also use a pipe / vertical bar symbol (`|`) to show different link text than the object's actual name.
+  * Example: `[[album:homestuck-vol-6]]`, `[[track:lets-all-rock-the-heist]]`
+  * Example: `[[group:umspaf|UMSPAF]]` (shows "UMSPAF" instead of "Unofficial MSPA Fans")
+  * Some wiki objects are represented by multiple pages (one of each type, e.g. info, gallery). See object format pages for info; replace the object reference type with the special string, for exmaple: `[[group-gallery:fandom]]`. When using the plain object reference type, the default is generally the "info" page.
+
+* References may generally also be written as just the object's name. This is accepted as long as it's not ambiguous; if two objects (of the same type) share the same name, HSMusic will output an error letting you know to replace it with a `type:directory`-style reference.
+  * In commentary and other static content, this works for tracks only, e.g. `[[Creata (Canon Edit)]]`.
+
+## Static content
+
+* A variety of fields across wiki data objects represent longer blocks of text, which are called "static content" or "multiline content". YAML has a number of ways to represent multiline strings, but generally a pipe and dash (`|-`) followed by a line break and the content indented is the way to go.
+
+```yaml
+Lyrics: |-
+    Hello, world
+    Hello, world
+    Oh! hello, world
+```
+
+* Content tags can be used to insert links and (build-time) dynamic content. These usually use double square brackets, a "replacer tag", and a value. More complex syntax can be used for tags which take a variety of arguments.
+
+```
+This song is by [[artist:rick-astley]].
+Want to listen to [[track:stone-halation|my favorite track]]?
+
+[[string:artistPage.contributedDurationLine
+  * artist = [[artist:quasar-nebula]]
+  * duration = not even a moment]]
+```
+
+* Line breaks in static content generally represent paragraph breaks, with the exception of `Lyrics` fields, where a full empty line is used to split verses.
+
+* Static content also supports very basic (non-nesting) block styling.
+  * Put `> ` at the start of a series of lines to turn them into a blockquote.
+  * Put `* ` to turn them into items of an unordered list.
+
+## Commentary
+
+* Commentary is [static content](#static-content).
+
+* A given commentary field can contain multiple artists' commentary; each artist's commentary should have the header `<i>Artist Name:</i>`. This string is automatically matched and displayed on the artist's info page.
diff --git a/documents/flash.md b/documents/flash.md
new file mode 100644
index 0000000..96ac9a1
--- /dev/null
+++ b/documents/flash.md
@@ -0,0 +1,57 @@
+# Flash Format
+
+Flash documents are stored all in one file, `flashes.yaml`, one document (entry) per flash. They're grouped by flash act documents.
+
+The website section for flashes is called "Flashes & Games". Apart from this, these data objects are always called flashes.
+
+The flashes file will, in its entirety, look something like this:
+
+```yaml
+Act: Act 1 - The Note Desolation Plays
+Anchor: a1
+Color: '#7799ff'
+Jump: Side 1 (Acts 1-5)
+Jump Color: '#4ac925'
+---
+Flash: 'John: Examine games on CD rack.'
+Page: '31'
+Date: April 16, 2009
+Featured Tracks:
+- Problem Sleuth Theme
+# ...
+---
+Act: Act 6 Intermission 3 - Ballet of the Dancestors
+Anchor: a6i3
+Color: '#b536da'
+---
+Flash: '[S] ACT 6 INTERMISSION 3'
+Page: '5263'
+Date: August 31, 2012
+Contributors:
+- Killian Ng (art)
+- Xamag (art)
+# ...
+```
+
+## Flash documents
+
+Referenced as `flash:directory`.
+
+* `Flash`: flash name
+* `Directory`: unique identifier among other flashes (inherits from Page before Name)
+* `Page`: page number on https://homestuck.com
+* `URLs`: web URLs for flash playback (or game purchase)
+
+* `Date`: flash posting/release date
+* `Cover Art File Extension`: corresponds to media file
+
+* `Featured Tracks`: tracks that play (in full or part) as part of the flash
+* `Contributors`: artists who contributed directly to flash, e.g. art media, programming
+
+## Flash act documents
+
+* `Act`: act name
+* `Color`: theme color representing act
+* `Anchor`: unique identifier among other acts
+* `Jump`: title of quick link on Flashes & Games index
+* `Jump Color`: color of quick link on Flashes & Games index
diff --git a/documents/group.md b/documents/group.md
new file mode 100644
index 0000000..e65f9fe
--- /dev/null
+++ b/documents/group.md
@@ -0,0 +1,44 @@
+# Group Format
+
+Group documents are stored all in one file, `groups.yaml`, one document (entry) per group. They're further categorized by group category documents.
+
+The groups file will, in its entirety, look something like this:
+
+```yaml
+Category: HSMusic
+Color: '#0088ff'
+---
+Group: Official Discography
+Directory: official
+# ...
+---
+Group: Fandom
+# ...
+---
+Category: Fan-musician groups
+Color: '#ffec14'
+---
+Group: Homestuck Gaiden
+URLs:
+# ...
+---
+Group: Unofficial MSPA Fans
+URLs:
+# ...
+```
+
+## Group documents
+
+Referenced as `group:directory`; extra links: `[[group-gallery:directory]]`.
+
+* `Group`: group name
+* `Directory`: unique identifier among other groups
+* `Description`: any-length description of the group (use `<hr class="split">` for paragraphs beyond the brief summary)
+* `URLs`: web URLs where the group can be visited
+
+* `Featured Albums`: optional list of "featured" albums; if present, displayed in a carousel on group gallery page
+
+## Group category documents
+
+* `Category`: group category name
+* `Color`: color for category and all included groups
diff --git a/documents/homepage-layout.md b/documents/homepage-layout.md
new file mode 100644
index 0000000..c8ee45e
--- /dev/null
+++ b/documents/homepage-layout.md
@@ -0,0 +1,64 @@
+# Homepage Layout Format
+
+The homepage layout file has a header document describing details about the overall homepage structure, then a document for each "row" in the main content area.
+
+Homepage layout documents affect only the homepage. Refer to [Wiki Info Format](wiki-info.md) for options that customize the appearance or behavior of an entire wiki.
+
+The homepage layout file will, in its entirety, look something like this:
+
+```yaml
+Sidebar Content: ...
+Navbar Links: ...
+---
+Row: Official Discography
+Type: albums
+Display Style: carousel
+# ...
+---
+Row: New Additions
+Type: albums
+Display Style: grid
+# ...
+```
+
+## Homepage layout - header document
+
+* `Sidebar Content`: multiparagraph text/content to be show in homepage sidebar box
+  * This supports content links, image embeds, etc just like any other multiline content area.
+  * The special text `[[news]]` will be replaced with a small section for the latest news entries.
+
+* `Navbar Links`: links to show in homepage navigation bar
+  * These must all be inline links without any additional text (the title of the link can be customized, though).
+  * Examples: `[[static:discord]]`, `[[listing-index:-|Listings]]`
+
+## Homepage layout - row documents
+
+All row documents accept the following options:
+
+* `Row`: title to display above row contents
+* `Color`: custom color for links in content
+
+* `Type`: specify basic kind of content being displayed & access additional related fields
+  * There's currently only one supported row type, `albums`. More will probably be added in the future.
+
+### `Type: albums` row documents
+
+* `Display Style`: `grid` (default) or `carousel`
+  * `grid` displays albums with the same basic layout as gallery pages.
+    * The grid layout on the homepage is currently hard-coded in CSS. Sorry!
+    * 2 rows of 3 larger grid items, then any number of rows of 4 smaller grid items.
+  * `carousel` shows a slowly wrap-scrolling, shorter but wider grid of albums.
+    * Carousel reels have some niche sizing particulars (see `carouselLayoutMap`), but basically fit 4 to 18 items and display them across 1 to 3 rows (preferring 2) and 4 to 6 columns (avoiding blank space).
+    * The items in a carousel scroll automatically but all of them are always visible at once. The left edge wraps precisely "around the back" to the right edge.
+
+* `Group`: group to pull most recent albums from if paired with `Count`; special values: `new-releases`, `new-additions`
+  * Special value `new-releases`: pull the latest albums chronologically released (by `Date`), regardless of when they were added to the wiki
+  * Special value `new-additions`: pull the albums most recently added to the wiki (by `Date Added to Wiki`), regardless of when they were chronologically released
+* `Count`: number of albums to pull (if paired with `Group`)
+
+* `Albums`: manual list of albums to display
+  * If both (dynamic) `Group`/`Count` and (manual) `Albums` are specified, the (manual) `Albums` will show up at the end of the list. They don't count towards `Count`, i.e. if you want 12 albums in total and two of them are manually specified, set `Count` to 10.
+
+* `Actions`: list of quick links to display at end of grid or below carousel
+  * Like `Navbar Links` in the header document, these must all be inline links.
+  * Example: `[[group-gallery:official|Explore Official!]]`
diff --git a/documents/news.md b/documents/news.md
new file mode 100644
index 0000000..b019572
--- /dev/null
+++ b/documents/news.md
@@ -0,0 +1,12 @@
+# News Format
+
+News documents are stored all in one file, `news.yaml`, one document (entry) per news entry.
+
+## News entry documents
+
+Linked as `[[news-entry:directory]]`.
+
+* `Name`: news entry name
+* `Directory`: unique identifier among other news entries
+* `Date`: date of news entry posting
+* `Content`: news entry body (use `<hr class="split">` for "read more" link)
diff --git a/documents/static-page.md b/documents/static-page.md
new file mode 100644
index 0000000..e47a0c5
--- /dev/null
+++ b/documents/static-page.md
@@ -0,0 +1,13 @@
+# Static Page Format
+
+Static page documents are stored each in its own file, at `static/<directory>.md`.
+
+## Static page documents
+
+Linked as `[[static:directory]]`.
+
+* `Name`: static page name
+* `Short Name`: for use in e.g. homepage navigation bar
+* `Directory`: unique identifier among other static pages
+* `Style`: extra CSS pertinent to this page's content
+* `Content`: full content of static page
diff --git a/documents/track.md b/documents/track.md
new file mode 100644
index 0000000..f4af6a0
--- /dev/null
+++ b/documents/track.md
@@ -0,0 +1,93 @@
+# Track Format
+
+Track documents are stored in album files; after the album header document, use `Track: (Track Name)` to start a track document.
+
+> Certain fields inherit from the album the track is part of. **Save time by using the corresponding album field, if most of the tracks in an album share the same value** (differing from wiki default):
+>
+> * track's `Artists` inherits from album's `Artists`
+> * track's `Cover Artists` inherits from album's `Default Track Cover Artists`
+> * track's `Cover Art Date` inherits from album's `Default Track Cover Art Date`, default: album release date
+> * track's `Cover Art File Extension` inherits from album's `Track Art File Extension`, default: `jpg`
+> * track's `Has Cover Art` inherits from album's `Has Track Art`, default: `true`
+
+## Track objects
+
+Referenced as `track:directory`.
+
+* `Track`: track name
+  * See [Album & Track Guidelines](../guidelines/albums-and-tracks.md#name-field).
+
+* `Directory`: unique identifier among other tracks
+  * This is used for the URL the track will be accessed at: https://hsmusic.wiki/track/DIRECTORY/
+  * Tracks and other wiki objects reference a track by its directory: `'track:DIRECTORY'`.
+  * If this isn't provided, it will automatically be generated from the title similarly to how Bandcamp works. It's tuned for English titles, so most other languages are best off specifying the directory manually.
+  * Guideline: Use all lowercase, avoid non-ASCII characters, and reflect how a human reads the title: "Riches to Ruins Movements I & II", `riches-to-ruins-movements-i-and-ii`. Exercise some leeway for troll typing quirks: "We Are +og3th3r", `we-are-tog3th3r`.
+  * Guideline: Directories are always unique for each of a given type of document. If two tracks would have the same directory, distinguish by album or else artist: `disc-1-lofam4`, `i-dont-want-to-miss-a-thing-aerosmith`.
+  * Note: We don't currently have set guidelines for Japanese and other non-Latin scripts. (Compare: 暗闇の中の光, `light-in-the-darkness`, and がんばってDAVIDさん, `vaporwave-2016-track11`.)
+
+* `Duration`: track listening duration
+  * **Examples:**
+    * `0:57` (57 seconds)
+    * `4:13` (4 minutes, 13 seconds)
+    * `3:05:20` (3 hours, 5 minutes, 20 seconds)
+  * If this isn't provided, track listings will display as `(_:__)`, and the track will be treated as zero seconds long (no duration).
+  * Guideline: If a track doesn't have a clear-cut duration (e.g, dynamic loops ripped from old console games), it's probably best to leave it as unset.
+
+* `Date First Released`: date of original release for tracks that were made available prior to album release (and other special cases)
+  * Guideline: This is pretty much exclusively for organization purpose on artist pages, where it doesn't make sense to chronologically position a track at one time when it was first released years earlier. At this point, it's mostly defunct, since we have the "Originally Released As" feature for cataloguing specific releases (which displays more cleanly in the artist chronology, too). However, it may still be used in certain cases where there isn't another album release that has the relevant date.
+    * For example, compilation album [The Funk McLovin Homestuck Experience](https://hsmusic.wiki/album/the-funk-mclovin-homestuck-experience/) uses `Original Date` for each track's earlier release on YouTube.
+    * The 2019 re-release of [One Year Older](https://hsmusic.wiki/album/one-year-older/) includes a bonus track, [it's good to see you again](https://hsmusic.wiki/track/its-good-to-see-you-again/). Rather than create a whole new album with basically the same structure, an additional group ("2019 release") was added with the single new track, which is `Original Date`'d as a *later* date than the rest of the album, placing it correctly in Erik Scheele's track chronology.
+    * All this is subject to change according to whatever form the upcoming "multiple releases" feature takes.
+
+* `Cover Art Date`: date cover art created/added, if different from track/album release date
+  * If left unspecified, inherits from the track's *manually specified* `Date First Released`; or the album's `Default Track Cover Art Date` field; or the album's original date.
+  * This is displayed on track info pages only when different from the track's own release date.
+  * Guideline: This is mostly used for digital track art anthologies, where fans come together to add original artworks to an album released without art.
+  * Subject to change with upcoming "multiple artworks" feature.
+
+* `Cover Art File Extension`: corresponds to media file
+  * Don't include the "." separator: `Cover Art File Extension: png`, not `.png`.
+  * If left unspecified, inherits from the album's `Track Art File Extension` field (*not* the album's `Cover Art File Extension`), or `jpg` by default.
+
+* `Has Cover Art`: disable to inherit from album cover art, or enable for one track with unique art amongst an album mostly without
+  * If left unspecified, inherits from the album's `Has Track Art` field, which is true by default.
+
+* `Lyrics`: vocal lyrics
+  * Guideline: Include the whole lyrics verbosely, instead of shorthands like "[2x Chorus]".
+  * Guideline: Insofar as vocal lines can be discerned from instruments, try to transcribe everything, including non-"music" lines, quiet vocals, optionally echo effects, etc
+  * Guideline: Just ask Niklink for decision making on any lyrics, he's to credit for pretty much all lyrics present on the site ATM lol
+
+* `Commentary`: commentary from track artists and others related
+  * See (TODO) Commentary Format
+
+* `Additional Files`: bonus files associated with the track, currently unused
+  * See (TODO) Additional Files Format
+
+* `Originally Released As`: links track to its earliest release
+  * Generally, this should be used instead of `Date Originally Released`, not alongside.
+  * Tracks with this field are displayed on the wiki as "re-releases", dimmed out a little in chronological listings (such as the list of tracks that an artist composed).
+  * Subject to change with upcoming "multiple releases" feature.
+
+* `Referenced Tracks`: links track to musical references, usually by leitmotif
+  * Guideline: List references by the order they are first present in the track; don't list an identical reference twice.
+  * Often these are listed on Bandcamp pages already, and can be sourced from there, especially if you aren't familiar with the musical material being referenced.
+
+* `Sampled Tracks`: links track to direct audio samples, often (but not exclusively) vocal clips
+  * This feature is mostly unused right now.
+
+* `Artists`: links track to its compositional artists
+  * May include parenthical descriptions, e.g. `'L. L. Zamenhof (lyrics)'`.
+  * Guideline: The line between "artists" and "contributors" is grey, and internally, it's an arbitrary distinction. "Artists" generally refers to people who played a major role in composing the track, while "contributors" tends to center on performance. See [`track:harlequin-rock-version`](https://hsmusic.wiki/track/harlequin-rock-version/) for an example.
+
+* `Contributors`: links track to other contributors, e.g. vocalists, performers
+  * May include parenthical descriptions, e.g. `'Willow Ascenzo (orchestra, choir)'`.
+  * See `Artists` for guidelines.
+
+* `Cover Artists`: links track to visual artists who created its artwork
+  * May include parenthical descriptions, e.g. `'Kait Linney (lines)'`.
+  * Visual and musical artists are the same document type, and some tracks actually have a shared composer and cover artist.
+  * Format subject to change with upcoming "multiple artworks" feature.
+
+* `Art Tags`: links track to art tags representing characters or features present in its artwork
+  * Guideline: On HSMusic, we have two general categories of tags - characters and settings - and many tracks have both. Don't be afraid to create new tags for characters present in fanventures, etc (though we currently only tag *settings* from Homestuck proper).
+  * Format subject to change with upcoming "multiple artworks" feature.
diff --git a/documents/wiki-info.md b/documents/wiki-info.md
new file mode 100644
index 0000000..1ce39b2
--- /dev/null
+++ b/documents/wiki-info.md
@@ -0,0 +1,24 @@
+# Wiki Info Format
+
+The wiki info document covers options that customize the appearance or behavior of an entire wiki. It is one document (entry) stored in one file, `wiki-info.yaml`.
+
+## Wiki info document
+
+### Essential info fields
+
+* `Name`: full name of the wiki
+* `Short Name`: shorter wiki name (for use in page titles, navbar, etc)
+* `Color`: default theme color to apply across the wiki
+* `Description`: short description for use in web search results
+* `Footer Content`: text and links to include in footer on most wiki pages
+* `Default Language`: main language for wiki content; content pages for other languages are written as subdirectories
+* `Canonical Base`: base URL where site is published (used for search engine optimization)
+
+### Features
+
+* `Divide Track Lists By Groups`: list of groups for which referenced track lists should be divided, e.g. Official Discography, Fandom, Beyond
+* `Enable Flashes & Games`: generate pages related to flash documents
+* `Enable Listings`: generate listing pages, e.g. tracks sorted by name, artists sorted by contributions
+* `Enable News`: generate news entry pages and index
+* `Enable Art Tag UI`: generate content and pages related to art tags (content warning tags are still usable if disabled)
+* `Enable Group UI`: generate UI for navigating between groups