Micropub clients let you publish a variety of post types, and Indiekit lets you decide how these different types are handled. You can do this by using a publication preset, configuring values manually, or a combination of both.
For example, to use the Jekyll preset but override the note
and photo
post types, you would use the following configuration:
import {JekyllPreset} from '@indiekit/preset-jekyll';
// Use a preset
const jekyll = new JekyllPreset();
indiekit.set('publication.preset', jekyll);
// Override preset post type
indiekit.set('publication.postTypes', [{
type: 'note',
name: 'Journal entry',
post: {
path: '_journal/{yyyy}-{MM}-{dd}-{slug}.md',
url: 'journal/{yyyy}/{MM}/{slug}'
},
}, {
type: 'photo',
name: 'Photograph',
post: {
path: '_photos/{yyyy}-{MM}-{dd}-{slug}.md',
url: 'photos/{yyyy}/{MM}/{slug}'
},
media: {
path: 'media/photos/{yyyy}/{filename}',
}
}]);
Each post type can take the following values:
-
type
: The IndieWeb post type. -
name
: The name you use for this post type on your own site. You needn’t specify this value, but some Micropub clients use it in their publishing interfaces. -
post.path
: Where posts should be saved in your repository. -
post.url
: Permalink (the URL path) for posts on your website. -
media.path
: Where media files should be saved in your repository. This applies only tophoto
,video
andaudio
post types. -
media.url
: Public accessible URL for media files. This can use the same template variables asmedia.path
. If no value is provided, defaults tomedia.path
.
Creating custom paths and URLs
Both path
and url
values can be customised using the following date tokens:
Token | Description |
---|---|
y |
Calendar year, eg 2020 |
yyyy |
Calendar year (zero-padded), eg 2020 |
M |
Month number, eg 9 |
MM |
Month number (zero-padded), eg 09 |
MMM |
Month name (abbreviated), eg Sep |
MMMM |
Month name (wide), eg September |
w |
Week number, eg 1 |
ww |
Week number (zero-padded), eg 01 |
D |
Day of the year, eg 1 |
DDD |
Day of the year (zero-padded), eg 001 |
D60 |
Day of the year (sexageismal), eg 57h |
d |
Day of the month, eg 1 |
dd |
Day of the month (zero-padded), eg 01 |
h |
Hour (12-hour-cycle), eg 1 |
hh |
Hour (12-hour-cycle, zero-padded), eg 01 |
H |
Hour (24-hour-cycle), eg 1 |
HH |
Hour (24-hour-cycle, zero-padded), eg 01 |
m |
Minute, eg 1 |
mm |
Minute (zero-padded), eg 01 |
s |
Second, eg 1 |
ss |
Second (zero-padded), eg 01 |
t |
UNIX epoch seconds, eg 512969520 |
T |
UNIX epoch milliseconds, eg 51296952000 |
The following template tokens are available for post paths and URLs:
Token | Description |
---|---|
slug |
Provided slug, slugified name or a 5 character string, eg ycf9o |
uuid |
A random UUID |
The following template tokens are available for media file paths and URLs:
Token | Description |
---|---|
basename |
5 character alpha-numeric string, eg w9gwi |
ext |
File extension of uploaded file, eg jpg |
filename |
basename plus ext , eg w9gwi.jpg |
originalname |
Original name of uploaded file, eg flower.jpg |
uuid |
A random UUID |