npf2html
Version:
Converts Tumblr's Neue Post Format to plain HTML
78 lines • 2.65 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.renderAudio = renderAudio;
/**
* Converts {@link block} to HTML.
*
* @category Content
*/
function renderAudio(renderer, block) {
let result = `<figure class="${renderer.prefix}-block-audio">`;
if (block.media || !(block.embed_html || block.embed_url)) {
const hasText = block.title || block.artist || block.album;
const hasCaption = block.poster || block.attribution || hasText;
if (block.media) {
result +=
`<audio controls src="${renderer.escape(block.media[0].url)}">` +
'</audio>';
if (hasCaption)
result += '<figcaption>';
}
else {
result += `<a href="${renderer.escape(block.url)}">`;
}
if (block.poster) {
result += renderer.renderImageMedia(block.poster);
}
if (block.title) {
result +=
`<span class="${renderer.prefix}-block-audio-title">` +
renderer.escape(block.title) +
'</span>';
}
if (block.artist) {
if (block.title)
result += ' - ';
result +=
`<span class="${renderer.prefix}-block-audio-artist">` +
renderer.escape(block.artist) +
'</span>';
}
if (block.album) {
if (block.title || block.artist)
result += ' on ';
result +=
`<span class="${renderer.prefix}-block-audio-album">` +
renderer.escape(block.album) +
'</span>';
}
if (!block.media) {
if (!hasText)
result += renderer.escape(block.url);
result += '</a>';
}
if (block.attribution) {
if (!block.media)
result += '<figcaption>';
result += renderer.renderAttribution(block.attribution);
if (!block.media)
result += '</figcaption>';
}
if (block.media && hasCaption)
result += '</figcaption>';
}
else {
result += block.embed_html
? block.embed_html
: `<iframe src="${renderer.escape(block.embed_url)}"></iframe>`;
if (block.attribution) {
result +=
'<figcaption>' +
renderer.renderAttribution(block.attribution) +
'</figcaption>';
}
}
result += '</figure>';
return result;
}
//# sourceMappingURL=audio-block.js.map