Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Publikator

The rusty metal heart of the Basspistol release machine.

Given a folder of tracks (supports mp3, ogg, flac, and many more), it will read the track metadata and re-organise them into a Jekyll-friendly layout. Here's the example output for a single album foo with two tracks bar and baz:

_albums/
  foo.md

_data/
  albums.yml

_tracks/
  foo/
    1-bar.md
    2-baz.md

assets/
  foo/
    1-bar.mp3
    2-baz.mp3

All Markdown files will encode the metadata in the Front Matter.

Installation

  1. Make sure Node.js is installed and up-to-date:

    brew install node
    
  2. Install Publikator globally via npm:

    npm install -g https://github.com/aengl/publikator
    
  3. Repeat the previous step to update to the latest version.

Usage

To get help, run:

publikator -h

To organise tracks and generate release information:

publikator organise <pathToMySongs> <outputPath>

Use the --delete flag to start with a clean output directory.

Jekyll Configuration

To take advantage of the collections, add the following to your _config.yml:

collections:
  albums:
    output: true
    permalink: /albums/:name
  tracks:
    output: true

Albums

To list all albums, create a file named albums.md in your Jekyll root with the following contents:

---
layout: default
---

<ul>
  {% for album in site.albums %}
  <li>
    <a href="/{{ album.slug }}">
      {{ album.name }}
    </a>
  </li>
  {% endfor %}
</ul>

Each individual album will be available at the url /albums/<album_slug>. To create a detail page for an album, create a new layout _layouts/album.html:

<h1>{{ page.album }}</h1>
<img src="{{ page.cover }}" />
<ul>
  {% for track in page.tracks %}
  <li>
    <a href="/{{ page.slug }}/{{ track.slug }}">
      {{ track.common.title }}
    </a>
  </li>
  {% endfor %}
</ul>

Tracks

Each individual track will be available at the url /<album_slug>/<track_slug>. To create a detail page for a track, create a new layout _layouts/track.html:

<h1>{{ page.common.title }}</h1>
<img src="{{ page.cover }}" />

About

The rusty metal heart of the Basspistol release machine. 🤖🧡⚡️

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages