1
0
mirror of https://github.com/laurent22/joplin.git synced 2025-07-16 00:14:34 +02:00

Desktop: Add support for media players (video, audio and PDF)

This commit is contained in:
Laurent Cozic
2020-12-09 21:30:51 +00:00
parent a3f8b9027c
commit 13dbeb4b36
14 changed files with 171 additions and 21 deletions

View File

@ -0,0 +1,41 @@
import { Link } from '../MdToHtml';
import { toForwardSlashes } from '../pathUtils';
const Entities = require('html-entities').AllHtmlEntities;
const htmlentities = new Entities().encode;
export interface Options {
audioPlayerEnabled: boolean;
videoPlayerEnabled: boolean;
pdfViewerEnabled: boolean;
}
export default function(link: Link, options: Options) {
const resource = link.resource;
if (!link.resourceReady || !resource || !resource.mime) return '';
const escapedResourcePath = htmlentities(`file://${toForwardSlashes(link.resourceFullPath)}`);
const escapedMime = htmlentities(resource.mime);
if (options.videoPlayerEnabled && resource.mime.indexOf('video/') === 0) {
return `
<video class="media-player media-video" controls>
<source src="${escapedResourcePath}" type="${escapedMime}">
</video>
`;
}
if (options.audioPlayerEnabled && resource.mime.indexOf('audio/') === 0) {
return `
<audio class="media-player media-audio" controls>
<source src="${escapedResourcePath}" type="${escapedMime}">
</audio>
`;
}
if (options.pdfViewerEnabled && resource.mime === 'application/pdf') {
return `<object data="${escapedResourcePath}" class="media-player media-pdf" type="${escapedMime}"></object>`;
}
return '';
}