This commit is contained in:
Jeffrey Chen 2025-12-16 17:04:19 +08:00 committed by GitHub
commit 77a77ecbfe
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 29 additions and 7 deletions

View file

@ -8,7 +8,7 @@ import {Constants} from "../constants";
import * as path from "path";
/// #endif
import {getFrontend, isBrowser} from "../util/functions";
import {setStorageVal} from "../protyle/util/compatibility";
import {setStorageVal, writeText} from "../protyle/util/compatibility";
import {hasClosestByAttribute, hasClosestByClassName} from "../protyle/util/hasClosest";
import {Plugin} from "../plugin";
import {App} from "../index";
@ -230,6 +230,17 @@ export const bazaar = {
<div id="configBazaarReadme" class="config-bazaar__readme"></div>
</div>`;
},
_genFundingHTML(funding: string): string {
if (!funding) {
return "";
}
const isLink = funding.startsWith("http://") || funding.startsWith("https://");
if (isLink) {
return `<a target="_blank" href="${escapeAttr(funding)}" class="block__icon block__icon--show ariaLabel" aria-label="${window.siyuan.languages.sponsor} ${escapeAttr(funding)}"><svg class="ft__pink"><use xlink:href="#iconHeart"></use></svg></a>`;
} else {
return `<span data-type="copy-funding" data-funding="${escapeAttr(funding)}" class="block__icon block__icon--show ariaLabel" aria-label="${window.siyuan.languages.sponsor} ${escapeAttr(funding)}"><svg class="ft__pink"><use xlink:href="#iconHeart"></use></svg></span>`;
}
},
_genCardHTML(item: IBazaarItem, bazaarType: TBazaarType) {
let hide = false;
let themeMode = "";
@ -273,7 +284,7 @@ export const bazaar = {
${item.downloads}
</span>
<span class="fn__space"></span>
${item.preferredFunding ? `<a target="_blank" href="${item.preferredFunding}" class="block__icon block__icon--show ariaLabel" aria-label="${window.siyuan.languages.sponsor} ${item.preferredFunding}"><svg class="ft__pink"><use xlink:href="#iconHeart"></use></svg></a><span class="fn__space"></span>` : ""}
${item.preferredFunding ? `${bazaar._genFundingHTML(item.preferredFunding)}<span class="fn__space"></span>` : ""}
<div class="fn__flex-1"></div>
<span class="b3-tooltips b3-tooltips__nw block__icon block__icon--show${item.installed ? "" : " fn__none"}" data-type="uninstall" aria-label="${window.siyuan.languages.uninstall}">
<svg><use xlink:href="#iconTrashcan"></use></svg>
@ -310,7 +321,7 @@ export const bazaar = {
</div>
<div class="b3-card__actions b3-card__actions--right">
${item.incompatible ? `<span class="fn__space"></span><span class="fn__flex-center b3-tooltips b3-tooltips__nw b3-chip b3-chip--error b3-chip--small" aria-label="${window.siyuan.languages.incompatiblePluginTip}">${window.siyuan.languages.incompatible}</span>` : ""}
${item.preferredFunding ? `<a target="_blank" href="${item.preferredFunding}" class="block__icon block__icon--show ariaLabel" aria-label="${window.siyuan.languages.sponsor} ${item.preferredFunding}"><svg class="ft__pink"><use xlink:href="#iconHeart"></use></svg></a>` : ""}
${item.preferredFunding ? bazaar._genFundingHTML(item.preferredFunding) : ""}
<span class="b3-tooltips b3-tooltips__nw block__icon block__icon--show${isBrowser() ? " fn__none" : ""}" data-type="open" aria-label="${window.siyuan.languages.showInFolder}">
<svg><use xlink:href="#iconFolder"></use></svg>
</span>
@ -419,7 +430,7 @@ export const bazaar = {
</div>
<div class="b3-card__actions b3-card__actions--right">
${item.incompatible ? `<span class="fn__space"></span><span class="fn__flex-center b3-tooltips b3-tooltips__nw b3-chip b3-chip--error b3-chip--small" aria-label="${window.siyuan.languages.incompatiblePluginTip}">${window.siyuan.languages.incompatible}</span>` : ""}
${item.preferredFunding ? `<a target="_blank" href="${item.preferredFunding}" class="block__icon block__icon--show ariaLabel" aria-label="${window.siyuan.languages.sponsor} ${item.preferredFunding}"><svg class="ft__pink"><use xlink:href="#iconHeart"></use></svg></a>` : ""}
${item.preferredFunding ? bazaar._genFundingHTML(item.preferredFunding) : ""}
<span class="b3-tooltips b3-tooltips__nw block__icon block__icon--show${hasSetting ? "" : " fn__none"}" data-type="setting" aria-label="${window.siyuan.languages.config}">
<svg><use xlink:href="#iconSettings"></use></svg>
</span>
@ -508,8 +519,8 @@ export const bazaar = {
<div class="block__icons">
<span class="fn__flex-1"></span>
${data.preferredFunding ?
`<a target="_blank" href="${data.preferredFunding}" class="block__icon block__icon--show ariaLabel" aria-label="${window.siyuan.languages.sponsor} ${data.preferredFunding}"><svg class="ft__pink"><use xlink:href="#iconHeart"></use></svg></a>` :
`<span class="b3-tooltips b3-tooltips__ne block__icon block__icon--show ft__primary" aria-label="${window.siyuan.languages.author}"><svg><use xlink:href="#iconAccount"></use></svg></span>`
bazaar._genFundingHTML(data.preferredFunding) :
`<span class="b3-tooltips b3-tooltips__ne block__icon block__icon--show ft__primary" aria-label="${window.siyuan.languages.author}" style="cursor: default;"><svg><use xlink:href="#iconAccount"></use></svg></span>`
}
<span class="fn__space"></span>
<a href="${urls.join("/")}" target="_blank" title="Creator">${data.author}</a>
@ -618,6 +629,17 @@ export const bazaar = {
const type = target.getAttribute("data-type");
if (target.tagName === "A") {
break;
}
const copyFundingElement = hasClosestByAttribute(target, "data-type", "copy-funding");
if (copyFundingElement) {
const funding = copyFundingElement.getAttribute("data-funding");
if (funding) {
writeText(funding);
showMessage(window.siyuan.languages.copied);
}
event.preventDefault();
event.stopPropagation();
break;
} else if (type === "open" && dataObj) {
/// #if !BROWSER
const dirName = dataObj.bazaarType;

View file

@ -238,7 +238,7 @@ export const writeText = (text: string) => {
export const copyPlainText = async (text: string) => {
text = text.replace(new RegExp(Constants.ZWSP, "g"), ""); // `复制纯文本` 时移除所有零宽空格 https://github.com/siyuan-note/siyuan/issues/6674
await writeText(text);
writeText(text);
};
// 用户 iPhone 点击延迟/需要双击的处理