Home

Awesome

aplayer-hugo-module

A simple hugo module to help you add Aplayer in your hugo site with shortcodes.
Metingjs is also supported.

Get Started

Init your project as a hugo module if not already.

hugo mod init <your_repo_url>

Add this module to site config. The following is an example of yaml, and the same is true for toml and json.

module:
  imports:
  - path: github.com/Runzelee/aplayer-hugo-module

Enable HTML Render

Set unsafe to true in site config to render the html code.

markup:
    goldmark:
        renderer:
            unsafe: true

Add shortcode in your post

{{ < aplayer name="<name>" url="<url>" cover="<cover>" [...] > }}

Loading multiple audios to a playlist is also allowed.

{{ < aplayer name="<name>,[name],[...]" url="<url>,[url],[...]" cover="<cover>,[cover],[...]" [...] > }}

Or use Metingjs to fetch music from server.

{{ < meting server="<server>" id="<id>" type="<type>" [...] > }}

See APlayer or Metingjs full option docs to use more properties.

Enjoy it!

Notice: Regardless of Metingjs or native Aplayer, all properties with capital letters should be replaced in shortcodes with lowercase and hyphenated. For example, lrcType should be replaced with lrc-type.

Advanced options

Call Aplayer official apis using inner shortcode

You can use Aplayer official apis to change properties, monitor player events, etc. to implememt advanced functions.

Aplayer instance is ready for you, you don't need to create a new one. Just use the object ap directly.

{{ < aplayer name="<name>" ... > }}
ap.on('pause', function () {
    console.log('player paused');
});
//ap....
{{ < /aplayer > }}

also works with Metingjs

{{ < meting server="<server>" ... > }}
// Your code here.
{{ < /meting > }}

Use custom CDN or self-hosted API

You can use a custom CDN or self-hosted API to improve loading speed in your region. Simply add external urls in the site config.

aplayer:
    cdn: xxx/aplayer.min.js    
    style_cdn: xxx/aplayer.min.css
    meting_cdn: xxx/Meing.min.js

LICENSE

WTFPL

This module is very simple. There are only two html files with go template syntax, so you can do whatever you want. :D