GithubHelp home page GithubHelp logo

terminalnetwork / publikator Goto Github PK

View Code? Open in Web Editor NEW
3.0 3.0 0.0 317 KB

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

License: The Unlicense

JavaScript 100.00%
basspistol jekyll metadata id3 id3-reader flac ogg mp3 wav ape

publikator's Introduction

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 }}" />

publikator's People

Contributors

aengl avatar dependabot[bot] avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.