diff --git a/src/App.vue b/src/App.vue index 9a9d89c89736e95a15882b445a94ee6bd2884d99..55fc84102e02f10b4e816a45331dca73225f68ff 100644 --- a/src/App.vue +++ b/src/App.vue @@ -443,6 +443,25 @@ export default { html: this.html }); }, + getVideoList(callback) { + const virtualDom = document.createElement("div"); + virtualDom.style.height = 0; + virtualDom.innerHTML = this.html; + document.body.appendChild(virtualDom); + const vEls = Array.from(virtualDom.getElementsByTagName("video")); + const list = vEls.map(item => { + item.preload = true; + return new Promise((res, rej) => { + item.oncanplay = function() { + res(item.duration); + }; + }); + }); + document.body.removeChild(virtualDom); + Promise.all(list).then(res => { + callback(res); + }); + }, queryUserList(keyWord) { const _this = this; this.$emit("queryUserList", { @@ -491,6 +510,9 @@ export default { item.linkType = linkEl.getAttribute("data-type"); linkEl.setAttribute("target", "_blank"); linkEl.setAttribute("href", url); + if (item.url.includes(".ipynb")) { + linkEl.className = "jupyterEl"; + } const title = getLinkTitle(linkEl, item); linkEl.innerHTML = renderLinkCard(title, item); }); diff --git a/src/assets/js/utils.js b/src/assets/js/utils.js index 21b35c349a644e6909cdef84bc6f916c7ebf6579..f08d50c7cdfb1244e596535dff068fe8e13c4998 100644 --- a/src/assets/js/utils.js +++ b/src/assets/js/utils.js @@ -401,7 +401,7 @@ export function renderLinkCard(title, item) { content = `${item.url}`; break; case "3": - content = `${item.url}`; + content = `${item.url}`; break; default: content = `