@@ -0,0 +1,16 @@
|
|||||||
|
name: Theme CD
|
||||||
|
|
||||||
|
on:
|
||||||
|
release:
|
||||||
|
types:
|
||||||
|
- published
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
cd:
|
||||||
|
uses: halo-sigs/reusable-workflows/.github/workflows/theme-cd.yaml@v3
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
with:
|
||||||
|
skip-appstore-release: true
|
||||||
|
node-version: 22
|
||||||
|
pnpm-version: 10
|
||||||
+1
-1
@@ -27,4 +27,4 @@ release
|
|||||||
.gradle
|
.gradle
|
||||||
build
|
build
|
||||||
|
|
||||||
dev/data
|
docker/data
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ services:
|
|||||||
image: registry.fit2cloud.com/halo/halo:2.20.10
|
image: registry.fit2cloud.com/halo/halo:2.20.10
|
||||||
volumes:
|
volumes:
|
||||||
- ./data:/root/.halo2
|
- ./data:/root/.halo2
|
||||||
- ../theme-terminal:/root/.halo2/themes/theme-terminal
|
- ../:/root/.halo2/themes/theme-terminal
|
||||||
ports:
|
ports:
|
||||||
- "8090:8090"
|
- "8090:8090"
|
||||||
environment:
|
environment:
|
||||||
第三方依赖
@@ -38,7 +38,7 @@
|
|||||||
& > *:first-child:not(:only-child) {
|
& > *:first-child:not(:only-child) {
|
||||||
margin-right: 10px;
|
margin-right: 10px;
|
||||||
|
|
||||||
@media (max-width: $tablet-max-width) {
|
@media (max-width: $tablet-max-width) {
|
||||||
border: none;
|
border: none;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
@@ -62,7 +62,7 @@
|
|||||||
font-size: 0.75rem;
|
font-size: 0.75rem;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.beian {
|
.beian {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
@@ -10,7 +10,7 @@
|
|||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dividing {
|
.dividing {
|
||||||
flex: 1;
|
flex: 1;
|
||||||
background: repeating-linear-gradient(90deg, var(--foreground), var(--foreground) 2px, transparent 0, transparent 10px);
|
background: repeating-linear-gradient(90deg, var(--foreground), var(--foreground) 2px, transparent 0, transparent 10px);
|
||||||
@@ -33,7 +33,7 @@
|
|||||||
position: relative;
|
position: relative;
|
||||||
flex: 0 0 auto;
|
flex: 0 0 auto;
|
||||||
padding-bottom: 10px;
|
padding-bottom: 10px;
|
||||||
|
|
||||||
&.active {
|
&.active {
|
||||||
color: var(--cyan);
|
color: var(--cyan);
|
||||||
}
|
}
|
||||||
@@ -67,7 +67,7 @@
|
|||||||
margin-right: 0;
|
margin-right: 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&.open {
|
&.open {
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
.logo {
|
.logo {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
|
||||||
.icon {
|
.icon {
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
max-height: 35px;
|
max-height: 35px;
|
||||||
@@ -10,7 +10,7 @@
|
|||||||
object-fit: cover;
|
object-fit: cover;
|
||||||
margin-right: 10px;
|
margin-right: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.text {
|
.text {
|
||||||
display: flex;
|
display: flex;
|
||||||
padding: 3px 10px;
|
padding: 3px 10px;
|
||||||
@@ -218,7 +218,7 @@ ul, ol {
|
|||||||
|
|
||||||
li {
|
li {
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|
||||||
p {
|
p {
|
||||||
margin-top: .125rem;
|
margin-top: .125rem;
|
||||||
margin-bottom: .125rem;
|
margin-bottom: .125rem;
|
||||||
@@ -8,11 +8,13 @@
|
|||||||
border: 1px solid var(--red);
|
border: 1px solid var(--red);
|
||||||
color: var(--red);
|
color: var(--red);
|
||||||
padding: 20px;
|
padding: 20px;
|
||||||
|
|
||||||
*:first-child {
|
*:first-child {
|
||||||
margin-top: 0;
|
margin-top: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
*:last-child {
|
*:last-child {
|
||||||
margin-bottom: 0;
|
margin-bottom: 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -30,10 +32,10 @@
|
|||||||
@media (max-width: $tablet-max-width) {
|
@media (max-width: $tablet-max-width) {
|
||||||
max-width: 660px;
|
max-width: 660px;
|
||||||
}
|
}
|
||||||
|
|
||||||
&:not(:last-of-type) {
|
&:not(:last-of-type) {
|
||||||
border-bottom: 1px solid var(--foreground);
|
border-bottom: 1px solid var(--foreground);
|
||||||
}
|
}
|
||||||
|
|
||||||
%meta {
|
%meta {
|
||||||
font-size: 1rem;
|
font-size: 1rem;
|
||||||
@@ -53,14 +55,14 @@
|
|||||||
|
|
||||||
&-title {
|
&-title {
|
||||||
--border: 3px dotted var(--blue);
|
--border: 3px dotted var(--blue);
|
||||||
|
|
||||||
position: relative;
|
position: relative;
|
||||||
color: var(--blue);
|
color: var(--blue);
|
||||||
margin: 0 0 15px;
|
margin: 0 0 15px;
|
||||||
padding-bottom: 15px;
|
padding-bottom: 15px;
|
||||||
font-weight: normal;
|
font-weight: normal;
|
||||||
border-bottom: var(--border);
|
border-bottom: var(--border);
|
||||||
|
|
||||||
&::after {
|
&::after {
|
||||||
content: "";
|
content: "";
|
||||||
position: absolute;
|
position: absolute;
|
||||||
@@ -138,7 +140,7 @@
|
|||||||
justify-content: center;
|
justify-content: center;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
|
|
||||||
&+ h2 {
|
& + h2 {
|
||||||
margin-top: -10px;
|
margin-top: -10px;
|
||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
}
|
}
|
||||||
@@ -146,7 +148,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.post-list {
|
.post-list {
|
||||||
|
|
||||||
padding: .25rem 0;
|
padding: .25rem 0;
|
||||||
|
|
||||||
.post-date {
|
.post-date {
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
/* 光标样式 */
|
||||||
|
.typed-text::after {
|
||||||
|
content: '|';
|
||||||
|
display: inline-block;
|
||||||
|
opacity: 0;
|
||||||
|
animation: blink 0.7s infinite alternate; /* 闪烁动画 */
|
||||||
|
vertical-align: text-bottom;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 闪烁动画 */
|
||||||
|
@keyframes blink {
|
||||||
|
to {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -6,7 +6,7 @@ export const typewriterEffect = (selectors: string) => {
|
|||||||
|
|
||||||
const text = typedTextContainer.innerText
|
const text = typedTextContainer.innerText
|
||||||
|
|
||||||
// 清楚原有的文本
|
// 清除原有的文本
|
||||||
typedTextContainer.innerText = ''
|
typedTextContainer.innerText = ''
|
||||||
|
|
||||||
// 实现打字机效果
|
// 实现打字机效果
|
||||||
|
之前 宽度: | 高度: | 大小: 11 KiB 之后 宽度: | 高度: | 大小: 11 KiB |
@@ -1,12 +0,0 @@
|
|||||||
# EditorConfig is awesome: https://EditorConfig.org
|
|
||||||
|
|
||||||
# top-most EditorConfig file
|
|
||||||
root = true
|
|
||||||
|
|
||||||
[*]
|
|
||||||
indent_style = space
|
|
||||||
indent_size = 2
|
|
||||||
end_of_line = lf
|
|
||||||
charset = utf-8
|
|
||||||
trim_trailing_whitespace = false
|
|
||||||
insert_final_newline = false
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
module.exports = {
|
|
||||||
root: true,
|
|
||||||
parser: "@typescript-eslint/parser",
|
|
||||||
plugins: ["@typescript-eslint", "prettier"],
|
|
||||||
extends: [
|
|
||||||
"eslint:recommended",
|
|
||||||
"plugin:@typescript-eslint/eslint-recommended",
|
|
||||||
"plugin:@typescript-eslint/recommended",
|
|
||||||
"prettier",
|
|
||||||
],
|
|
||||||
env: {
|
|
||||||
node: true,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
/* 光标样式 */
|
|
||||||
.typed-text::after {
|
|
||||||
content: '|';
|
|
||||||
display: inline-block;
|
|
||||||
opacity: 0;
|
|
||||||
animation: blink 0.7s infinite alternate; /* 闪烁动画 */
|
|
||||||
vertical-align: text-bottom;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* 闪烁动画 */
|
|
||||||
@keyframes blink {
|
|
||||||
to {
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
在新议题中引用
屏蔽一个用户