ci: add GitHub Actions workflows for upstream sync and release automation

This commit is contained in:
Your Name 2026-03-04 17:19:56 +08:00
parent 0d201261c8
commit 5d421e8a76
7035 changed files with 106275 additions and 0 deletions

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,45 @@
<h1 id="測試文件-test-document">測試文件 Test Document</h1>
<p>這是一個<strong>多語言</strong>測試文件。</p>
<h2 id="中文內容">中文內容</h2>
<p>繁體中文測試:台灣、香港、澳門 簡體中文测试:北京、上海、广州</p>
<h2 id="english-content">English Content</h2>
<p>This is an English paragraph for testing.</p>
<h2 id="日本語コンテンツ">日本語コンテンツ</h2>
<p>これは日本語のテスト段落です。</p>
<h2 id="한국어-콘텐츠">한국어 콘텐츠</h2>
<p>이것은 한국어 테스트 단락입니다.</p>
<h3 id="表格-table">表格 Table</h3>
<table>
<thead>
<tr>
<th>語言</th>
<th>Language</th>
<th>問候</th>
</tr>
</thead>
<tbody>
<tr>
<td>中文</td>
<td>Chinese</td>
<td>你好</td>
</tr>
<tr>
<td>英文</td>
<td>English</td>
<td>Hello</td>
</tr>
<tr>
<td>日文</td>
<td>Japanese</td>
<td>こんにちは</td>
</tr>
<tr>
<td>韓文</td>
<td>Korean</td>
<td>안녕하세요</td>
</tr>
</tbody>
</table>
<h3 id="代碼-code">代碼 Code</h3>
<div class="sourceCode" id="cb1"><pre
class="sourceCode javascript"><code class="sourceCode javascript"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a><span class="bu">console</span><span class="op">.</span><span class="fu">log</span>(<span class="st">&quot;Hello, 世界!&quot;</span>)<span class="op">;</span></span></code></pre></div>

View file

@ -0,0 +1,45 @@
\section{測試文件 Test
Document}\label{ux6e2cux8a66ux6587ux4ef6-test-document}
這是一個\textbf{多語言}測試文件。
\subsection{中文內容}\label{ux4e2dux6587ux5167ux5bb9}
繁體中文測試:台灣、香港、澳門 簡體中文测试:北京、上海、广州
\subsection{English Content}\label{english-content}
This is an English paragraph for testing.
\subsection{日本語コンテンツ}\label{ux65e5ux672cux8a9eux30b3ux30f3ux30c6ux30f3ux30c4}
これは日本語のテスト段落です。
\subsection{한국어 콘텐츠}\label{uxd55cuxad6duxc5b4-uxcf58uxd150uxce20}
이것은 한국어 테스트 단락입니다.
\subsubsection{表格 Table}\label{ux8868ux683c-table}
{\def\LTcaptype{none} % do not increment counter
\begin{longtable}[]{@{}lll@{}}
\toprule\noalign{}
語言 & Language & 問候 \\
\midrule\noalign{}
\endhead
\bottomrule\noalign{}
\endlastfoot
中文 & Chinese & 你好 \\
英文 & English & Hello \\
日文 & Japanese & こんにちは \\
韓文 & Korean & 안녕하세요 \\
\end{longtable}
}
\subsubsection{代碼 Code}\label{ux4ee3ux78bc-code}
\begin{Shaded}
\begin{Highlighting}[]
\BuiltInTok{console}\OperatorTok{.}\FunctionTok{log}\NormalTok{(}\StringTok{"Hello, 世界!"}\NormalTok{)}\OperatorTok{;}
\end{Highlighting}
\end{Shaded}

View file

@ -0,0 +1,43 @@
測試文件 Test Document
======================
這是一個\ **多語言**\ 測試文件。
中文內容
--------
繁體中文測試:台灣、香港、澳門 簡體中文测试:北京、上海、广州
English Content
---------------
This is an English paragraph for testing.
日本語コンテンツ
----------------
これは日本語のテスト段落です。
한국어 콘텐츠
-------------
이것은 한국어 테스트 단락입니다.
表格 Table
~~~~~~~~~~
==== ======== ==========
語言 Language 問候
==== ======== ==========
中文 Chinese 你好
英文 English Hello
日文 Japanese こんにちは
韓文 Korean 안녕하세요
==== ======== ==========
代碼 Code
~~~~~~~~~
.. code:: javascript
console.log("Hello, 世界!");

View file

