mirror of https://github.com/laurent22/joplin.git
Desktop: Improved resource hover title (#1965)
* Improved resource hover title * Add mimetype to resource links * Escape mime type for resource linkspull/1967/head
parent
add9dda759
commit
f2c82b05d9
|
@ -9,17 +9,23 @@ function installRule(markdownIt, mdOptions, ruleOptions) {
|
||||||
let href = utils.getAttr(token.attrs, 'href');
|
let href = utils.getAttr(token.attrs, 'href');
|
||||||
const resourceHrefInfo = urlUtils.parseResourceUrl(href);
|
const resourceHrefInfo = urlUtils.parseResourceUrl(href);
|
||||||
const isResourceUrl = !!resourceHrefInfo;
|
const isResourceUrl = !!resourceHrefInfo;
|
||||||
const title = isResourceUrl ? utils.getAttr(token.attrs, 'title') : href;
|
let title = utils.getAttr(token.attrs, 'title', isResourceUrl ? '' : href);
|
||||||
|
|
||||||
let resourceIdAttr = '';
|
let resourceIdAttr = '';
|
||||||
let icon = '';
|
let icon = '';
|
||||||
let hrefAttr = '#';
|
let hrefAttr = '#';
|
||||||
|
let mime = '';
|
||||||
if (isResourceUrl) {
|
if (isResourceUrl) {
|
||||||
const resourceId = resourceHrefInfo.itemId;
|
const resourceId = resourceHrefInfo.itemId;
|
||||||
|
|
||||||
const result = ruleOptions.resources[resourceId];
|
const result = ruleOptions.resources[resourceId];
|
||||||
const resourceStatus = utils.resourceStatus(result);
|
const resourceStatus = utils.resourceStatus(result);
|
||||||
|
|
||||||
|
if (result && result.item) {
|
||||||
|
title = utils.getAttr(token.attrs, 'title', result.item.title);
|
||||||
|
mime = result.item.mime;
|
||||||
|
}
|
||||||
|
|
||||||
if (result && resourceStatus !== 'ready') {
|
if (result && resourceStatus !== 'ready') {
|
||||||
const icon = utils.resourceStatusFile(resourceStatus);
|
const icon = utils.resourceStatusFile(resourceStatus);
|
||||||
return `<a class="not-loaded-resource resource-status-${resourceStatus}" data-resource-id="${resourceId}">` + `<img src="data:image/svg+xml;utf8,${htmlentities(icon)}"/>`;
|
return `<a class="not-loaded-resource resource-status-${resourceStatus}" data-resource-id="${resourceId}">` + `<img src="data:image/svg+xml;utf8,${htmlentities(icon)}"/>`;
|
||||||
|
@ -37,7 +43,7 @@ function installRule(markdownIt, mdOptions, ruleOptions) {
|
||||||
|
|
||||||
let js = `${ruleOptions.postMessageSyntax}(${JSON.stringify(href)}); return false;`;
|
let js = `${ruleOptions.postMessageSyntax}(${JSON.stringify(href)}); return false;`;
|
||||||
if (hrefAttr.indexOf('#') === 0 && href.indexOf('#') === 0) js = ''; // If it's an internal anchor, don't add any JS since the webview is going to handle navigating to the right place
|
if (hrefAttr.indexOf('#') === 0 && href.indexOf('#') === 0) js = ''; // If it's an internal anchor, don't add any JS since the webview is going to handle navigating to the right place
|
||||||
return `<a data-from-md ${resourceIdAttr} title='${htmlentities(title)}' href='${hrefAttr}' onclick='${js}'>${icon}`;
|
return `<a data-from-md ${resourceIdAttr} title='${htmlentities(title)}' href='${hrefAttr}' onclick='${js}' type='${htmlentities(mime)}'>${icon}`;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue