mirror of
https://github.com/sendevia/website.git
synced 2026-03-05 23:32:45 +08:00
Compare commits
8 Commits
2bc889a388
...
a7e0528c24
| Author | SHA1 | Date | |
|---|---|---|---|
| a7e0528c24 | |||
| 29885ae607 | |||
| dabb2f6164 | |||
| 1247943a5e | |||
| b822fe6227 | |||
| f01232241f | |||
| c8b917bda5 | |||
| aa3cdbc695 |
65
.github/workflows/docker-build.yml
vendored
Normal file
65
.github/workflows/docker-build.yml
vendored
Normal file
@@ -0,0 +1,65 @@
|
||||
name: Build and Push Docker Image
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
paths:
|
||||
- "package.json"
|
||||
- "Dockerfile"
|
||||
- ".github/workflows/docker-build.yml"
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
packages: write
|
||||
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v6
|
||||
|
||||
- name: Extract version from package.json
|
||||
id: version
|
||||
run: |
|
||||
VERSION=$(grep '"version"' package.json | sed 's/.*"\([^"]*\)".*/\1/' | sed 's/(.*)//g')
|
||||
echo "version=$VERSION" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
|
||||
- name: Login to Docker Hub
|
||||
uses: docker/login-action@v4
|
||||
with:
|
||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v4
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ github.actor }}
|
||||
password: ${{ secrets.GHCR_TOKEN }}
|
||||
|
||||
- name: Extract metadata
|
||||
id: meta
|
||||
uses: docker/metadata-action@v5
|
||||
with:
|
||||
images: |
|
||||
docker.io/${{ secrets.DOCKERHUB_USERNAME }}/website
|
||||
ghcr.io/${{ github.repository }}
|
||||
tags: |
|
||||
type=raw,value=latest
|
||||
type=raw,value=${{ steps.version.outputs.version }}
|
||||
|
||||
- name: Build and push
|
||||
uses: docker/build-push-action@v6
|
||||
with:
|
||||
context: .
|
||||
push: true
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
cache-from: type=gha
|
||||
cache-to: type=gha,mode=max
|
||||
2
.gitignore
vendored
2
.gitignore
vendored
@@ -5,3 +5,5 @@ node_modules
|
||||
package-lock.json
|
||||
cache/
|
||||
dist/
|
||||
.agents
|
||||
nginx-config.conf
|
||||
|
||||
@@ -28,7 +28,7 @@ const siteVersion = theme.value.siteVersion;
|
||||
</div>
|
||||
<div class="beian-info">
|
||||
<div>
|
||||
<a href="https://beian.miit.gov.cn/" target="_blank">黑ICP备2024016516号-1</a>
|
||||
<a href="https://beian.miit.gov.cn/" target="_blank">黑ICP备2024016516号</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -48,11 +48,21 @@ const copyShortLink = async () => {
|
||||
const collectHeadings = () => {
|
||||
if (!isClient()) return;
|
||||
const nodes = Array.from(document.querySelectorAll("h1[id], h2[id]")) as HTMLElement[];
|
||||
headings.value = nodes.map((n) => ({
|
||||
id: n.id,
|
||||
text: n.textContent?.trim() || n.id,
|
||||
level: +n.tagName.replace("H", ""),
|
||||
}));
|
||||
|
||||
headings.value = nodes.map((n) => {
|
||||
// 克隆节点并移除行内锚点
|
||||
const clone = n.cloneNode(true) as HTMLElement;
|
||||
const inlineAnchors = Array.from(clone.querySelectorAll(".AnchorLink.inline")) as HTMLElement[];
|
||||
inlineAnchors.forEach((el) => el.remove());
|
||||
|
||||
const text = clone.textContent?.trim() || n.id;
|
||||
|
||||
return {
|
||||
id: n.id,
|
||||
text,
|
||||
level: +n.tagName.replace("H", ""),
|
||||
};
|
||||
});
|
||||
};
|
||||
|
||||
/** 更新指示器(高亮边框)的位置和尺寸 */
|
||||
|
||||
27
Dockerfile
Normal file
27
Dockerfile
Normal file
@@ -0,0 +1,27 @@
|
||||
# 构建阶段
|
||||
FROM node:trixie-slim AS builder
|
||||
|
||||
# 安装 git
|
||||
RUN apt-get update && apt-get install -y git \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# 设置工作目录
|
||||
WORKDIR /app
|
||||
|
||||
# 拉取项目代码
|
||||
RUN git clone https://github.com/sendevia/website .
|
||||
|
||||
# 安装依赖并构建
|
||||
RUN npm i && npm run docs:build
|
||||
|
||||
# 最终阶段
|
||||
FROM nginx:stable-perl
|
||||
|
||||
# 从构建阶段复制 dist 产物到 workdir
|
||||
COPY --from=builder /app/.vitepress/dist /app/dist
|
||||
|
||||
# 暴露端口(80 HTTP 和 443 HTTPS)
|
||||
EXPOSE 80 443
|
||||
|
||||
# 启动 nginx
|
||||
CMD ["nginx", "-g", "daemon off;"]
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"version": "26.3.4(308)",
|
||||
"version": "26.3.4(316)",
|
||||
"scripts": {
|
||||
"update-version": "bash ./scripts/update-version.sh",
|
||||
"docs:dev": "vitepress dev",
|
||||
|
||||
Reference in New Issue
Block a user