resources
resources are a highly configurable aspect of webdog used for taggable things which generally follow a similar layout across entries. for instance, a blog or photo album.
for instructions on how to add a resource via the cli, see the commands page.
resource config
each resource added has its own configuration inside of the main site config file with the following properties:
source_path
the source path for where the resources of this type are located, relative to <site_path>/resources/
.
output_path_resources
the path prefix for a resource, i.e. “blog” for /blog/<post id>
or “i” for /i/<image id>
. can be shared with output_path_lists
for them to have the same prefix.
output_path_lists
the path prefix for other resource pages, like the overview or tags. i.e. “blog” for /blog/tags/<tag>
or “images” for /images/tags/<tag>
. can be shared with output_path_resources
for them to have the same prefix.
resource_template
the template to use for the main page of a resource item.
this template is provided the resource’s properties (defined below) as variables. this should change to be r.<property>
before the first crates.io release to avoid conflicts with page properties.
resource_list_template
the template to use for a list of resources.
this template is provided with the following properties:
previous
if this property exists, it can be used as ./{{previous}}
to get a link to the previous list page.
next
if this property exists, it can be used as ./{{next}}
to get a link to the next list page.
resources
a array of the resources to be rendered on this page. each resource in the array contains the resource properties as defined below.
tag_list_template
the template to use for a list of tags assigned to the resource.
this template is provided with the following properties:
title
the title of the tag list.
this property will be renamed before the crates.io release to fix its conflict with page titles.
links
array of the links available for this list, containing the following properties:
link
the link to actually use for the link.
title
the link’s title.
rss
the resource type’s rss info. if not present, no rss feed will be built.
consists of the following properties:
template
the template used to render the resource type’s rss feed’s html content.
this template is provided a single resource’s properties as its properties.
title
the title for the resource type’s rss feed.
description
the description for the resource type’s rss feed.
list_title
the title to use for a list of resources of this type.
tag_list_title
the title to use for a list of tags for this resource t ype.
resource_name_plural
the name of this resource type if it is plural.
resources_per_page
how many resources of this type to display per page when content is paginated.
timestamp_format
format to display timestamps as, as defined by version 2 of the rust time crate’s format description.
defining a resource
resources are made up of markdown files with yaml front matter. for instance:
--- title: resource title timestamp: 2024-11-13T00:55:46.888967374Z tags: [first tag, second tag] --- # hiiiiiii :3
the front matter metadata may contain the following properties:
title
the resource’s title, as displayed in the browser tab.
timestamp
the timestamp to use as the resource’s publishing time. probably shouldn’t be altered after publishing publicly, but it won’t break anything.
the timestamp follows the RFC 3339 format. use the webdog now
command to get a timestamp of the proper format easily.
tags
array of the resource’s tags. tags are used to group resources together and are at present required.
cdn_file
(optional)
special property which will take a relative url and add the cdn prefix as defined in the site config to it.
desc
(optional)
property for a resource’s short description.
draft
(optional)
whether the resource is a draft and should be excluded from normal builds. defaults to false.
other properties
resources may add extra properties which will get passed to the various resource templates later. simply add the property like it was any other property.
extra properties
in addition to the resource properties, resources may receive additional properties from webdog as follows:
readable_timestamp
the resource’s timestamp in the timestamp format provided in the resource type’s config.