diff --git a/.github/workflows/static.yml b/.github/workflows/static.yml
index a340101..069bf68 100644
--- a/.github/workflows/static.yml
+++ b/.github/workflows/static.yml
@@ -1,43 +1,32 @@
-# Simple workflow for deploying static content to GitHub Pages
name: Deploy static content to Pages
on:
- # Runs on pushes targeting the default branch
- push:
- branches: ["main"]
-
- # Allows you to run this workflow manually from the Actions tab
- # workflow_dispatch:
-
-# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
+ push:
+ branches: ['main']
+ workflow_dispatch:
permissions:
- contents: read
- pages: write
- id-token: write
-
-# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
-# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
+ contents: read
+ pages: write
+ id-token: write
concurrency:
- group: "pages"
- cancel-in-progress: false
+ group: 'pages'
+ cancel-in-progress: false
jobs:
- # Single deploy job since we're just deploying
- deploy:
- environment:
- name: github-pages
- url: ${{ steps.deployment.outputs.page_url }}
- runs-on: ubuntu-latest
- steps:
- - name: Checkout
- uses: actions/checkout@v4
- - name: Setup Pages
- uses: actions/configure-pages@v5
- - name: Upload artifact
- uses: actions/upload-pages-artifact@v3
- with:
- # Upload entire repository
- path: './pages'
- - name: Deploy to GitHub Pages
- id: deployment
- uses: actions/deploy-pages@v4
+ deploy:
+ environment:
+ name: github-pages
+ url: ${{ steps.deployment.outputs.page_url }}
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+ - name: Setup Pages
+ uses: actions/configure-pages@v5
+ - name: Upload artifact
+ uses: actions/upload-pages-artifact@v3
+ with:
+ path: './pages'
+ - name: Deploy to GitHub Pages
+ id: deployment
+ uses: actions/deploy-pages@v4
diff --git a/.prettierignore b/.prettierignore
index 22e8364..b216235 100644
--- a/.prettierignore
+++ b/.prettierignore
@@ -1 +1,4 @@
-/*
\ No newline at end of file
+glist/
+pages/cglyphlist.js
+pages/jglyphlist.js
+pages/potrace.js
\ No newline at end of file
diff --git a/.prettierrc b/.prettierrc
new file mode 100644
index 0000000..d9384ec
--- /dev/null
+++ b/.prettierrc
@@ -0,0 +1,11 @@
+{
+ "useTabs": true,
+ "tabWidth": 4,
+ "singleQuote": true,
+ "semi": true,
+ "trailingComma": "es5",
+ "printWidth": 200,
+ "bracketSpacing": true,
+ "arrowParens": "always",
+ "endOfLine": "lf"
+}
diff --git a/ChangeLog.md b/ChangeLog.md
index 7b13108..1b511c0 100644
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -2,68 +2,68 @@
## 0.594 - 2025/9/11
-- 若使用者手動新增自訂的全形字元,則該文字不自動產生全形字符。
+- 若使用者手動新增自訂的全形字元,則該文字不自動產生全形字符。
ユーザーが手動で追加した全角文字は自動的に全角グリフを生成しません。
--(僅日文版)新增括號類的直排字符(不知道為什麼多數環境不照UAX#50定義Tr旋轉)。
- (日本語版のみ)括弧類の縦組みグリフを追加(多くの環境でUAX#50のTr定義通りに回転しない理由は不明)
+- (僅日文版)新增括號類的直排字符(不知道為什麼多數環境不照UAX#50定義Tr旋轉)。
+(日本語版のみ)括弧類の縦組みグリフを追加(多くの環境でUAX#50のTr定義通りに回転しない理由は不明)
---
## 0.59 - 2025/8/3
-- 增加背景格線選項。稍微降低歐文參考線位置。
+- 增加背景格線選項。稍微降低歐文參考線位置。
背景グリッドの選択肢を追加。欧文の参考線位置を少し下げました。
-- 解決 iOS Safari 按鈕點兩下容易不小心放大視窗的問題。
+- 解決 iOS Safari 按鈕點兩下容易不小心放大視窗的問題。
iOS Safari でボタンを2回タップすると画面が拡大されてしまう問題を修正。
## 0.58 - 2025/8/3
-- 轉外框改為延遲執行,減少畫布操作時的延遲。(=解決iOS的斷水問題)
+- 轉外框改為延遲執行,減少畫布操作時的延遲。(=解決iOS的斷水問題)
アウトライン変換を遅延実行に変更し、キャンバス操作時の遅延を軽減。(=iOSの描画中断問題を解決)
-- 增加更增強的筆壓敏感度。
+- 增加更增強的筆壓敏感度。
さらに新しい筆圧感度を追加。
-- 減輕觸控筆下筆時容易產生圓球以及直線牽絲的問題。
+- 減輕觸控筆下筆時容易產生圓球以及直線牽絲的問題。
タッチペンで描画開始時に発生しやすい円形の点や直線の糸引き問題を軽減しました。
-- 全形字元改為採用原始位置。
+- 全形字元改為採用原始位置。
全角グリフの位置をオリジナル値に変更。
---
## 0.57 - 2025/7/25
-- 類似 Procreate 的雙指快速碰觸復原功能。
+- 類似 Procreate 的雙指快速碰觸復原功能。
Procreate のような2本指でのタップによる復元機能。
-- 修復筆壓敏感度對於 Apple Pencil 過輕筆畫可能無法正常作畫的問題。
+- 修復筆壓敏感度對於 Apple Pencil 過輕筆畫可能無法正常作畫的問題。
Apple Pencil の筆圧が軽すぎる場合に描画が正常に行われない問題を修正しました。
---
## 0.56 - 2025/7/23
-本日調整的功能均為實驗中,未來都可能還會微調,不保證相容性。
+本日調整的功能均為實驗中,未來都可能還會微調,不保證相容性。
本日調整した機能は全て実験中であり、変更する可能性アリ。互換性は保証できない。
-- 針對沒有筆壓感應的裝置,加上模擬筆壓功能。
+- 針對沒有筆壓感應的裝置,加上模擬筆壓功能。
筆圧非対応デバイスに対し、疑似的な筆圧機能を追加。
-- 對於真實筆壓裝置,加上筆壓敏感度設定。本功能應該可以解決Apple Pencil寫字要很用力的問題。
+- 對於真實筆壓裝置,加上筆壓敏感度設定。本功能應該可以解決Apple Pencil寫字要很用力的問題。
筆圧対応デバイスに対し、筆圧感度設定機能を追加。Apple Pencilの省力化。
---
## 0.55 - 2025/7/22
-- 「我的字就是小」選項。
+- 「我的字就是小」選項。
「小さく書きたい!」オプション。
-- 介面設計微調(放大一些按鈕)
+- 介面設計微調(放大一些按鈕)
UI微調整(ボタンサイズなど)
-- 清除功能可以復原。
+- 清除功能可以復原。
クリア操作も復元可能に。
---
## 0.54 - 2025/7/21
-- 自訂字符功能。
+- 自訂字符功能。
ユーザー文字リスト。
- 程式設定值讀取機制重構(本修改不影響功能,可提高程式可維護性)
@@ -71,14 +71,14 @@
## 0.52 - 2025/7/20
-- 修改一些事件捕捉機制,嘗試提高設備相容性。
+- 修改一些事件捕捉機制,嘗試提高設備相容性。
イベント処理の調整によりデバイスの互換性の向上。
-- 字型下載頁面獨立。
+- 字型下載頁面獨立。
フォントダウンロード機能のページ化。
## 0.50 - 2025/7/20
-- 筆壓功能微調
+- 筆壓功能微調
筆圧対応の微調整。
- (日本語版)般若心経リスト追加。括弧系の縦組みグリフ廃止。
@@ -86,71 +86,81 @@
## 0.48 - 2025/7/19
-- 支援筆刷切換,並支援感壓模式(不支援模擬,需要設備實際傳入筆壓值,如Apple Pencil,或支援手指感壓的裝置)
+- 支援筆刷切換,並支援感壓模式(不支援模擬,需要設備實際傳入筆壓值,如Apple Pencil,或支援手指感壓的裝置)
ブラシ機能。筆圧に対応(筆圧対応のデバイスが必須)。
---
## 0.40 - 2025/7/18
-- 支援鍵盤操作:
+
+- 支援鍵盤操作:
キーボード操作をサポート:
- - 允許使用者使用方向鍵移動字型。
- ユーザーが方向キーを使用して文字を移動できるようにしました。
- - `Z` 鍵復原、`V` 鍵切換畫筆、`C` 鍵切換橡皮擦、`X` 鍵清除。
- `Z` キーで元に戻す、`V` キーでペンに切り替え、`C` キーで消しゴムに切り替え、`X` キーでクリア。
- - `PageDown`、`]`、`Enter`、`Space` 鍵移至下個字。
- `PageDown`、`]`、`Enter`、`Space` キーで次の文字に移動。
- - `PageUp`、`[`、`Shift+Enter` 和 `Shift+Space` 鍵移至上個字。
- `PageUp`、`[`、`Shift+Enter`、`Shift+Space` キーで前の文字に移動。
+ - 允許使用者使用方向鍵移動字型。
+ ユーザーが方向キーを使用して文字を移動できるようにしました。
+ - `Z` 鍵復原、`V` 鍵切換畫筆、`C` 鍵切換橡皮擦、`X` 鍵清除。
+ `Z` キーで元に戻す、`V` キーでペンに切り替え、`C` キーで消しゴムに切り替え、`X` キーでクリア。
+ - `PageDown`、`]`、`Enter`、`Space` 鍵移至下個字。
+ `PageDown`、`]`、`Enter`、`Space` キーで次の文字に移動。
+ - `PageUp`、`[`、`Shift+Enter` 和 `Shift+Space` 鍵移至上個字。
+ `PageUp`、`[`、`Shift+Enter`、`Shift+Space` キーで前の文字に移動。
## 0.39 - 2025/7/18
-- 修復非同步操作導致SVG最後筆畫消失問題。
+
+- 修復非同步操作導致SVG最後筆畫消失問題。
非同期操作による SVG の最後のストロークが消える問題を修正しました。
---
## 0.38 - 2025/7/17
-- 字符列表改為顯示SVG資料,並縮放至產出字型時預期的大小。
+
+- 字符列表改為顯示SVG資料,並縮放至產出字型時預期的大小。
文字リストを SVG データを表示する形式に変更し、生成されるフォントの期待サイズにスケーリングしました。
-- 調整[說明文件](README.md)中關於授權、商標的相關註記。
+- 調整[說明文件](README.md)中關於授權、商標的相關註記。
[README.md](README.md) のライセンスおよび商標に関する注記を調整しました。
---
## 0.37 - 2025/7/11
-- 調整筆壓模式。
+
+- 調整筆壓模式。
筆圧モードを微調整しました。
## 0.35 - 2025/7/11
-- 版面調整(解決部分對話框出界問題)。
-レイアウトを調整し、一部のダイアログが画面外に出る問題を解決しました。
+
+- 版面調整(解決部分對話框出界問題)。
+ レイアウトを調整し、一部のダイアログが画面外に出る問題を解決しました。
- (中文版)增加台文全羅與心經附表。
## 0.33 - 2025/7/11
-- 新增以測試模式輸出字型檔的功能,並作為預設值。
+
+- 新增以測試模式輸出字型檔的功能,並作為預設值。
テストモードによるフォント生成の機能を追加。これをデフォルト状態とします。
---
## 0.32 - 2025/7/10
-- 新增筆壓模式。
+
+- 新增筆壓模式。
筆圧モードに対応しました。
## 0.26 - 2025/7/10
-- 獨立此 Repository,並處理 Action 自動佈版機制。
+
+- 獨立此 Repository,並處理 Action 自動佈版機制。
GitHub Repositoryを分離。
---
## 0.25 - 2025/7/9
-- 依照縮放率設定,調整字身框顯示大小。
+
+- 依照縮放率設定,調整字身框顯示大小。
拡大率の設定に従い、仮想ボディーの枠を表示します。
-- 橡皮擦功能。
+- 橡皮擦功能。
消しゴム機能。
- (日本語版)縦書き `uni308E.vert` グリフ追加。
---
## 0.20 - 2025/7/8
-- 繁中版與日文版同時正式公開。
+
+- 繁中版與日文版同時正式公開。
繁体字中国語版と日本語版を同時に正式公開。
diff --git a/README.md b/README.md
index ab2cd7e..7e327bb 100644
--- a/README.md
+++ b/README.md
@@ -17,40 +17,44 @@ FontDrawer 是一個基於 HTML5 Canvas 的字型繪製工具,允許使用者
## 技術細節
- **主要技術**:
- - HTML5 Canvas
- - JavaScript
- - IndexedDB 用於儲存字型資料
- - [potrace.js](https://github.com/kilobtye/potrace) (GPL 2.0授權)用於將繪製的圖像轉換為 SVG。
- - [opentype.js](https://github.com/opentypejs/opentype.js) (MIT授權)用於生成 OTF 字型檔案。
+
+ - HTML5 Canvas
+ - JavaScript
+ - IndexedDB 用於儲存字型資料
+ - [potrace.js](https://github.com/kilobtye/potrace) (GPL 2.0授權)用於將繪製的圖像轉換為 SVG。
+ - [opentype.js](https://github.com/opentypejs/opentype.js) (MIT授權)用於生成 OTF 字型檔案。
- **檔案結構**:
- - `fontdrawer.js`:主要的字型繪製和生成邏輯。
- - `index.html`:繁體中文界面。
- - `ja.html`:日文界面。
- - `glist/`:用於產生字表的工具。
+ - `fontdrawer.js`:主要的字型繪製和生成邏輯。
+ - `index.html`:繁體中文界面。
+ - `ja.html`:日文界面。
+ - `glist/`:用於產生字表的工具。
## 注意事項
- **字型權利**:
- - 使用者生成的字型檔案的所有權屬於使用者,可自由公開或商業使用。並考慮斗內一下(笑)
+
+ - 使用者生成的字型檔案的所有權屬於使用者,可自由公開或商業使用。並考慮斗內一下(笑)
- **技術限制**:
- - 生成的字型檔案可能不完全符合 CID 格式,部分 Adobe 應用可能無法正確識別為 CJK 字型。
+
+ - 生成的字型檔案可能不完全符合 CID 格式,部分 Adobe 應用可能無法正確識別為 CJK 字型。
- **建議**:
- - 定期備份未完成的字型檔案,以防資料遺失。
+
+ - 定期備份未完成的字型檔案,以防資料遺失。
- **原始碼開源授權**:
- - 本專案程式碼開源授權,但由於引用之專案授權條款不同,請自行評估引用時須遵守之各授權規範。並請勿侵害以下商標等權益:
- - 網站名稱的「字嗨」為在台灣正式註冊的商標。
- - 產出之字型檔,VendorID所填入的「ZIHI」值,為本人於微軟註冊的字型廠商代碼。
+ - 本專案程式碼開源授權,但由於引用之專案授權條款不同,請自行評估引用時須遵守之各授權規範。並請勿侵害以下商標等權益:
+ - 網站名稱的「字嗨」為在台灣正式註冊的商標。
+ - 產出之字型檔,VendorID所填入的「ZIHI」值,為本人於微軟註冊的字型廠商代碼。
## 貢獻者
- **開發者**:[@buttaiwan](https://x.com/buttaiwan)
- **感謝**:
- - [potrace.js](https://github.com/kilobtye/potrace)
- - [opentype.js](https://github.com/opentypejs/opentype.js)
+ - [potrace.js](https://github.com/kilobtye/potrace)
+ - [opentype.js](https://github.com/opentypejs/opentype.js)
## 斗內
@@ -77,36 +81,40 @@ FontDrawer は、HTML5 Canvas を使用したフォント作成ツールで、
## 技術詳細
- **主な技術**:
- - HTML5 Canvas
- - JavaScript
- - IndexedDB を使用してフォントデータを保存
- - [potrace.js](https://github.com/kilobtye/potrace) (GPL 2.0ライセンス)を使用して描画した画像を SVG に変換。
- - [opentype.js](https://github.com/opentypejs/opentype.js) (MITライセンス)を使用して OTF フォントファイルを生成。
+
+ - HTML5 Canvas
+ - JavaScript
+ - IndexedDB を使用してフォントデータを保存
+ - [potrace.js](https://github.com/kilobtye/potrace) (GPL 2.0ライセンス)を使用して描画した画像を SVG に変換。
+ - [opentype.js](https://github.com/opentypejs/opentype.js) (MITライセンス)を使用して OTF フォントファイルを生成。
- **ファイル構成**:
- - `fontdrawer.js`:フォント描画と生成の主要なロジック。
- - `index.html`:繁体字中国語インターフェース。
- - `ja.html`:日本語インターフェース。
- - `glist/`:文字表を生成するためのツール。
+ - `fontdrawer.js`:フォント描画と生成の主要なロジック。
+ - `index.html`:繁体字中国語インターフェース。
+ - `ja.html`:日本語インターフェース。
+ - `glist/`:文字表を生成するためのツール。
## 注意事項
- **フォントの権利**:
- - ユーザーが生成したフォントファイルのすべての権利はユーザーに帰属します。公開や商用利用も自由に行えます。もし気に入っていただけたら、寄付をお願いします(笑)。
+
+ - ユーザーが生成したフォントファイルのすべての権利はユーザーに帰属します。公開や商用利用も自由に行えます。もし気に入っていただけたら、寄付をお願いします(笑)。
- **技術的制限**:
- - 生成されたフォントファイルは CID フォーマットに完全には準拠していないため、一部の Adobe アプリケーションでは CJK フォントとして正しく認識されない可能性があります。
+
+ - 生成されたフォントファイルは CID フォーマットに完全には準拠していないため、一部の Adobe アプリケーションでは CJK フォントとして正しく認識されない可能性があります。
- **推奨事項**:
- - 未完成のフォントファイルは定期的にバックアップを行うことを推奨します。
+
+ - 未完成のフォントファイルは定期的にバックアップを行うことを推奨します。
- **オープンソースライセンス**:
- - 本プロジェクトのコードはオープンソースライセンスで公開されていますが、引用されたプロジェクトのライセンス条項が異なるため、引用時には各ライセンス規約を遵守してください。また、以下の商標権などを侵害しないようご注意ください:
- - ウェブサイト名「字嗨」は台湾で正式に登録された商標です。
- - 生成されたフォントファイルの VendorID に入力される「ZIHI」値は、Microsoft に登録された私個人のフォントベンダーコードです。
+ - 本プロジェクトのコードはオープンソースライセンスで公開されていますが、引用されたプロジェクトのライセンス条項が異なるため、引用時には各ライセンス規約を遵守してください。また、以下の商標権などを侵害しないようご注意ください:
+ - ウェブサイト名「字嗨」は台湾で正式に登録された商標です。
+ - 生成されたフォントファイルの VendorID に入力される「ZIHI」値は、Microsoft に登録された私個人のフォントベンダーコードです。
## 寄付
もしこのツールが役に立ったと思われたら、ぜひ寄付をお願いします!
-[PayPal](https://www.paypal.com/paypalme/buttaiwan) または [台湾ドル建てのクレジット決済](https://p.ecpay.com.tw/930AED7) が可能です。
\ No newline at end of file
+[PayPal](https://www.paypal.com/paypalme/buttaiwan) または [台湾ドル建てのクレジット決済](https://p.ecpay.com.tw/930AED7) が可能です。
diff --git a/pages/contest.html b/pages/contest.html
index b034bf7..d8ef251 100644
--- a/pages/contest.html
+++ b/pages/contest.html
@@ -1,142 +1,145 @@
-