@ -0,0 +1,31 @@
# 測試文件 Test Document
這是一個**多語言**測試文件。
## 中文內容
繁體中文測試:台灣、香港、澳門
簡體中文测试:北京、上海、广州
## English Content
This is an English paragraph for testing.
## 日本語コンテンツ
これは日本語のテスト段落です。
## 한국어 콘텐츠
이것은 한국어 테스트 단락입니다.
### 表格 Table
| 語言 | Language | 問候 |
|------|----------|------|
| 中文 | Chinese | 你好 |
| 英文 | English | Hello |
| 日文 | Japanese | こんにちは |
| 韓文 | Korean | 안녕하세요 |
### 代碼 Code
```javascript
console.log("Hello, 世界!");
```

View file

@ -0,0 +1,35 @@
# 測試文件 Test Document
這是一個**多語言**測試文件。
## 中文內容
繁體中文測試:台灣、香港、澳門
簡體中文测试:北京、上海、广州
## English Content
This is an English paragraph for testing.
## 日本語コンテンツ
これは日本語のテスト段落です。
## 한국어 콘텐츠
이것은 한국어 테스트 단락입니다.
### 表格 Table
| 語言 | Language | 問候 |
| ---- | -------- | ---------- |
| 中文 | Chinese | 你好 |
| 英文 | English | Hello |
| 日文 | Japanese | こんにちは |
| 韓文 | Korean | 안녕하세요 |
### 代碼 Code
```javascript
console.log("Hello, 世界!");
```

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,11 @@
# 特殊字元測試
&amp; &lt; &gt; " ' ` ~ ! @ # $ % ^ & * ( ) - = + [ ] { } | \ : ; < > ? , . /
數學符號:∑ ∏ ∫ √ ∞ ≠ ≤ ≥ ± × ÷ π
表情符號:😀 🎉 🚀 ❤️ 🔥 💯 ✅ ❌
CJK 擴展:㊀ ㊁ ㊂ ㊃ ㊄
全形標點:「」『』【】〈〉《》

View file

@ -0,0 +1,11 @@
# 特殊字元測試
&amp; &lt; &gt; " ' ` ~ ! @ # $ % ^ & \* ( ) - = + [ ] { } | \ : ; < > ? , . /
數學符號:∑ ∏ ∫ √ ∞ ≠ ≤ ≥ ± × ÷ π
表情符號:😀 🎉 🚀 ❤️ 🔥 💯 ✅ ❌
CJK 擴展:㊀ ㊁ ㊂ ㊃ ㊄
全形標點:「」『』【】〈〉《》

View file

