- const { effect,source,sub,typed_option } = theme.subtitle - let subContent = sub || new Array() script. window.typedJSFn = { init: (str) => { window.typed = new Typed('#subtitle', Object.assign({ strings: str, startDelay: 300, typeSpeed: 150, loop: true, backSpeed: 50, }, !{JSON.stringify(typed_option)})) }, run: (subtitleType) => { if (!{effect}) { if (typeof Typed === 'function') { subtitleType() } else { getScript('!{url_for(theme.asset.typed)}').then(subtitleType) } } else { subtitleType() } } } case source when 1 script. function subtitleType () { fetch('https://v1.hitokoto.cn') .then(response => response.json()) .then(data => { if (!{effect}) { const from = '出自 ' + data.from const sub = !{JSON.stringify(subContent)} sub.unshift(data.hitokoto, from) typedJSFn.init(sub) } else { document.getElementById('subtitle').textContent = data.hitokoto } }) } typedJSFn.run(subtitleType) when 2 script. function subtitleType () { getScript('https://yijuzhan.com/api/word.php?m=js').then(() => { const con = str[0] if (!{effect}) { const from = '出自 ' + str[1] const sub = !{JSON.stringify(subContent)} sub.unshift(con, from) typedJSFn.init(sub) } else { document.getElementById('subtitle').textContent = con } }) } typedJSFn.run(subtitleType) when 3 script. function subtitleType () { getScript('https://sdk.jinrishici.com/v2/browser/jinrishici.js').then(() => { jinrishici.load(result =>{ if (!{effect}) { const sub = !{JSON.stringify(subContent)} const content = result.data.content sub.unshift(content) typedJSFn.init(sub) } else { document.getElementById('subtitle').textContent = result.data.content } }) }) } typedJSFn.run(subtitleType) default - subContent = subContent.length ? subContent : new Array(config.subtitle) script. function subtitleType () { if (!{effect}) { typedJSFn.init(!{JSON.stringify(subContent)}) } else { document.getElementById("subtitle").textContent = !{JSON.stringify(subContent[0])} } } typedJSFn.run(subtitleType)