更新
This commit is contained in:
parent
e8ab5c4666
commit
e7d6d4785f
2
assets/css/joe.global.min.css
vendored
2
assets/css/joe.global.min.css
vendored
File diff suppressed because one or more lines are too long
@ -1791,7 +1791,6 @@
|
||||
}
|
||||
}
|
||||
&-player {
|
||||
width: 100%;
|
||||
height: 500px;
|
||||
}
|
||||
&-protected {
|
||||
|
@ -10,7 +10,7 @@ document.addEventListener('DOMContentLoaded', () => {
|
||||
this.render();
|
||||
}
|
||||
get template() {
|
||||
return `<object style="display: block;margin: 0 auto;" width="${this.options.width}" height="450px" data="//music.163.com/outchain/player?type=0&id=${this.options.id}&auto=${this.options.autoplay}&height=430"></object>`;
|
||||
return `<iframe allowfullscreen="true" style="display: block; margin: 0 auto; border: 0;" width="${this.options.width}" height="450px" src="//music.163.com/outchain/player?type=0&id=${this.options.id}&auto=${this.options.autoplay}&height=430"></iframe>`;
|
||||
}
|
||||
render() {
|
||||
if (this.options.id) this.innerHTML = this.template;
|
||||
@ -30,15 +30,15 @@ document.addEventListener('DOMContentLoaded', () => {
|
||||
this.render();
|
||||
}
|
||||
get template() {
|
||||
return `<object style="display: block;margin: 0 auto;" width="${this.options.width}" height="86px" data="//music.163.com/outchain/player?type=2&id=${this.options.id}&auto=${this.options.autoplay}&height=66"></object>`;
|
||||
return `<iframe allowfullscreen="true" style="display: block; margin: 0 auto; border: 0;" width="${this.options.width}" height="86px" src="//music.163.com/outchain/player?type=2&id=${this.options.id}&auto=${this.options.autoplay}&height=66"></iframe>`;
|
||||
}
|
||||
render() {
|
||||
if (this.options.id) this.innerHTML = this.template;
|
||||
else this.innerHTML = '网易云歌单ID未填写!';
|
||||
else this.innerHTML = '网易云歌曲ID未填写!';
|
||||
}
|
||||
}
|
||||
window.customElements.define('joe-music', JoeMusic);
|
||||
|
||||
|
||||
class JoeBilibili extends HTMLElement {
|
||||
constructor() {
|
||||
super();
|
||||
@ -48,7 +48,7 @@ document.addEventListener('DOMContentLoaded', () => {
|
||||
this.render();
|
||||
}
|
||||
get template() {
|
||||
return `<object class="joe_detail__article-player" data="//player.bilibili.com/player.html?bvid=${this.options.bvid}"></object>`;
|
||||
return `<iframe allowfullscreen="true" class="joe_detail__article-player" style="display: block; margin: 0 auto; border: 0;" width="100%" height="180px" src="//player.bilibili.com/player.html?bvid=${this.options.bvid}"></iframe>`;
|
||||
}
|
||||
render() {
|
||||
if (this.options.bvid) this.innerHTML = this.template;
|
||||
@ -57,11 +57,30 @@ document.addEventListener('DOMContentLoaded', () => {
|
||||
}
|
||||
window.customElements.define('joe-bilibili', JoeBilibili);
|
||||
|
||||
class JoeDplayer extends HTMLElement {
|
||||
constructor() {
|
||||
super();
|
||||
this.options = {
|
||||
src: this.getAttribute('src'),
|
||||
player: this.getAttribute('player')
|
||||
};
|
||||
this.render();
|
||||
}
|
||||
get template() {
|
||||
return `<iframe allowfullscreen="true" class="joe_detail__article-player" style="display: block; margin: 0 auto; border: 0;" width="100%" height="180px" src="${this.options.player + this.options.src}"></iframe>`;
|
||||
}
|
||||
render() {
|
||||
if (this.options.src) this.innerHTML = this.template;
|
||||
else this.innerHTML = '播放地址未填写!';
|
||||
}
|
||||
}
|
||||
window.customElements.define('joe-dplayer', JoeDplayer);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* 便条按钮 */
|
||||
class JoeAnote extends HTMLElement {
|
||||
constructor() {
|
||||
@ -111,27 +130,7 @@ document.addEventListener('DOMContentLoaded', () => {
|
||||
}
|
||||
}
|
||||
window.customElements.define('joe-abtn', JoeAbtn);
|
||||
/* Dplayer */
|
||||
class JoeDplayer extends HTMLElement {
|
||||
constructor() {
|
||||
super();
|
||||
this.options = {
|
||||
src: this.getAttribute('src'),
|
||||
player: this.getAttribute('player')
|
||||
};
|
||||
this.render();
|
||||
}
|
||||
get template() {
|
||||
return `
|
||||
<iframe class="joe_detail__article-player" allowfullscreen="true" src="${this.options.player + this.options.src}"></iframe>
|
||||
`;
|
||||
}
|
||||
render() {
|
||||
if (this.options.src) this.innerHTML = this.template;
|
||||
else this.innerHTML = '播放地址未填写!';
|
||||
}
|
||||
}
|
||||
window.customElements.define('joe-dplayer', JoeDplayer);
|
||||
|
||||
/* 居中标题 */
|
||||
class JoeMtitle extends HTMLElement {
|
||||
constructor() {
|
||||
|
2
assets/js/joe.short.min.js
vendored
2
assets/js/joe.short.min.js
vendored
File diff suppressed because one or more lines are too long
@ -48,6 +48,7 @@ class Editor
|
||||
uploadAPI: '<?php Helper::security()->index('/action/upload'); ?>',
|
||||
emojiAPI: '<?php Helper::options()->themeUrl('typecho/write/json/emoji.json') ?>',
|
||||
characterAPI: '<?php Helper::options()->themeUrl('typecho/write/json/character.json') ?>',
|
||||
playerAPI: '<?php Helper::options()->JCustomPlayer ? Helper::options()->JCustomPlayer() : Helper::options()->themeUrl('library/player.php?url=') ?>'
|
||||
}
|
||||
</script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/typecho-joe-next@6.0.0/plugin/prism/prism.js"></script>
|
||||
|
@ -2,7 +2,7 @@
|
||||
/* 获取主题当前版本号 */
|
||||
function _getVersion()
|
||||
{
|
||||
return "6.2.1";
|
||||
return "6.2.2";
|
||||
};
|
||||
|
||||
/* 判断是否是手机 */
|
||||
|
@ -18,6 +18,10 @@ function _parseContent($post, $login)
|
||||
if (strpos($content, '{bilibili') !== false) {
|
||||
$content = preg_replace('/{bilibili([^\/}]*)\/}/SU', '<joe-bilibili $1></joe-bilibili>', $content);
|
||||
}
|
||||
if (strpos($content, '{dplayer') !== false) {
|
||||
$player = Helper::options()->JCustomPlayer ? Helper::options()->JCustomPlayer : Helper::options()->themeUrl . '/library/player.php?url=';
|
||||
$content = preg_replace('/{dplayer([^}]*)\/}/SU', '<joe-dplayer player="' . $player . '" $1></joe-dplayer>', $content);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -39,11 +43,7 @@ function _parseContent($post, $login)
|
||||
}
|
||||
|
||||
|
||||
/* 过滤dplayer播放器 */
|
||||
if (strpos($content, '{dplayer') !== false) {
|
||||
$player = Helper::options()->JCustomPlayer ? Helper::options()->JCustomPlayer : '/usr/themes/Joe/library/player.php?url=';
|
||||
$content = preg_replace('/{dplayer(.*)\/}/SU', '<joe-dplayer player="' . $player . '" $1></joe-dplayer>', $content);
|
||||
}
|
||||
|
||||
|
||||
/* 过滤复制粘贴功能 */
|
||||
if (strpos($content, '{copy') !== false) {
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "typecho-joe-next",
|
||||
"version": "6.2.1",
|
||||
"version": "6.2.2",
|
||||
"description": "A Theme Of Typecho",
|
||||
"main": "index.php",
|
||||
"keywords": [
|
||||
|
@ -423,4 +423,22 @@ export default class JoeAction {
|
||||
}
|
||||
});
|
||||
}
|
||||
handleDplayer(cm) {
|
||||
this._openModal({
|
||||
title: 'M3U8/MP4视频',
|
||||
innerHtml: `
|
||||
<div class="fitem">
|
||||
<label>视频地址</label>
|
||||
<input autocomplete="off" name="src" placeholder="请输入视频地址"/>
|
||||
</div>
|
||||
`,
|
||||
confirm: () => {
|
||||
const src = $(".cm-modal input[name='src']").val();
|
||||
const str = `{dplayer src="${src}"/}\n`;
|
||||
if (this._getLineCh(cm)) this._replaceSelection(cm, '\n' + str);
|
||||
else this._replaceSelection(cm, str);
|
||||
cm.focus();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -1,4 +1,5 @@
|
||||
const parser = new HyperDown();
|
||||
const player = window.JoeConfig.playerAPI;
|
||||
export default function createPreviewHtml(str) {
|
||||
str = parser.makeHtml(str);
|
||||
|
||||
@ -9,13 +10,16 @@ export default function createPreviewHtml(str) {
|
||||
str = str.replace(/{ }/g, '<input type="checkbox" class="task" disabled></input>');
|
||||
|
||||
/* 网易云 - 歌单 */
|
||||
str = str.replace(/{music-list([^/}]*)\/}/g, '<joe-mlist $1></joe-mlist>');
|
||||
str = str.replace(/{music-list([^}]*)\/}/g, '<joe-mlist $1></joe-mlist>');
|
||||
|
||||
/* 网易云 - 歌曲 */
|
||||
str = str.replace(/{music([^/}]*)\/}/g, '<joe-music $1></joe-music>');
|
||||
str = str.replace(/{music([^}]*)\/}/g, '<joe-music $1></joe-music>');
|
||||
|
||||
/* BiliBili */
|
||||
str = str.replace(/{bilibili([^/}]*)\/}/g, '<joe-bilibili $1></joe-bilibili>');
|
||||
str = str.replace(/{bilibili([^}]*)\/}/g, '<joe-bilibili $1></joe-bilibili>');
|
||||
|
||||
/* dplayer */
|
||||
str = str.replace(/{dplayer([^}]*)\/}/g, '<joe-dplayer player="' + player + '" $1></joe-dplayer>');
|
||||
|
||||
$('.cm-preview-content').html(str);
|
||||
$('.cm-preview-content pre code').each((i, el) => Prism.highlightElement(el));
|
||||
|
@ -94,6 +94,11 @@ export default [
|
||||
title: '任务 - 已完成',
|
||||
innerHTML: '<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" width="18" height="18"><path d="M831.551 64.623h-639.11c-70.3 0-127.816 57.517-127.816 127.819v639.103c0 70.308 57.515 127.833 127.816 127.833h639.11c70.294 0 127.822-57.525 127.822-127.833V192.442c0-70.302-57.527-127.82-127.822-127.82zM646.217 486.44c-108.652 159.779-204.52 345.115-204.52 345.115L192.443 550.351l63.916-70.303 153.385 146.994s76.695-127.822 178.95-236.469c102.261-108.652 223.689-198.127 223.689-198.127l19.17 63.916c0-.001-102.255 108.646-185.337 230.078z"/></svg>'
|
||||
},
|
||||
{
|
||||
type: 'dplayer',
|
||||
title: 'M3U8/MP4视频',
|
||||
innerHTML: '<svg viewBox="0 0 1170 1024" xmlns="http://www.w3.org/2000/svg" width="18" height="18"><path d="M508.197 298.642c-39.278-20.919-69.34-5.12-69.34 35.109v211.822c0 40.301 29.989 56.027 69.12 34.889L698.88 477.257c38.985-21.065 39.57-55.442.293-76.361L508.197 298.642z"/><path d="M1060.571 877.714H109.714C49.225 877.714 0 828.562 0 768V109.714C0 49.225 49.225 0 109.714 0h950.857c60.416 0 109.715 49.225 109.715 109.714V768c0 60.562-49.299 109.714-109.715 109.714zM109.714 73.143a36.571 36.571 0 0 0-36.571 36.571V768c0 20.114 16.457 36.571 36.571 36.571h950.857c20.115 0 36.572-16.457 36.572-36.571V109.714a36.571 36.571 0 0 0-36.572-36.571H109.714zM219.43 950.857h731.428V1024H219.43v-73.143z"/></svg>'
|
||||
},
|
||||
{
|
||||
type: 'netease-list',
|
||||
title: '网易云列表',
|
||||
|
@ -10,7 +10,7 @@ document.addEventListener('DOMContentLoaded', () => {
|
||||
this.render();
|
||||
}
|
||||
get template() {
|
||||
return `<object style="display: block;margin: 0 auto;" width="${this.options.width}" height="450px" data="//music.163.com/outchain/player?type=0&id=${this.options.id}&auto=${this.options.autoplay}&height=430"></object>`;
|
||||
return `<iframe allowfullscreen="true" style="display: block; margin: 0 auto; border: 0;" width="${this.options.width}" height="450px" src="//music.163.com/outchain/player?type=0&id=${this.options.id}&auto=${this.options.autoplay}&height=430"></iframe>`;
|
||||
}
|
||||
render() {
|
||||
if (this.options.id) this.innerHTML = this.template;
|
||||
@ -18,6 +18,7 @@ document.addEventListener('DOMContentLoaded', () => {
|
||||
}
|
||||
}
|
||||
window.customElements.define('joe-mlist', JoeMlist);
|
||||
|
||||
class JoeMusic extends HTMLElement {
|
||||
constructor() {
|
||||
super();
|
||||
@ -29,7 +30,7 @@ document.addEventListener('DOMContentLoaded', () => {
|
||||
this.render();
|
||||
}
|
||||
get template() {
|
||||
return `<object style="display: block;margin: 0 auto;" width="${this.options.width}" height="86px" data="//music.163.com/outchain/player?type=2&id=${this.options.id}&auto=${this.options.autoplay}&height=66"></object>`;
|
||||
return `<iframe allowfullscreen="true" style="display: block; margin: 0 auto; border: 0;" width="${this.options.width}" height="86px" src="//music.163.com/outchain/player?type=2&id=${this.options.id}&auto=${this.options.autoplay}&height=66"></iframe>`;
|
||||
}
|
||||
render() {
|
||||
if (this.options.id) this.innerHTML = this.template;
|
||||
@ -37,6 +38,7 @@ document.addEventListener('DOMContentLoaded', () => {
|
||||
}
|
||||
}
|
||||
window.customElements.define('joe-music', JoeMusic);
|
||||
|
||||
class JoeBilibili extends HTMLElement {
|
||||
constructor() {
|
||||
super();
|
||||
@ -46,7 +48,7 @@ document.addEventListener('DOMContentLoaded', () => {
|
||||
this.render();
|
||||
}
|
||||
get template() {
|
||||
return `<object style="display: block;margin: 0 auto;" width="100%" height="180px" data="//player.bilibili.com/player.html?bvid=${this.options.bvid}"></object>`;
|
||||
return `<iframe allowfullscreen="true" class="joe_detail__article-player" style="display: block; margin: 0 auto; border: 0;" width="100%" height="180px" src="//player.bilibili.com/player.html?bvid=${this.options.bvid}"></iframe>`;
|
||||
}
|
||||
render() {
|
||||
if (this.options.bvid) this.innerHTML = this.template;
|
||||
@ -54,4 +56,23 @@ document.addEventListener('DOMContentLoaded', () => {
|
||||
}
|
||||
}
|
||||
window.customElements.define('joe-bilibili', JoeBilibili);
|
||||
|
||||
class JoeDplayer extends HTMLElement {
|
||||
constructor() {
|
||||
super();
|
||||
this.options = {
|
||||
src: this.getAttribute('src'),
|
||||
player: this.getAttribute('player')
|
||||
};
|
||||
this.render();
|
||||
}
|
||||
get template() {
|
||||
return `<iframe allowfullscreen="true" class="joe_detail__article-player" style="display: block; margin: 0 auto; border: 0;" width="100%" height="180px" src="${this.options.player + this.options.src}"></iframe>`
|
||||
}
|
||||
render() {
|
||||
if (this.options.src) this.innerHTML = this.template;
|
||||
else this.innerHTML = '播放地址未填写!';
|
||||
}
|
||||
}
|
||||
window.customElements.define('joe-dplayer', JoeDplayer);
|
||||
});
|
||||
|
2
typecho/write/js/joe.short.min.js
vendored
2
typecho/write/js/joe.short.min.js
vendored
@ -1 +1 @@
|
||||
document.addEventListener("DOMContentLoaded",()=>{class t extends HTMLElement{constructor(){super(),this.options={id:this.getAttribute("id"),width:this.getAttribute("width")||"100%",autoplay:this.getAttribute("autoplay")?1:0},this.render()}get template(){return`<object style="display: block;margin: 0 auto;" width="${this.options.width}" height="450px" data="//music.163.com/outchain/player?type=0&id=${this.options.id}&auto=${this.options.autoplay}&height=430"></object>`}render(){this.options.id?this.innerHTML=this.template:this.innerHTML="网易云歌单ID未填写!"}}window.customElements.define("joe-mlist",t);class i extends HTMLElement{constructor(){super(),this.options={id:this.getAttribute("id"),width:this.getAttribute("width")||"100%",autoplay:this.getAttribute("autoplay")?1:0},this.render()}get template(){return`<object style="display: block;margin: 0 auto;" width="${this.options.width}" height="86px" data="//music.163.com/outchain/player?type=2&id=${this.options.id}&auto=${this.options.autoplay}&height=66"></object>`}render(){this.options.id?this.innerHTML=this.template:this.innerHTML="网易云歌曲ID未填写!"}}window.customElements.define("joe-music",i);class e extends HTMLElement{constructor(){super(),this.options={bvid:this.getAttribute("bvid")},this.render()}get template(){return`<object style="display: block;margin: 0 auto;" width="100%" height="180px" data="//player.bilibili.com/player.html?bvid=${this.options.bvid}"></object>`}render(){this.options.bvid?this.innerHTML=this.template:this.innerHTML="Bvid未填写!"}}window.customElements.define("joe-bilibili",e)});
|
||||
document.addEventListener("DOMContentLoaded",()=>{class t extends HTMLElement{constructor(){super(),this.options={id:this.getAttribute("id"),width:this.getAttribute("width")||"100%",autoplay:this.getAttribute("autoplay")?1:0},this.render()}get template(){return`<iframe allowfullscreen="true" style="display: block; margin: 0 auto; border: 0;" width="${this.options.width}" height="450px" src="//music.163.com/outchain/player?type=0&id=${this.options.id}&auto=${this.options.autoplay}&height=430"></iframe>`}render(){this.options.id?this.innerHTML=this.template:this.innerHTML="网易云歌单ID未填写!"}}window.customElements.define("joe-mlist",t);class e extends HTMLElement{constructor(){super(),this.options={id:this.getAttribute("id"),width:this.getAttribute("width")||"100%",autoplay:this.getAttribute("autoplay")?1:0},this.render()}get template(){return`<iframe allowfullscreen="true" style="display: block; margin: 0 auto; border: 0;" width="${this.options.width}" height="86px" src="//music.163.com/outchain/player?type=2&id=${this.options.id}&auto=${this.options.autoplay}&height=66"></iframe>`}render(){this.options.id?this.innerHTML=this.template:this.innerHTML="网易云歌曲ID未填写!"}}window.customElements.define("joe-music",e);class i extends HTMLElement{constructor(){super(),this.options={bvid:this.getAttribute("bvid")},this.render()}get template(){return`<iframe allowfullscreen="true" class="joe_detail__article-player" style="display: block; margin: 0 auto; border: 0;" width="100%" height="180px" src="//player.bilibili.com/player.html?bvid=${this.options.bvid}"></iframe>`}render(){this.options.bvid?this.innerHTML=this.template:this.innerHTML="Bvid未填写!"}}window.customElements.define("joe-bilibili",i);class s extends HTMLElement{constructor(){super(),this.options={src:this.getAttribute("src"),player:this.getAttribute("player")},this.render()}get template(){return`<iframe allowfullscreen="true" class="joe_detail__article-player" style="display: block; margin: 0 auto; border: 0;" width="100%" height="180px" src="${this.options.player+this.options.src}"></iframe>`}render(){this.options.src?this.innerHTML=this.template:this.innerHTML="播放地址未填写!"}}window.customElements.define("joe-dplayer",s)});
|
File diff suppressed because one or more lines are too long
@ -264,6 +264,9 @@ class Joe extends JoeAction {
|
||||
case 'bilibili':
|
||||
super.handleBilibili(this.cm);
|
||||
break;
|
||||
case 'dplayer':
|
||||
super.handleDplayer(this.cm);
|
||||
break;
|
||||
}
|
||||
});
|
||||
$('.cm-tools').append(el);
|
||||
|
@ -6,5 +6,5 @@ export default {
|
||||
file: './js/joe.write.chunk.js',
|
||||
format: 'iife'
|
||||
},
|
||||
plugins: [nodeResolve()]
|
||||
plugins: [nodeResolve(), uglify()]
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user