fix(route): yuque (#13001)

This commit is contained in:
Tony
2023-08-12 01:31:08 +08:00
committed by GitHub
parent 79eae1eb45
commit fe2b83cb5c
+16 -2
View File
@@ -1,10 +1,12 @@
const card2Html = (elem, link) => {
const name = elem.attr('name');
const data = elem.attr('value')?.split('data:')[1];
const value = JSON.parse(decodeURIComponent(data ?? '[]'));
const data = elem.attr('value')?.split('data:')[1]?.replace('undefined', '');
const value = JSON.parse(decodeURIComponent(data || '[]'));
let html = '';
switch (name) {
case 'board':
case 'emoji':
case 'flowchart2':
case 'image':
case 'mindmap':
case 'puml':
@@ -35,6 +37,18 @@ const card2Html = (elem, link) => {
case 'table':
html = value.html;
break;
case 'thirdparty':
case 'youku':
// YES, youku name with bilibli iframe
// https://www.yuque.com/api/docs/nn5lyk?book_id=297292&include_contributors=true
if (elem.attr('alias') === 'music163') {
html = `<iframe frameborder="no" border="0" marginwidth="0" marginheight="0" height=66 src="${value.src}"></iframe>`;
} else if (elem.attr('alias') === 'bilibili' || elem.attr('alias') === undefined) {
html = `<iframe src="${value.src}&high_quality=1&autoplay=0" width="650" height="477" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true"></iframe>`;
} else {
throw Error(`Unhandled thirdparty on ${link}: ${elem.attr('alias')}`);
}
break;
case 'video':
// fake video src
html = `<video src='${value.videoId}'></video>`;