Add RFC3986-compliant URL format encoding

Fixes https://github.com/hakimel/reveal.js/issues/3315
This commit is contained in:
Martino
2023-02-13 10:02:15 +01:00
parent b1a9842b2f
commit ea6b7197c7
6 changed files with 24 additions and 6 deletions

View File

@ -294,4 +294,20 @@ const fileExtensionToMimeMap = {
*/
export const getMimeTypeFromFile = ( filename='' ) => {
return fileExtensionToMimeMap[filename.split('.').pop()]
}
/**
* Encodes a string for RFC3986-compliant URL format.
* https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURI#encoding_for_rfc3986
*
* @param {string} url
*/
export const encodeRFC3986URI = ( url='' ) => {
return encodeURI(url)
.replace(/%5B/g, "[")
.replace(/%5D/g, "]")
.replace(
/[!'()*]/g,
(c) => `%${c.charCodeAt(0).toString(16).toUpperCase()}`
);
}