内置主题标签

This commit is contained in:
1152958806@qq.com 2023-08-27 22:32:13 +08:00
parent 15d6fabd10
commit caa422fd05
9 changed files with 2306 additions and 443 deletions

View File

@ -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>`;
// }
// }
// );
});

View File

@ -163,7 +163,7 @@ document.addEventListener('DOMContentLoaded', function () {
const jqLoadAndRun = () => { const jqLoadAndRun = () => {
const $fancyboxEle = GLOBAL_CONFIG.lightbox === 'fancybox' 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 fbLengthNoZero = $fancyboxEle.length > 0
const $jgEle = document.querySelectorAll('#article-container .gallery') const $jgEle = document.querySelectorAll('#article-container .gallery')

File diff suppressed because one or more lines are too long

View File

@ -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>

1
templates/assets/libs/hls/hls.min.js vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@ -146,6 +146,10 @@ i.haofont {
line-height: 1; line-height: 1;
} }
.todolist-item i.haofont {
display: var(--fa-display,inline-block);
}
/* 旧版css */ /* 旧版css */
html { html {
line-height: 1.15; line-height: 1.15;
@ -327,8 +331,7 @@ template {
#article-container h6::before, #article-container h6::before,
#post .post-copyright::before, #post .post-copyright::before,
#post .post-outdate-notice::before, #post .post-outdate-notice::before,
.fontawesomeIcon, .fontawesomeIcon {
.note:not(.no-icon)::before {
display: inline-block; display: inline-block;
font-weight: 600; font-weight: 600;
font-style: normal; font-style: normal;
@ -4523,422 +4526,6 @@ blockquote.pullquote.right {
background-color: rgb(92, 184, 92); 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 { #article-container .tabs {
position: relative; position: relative;
margin: 0px 0px 1rem; 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 { #article-container .tag-Link {
background: var(--heo-secondbg); background: var(--heo-secondbg);
@ -11740,7 +11310,7 @@ strong {
} }
#article-container .tag-Link .tag-link-bottom .tag-link-right .tag-link-title { #article-container .tag-Link .tag-link-bottom .tag-link-right .tag-link-title {
font-size: 1rem; font-size: 0.94rem;
line-height: 1.2; line-height: 1.2;
pointer-events: none; pointer-events: none;
} }

View File

@ -55,6 +55,7 @@
<div th:replace="~{modules/right-menu :: right-menu}"></div> <div th:replace="~{modules/right-menu :: right-menu}"></div>
<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/utils.js' + theme_version}"></script>
<script th:src="${assets_link + '/js/main.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> <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 th:if="${theme.config.envelope_comment.enable_danmu}" th:src="${assets_link + '/libs/twikoo/easy-Danmaku.min.js'}" id="Danmaku"></script>
<script> <script>
let pjaxSelectors = ['title', '#config-diff', '#body-wrap', '#rightside-config-hide', '#rightside-config-show', '.js-pjax','#site-config'] let pjaxSelectors = ['title', '#config-diff', '#body-wrap', '#rightside-config-hide', '#rightside-config-show', '.js-pjax','#site-config']

View File

@ -24,7 +24,7 @@
</th:block> </th:block>
</th:block> </th:block>
<div id="article-container"> <div id="article-container">
<section class="timeline page-1 loadings"> <section class="page-1 loadings">
<div class="type-gallery "> <div class="type-gallery ">
<div class="gallery"> <div class="gallery">
<div class="fj-gallery-item" <div class="fj-gallery-item"
@ -47,7 +47,7 @@
</h1> </h1>
</th:block> </th:block>
<div id="article-container"> <div id="article-container">
<section class="timeline page-1 loadings"> <section class="page-1 loadings">
<div class="type-gallery "> <div class="type-gallery ">
<div class="gallery"> <div class="gallery">
<div class="fj-gallery-item" <div class="fj-gallery-item"