Close Date Expand Location Next Open/Close Previous 0.5 of 5 stars 1 of 5 stars 1.5 of 5 stars 2 of 5 stars 2.5 of 5 stars 3 of 5 stars 3.5 of 5 stars 4 of 5 stars 4.5 of 5 stars 5 of 5 stars Repeat Slide Current slide

V7: Metadata structure and sitemap

Solidifying the information architecture

I’ve been revising a metadata structure for blog posts and a sitemap for a few months now, and since I haven’t felt the need to tweak either of them in awhile, they’re probably solid enough to document here.

Metadata structure

The blog post metadata has been developed to accommodate a wide variety of post types, to give me a lot of flexibility in how to present them, and to give users a lot of options for browsing them. When seen all together, it looks like a lot, but keep in mind that only two data points are mandatory for all posts (date and canonical_url), and most posts will likely only use a few more beyond that. The specific data points used will differ by post type. Here they all are together in YAML format, which is how they’ll appear in a post file’s front matter (with mandatory data points marked with *):

---
date_added:
date_started:
date: *
title:
description:
link:
topic:
source:
canonical_url: *
series_origin:
series_title:
series_description:
#------------
venue:
city:
state:
country:
#------------
creator:
work_year:
rating:
spoilers:
#------------
layout:
custom_css:
custom_js:
preview_img:
preview_img_alt:
#------------
media:
  - file:
    type:
    width:
    height:
    poster:
    alt:
    subtitles:
    caption:
---

And here are descriptions of the individual data points, broken down by category.

Core metadata

  • date_started: For posts about multi-day events, this marks the date the event began
  • date_added: For posts promoting future events, this marks the date the promotion is published. I currently use this for upcoming shows on Tinnitus Tracker, but I’m not sure yet if I’ll use it here.
  • date: The date and time the post was published. This and canonical_url are the only mandatory keys for every post.
  • title: The post’s title
  • description: A sentence-length description of the post
  • link: If the post is primarily a link to another site, this is the URL
  • topic: Essentially tags, one or more broad topics covered in the post
  • source: The name of the site where the post was first published. Defaults to RobWeychert.com if left blank.
  • canonical_url: The URL where the post was first published. Since no two posts will have the same canonical_url, this is effectively a unique ID for the post. This and date are the only mandatory keys for every post.
  • series_origin: If the post is part of a series, this is the canonical_url of the first post in the series, which will allow me to display all posts in the series. I first came up with this to keep tweet threads together.
  • series_title: If this post is the first in a series, the series can optionally be given a title
  • series_description: If this post is the first in a series, the series can optionally be given a description

Location metadata

For posts about events or travel.

  • venue
  • city
  • state
  • country: Defaults to United States if left blank and other location metadata is included

Performance/work metadata

If the post is about a performance or work of art, music, film, literature, etc.

  • creator: One or more people or groups (artist, band, director, author, etc.) responsible for the work
  • work_year: The year the work was made or released
  • rating: My opinion of the work, on a scale of one to five
  • spoilers: Set to true if the post reveals secrets about the work

Design metadata

If the post has any design customization.

  • layout: The name of the non-standard layout the post uses
  • custom_css: Set to true if the post has custom CSS extending the site’s existing CSS
  • custom_js: Same as above, but for JavaScript
  • preview_img: Set to true if there is a custom preview image for this post, for display via Open Graph, Twitter cards, etc
  • preview_img_alt: Alternative text for the above

Embedded media metadata

If the post’s primary content is image, video, or audio (e.g. a Flickr or Instagram post).

  • media: One or more embedded media files
    • file: The file name
    • type: image, video, or audio (I may omit this and detect by file name)
    • width: Image/video native pixel width
    • height: Image/video native pixel height
    • poster: Video poster image file
    • alt: Image alternative text
    • subtitles: Video subtitles file name (.vtt)
    • caption: Image/video/audio figure caption

Sitemap

In addition to outlining the site’s overall structure, the sitemap is meant to concisely demonstrate how the metadata structure described above will allow users to browse the blog in many different ways. I think the sitemap is relatively straightforward on its own, but if not, it’ll make more sense in the future in conjunction with some wireframes that are still coming together. In the meantime:

A sitemap with four levels consisting of landing pages, archive pages, and content pages. The first level is Home. The second level is landing pages for About, Shop (external site), Art, Design, Blog, and Following. The third level has two categories. The first third-level section, “Filter/browse by metadata,” includes archive pages for Location, Creator, Topic, Source, Year/Month, and Media. The second third-level section, “Filter/browse by specialized collection,” includes archive pages for Music Library, Concert Diary, Film Diary, Art Diary, and Reading Diary. The sitemap’s fourth level is content pages for Art Category/Collection/Series, Design Project, and Blog Post.