@ -0,0 +1,7 @@
<h1 id="特殊字元測試">特殊字元測試</h1>
<p>&amp; &lt; &gt; ` ~ ! @ # $ % ^ &amp; * ( ) - = + [ ] { } |  : ;
&lt; &gt; ? , . /</p>
<p>數學符號:∑ ∏ ∫ √ ∞ ≠ ≤ ≥ ± × ÷ π</p>
<p>表情符號:😀 🎉 🚀 ❤️ 🔥 💯 ✅ ❌</p>
<p>CJK 擴展:㊀ ㊁ ㊂ ㊃ ㊄</p>
<p>全形標點:「」『』【】〈〉《》</p>

View file

@ -0,0 +1,45 @@
<h1 id="測試文件-test-document">測試文件 Test Document</h1>
<p>這是一個<strong>多語言</strong>測試文件。</p>
<h2 id="中文內容">中文內容</h2>
<p>繁體中文測試:台灣、香港、澳門 簡體中文测试:北京、上海、广州</p>
<h2 id="english-content">English Content</h2>
<p>This is an English paragraph for testing.</p>
<h2 id="日本語コンテンツ">日本語コンテンツ</h2>
<p>これは日本語のテスト段落です。</p>
<h2 id="한국어-콘텐츠">한국어 콘텐츠</h2>
<p>이것은 한국어 테스트 단락입니다.</p>
<h3 id="表格-table">表格 Table</h3>
<table>
<thead>
<tr>
<th>語言</th>
<th>Language</th>
<th>問候</th>
</tr>
</thead>
<tbody>
<tr>
<td>中文</td>
<td>Chinese</td>
<td>你好</td>
</tr>
<tr>
<td>英文</td>
<td>English</td>
<td>Hello</td>
</tr>
<tr>
<td>日文</td>
<td>Japanese</td>
<td>こんにちは</td>
</tr>
<tr>
<td>韓文</td>
<td>Korean</td>
<td>안녕하세요</td>
</tr>
</tbody>
</table>
<h3 id="代碼-code">代碼 Code</h3>
<div class="sourceCode" id="cb1"><pre
class="sourceCode javascript"><code class="sourceCode javascript"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a><span class="bu">console</span><span class="op">.</span><span class="fu">log</span>(<span class="st">&quot;Hello, 世界!&quot;</span>)<span class="op">;</span></span></code></pre></div>

View file

@ -0,0 +1,31 @@
# 測試文件 Test Document
這是一個**多語言**測試文件。
## 中文內容
繁體中文測試:台灣、香港、澳門
簡體中文测试:北京、上海、广州
## English Content
This is an English paragraph for testing.
## 日本語コンテンツ
これは日本語のテスト段落です。
## 한국어 콘텐츠
이것은 한국어 테스트 단락입니다.
### 表格 Table
| 語言 | Language | 問候 |
|------|----------|------|
| 中文 | Chinese | 你好 |
| 英文 | English | Hello |
| 日文 | Japanese | こんにちは |
| 韓文 | Korean | 안녕하세요 |
### 代碼 Code
```javascript
console.log("Hello, 世界!");
```

View file

@ -0,0 +1,35 @@
# 測試文件 Test Document
這是一個**多語言**測試文件。
## 中文內容
繁體中文測試:台灣、香港、澳門
簡體中文测试:北京、上海、广州
## English Content
This is an English paragraph for testing.
## 日本語コンテンツ
これは日本語のテスト段落です。
## 한국어 콘텐츠
이것은 한국어 테스트 단락입니다.
### 表格 Table
| 語言 | Language | 問候 |
| ---- | -------- | ---------- |
| 中文 | Chinese | 你好 |
| 英文 | English | Hello |
| 日文 | Japanese | こんにちは |
| 韓文 | Korean | 안녕하세요 |
### 代碼 Code
```javascript
console.log("Hello, 世界!");
```

View file

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" width="200" height="200" viewBox="0 0 200 200">
<rect x="10" y="10" width="180" height="180" fill="#4285f4" rx="20"/>
<circle cx="100" cy="100" r="50" fill="#ffffff"/>
<text x="100" y="110" text-anchor="middle" font-size="24" fill="#333">測試</text>
</svg>

After

Width:  |  Height:  |  Size: 343 B

View file

@ -0,0 +1,22 @@
# Test Document
This is a **test** document for E2E testing.
## Code Example
```javascript
console.log("Hello, World!");
```
## List
1. First item
2. Second item
3. Third item
## Table
| Name | Value |
|------|-------|
| A | 1 |
| B | 2 |

Binary file not shown.

View file

@ -0,0 +1,30 @@
<h1 id="test-document">Test Document</h1>
<p>This is a <strong>test</strong> document for E2E testing.</p>
<h2 id="code-example">Code Example</h2>
<div class="sourceCode" id="cb1"><pre
class="sourceCode javascript"><code class="sourceCode javascript"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a><span class="bu">console</span><span class="op">.</span><span class="fu">log</span>(<span class="st">&quot;Hello, World!&quot;</span>)<span class="op">;</span></span></code></pre></div>
<h2 id="list">List</h2>
<ol type="1">
<li>First item</li>
<li>Second item</li>
<li>Third item</li>
</ol>
<h2 id="table">Table</h2>
<table>
<thead>
<tr>
<th>Name</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<tr>
<td>A</td>
<td>1</td>
</tr>
<tr>
<td>B</td>
<td>2</td>
</tr>
</tbody>
</table>

View file

@ -0,0 +1,28 @@
Test Document
=============
This is a **test** document for E2E testing.
Code Example
------------
.. code:: javascript
console.log("Hello, World!");
List
----
1. First item
2. Second item
3. Third item
Table
-----
==== =====
Name Value
==== =====
A 1
B 2
==== =====

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,119 @@
# 格式轉換矩陣測試報告
生成時間: 2026-01-25T05:11:57.336Z
## 摘要
| 指標 | 值 |
|------|----|
| 轉換器數量 | 14 |
| 總組合數 | 609 |
| 測試數 | 20 |
| 通過 | 20 |
| 失敗 | 0 |
| 跳過 | 445 |
| 成功率 | 100.0% |
## 轉換器詳情
### inkscape
- 狀態: ❌ 不可用
- 輸入格式 (2): svg, svgz
- 輸出格式 (6): png, pdf, eps, ps, emf, wmf
- 組合數: 12
### imagemagick
- 狀態: ❌ 不可用
- 輸入格式 (12): png, jpg, jpeg, gif, bmp, tiff, tif, webp, ico, ppm, pgm, pbm
- 輸出格式 (13): png, jpg, jpeg, gif, bmp, tiff, tif, webp, ico, ppm, pgm, pbm, pdf
- 組合數: 144
### graphicsmagick
- 狀態: ❌ 不可用
- 輸入格式 (6): png, jpg, jpeg, gif, bmp, tiff
- 輸出格式 (7): png, jpg, jpeg, gif, bmp, tiff, pdf
- 組合數: 36
### pandoc
- 狀態: ✅ 可用
- 輸入格式 (4): markdown, html, rst, latex
- 輸出格式 (8): html, docx, odt, rst, latex, mediawiki, asciidoc, org
- 組合數: 29
### dasel
- 狀態: ❌ 不可用
- 輸入格式 (6): json, yaml, yml, toml, xml, csv
- 輸出格式 (6): json, yaml, yml, toml, xml, csv
- 組合數: 30
### potrace
- 狀態: ❌ 不可用
- 輸入格式 (5): bmp, pbm, pgm, ppm, pnm
- 輸出格式 (5): svg, eps, ps, pdf, dxf
- 組合數: 25
### vtracer
- 狀態: ❌ 不可用
- 輸入格式 (4): png, jpg, jpeg, bmp
- 輸出格式 (1): svg
- 組合數: 4
### resvg
- 狀態: ❌ 不可用
- 輸入格式 (2): svg, svgz
- 輸出格式 (2): png, pdf
- 組合數: 4
### vips
- 狀態: ❌ 不可用
- 輸入格式 (7): png, jpg, jpeg, tiff, webp, heif, avif
- 輸出格式 (7): png, jpg, jpeg, tiff, webp, heif, avif
- 組合數: 42
### libreoffice
- 狀態: ❌ 不可用
- 輸入格式 (11): doc, docx, xls, xlsx, ppt, pptx, odt, ods, odp, rtf, html
- 輸出格式 (9): pdf, docx, xlsx, pptx, odt, ods, odp, html, txt
- 組合數: 92
### calibre
- 狀態: ❌ 不可用
- 輸入格式 (9): epub, mobi, azw, azw3, pdf, html, txt, rtf, docx
- 輸出格式 (7): epub, mobi, azw3, pdf, html, txt, docx
- 組合數: 56
### ffmpeg
- 狀態: ❌ 不可用
- 輸入格式 (11): mp3, wav, ogg, flac, aac, m4a, mp4, mkv, avi, mov, webm
- 輸出格式 (12): mp3, wav, ogg, flac, aac, m4a, mp4, mkv, avi, mov, webm, gif
- 組合數: 121
### libheif
- 狀態: ❌ 不可用
- 輸入格式 (3): heic, heif, avif
- 輸出格式 (3): jpg, jpeg, png
- 組合數: 9
### libjxl
- 狀態: ❌ 不可用
- 輸入格式 (5): png, jpg, jpeg, gif, apng
- 輸出格式 (1): jxl
- 組合數: 5
## 失敗的測試
無失敗的測試 ✅

View file

@ -0,0 +1 @@
Test content for docx

View file

@ -0,0 +1 @@
Test content for epub

View file

@ -0,0 +1,4 @@
<!DOCTYPE html>
<html><head><title>Test</title></head>
<body><h1>測試</h1><p>內容</p></body>
</html>

View file

@ -0,0 +1,5 @@
\documentclass{article}
\begin{document}
\section{測試}
這是 LaTeX 測試。
\end{document}

View file

@ -0,0 +1,7 @@
# 測試文檔
這是測試內容。
## 列表
- 項目 1
- 項目 2

View file

@ -0,0 +1,8 @@
# 測試文檔
這是測試內容。
## 列表
- 項目 1
- 項目 2

View file

@ -0,0 +1 @@
Test content for odt

View file

@ -0,0 +1,4 @@
測試標題
========
這是 reStructuredText 測試。

View file

@ -0,0 +1,2 @@
測試文字內容
Test content

View file

@ -0,0 +1,3 @@
== 測試
內容

View file

@ -0,0 +1,3 @@
\section{測試}\label{ux6e2cux8a66}
內容

View file

@ -0,0 +1,3 @@
= 測試 =
內容

View file

@ -0,0 +1,5 @@
* 測試
:PROPERTIES:
:CUSTOM_ID: 測試
:END:
內容

View file

@ -0,0 +1,4 @@
測試
====
內容

View file

@ -0,0 +1,3 @@
== 測試
這是 LaTeX 測試。

View file

@ -0,0 +1,2 @@
<h1 id="測試">測試</h1>
<p>這是 LaTeX 測試。</p>

View file

@ -0,0 +1,3 @@
= 測試 =
這是 LaTeX 測試。

View file

@ -0,0 +1,5 @@
* 測試
:PROPERTIES:
:CUSTOM_ID: 測試
:END:
這是 LaTeX 測試。

View file

@ -0,0 +1,4 @@
測試
====
這是 LaTeX 測試。

View file

@ -0,0 +1,8 @@
== 測試文檔
這是測試內容。
=== 列表
* 項目 1
* 項目 2

View file

@ -0,0 +1,7 @@
<h1 id="測試文檔">測試文檔</h1>
<p>這是測試內容。</p>
<h2 id="列表">列表</h2>
<ul>
<li>項目 1</li>
<li>項目 2</li>
</ul>

View file

@ -0,0 +1,13 @@
\section{測試文檔}\label{ux6e2cux8a66ux6587ux6a94}
這是測試內容。
\subsection{列表}\label{ux5217ux8868}
\begin{itemize}
\tightlist
\item
項目 1
\item
項目 2
\end{itemize}

View file

@ -0,0 +1,8 @@
= 測試文檔 =
這是測試內容。
== 列表 ==
* 項目 1
* 項目 2

View file

@ -0,0 +1,12 @@
* 測試文檔
:PROPERTIES:
:CUSTOM_ID: 測試文檔
:END:
這是測試內容。
** 列表
:PROPERTIES:
:CUSTOM_ID: 列表
:END:
- 項目 1
- 項目 2

View file

@ -0,0 +1,10 @@
測試文檔
========
這是測試內容。
列表
----
- 項目 1
- 項目 2

View file

@ -0,0 +1,3 @@
== 測試標題
這是 reStructuredText 測試。

View file

@ -0,0 +1,2 @@
<h1 id="測試標題">測試標題</h1>
<p>這是 reStructuredText 測試。</p>

View file

@ -0,0 +1,3 @@
\section{測試標題}\label{ux6e2cux8a66ux6a19ux984c}
這是 reStructuredText 測試。

View file

@ -0,0 +1,3 @@
= 測試標題 =
這是 reStructuredText 測試。

View file

@ -0,0 +1,5 @@
* 測試標題
:PROPERTIES:
:CUSTOM_ID: 測試標題
:END:
這是 reStructuredText 測試。

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="1" height="1"><rect fill="red" width="1" height="1"/></svg>

After

Width:  |  Height:  |  Size: 106 B

View file

@ -0,0 +1,93 @@
{
"languages": [
{
"code": "zh",
"name": "Simplified Chinese",
"nativeName": "简体中文",
"testPhrase": "这是一个测试"
},
{
"code": "zh-TW",
"name": "Traditional Chinese",
"nativeName": "繁體中文",
"testPhrase": "這是一個測試"
},
{
"code": "en",
"name": "English",
"nativeName": "English",
"testPhrase": "This is a test"
},
{
"code": "ja",
"name": "Japanese",
"nativeName": "日本語",
"testPhrase": "これはテストです"
},
{
"code": "ko",
"name": "Korean",
"nativeName": "한국어",
"testPhrase": "이것은 테스트입니다"
},
{
"code": "de",
"name": "German",
"nativeName": "Deutsch",
"testPhrase": "Das ist ein Test"
},
{
"code": "fr",
"name": "French",
"nativeName": "Français",
"testPhrase": "C'est un test"
},
{
"code": "es",
"name": "Spanish",
"nativeName": "Español",
"testPhrase": "Esta es una prueba"
},
{
"code": "ru",
"name": "Russian",
"nativeName": "Русский",
"testPhrase": "Это тест"
},
{
"code": "pt",
"name": "Portuguese",
"nativeName": "Português",
"testPhrase": "Isso é um teste"
},
{
"code": "it",
"name": "Italian",
"nativeName": "Italiano",
"testPhrase": "Questo è un test"
},
{
"code": "ar",
"name": "Arabic",
"nativeName": "العربية",
"testPhrase": "هذا اختبار"
},
{
"code": "th",
"name": "Thai",
"nativeName": "ไทย",
"testPhrase": "นี่คือการทดสอบ"
},
{
"code": "vi",
"name": "Vietnamese",
"nativeName": "Tiếng Việt",
"testPhrase": "Đây là một bài kiểm tra"
}
],
"translators": [
"pdf2zh",
"babeldoc"
],
"generatedAt": "2026-01-25T05:11:58.188Z"
}

View file

@ -0,0 +1,20 @@
{
"generatedAt": "2026-01-25T05:11:58.189Z",
"translators": {
"pdf2zh": {
"name": "pdf2zh",
"available": false
},
"babeldoc": {
"name": "babeldoc",
"available": false
}
},
"stats": {
"total": 6,
"passed": 0,
"failed": 0,
"skipped": 6,
"results": []
}
}