diff --git a/.gitea/workflows/sphinx_deploy.yml b/.gitea/workflows/sphinx_deploy.yml
index c18c70c..a04cf74 100644
--- a/.gitea/workflows/sphinx_deploy.yml
+++ b/.gitea/workflows/sphinx_deploy.yml
@@ -7,122 +7,86 @@ on:
jobs:
deploy:
- # 只在PR被成功merge到master时运行
if: github.event.pull_request.merged == true && github.base_ref == 'master'
runs-on: linux
steps:
- # 第一步:获取master分支最新代码
- - name: Fetch latest master branch code
+ # 第一步:更新主工作树
+ - name: Update main worktree
run: |
- echo "=== Fetching latest master branch code ==="
-
- # 确保目录存在
- if [ ! -d "/home/ly0kos/work/test_env" ]; then
- echo "Cloning repository..."
- git clone http://localhost:3000/yuysh/Manlink_Doc.git /home/ly0kos/work/test_env
- fi
-
+ echo "=== Updating main worktree ==="
cd /home/ly0kos/work/test_env
- # 清理任何未提交的更改
- git reset --hard
- git clean -fd
-
- # 获取所有远程更新
git fetch --all --prune
-
- # 切换到master分支并获取最新代码
git checkout master
- git pull origin master --force
+ git pull origin master
- echo "✓ Latest master code fetched"
- echo "Current commit: $(git log --oneline -1)"
+ echo "✓ Main worktree updated"
- # 第二步:复用生产虚拟环境
- - name: Reuse or update production Python environment
+ # 第二步:复用共享虚拟环境
+ - name: Reuse shared virtual environment
run: |
- echo "Setting up production Python environment"
+ echo "=== Using shared virtual environment ==="
cd /home/ly0kos/work/test_env
+ source .venv-shared/bin/activate
- # 检查虚拟环境是否存在
- if [ ! -d ".venv-prod" ]; then
- echo "Creating new production virtual environment..."
- python -m venv .venv-prod
- source .venv-prod/bin/activate
- pip install --upgrade pip
- # 安装基础依赖
- pip install sphinx sphinx-rtd-theme
- else
- echo "Reusing existing production virtual environment..."
- source .venv-prod/bin/activate
- fi
-
- # 检查并更新依赖
+ # 检查主分支的requirements.txt是否有更新
if [ -f "requirements.txt" ]; then
- echo "Checking for dependency updates in production..."
REQ_MOD_TIME=$(stat -c %Y requirements.txt 2>/dev/null || echo 0)
- VENV_MOD_TIME=$(cat .venv-prod/last_update.txt 2>/dev/null || echo 0)
+ VENV_MOD_TIME=$(cat .venv-shared/last_update.txt 2>/dev/null || echo 0)
if [ $REQ_MOD_TIME -gt $VENV_MOD_TIME ]; then
- echo "Production requirements updated, installing new dependencies..."
+ echo "Master branch requirements updated, installing new dependencies..."
pip install -r requirements.txt
- echo $REQ_MOD_TIME > .venv-prod/last_update.txt
- else
- echo "No changes in production requirements, skipping installation"
+ echo $REQ_MOD_TIME > .venv-shared/last_update.txt
fi
fi
-
- # 显示环境信息
- echo "Production environment ready:"
- pip list | grep sphinx
- # 第三步:从master分支构建文档
+ # 第三步:从主工作树构建文档
- name: Build documentation from master
run: |
- echo "=== Building production documentation from master ==="
+ echo "=== Building production documentation ==="
cd /home/ly0kos/work/test_env
- source .venv-prod/bin/activate
+ source .venv-shared/bin/activate
- # 清理旧构建
rm -rf build/
-
- # 构建文档
sphinx-build -b html source build -v -j 4
echo "✓ Production build completed"
# 第四步:部署到Web服务器
- name: Deploy to web server
run: |
- echo "=== Deploying to production web server ==="
+ echo "=== Deploying to production ==="
cd /home/ly0kos/work/test_env
- echo "[INFO] Removing old files..."
- sudo rm -rf /var/www/docs_dev/*
- echo "[INFO] Copying new files..."
- sudo cp -r build/* /var/www/docs_dev/
+ rm -rf /var/www/docs_dev/*
+ cp -r build/* /var/www/docs_dev/
+ chown -R www-data:www-data /var/www/docs_dev/
+ chmod -R 755 /var/www/docs_dev/
- # 设置正确的文件权限
- sudo chown -R www-data:www-data /var/www/docs_dev/
- sudo chmod -R 755 /var/www/docs_dev/
-
- echo "✓ Documentation deployed to /var/www/docs_dev/"
+ echo "✓ Documentation deployed"
- # 第五步:清理PR预览文件
- - name: Cleanup PR previews
+ # 第五步:清理PR工作树
+ - name: Cleanup PR worktree
run: |
- echo "Cleaning up PR preview files for branch: ${{ github.head_ref }}"
+ echo "=== Cleaning up PR worktree ==="
+ cd /home/ly0kos/work/test_env
- # 清理预览文件(保留虚拟环境)
- preview_dir="/home/ly0kos/work/test_env/pr-builds/${{ github.head_ref }}"
- if [ -d "$preview_dir" ]; then
- rm -rf "$preview_dir"
- echo "Removed preview for PR branch: ${{ github.head_ref }}"
+ WORKTREE_DIR="/home/ly0kos/work/test_env/worktrees/${{ github.head_ref }}"
+ if [ -d "$WORKTREE_DIR" ]; then
+ git worktree remove "$WORKTREE_DIR" --force
+ echo "✓ Removed worktree for ${{ github.head_ref }}"
+ fi
+
+ # 清理预览文件
+ PREVIEW_DIR="/home/ly0kos/work/test_env/pr-builds/${{ github.head_ref }}"
+ if [ -d "$PREVIEW_DIR" ]; then
+ rm -rf "$PREVIEW_DIR"
+ echo "✓ Removed preview for ${{ github.head_ref }}"
fi
# 第六步:验证部署
- name: Verify deployment
run: |
- echo "Production deployment completed successfully!"
- echo "Web server contents:"
+ echo "Production deployment completed!"
ls -la /var/www/docs_dev/ | head -10
\ No newline at end of file
diff --git a/.gitea/workflows/sphinx_test.yml b/.gitea/workflows/sphinx_test.yml
index b4b9447..7f63053 100644
--- a/.gitea/workflows/sphinx_test.yml
+++ b/.gitea/workflows/sphinx_test.yml
@@ -11,108 +11,108 @@ jobs:
runs-on: linux
steps:
- # 第一步:获取PR分支最新代码
- - name: Fetch latest PR branch code
+ # 第一步:设置主工作树和虚拟环境
+ - name: Setup main worktree and virtual environment
run: |
- echo "=== Fetching latest code for PR branch: ${{ github.head_ref }} ==="
+ echo "=== Setting up main worktree ==="
- # 如果目录不存在,克隆仓库
+ # 如果主目录不存在,克隆仓库
if [ ! -d "/home/ly0kos/work/test_env" ]; then
- echo "Cloning repository..."
+ echo "Cloning repository to main worktree..."
git clone http://localhost:3000/yuysh/Manlink_Doc.git /home/ly0kos/work/test_env
- fi
-
- # 进入目录并获取最新代码
- cd /home/ly0kos/work/test_env
-
- # 清理任何未提交的更改
- git reset --hard
- git clean -fd
-
- # 获取所有远程分支和更新
- git fetch --all --prune
-
- # 切换到PR分支并获取最新代码
- git checkout ${{ github.head_ref }}
- git pull origin ${{ github.head_ref }} --force
-
- echo "✓ Latest code fetched for branch: ${{ github.head_ref }}"
- echo "Current commit: $(git log --oneline -1)"
-
- # 第二步:复用或创建Python虚拟环境
- - name: Reuse or update Python virtual environment
- run: |
- echo "Setting up Python environment for PR branch: ${{ github.head_ref }}"
- cd /home/ly0kos/work/test_env
-
- # 检查虚拟环境是否存在
- if [ ! -d ".venv-pr" ]; then
- echo "Creating new virtual environment..."
- python -m venv .venv-pr
- source .venv-pr/bin/activate
- pip install --upgrade pip
- # 安装基础依赖
- pip install sphinx sphinx-rtd-theme
- else
- echo "Reusing existing virtual environment..."
- source .venv-pr/bin/activate
- fi
-
- # 检查requirements.txt是否更新
- if [ -f "requirements.txt" ]; then
- echo "Checking for dependency updates..."
- # 获取requirements.txt的修改时间
- REQ_MOD_TIME=$(stat -c %Y requirements.txt 2>/dev/null || echo 0)
- # 获取虚拟环境中记录的最后更新时间
- VENV_MOD_TIME=$(cat .venv-pr/last_update.txt 2>/dev/null || echo 0)
+ cd /home/ly0kos/work/test_env
- if [ $REQ_MOD_TIME -gt $VENV_MOD_TIME ]; then
- echo "Requirements updated, installing new dependencies..."
+ # 创建共享虚拟环境
+ python -m venv .venv-shared
+ source .venv-shared/bin/activate
+ pip install --upgrade pip
+ pip install sphinx sphinx-rtd-theme
+
+ # 记录初始依赖状态
+ if [ -f "requirements.txt" ]; then
pip install -r requirements.txt
- # 记录更新时间
- echo $REQ_MOD_TIME > .venv-pr/last_update.txt
- else
- echo "No changes in requirements, skipping dependency installation"
+ stat -c %Y requirements.txt > .venv-shared/last_update.txt
fi
else
- echo "No requirements.txt found, using existing packages"
+ cd /home/ly0kos/work/test_env
+ git fetch --all --prune
+ git checkout master
+ git pull origin master
fi
- # 显示当前环境信息
- echo "Python: $(python --version)"
- echo "Pip: $(pip --version)"
- echo "Installed packages:"
- pip list | grep sphinx
+ echo "✓ Main worktree ready"
- # 第三步:构建文档(从PR分支)
- - name: Build documentation from PR branch
+ # 第二步:为PR分支创建工作树
+ - name: Create worktree for PR branch
run: |
- echo "=== Building documentation from PR branch: ${{ github.head_ref }} ==="
+ echo "=== Creating worktree for PR branch: ${{ github.head_ref }} ==="
cd /home/ly0kos/work/test_env
- source .venv-pr/bin/activate
- # 确保源目录存在
- if [ ! -d "source" ]; then
- echo "Error: source directory not found!"
- exit 1
+ # 清理可能存在的旧工作树
+ WORKTREE_DIR="/home/ly0kos/work/test_env/worktrees/${{ github.head_ref }}"
+ if [ -d "$WORKTREE_DIR" ]; then
+ echo "Removing existing worktree..."
+ git worktree remove "$WORKTREE_DIR" --force 2>/dev/null || true
+ rm -rf "$WORKTREE_DIR" 2>/dev/null || true
fi
- # 清理旧构建
- rm -rf build/
+ # 创建新的工作树
+ mkdir -p "/home/ly0kos/work/test_env/worktrees"
+ git fetch origin ${{ github.head_ref }}:${{ github.head_ref }} --force
+ git worktree add "/home/ly0kos/work/test_env/worktrees/${{ github.head_ref }}" ${{ github.head_ref }} --force
+
+ echo "✓ Worktree created at: /home/ly0kos/work/test_env/worktrees/${{ github.head_ref }}"
+
+ # 第三步:复用共享虚拟环境并检查依赖更新
+ - name: Reuse shared virtual environment
+ run: |
+ echo "=== Reusing shared virtual environment ==="
+ cd /home/ly0kos/work/test_env
+ WORKTREE_DIR="/home/ly0kos/work/test_env/worktrees/${{ github.head_ref }}"
+
+ # 使用主工作树的共享虚拟环境
+ source .venv-shared/bin/activate
+
+ # 检查PR分支的requirements.txt是否有更新
+ if [ -f "$WORKTREE_DIR/requirements.txt" ]; then
+ echo "Checking for dependency updates in PR branch..."
+ REQ_MOD_TIME=$(stat -c %Y "$WORKTREE_DIR/requirements.txt" 2>/dev/null || echo 0)
+ VENV_MOD_TIME=$(cat .venv-shared/last_update.txt 2>/dev/null || echo 0)
+
+ if [ $REQ_MOD_TIME -gt $VENV_MOD_TIME ]; then
+ echo "PR branch requirements updated, installing new dependencies..."
+ pip install -r "$WORKTREE_DIR/requirements.txt"
+ echo $REQ_MOD_TIME > .venv-shared/last_update.txt
+ echo "Dependencies updated from PR branch"
+ else
+ echo "No changes in requirements, using existing packages"
+ fi
+ fi
+
+ echo "Python: $(python --version)"
+ echo "Sphinx: $(sphinx-build --version 2>/dev/null || echo 'Not installed')"
+
+ # 第四步:在工作树中构建文档
+ - name: Build documentation in worktree
+ run: |
+ echo "=== Building documentation in worktree ==="
+ cd /home/ly0kos/work/test_env
+ WORKTREE_DIR="/home/ly0kos/work/test_env/worktrees/${{ github.head_ref }}"
+ source .venv-shared/bin/activate
# 构建文档
- sphinx-build -b html source build -v -j 4
+ cd "$WORKTREE_DIR"
+ sphinx-build -b html source "$WORKTREE_DIR/build" -v -j 4
- # 将构建结果复制到预览位置
+ # 复制到预览位置
mkdir -p /home/ly0kos/work/test_env/pr-builds/
rm -rf /home/ly0kos/work/test_env/pr-builds/${{ github.head_ref }}
- cp -r build /home/ly0kos/work/test_env/pr-builds/${{ github.head_ref }}
+ cp -r "$WORKTREE_DIR/build" /home/ly0kos/work/test_env/pr-builds/${{ github.head_ref }}
echo "✓ Build completed for PR branch: ${{ github.head_ref }}"
- # 第四步:验证构建结果
+ # 第五步:验证构建结果
- name: Verify build
run: |
echo "Build output for PR ${{ github.head_ref }}:"
- ls -la /home/ly0kos/work/test_env/pr-builds/${{ github.head_ref }}/ | head -10
- echo "Preview available at: /home/ly0kos/work/test_env/pr-builds/${{ github.head_ref }}/index.html"
\ No newline at end of file
+ ls -la /home/ly0kos/work/test_env/pr-builds/${{ github.head_ref }}/ | head -10
\ No newline at end of file
diff --git a/source/Mars_1KS/DC/DPS/M060/Feature.md b/source/Mars_1KS/DC/DPS/M060/Feature.md
index 2a66548..0388f5d 100644
--- a/source/Mars_1KS/DC/DPS/M060/Feature.md
+++ b/source/Mars_1KS/DC/DPS/M060/Feature.md
@@ -19,4 +19,4 @@
P/N:JC124M060
:::
-[^1] Not Applicable for 1A Range, 1A Range Only have Postive and source
\ No newline at end of file
+[^1]: Not Applicable for 1A Range, 1A Range Only have Postive and source
\ No newline at end of file
diff --git a/source/Mars_1KS/DC/DPS/M060/VI/ForceV.md b/source/Mars_1KS/DC/DPS/M060/VI/ForceV.md
index 734b488..251d235 100644
--- a/source/Mars_1KS/DC/DPS/M060/VI/ForceV.md
+++ b/source/Mars_1KS/DC/DPS/M060/VI/ForceV.md
@@ -2,7 +2,7 @@
|Specification|Value|Condition|
|---|---|---|
-|Voltage Range|-8V to 13V|w/o Current Clamp [^1]|
+|Voltage Range|-8V to 13V|w/o Current Clamp|
|Current Clamp|±5uA,±20uA,±200uA,±2mA,±60mA,1A||
|DC Accuracy|0.1%|After Calibration|
|Linearity Error|±0.0002V||
diff --git a/test.mmd b/test.mmd
deleted file mode 100644
index 764284c..0000000
--- a/test.mmd
+++ /dev/null
@@ -1,35 +0,0 @@
-flowchart TD
- n1["光耦"] --> n2["Pin5->Pin4存在二极管"]
- n3["DPS小档位无法输出大电压"] --> n1 & n4["运放"]
- n4 --> n6["In+/In-电压范围为Vdd~Vss,超出范围则会被内部二极管钳位"] & n12["Vout不超过Vdd"]
- n6 --> n7@{ label: "In+通过1K电阻连至光耦1@Pin4" }
- n7 --> n8@{ label: "Force/MeasH->IN+
Pin5->Pin4" }
- n10["Vout+串联肖特基二极管至光耦2@Pin4"] --> n9@{ label: "Force/MeasH->Vout
Pin5->Pin4" }
- n2 --> n11@{ label: "如果Pin5电压>Pin4电压" }
- n11 --> n5["二极管导通,存在电流通路"]
- n12 --> n10
- n8 --> n13["小档位Force 13V"]
- n9 --> n13
- n13 --> n14@{ label: "Force=13
Vout=9.6V" } & n15@{ label: "Force=13
IN+ = 9V
" }
- n15 --> n11
- n14 --> n11
- n5 --> n18["ForceV ClampI"]
- n18 --> n20["电流通过1K电阻"] & n21["肖特基二极管反向导通"]
- n20 -- "5uA/20uA/200uA Clamp" --> n24["Force电压小于期望值"]
- n21 -- "2mA Clamp" --> n24
- n1@{ shape: rounded}
- n3@{ shape: rounded}
- n4@{ shape: rounded}
- n6@{ shape: rect}
- n12@{ shape: rect}
- n7@{ shape: rect}
- n8@{ shape: rect}
- n10@{ shape: rect}
- n9@{ shape: rect}
- n11@{ shape: diam}
- n5@{ shape: rounded}
- n13@{ shape: rounded}
- n14@{ shape: rect}
- n15@{ shape: rect}
- n20@{ shape: rounded}
- n21@{ shape: rounded}
\ No newline at end of file