内置主题标签
This commit is contained in:
parent
15d6fabd10
commit
caa422fd05
|
@ -0,0 +1,506 @@
|
|||
/* 获取直属子元素 */
|
||||
function getChildren(el, className) {
|
||||
for (let item of el.children) if (item.className === className) return item;
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
// 跳转链接的卡片
|
||||
document.addEventListener("DOMContentLoaded", () => {
|
||||
|
||||
customElements.define(
|
||||
"hao-introduction-card",
|
||||
class HaoIntroductionCard extends HTMLElement {
|
||||
constructor() {
|
||||
super();
|
||||
this.options = {
|
||||
link: this.getAttribute("link") || 'https://0206.ink/',
|
||||
img: this.getAttribute("img"),
|
||||
tip: this.getAttribute("tip") || '小标题',
|
||||
cardTitle: this.getAttribute("cardTitle") || '标题',
|
||||
logo: this.getAttribute("logo"),
|
||||
title: this.getAttribute("title"),
|
||||
subTitle: this.getAttribute("subTitle"),
|
||||
};
|
||||
let style1 = ''
|
||||
let style2 = ''
|
||||
if(this.options.logo==null && this.options.title==null && this.options.subTitle==null){
|
||||
style1 = 'height:416px'
|
||||
style2 = 'height:100%;border-radius:15px'
|
||||
}
|
||||
let innerHTMLs = `
|
||||
<div class="introduction-card" style="${style1}">
|
||||
<div class="introduction-card-top" style="${style2}">
|
||||
<div class="int-card-info">
|
||||
<div class="int-tip">${this.options.tip}</div>
|
||||
<div class="int-cardTitle">${this.options.cardTitle}</div>
|
||||
</div>
|
||||
<img src="${this.options.img}"
|
||||
class="no-lightbox" alt="introduction">
|
||||
|
||||
</div>
|
||||
`;
|
||||
if(this.options.logo!=null && this.options.title!=null && this.options.subTitle!=null){
|
||||
innerHTMLs += `
|
||||
|
||||
<div class="introduction-card-bottom">
|
||||
<div class="left">
|
||||
<img src="${this.options.logo}"
|
||||
class="no-lightbox" alt="introduction">
|
||||
<div class="info">
|
||||
<div class="title">${this.options.title}</div>
|
||||
<div class="subTitle">${this.options.subTitle}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="right">
|
||||
<a href="${this.options.link}" tableindex="-1" class="no-text-decoration"
|
||||
data-pjax-state="">前往
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
`;
|
||||
}
|
||||
innerHTMLs += `
|
||||
</div>
|
||||
`;
|
||||
this.innerHTML = innerHTMLs;
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
// 折叠框 folding
|
||||
customElements.define(
|
||||
"hao-folding",
|
||||
class HaoFolding extends HTMLElement {
|
||||
constructor() {
|
||||
super();
|
||||
this.options = {
|
||||
title: this.getAttribute("title"),
|
||||
color: this.getAttribute("color") || '',
|
||||
type: this.getAttribute("type") || ''
|
||||
};
|
||||
const _temp = getChildren(this, "_tpl");
|
||||
let contents = _temp.innerHTML.trim().replace(/^(<br>)|(<br>)$/g, "");
|
||||
|
||||
let htmlStr = `
|
||||
<details class="folding-tag" ${this.options.color} ${this.options.type}>
|
||||
<summary>${this.options.title}</summary>
|
||||
<div class="content">
|
||||
${contents}
|
||||
</div>
|
||||
</details>
|
||||
`;
|
||||
this.innerHTML = htmlStr;
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
// 链接卡片 link
|
||||
customElements.define(
|
||||
"hao-tag-link",
|
||||
class HaoTagLink extends HTMLElement {
|
||||
constructor() {
|
||||
super();
|
||||
this.options = {
|
||||
link: this.getAttribute("link"),
|
||||
logo: this.getAttribute("logo"),
|
||||
title: this.getAttribute("title") || '',
|
||||
described: this.getAttribute("described") || '',
|
||||
};
|
||||
let htmlStr = `
|
||||
<div calss="hao-tag-link">
|
||||
<a class="tag-Link" target="_blank"
|
||||
href="${this.options.link}" rel="external nofollow noreferrer"
|
||||
draggable="false">
|
||||
<div class="tag-link-tips">引用站外地址</div>
|
||||
<div class="tag-link-bottom">
|
||||
<div class="tag-link-left"
|
||||
style="background-image:url(${this.options.logo})">
|
||||
</div>
|
||||
<div class="tag-link-right">
|
||||
<div class="tag-link-title">${this.options.title}</div>
|
||||
<div class="tag-link-sitename">${this.options.described}</div>
|
||||
</div><i class="haofont hao-icon-angle-right"></i>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
`;
|
||||
this.innerHTML = htmlStr;
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
// Note (Bootstrap Callout)
|
||||
customElements.define(
|
||||
"hao-note",
|
||||
class HaoNote extends HTMLElement {
|
||||
constructor() {
|
||||
super();
|
||||
this.options = {
|
||||
class: this.getAttribute("class") || '',
|
||||
noIcon: this.getAttribute("noIcon") || '',
|
||||
style: this.getAttribute("style") || '',
|
||||
content: this.getAttribute("content") || '',
|
||||
};
|
||||
let htmlStr = `
|
||||
<div class="note ${this.options.class} ${this.options.noIcon} ${this.options.style}"><p>${this.options.content}</p></div>
|
||||
`;
|
||||
this.innerHTML = htmlStr;
|
||||
}
|
||||
|
||||
}
|
||||
);
|
||||
|
||||
// 上标标签 tip
|
||||
customElements.define(
|
||||
"hao-tip",
|
||||
class HaoTip extends HTMLElement {
|
||||
constructor() {
|
||||
super();
|
||||
this.options = {
|
||||
class: this.getAttribute("class") || '',
|
||||
noIcon: this.getAttribute("noIcon") || '',
|
||||
content: this.getAttribute("content") || '',
|
||||
};
|
||||
let htmlStr = `
|
||||
<div class="tip ${this.options.class} ${this.options.noIcon}"><p>${this.options.content}</p></div>
|
||||
`;
|
||||
this.innerHTML = htmlStr;
|
||||
}
|
||||
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
// timeline
|
||||
customElements.define(
|
||||
"hao-timeline",
|
||||
class HaoTimeline extends HTMLElement {
|
||||
constructor() {
|
||||
super();
|
||||
this.options = {
|
||||
title: this.getAttribute("title") || '',
|
||||
color: this.getAttribute("color") || ''
|
||||
};
|
||||
const _temp = getChildren(this, "_tpl");
|
||||
let _innerHTML = _temp.innerHTML.trim().replace(/^(<br>)|(<br>)$/g, "");
|
||||
let content = "";
|
||||
_innerHTML.replace(
|
||||
/{timeline-item([^}]*)}([\s\S]*?){\/timeline-item}/g,
|
||||
function ($0, $1, $2) {
|
||||
content += `
|
||||
<div class="timeline-item">
|
||||
<div class="timeline-item-title">
|
||||
<div class="item-circle">
|
||||
<p>${$1}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="timeline-item-content">
|
||||
<p>${$2
|
||||
.trim()
|
||||
.replace(/^(<br>)|(<br>)$/g, "")}</p>
|
||||
</div>
|
||||
</div>
|
||||
`;
|
||||
}
|
||||
);
|
||||
let htmlStr = `
|
||||
|
||||
<div class="timeline ${this.options.color}">
|
||||
<div class="timeline-item headline">
|
||||
<div class="timeline-item-title">
|
||||
<div class="item-circle">
|
||||
<p>${this.options.title}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
${content}
|
||||
|
||||
</div>
|
||||
|
||||
`;
|
||||
this.innerHTML = htmlStr;
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
// 按钮 btns
|
||||
customElements.define(
|
||||
"hao-btns",
|
||||
class HaoBtns extends HTMLElement {
|
||||
constructor() {
|
||||
super();
|
||||
this.options = {
|
||||
class: this.getAttribute("class") || '',
|
||||
style: this.getAttribute("style") || '',
|
||||
grid: this.getAttribute("grid") || '',
|
||||
};
|
||||
const _temp = getChildren(this, "_tpl");
|
||||
let _innerHTML = _temp.innerHTML.trim().replace(/^(<br>)|(<br>)$/g, "");
|
||||
let content = "";
|
||||
if(this.options.class == 'rounded'){
|
||||
_innerHTML.replace(
|
||||
/{btns-item([^}]*)}/g,
|
||||
function ($0, $1) {
|
||||
var str = $1.split(",", 5);
|
||||
if(str.length==5){
|
||||
content += `
|
||||
<a target="_blank" rel="noopener external nofollow noreferrer"
|
||||
href="${str[2]}"
|
||||
class="no-text-decoration"><i class="${str[4]}"></i> <b>${str[0]}</b>
|
||||
<p class="p red">${str[1]}</p><img
|
||||
src="${str[3]}">
|
||||
</a>
|
||||
`;
|
||||
}else{
|
||||
content += `
|
||||
<a class="button no-text-decoration" href="${str[1]}" title="${str[0]}">
|
||||
<i class="${str[2]}"></i> ${str[0]}
|
||||
</a>
|
||||
`;
|
||||
}
|
||||
}
|
||||
|
||||
);
|
||||
}
|
||||
|
||||
if(this.options.class == 'circle'){
|
||||
_innerHTML.replace(
|
||||
/{btns-item([^}]*)}/g,
|
||||
function ($0, $1) {
|
||||
var str = $1.split(",", 5);
|
||||
if(str.length==5){
|
||||
content += `
|
||||
<a target="_blank" rel="noopener external nofollow noreferrer"
|
||||
href="${str[2]}"
|
||||
class="no-text-decoration"><i class="${str[4]}"></i> <b>${str[0]}</b>
|
||||
<p class="p red">${str[1]}</p><img
|
||||
src="${str[3]}">
|
||||
</a>
|
||||
`;
|
||||
}else{
|
||||
content += `
|
||||
<a class="button no-text-decoration" target="_blank" rel="noopener external nofollow noreferrer"
|
||||
href="${str[1]}" title="${str[0]}">
|
||||
<img
|
||||
src="${str[2]}"/>${str[0]}
|
||||
</a>
|
||||
`;
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
let htmlStr = `
|
||||
<div class="btns ${this.options.class} ${this.options.style} ${this.options.grid}">
|
||||
${content}
|
||||
</div>
|
||||
`;
|
||||
this.innerHTML = htmlStr;
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
// 分栏 tab
|
||||
customElements.define(
|
||||
"hao-tabs",
|
||||
class HaoTabs extends HTMLElement {
|
||||
constructor() {
|
||||
super();
|
||||
this.options = {
|
||||
id: this.getAttribute("id") || '',
|
||||
index: this.getAttribute("index") || ''
|
||||
};
|
||||
const id = this.options.id
|
||||
const index = this.options.index
|
||||
const _temp = getChildren(this, "_tpl");
|
||||
let _innerHTML = _temp.innerHTML.trim().replace(/^(<br>)|(<br>)$/g, "");
|
||||
let navs = "";
|
||||
let contents = "";
|
||||
let newIndex = 0;
|
||||
|
||||
_innerHTML.replace(
|
||||
/{tabs-item([^}]*)}([\s\S]*?){\/tabs-item}/g,
|
||||
function ($0, $1, $2) {
|
||||
newIndex +=1;
|
||||
let active =''
|
||||
if(index!='' && index!=null){
|
||||
if(newIndex == index){
|
||||
active = 'active';
|
||||
}
|
||||
}else{
|
||||
if(newIndex==1){
|
||||
active = 'active'
|
||||
}
|
||||
}
|
||||
navs += `
|
||||
<li class="tab ${active}"><button type="button" data-href="#${id}-${newIndex}">${$1}</button></li>
|
||||
`;
|
||||
contents += `
|
||||
<div class="tab-item-content ${active}" id="${id}-${newIndex}">
|
||||
${$2.trim().replace(/^(<br>)|(<br>)$/g, "")}
|
||||
<button type="button" class="tab-to-top" aria-label="scroll to top"><i class="haofont hao-icon-arrow-up"></i></button>
|
||||
</div>
|
||||
`;
|
||||
}
|
||||
);
|
||||
let htmlStr = `
|
||||
<div class="tabs" id="${this.options.id}">
|
||||
<ul class="nav-tabs">${navs}</ul>
|
||||
<div class="tab-contents">${contents}</div>
|
||||
</div>
|
||||
|
||||
`;
|
||||
this.innerHTML = htmlStr;
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
// gallerygroup 相册图库
|
||||
customElements.define(
|
||||
"hao-gallery-group",
|
||||
class HaoGalleryGroup extends HTMLElement {
|
||||
constructor() {
|
||||
super();
|
||||
const _temp = getChildren(this, "_tpl");
|
||||
let _innerHTML = _temp.innerHTML.trim().replace(/^(<br>)|(<br>)$/g, "");
|
||||
let contents = "";
|
||||
_innerHTML.replace(
|
||||
/{gallery-group-item([^}]*)}/g,
|
||||
function ($0, $1) {
|
||||
var str = $1.split(",",4);
|
||||
contents += `
|
||||
<figure class="gallery-group group-two"">
|
||||
<img class="gallery-group-img no-lightbox"
|
||||
src="${str[3]}"
|
||||
alt="Group Image Gallery" >
|
||||
<figcaption>
|
||||
<div class="gallery-group-name">${str[0]}</div>
|
||||
<p>${str[1]}</p><a target="_blank" rel="noopener" href="${str[2]}"></a>
|
||||
</figcaption>
|
||||
</figure>
|
||||
`;
|
||||
}
|
||||
|
||||
);
|
||||
let htmlStr = `
|
||||
<div class="gallery-group-main">
|
||||
${contents}
|
||||
</div>
|
||||
`;
|
||||
this.innerHTML = htmlStr;
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
// gallery 相册
|
||||
customElements.define(
|
||||
"hao-gallery",
|
||||
class HaoGallery extends HTMLElement {
|
||||
constructor() {
|
||||
super();
|
||||
const _temp = getChildren(this, "_tpl");
|
||||
let _innerHTML = _temp.innerHTML.trim().replace(/^(<br>)|(<br>)$/g, "");
|
||||
let contents = "";
|
||||
_innerHTML.replace(
|
||||
/{([^}]*)}/g,
|
||||
function ($0, $1) {
|
||||
var str = $1.split(",");
|
||||
str.forEach((item) => {
|
||||
contents += `
|
||||
<div class="fj-gallery-item">
|
||||
<img src="${item}">
|
||||
</div>
|
||||
`;
|
||||
});
|
||||
}
|
||||
);
|
||||
let htmlStr = `
|
||||
<section class="page-1 loadings">
|
||||
<div class="type-gallery ">
|
||||
<div class="gallery">
|
||||
${contents}
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
`;
|
||||
this.innerHTML = htmlStr;
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
customElements.define(
|
||||
"hao-dplayer",
|
||||
class HaoDplayer extends HTMLElement {
|
||||
constructor() {
|
||||
super();
|
||||
this.options = {
|
||||
src: this.getAttribute("src") || "",
|
||||
player:
|
||||
this.getAttribute("player") ||
|
||||
`/themes/theme-hao/assets/libs/dplayer/dplayer.html?url=`,
|
||||
width: this.getAttribute("width") || "100%",
|
||||
height: this.getAttribute("height") || "500px",
|
||||
};
|
||||
this.render();
|
||||
}
|
||||
render() {
|
||||
if (this.options.src)
|
||||
this.innerHTML = `<iframe allowfullscreen="true" class="hao_vplayer" src="${
|
||||
this.options.player + this.options.src
|
||||
}" style="width:${this.options.width};height:${
|
||||
this.options.height
|
||||
}"></iframe>`;
|
||||
else this.innerHTML = "视频地址未填写!";
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
customElements.define(
|
||||
"hao-bilibili",
|
||||
class HaoBilibili extends HTMLElement {
|
||||
constructor() {
|
||||
super();
|
||||
this.options = {
|
||||
bvid: this.getAttribute("bvid"),
|
||||
page: +(this.getAttribute("page") || "1"),
|
||||
width: this.getAttribute("width") || "100%",
|
||||
height: this.getAttribute("height") || "500px",
|
||||
};
|
||||
this.render();
|
||||
}
|
||||
render() {
|
||||
if (this.options.bvid)
|
||||
this.innerHTML = `<iframe allowfullscreen="true" class="hao_vplayer" src="//player.bilibili.com/player.html?bvid=${this.options.bvid}&page=${this.options.page}" style="width:${this.options.width};height:${this.options.height}"></iframe>`;
|
||||
else this.innerHTML = "bvid未填写!";
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
// customElements.define(
|
||||
// "hao-pdf",
|
||||
// class HaoPdf extends HTMLElement {
|
||||
// constructor() {
|
||||
// super();
|
||||
// this.options = {
|
||||
// src: this.getAttribute("src") || "",
|
||||
// width: this.getAttribute("width") || "100%",
|
||||
// height: this.getAttribute("height") || "500px",
|
||||
// };
|
||||
// this.render();
|
||||
// }
|
||||
// render() {
|
||||
// if (!this.options.src) return (this.innerHTML = "pdf地址未填写!");
|
||||
// this.innerHTML = `
|
||||
// <div >
|
||||
// <iframe src="/themes/theme-hao/assets/libs/pdfjs/web/viewer.html?file=${this.options.src}" style="width:${this.options.width};height:${this.options.height}"></iframe>
|
||||
// </div>`;
|
||||
// }
|
||||
// }
|
||||
// );
|
||||
|
||||
});
|
|
@ -163,7 +163,7 @@ document.addEventListener('DOMContentLoaded', function () {
|
|||
|
||||
const jqLoadAndRun = () => {
|
||||
const $fancyboxEle = GLOBAL_CONFIG.lightbox === 'fancybox'
|
||||
? document.querySelectorAll('#article-container :not(a):not(.gallery-group):not(.site-card-avatar):not(.flink-item-info):not(.rss-plan-info-group):not(.bangumi-picture) > img, #article-container > img,.bber-container-img > img')
|
||||
? document.querySelectorAll('#article-container :not(a):not(.gallery-group):not(.site-card-avatar):not(.flink-item-info):not(.rss-plan-info-group):not(.bangumi-picture):not(.introduction-card) > img, #article-container > img,.bber-container-img > img')
|
||||
: []
|
||||
const fbLengthNoZero = $fancyboxEle.length > 0
|
||||
const $jgEle = document.querySelectorAll('#article-container .gallery')
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,80 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="renderer" content="webkit" />
|
||||
<meta name="viewport"
|
||||
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, shrink-to-fit=no, viewport-fit=cover" />
|
||||
<title>DPlayer</title>
|
||||
<style>
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
-webkit-tap-highlight-color: transparent;
|
||||
outline: none;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
html,
|
||||
body,
|
||||
#dplayer {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="dplayer"></div>
|
||||
<script src="/themes/theme-hao/assets/libs/hls/hls.min.js"></script>
|
||||
<script src="/themes/theme-hao/assets/libs/dplayer/DPlayer.min.js"></script>
|
||||
<script>
|
||||
var getUrlParams = function (key) {
|
||||
var search = location.search;
|
||||
// 判断是否为字符串类型
|
||||
if (typeof search !== "string") {
|
||||
search = search.toString();
|
||||
}
|
||||
var paramsSplit = search.replace(/^[^\?]*\?/i, "").split(/&/);
|
||||
var params = {};
|
||||
// 数据为空
|
||||
if (paramsSplit.length < 1) {
|
||||
return params;
|
||||
}
|
||||
if (Array.isArray(paramsSplit)) {
|
||||
paramsSplit.forEach(function (item) {
|
||||
// 数据为空, 退出方法
|
||||
if (!item) {
|
||||
return false;
|
||||
}
|
||||
var itemSplit = item.split(/=/);
|
||||
|
||||
// 判断字符串中是否有多个=
|
||||
if (itemSplit.length >= 2) {
|
||||
// 是
|
||||
var key = itemSplit.splice(0, 1);
|
||||
params[key] = itemSplit.join("=");
|
||||
}
|
||||
});
|
||||
}
|
||||
return key ? params[key] : params;
|
||||
}
|
||||
|
||||
new DPlayer({
|
||||
container: document.getElementById('dplayer'), // 播放器容器元素
|
||||
autoplay: false, // 视频自动播放
|
||||
theme: '#409eff', // 主题色
|
||||
loop: false, // 视频循环播放
|
||||
screenshot: false, // 开启截图,如果开启,视频和视频封面需要允许跨域
|
||||
airplay: true, // 在 Safari 中开启 AirPlay
|
||||
volume: 0.5, // 默认音量,请注意播放器会记忆用户设置,用户手动设置音量后默认音量即失效
|
||||
playbackSpeed: [2, 1.5, 1.25, 1], // 可选的播放速率,可以设置成自定义的数组
|
||||
video: {
|
||||
url: getUrlParams('url')
|
||||
}
|
||||
})
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
|
@ -146,6 +146,10 @@ i.haofont {
|
|||
line-height: 1;
|
||||
}
|
||||
|
||||
.todolist-item i.haofont {
|
||||
display: var(--fa-display,inline-block);
|
||||
}
|
||||
|
||||
/* 旧版css */
|
||||
html {
|
||||
line-height: 1.15;
|
||||
|
@ -327,8 +331,7 @@ template {
|
|||
#article-container h6::before,
|
||||
#post .post-copyright::before,
|
||||
#post .post-outdate-notice::before,
|
||||
.fontawesomeIcon,
|
||||
.note:not(.no-icon)::before {
|
||||
.fontawesomeIcon {
|
||||
display: inline-block;
|
||||
font-weight: 600;
|
||||
font-style: normal;
|
||||
|
@ -4523,422 +4526,6 @@ blockquote.pullquote.right {
|
|||
background-color: rgb(92, 184, 92);
|
||||
}
|
||||
|
||||
.note {
|
||||
position: relative;
|
||||
margin: 0px 0px 1rem;
|
||||
padding: 15px;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
.note.icon {
|
||||
padding-left: 2.25rem;
|
||||
}
|
||||
|
||||
.note > .note-icon {
|
||||
position: absolute;
|
||||
/*top: calc(50% - 0.4rem);*/
|
||||
left: 0.7rem;
|
||||
font-size: larger;
|
||||
}
|
||||
|
||||
.note.blue:not(.disabled) {
|
||||
border-left-color: rgb(66, 139, 202) !important;
|
||||
}
|
||||
|
||||
.note.blue:not(.disabled).modern {
|
||||
color: rgb(66, 139, 202);
|
||||
border-left-color: transparent !important;
|
||||
}
|
||||
|
||||
.note.blue:not(.disabled):not(.simple) {
|
||||
background: rgb(227, 238, 247) !important;
|
||||
}
|
||||
|
||||
.note.blue > .note-icon {
|
||||
color: rgb(66, 139, 202);
|
||||
}
|
||||
|
||||
.note.pink:not(.disabled) {
|
||||
border-left-color: rgb(255, 105, 180) !important;
|
||||
}
|
||||
|
||||
.note.pink:not(.disabled).modern {
|
||||
color: rgb(255, 105, 180);
|
||||
border-left-color: transparent !important;
|
||||
}
|
||||
|
||||
.note.pink:not(.disabled):not(.simple) {
|
||||
background: rgb(255, 233, 244) !important;
|
||||
}
|
||||
|
||||
.note.pink > .note-icon {
|
||||
color: rgb(255, 105, 180);
|
||||
}
|
||||
|
||||
.note.red:not(.disabled) {
|
||||
border-left-color: red !important;
|
||||
}
|
||||
|
||||
.note.red:not(.disabled).modern {
|
||||
color: red;
|
||||
border-left-color: transparent !important;
|
||||
}
|
||||
|
||||
.note.red:not(.disabled):not(.simple) {
|
||||
background: rgb(255, 217, 217) !important;
|
||||
}
|
||||
|
||||
.note.red > .note-icon {
|
||||
color: red;
|
||||
}
|
||||
|
||||
.note.purple:not(.disabled) {
|
||||
border-left-color: rgb(111, 66, 193) !important;
|
||||
}
|
||||
|
||||
.note.purple:not(.disabled).modern {
|
||||
color: rgb(111, 66, 193);
|
||||
border-left-color: transparent !important;
|
||||
}
|
||||
|
||||
.note.purple:not(.disabled):not(.simple) {
|
||||
background: rgb(233, 227, 246) !important;
|
||||
}
|
||||
|
||||
.note.purple > .note-icon {
|
||||
color: rgb(111, 66, 193);
|
||||
}
|
||||
|
||||
.note.orange:not(.disabled) {
|
||||
border-left-color: rgb(255, 140, 0) !important;
|
||||
}
|
||||
|
||||
.note.orange:not(.disabled).modern {
|
||||
color: rgb(255, 140, 0);
|
||||
border-left-color: transparent !important;
|
||||
}
|
||||
|
||||
.note.orange:not(.disabled):not(.simple) {
|
||||
background: rgb(255, 238, 217) !important;
|
||||
}
|
||||
|
||||
.note.orange > .note-icon {
|
||||
color: rgb(255, 140, 0);
|
||||
}
|
||||
|
||||
.note.green:not(.disabled) {
|
||||
border-left-color: rgb(92, 184, 92) !important;
|
||||
}
|
||||
|
||||
.note.green:not(.disabled).modern {
|
||||
color: rgb(92, 184, 92);
|
||||
border-left-color: transparent !important;
|
||||
}
|
||||
|
||||
.note.green:not(.disabled):not(.simple) {
|
||||
background: rgb(231, 244, 231) !important;
|
||||
}
|
||||
|
||||
.note.green > .note-icon {
|
||||
color: rgb(92, 184, 92);
|
||||
}
|
||||
|
||||
.note.simple {
|
||||
border-width: 1px 1px 1px 5px;
|
||||
border-style: solid;
|
||||
border-color: rgb(238, 238, 238);
|
||||
border-image: initial;
|
||||
}
|
||||
|
||||
.note.modern {
|
||||
background-color: rgb(245, 245, 245);
|
||||
color: rgb(76, 73, 72);
|
||||
border: 1px solid transparent !important;
|
||||
}
|
||||
|
||||
.note.flat {
|
||||
border-top: initial;
|
||||
border-right: initial;
|
||||
border-bottom: initial;
|
||||
border-image: initial;
|
||||
border-left: 5px solid rgb(238, 238, 238);
|
||||
background-color: rgb(249, 249, 249);
|
||||
color: rgb(76, 73, 72);
|
||||
}
|
||||
|
||||
.note h2,
|
||||
.note h3,
|
||||
.note h4,
|
||||
.note h5,
|
||||
.note h6 {
|
||||
margin-top: 3px;
|
||||
margin-bottom: 0px;
|
||||
border-bottom: initial;
|
||||
padding-top: 0px !important;
|
||||
}
|
||||
|
||||
.note blockquote:first-child,
|
||||
.note img:first-child,
|
||||
.note ol:first-child,
|
||||
.note p:first-child,
|
||||
.note pre:first-child,
|
||||
.note table:first-child,
|
||||
.note ul:first-child {
|
||||
margin-top: 0px !important;
|
||||
}
|
||||
|
||||
.note blockquote:last-child,
|
||||
.note img:last-child,
|
||||
.note ol:last-child,
|
||||
.note p:last-child,
|
||||
.note pre:last-child,
|
||||
.note table:last-child,
|
||||
.note ul:last-child {
|
||||
margin-bottom: 0px !important;
|
||||
font-size: 14px !important;
|
||||
}
|
||||
|
||||
.note:not(.no-icon) {
|
||||
padding-left: 2.25rem;
|
||||
}
|
||||
|
||||
.note:not(.no-icon)::before {
|
||||
position: absolute;
|
||||
top: calc(50% - 15px);
|
||||
left: 0.7rem;
|
||||
font-size: larger;
|
||||
}
|
||||
|
||||
.note.default.flat {
|
||||
background: rgb(247, 247, 247);
|
||||
}
|
||||
|
||||
.note.default.modern {
|
||||
border-color: rgb(225, 225, 225);
|
||||
background: rgb(243, 243, 243);
|
||||
color: rgb(102, 102, 102);
|
||||
}
|
||||
|
||||
.note.default.modern a:not(.btn) {
|
||||
color: rgb(102, 102, 102);
|
||||
}
|
||||
|
||||
.note.default.modern a:not(.btn):hover {
|
||||
color: rgb(69, 69, 69);
|
||||
}
|
||||
|
||||
.note.default:not(.modern) {
|
||||
border-left-color: rgb(119, 119, 119);
|
||||
}
|
||||
|
||||
.note.default:not(.modern) h2,
|
||||
.note.default:not(.modern) h3,
|
||||
.note.default:not(.modern) h4,
|
||||
.note.default:not(.modern) h5,
|
||||
.note.default:not(.modern) h6 {
|
||||
color: rgb(119, 119, 119);
|
||||
}
|
||||
|
||||
.note.default:not(.no-icon)::before {
|
||||
content: "";
|
||||
}
|
||||
|
||||
.note.default:not(.no-icon):not(.modern)::before {
|
||||
color: rgb(119, 119, 119);
|
||||
}
|
||||
|
||||
.note.primary.flat {
|
||||
background: rgb(245, 240, 250);
|
||||
}
|
||||
|
||||
.note.primary.modern {
|
||||
border-color: rgb(225, 194, 255);
|
||||
background: rgb(243, 218, 255);
|
||||
color: rgb(111, 66, 193);
|
||||
}
|
||||
|
||||
.note.primary.modern a:not(.btn) {
|
||||
color: rgb(111, 66, 193);
|
||||
}
|
||||
|
||||
.note.primary.modern a:not(.btn):hover {
|
||||
color: rgb(69, 50, 152);
|
||||
}
|
||||
|
||||
.note.primary:not(.modern) {
|
||||
border-left-color: rgb(111, 66, 193);
|
||||
}
|
||||
|
||||
.note.primary:not(.modern) h2,
|
||||
.note.primary:not(.modern) h3,
|
||||
.note.primary:not(.modern) h4,
|
||||
.note.primary:not(.modern) h5,
|
||||
.note.primary:not(.modern) h6 {
|
||||
color: rgb(111, 66, 193);
|
||||
}
|
||||
|
||||
.note.primary:not(.no-icon)::before {
|
||||
content: "";
|
||||
}
|
||||
|
||||
.note.primary:not(.no-icon):not(.modern)::before {
|
||||
color: rgb(111, 66, 193);
|
||||
}
|
||||
|
||||
.note.info.flat {
|
||||
background: rgb(238, 247, 250);
|
||||
}
|
||||
|
||||
.note.info.modern {
|
||||
border-color: rgb(179, 229, 239);
|
||||
background: rgb(217, 237, 247);
|
||||
color: rgb(49, 112, 143);
|
||||
}
|
||||
|
||||
.note.info.modern a:not(.btn) {
|
||||
color: rgb(49, 112, 143);
|
||||
}
|
||||
|
||||
.note.info.modern a:not(.btn):hover {
|
||||
color: rgb(33, 87, 97);
|
||||
}
|
||||
|
||||
.note.info:not(.modern) {
|
||||
border-left-color: rgb(66, 139, 202);
|
||||
}
|
||||
|
||||
.note.info:not(.modern) h2,
|
||||
.note.info:not(.modern) h3,
|
||||
.note.info:not(.modern) h4,
|
||||
.note.info:not(.modern) h5,
|
||||
.note.info:not(.modern) h6 {
|
||||
color: rgb(66, 139, 202);
|
||||
}
|
||||
|
||||
.note.info:not(.no-icon)::before {
|
||||
content: "";
|
||||
}
|
||||
|
||||
.note.info:not(.no-icon):not(.modern)::before {
|
||||
color: rgb(66, 139, 202);
|
||||
}
|
||||
|
||||
.note.success.flat {
|
||||
background: rgb(239, 248, 240);
|
||||
}
|
||||
|
||||
.note.success.modern {
|
||||
border-color: rgb(208, 230, 190);
|
||||
background: rgb(223, 240, 216);
|
||||
color: rgb(60, 118, 61);
|
||||
}
|
||||
|
||||
.note.success.modern a:not(.btn) {
|
||||
color: rgb(60, 118, 61);
|
||||
}
|
||||
|
||||
.note.success.modern a:not(.btn):hover {
|
||||
color: rgb(50, 86, 44);
|
||||
}
|
||||
|
||||
.note.success:not(.modern) {
|
||||
border-left-color: rgb(92, 184, 92);
|
||||
}
|
||||
|
||||
.note.success:not(.modern) h2,
|
||||
.note.success:not(.modern) h3,
|
||||
.note.success:not(.modern) h4,
|
||||
.note.success:not(.modern) h5,
|
||||
.note.success:not(.modern) h6 {
|
||||
color: rgb(92, 184, 92);
|
||||
}
|
||||
|
||||
.note.success:not(.no-icon)::before {
|
||||
content: "\e66c";
|
||||
font-family: haofont!important;
|
||||
}
|
||||
|
||||
.note.success:not(.no-icon):not(.modern)::before {
|
||||
color: rgb(92, 184, 92);
|
||||
}
|
||||
|
||||
.note.warning.flat {
|
||||
background: rgb(253, 248, 234);
|
||||
}
|
||||
|
||||
.note.warning.modern {
|
||||
border-color: rgb(250, 228, 205);
|
||||
background: rgb(252, 244, 227);
|
||||
color: rgb(138, 109, 59);
|
||||
}
|
||||
|
||||
.note.warning.modern a:not(.btn) {
|
||||
color: rgb(138, 109, 59);
|
||||
}
|
||||
|
||||
.note.warning.modern a:not(.btn):hover {
|
||||
color: rgb(113, 79, 48);
|
||||
}
|
||||
|
||||
.note.warning:not(.modern) {
|
||||
border-left-color: rgb(240, 173, 78);
|
||||
}
|
||||
|
||||
.note.warning:not(.modern) h2,
|
||||
.note.warning:not(.modern) h3,
|
||||
.note.warning:not(.modern) h4,
|
||||
.note.warning:not(.modern) h5,
|
||||
.note.warning:not(.modern) h6 {
|
||||
color: rgb(240, 173, 78);
|
||||
}
|
||||
|
||||
.note.warning:not(.no-icon)::before {
|
||||
content: "\e61a";
|
||||
font-family: haofont!important;
|
||||
}
|
||||
|
||||
.note.warning:not(.no-icon):not(.modern)::before {
|
||||
color: rgb(240, 173, 78);
|
||||
}
|
||||
|
||||
.note.danger.flat {
|
||||
background: rgb(252, 241, 242);
|
||||
}
|
||||
|
||||
.note.danger.modern {
|
||||
border-color: rgb(235, 205, 210);
|
||||
background: rgb(242, 223, 223);
|
||||
color: rgb(169, 68, 66);
|
||||
}
|
||||
|
||||
.note.danger.modern a:not(.btn) {
|
||||
color: rgb(169, 68, 66);
|
||||
}
|
||||
|
||||
.note.danger.modern a:not(.btn):hover {
|
||||
color: rgb(132, 51, 63);
|
||||
}
|
||||
|
||||
.note.danger:not(.modern) {
|
||||
border-left-color: rgb(217, 83, 79);
|
||||
}
|
||||
|
||||
.note.danger:not(.modern) h2,
|
||||
.note.danger:not(.modern) h3,
|
||||
.note.danger:not(.modern) h4,
|
||||
.note.danger:not(.modern) h5,
|
||||
.note.danger:not(.modern) h6 {
|
||||
color: rgb(217, 83, 79);
|
||||
}
|
||||
|
||||
.note.danger:not(.no-icon)::before {
|
||||
content: "";
|
||||
}
|
||||
|
||||
.note.danger:not(.no-icon):not(.modern)::before {
|
||||
color: rgb(217, 83, 79);
|
||||
}
|
||||
|
||||
#article-container .tabs {
|
||||
position: relative;
|
||||
margin: 0px 0px 1rem;
|
||||
|
@ -11670,23 +11257,6 @@ strong {
|
|||
}
|
||||
}
|
||||
|
||||
/* 外挂标签 */
|
||||
|
||||
.note.warning:not(.no-icon):not(.modern)::before {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
height: 30px;
|
||||
color: var(--heo-yellow);
|
||||
}
|
||||
|
||||
.note.warning:not(.modern) {
|
||||
border-radius: 8px;
|
||||
border-width: 1px;
|
||||
border-color: var(--heo-yellow);
|
||||
box-shadow: var(--heo-shadow-border);
|
||||
background: var(--card-bg);
|
||||
}
|
||||
|
||||
/* 链接外挂标签 */
|
||||
#article-container .tag-Link {
|
||||
background: var(--heo-secondbg);
|
||||
|
@ -11740,7 +11310,7 @@ strong {
|
|||
}
|
||||
|
||||
#article-container .tag-Link .tag-link-bottom .tag-link-right .tag-link-title {
|
||||
font-size: 1rem;
|
||||
font-size: 0.94rem;
|
||||
line-height: 1.2;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
|
|
@ -55,6 +55,7 @@
|
|||
<div th:replace="~{modules/right-menu :: right-menu}"></div>
|
||||
|
||||
<div>
|
||||
<script th:src="${assets_link + '/js/custom.js'}"></script>
|
||||
<script th:src="${assets_link + '/js/utils.js' + theme_version}"></script>
|
||||
<script th:src="${assets_link + '/js/main.js' + theme_version}"></script>
|
||||
<script charset="utf-8" data-pjax th:src="${assets_link + '/zhheo/blogex.js' + theme_version}"></script>
|
||||
|
@ -122,6 +123,7 @@
|
|||
<script th:if="${theme.config.envelope_comment.enable_danmu}" th:src="${assets_link + '/libs/twikoo/easy-Danmaku.min.js'}" id="Danmaku"></script>
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
let pjaxSelectors = ['title', '#config-diff', '#body-wrap', '#rightside-config-hide', '#rightside-config-show', '.js-pjax','#site-config']
|
||||
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
</th:block>
|
||||
</th:block>
|
||||
<div id="article-container">
|
||||
<section class="timeline page-1 loadings">
|
||||
<section class="page-1 loadings">
|
||||
<div class="type-gallery ">
|
||||
<div class="gallery">
|
||||
<div class="fj-gallery-item"
|
||||
|
@ -47,7 +47,7 @@
|
|||
</h1>
|
||||
</th:block>
|
||||
<div id="article-container">
|
||||
<section class="timeline page-1 loadings">
|
||||
<section class="page-1 loadings">
|
||||
<div class="type-gallery ">
|
||||
<div class="gallery">
|
||||
<div class="fj-gallery-item"
|
||||
|
|
Loading…
Reference in New Issue