@tenjuu99/blog 0.3.5 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/dev-server +3 -1
- package/bin/server +8 -1
- package/docs/develop.md +36 -6
- package/docs/dictionary.json +1806 -0
- package/lib/dir.js +3 -0
- package/lib/distribute.js +19 -5
- package/lib/files.js +2 -0
- package/lib/filter.js +7 -0
- package/lib/generate.js +5 -0
- package/lib/helper.js +3 -0
- package/lib/imageDistributor.js +59 -0
- package/lib/indexer.js +3 -0
- package/lib/pageData.js +7 -0
- package/lib/render.js +5 -0
- package/lib/replaceVariablesFilter.js +5 -0
- package/lib/server/helper/parseRequestBody.js +46 -0
- package/lib/server.js +7 -3
- package/lib/tryServer.js +3 -1
- package/package.json +8 -5
- package/packages/breadcrumbs/helper/breadcrumbs.js +3 -0
- package/packages/category/helper/category.js +13 -0
- package/packages/category/helper/categoryIndexer.js +12 -0
- package/packages/category/helper/pagination.js +5 -0
- package/packages/editor/css/editor.css +98 -10
- package/packages/editor/helper/sidebarTree.js +11 -0
- package/packages/editor/js/autoPreviewInitializer.js +11 -0
- package/packages/editor/js/autoSaveInitializer.js +15 -0
- package/packages/editor/js/debouncer.js +21 -0
- package/packages/editor/js/editor.js +370 -45
- package/packages/editor/js/frontmatter_template.js +67 -0
- package/packages/editor/js/imageReferenceExtractor.js +19 -0
- package/packages/editor/js/image_upload.js +12 -0
- package/packages/editor/js/tree.js +81 -0
- package/packages/editor/server/changeReflector.js +47 -0
- package/packages/editor/server/converters/sharp.js +14 -0
- package/packages/editor/server/createConverter.js +26 -0
- package/packages/editor/server/get_editor_target.js +2 -2
- package/packages/editor/server/get_frontmatter_templates.js +22 -0
- package/packages/editor/server/get_publication_status.js +29 -0
- package/packages/editor/server/get_sidebar.js +51 -0
- package/packages/editor/server/image_upload.js +122 -0
- package/packages/editor/server/preview.js +49 -19
- package/packages/editor/server/publicationStatus.js +27 -0
- package/packages/editor/server/publish.js +135 -0
- package/packages/editor/server/publishTargetCollector.js +19 -0
- package/packages/editor/server/save.js +97 -0
- package/packages/editor/server/sidebarStatusCollector.js +17 -0
- package/packages/editor/template/editor.html +28 -22
- package/src-sample/converters/webp.js +20 -0
- package/src-sample/helper/add.js +2 -0
- package/src-sample/helper/index.js +9 -0
- package/src-sample/image/test.jpg +0 -0
- package/packages/editor/server/editor.js +0 -43
package/bin/dev-server
CHANGED
|
@@ -10,6 +10,7 @@ const __filename = fileURLToPath(import.meta.url);
|
|
|
10
10
|
const libDir = path.dirname(__filename) + '/../lib/'
|
|
11
11
|
const binDir = path.dirname(__filename) + '/../bin/'
|
|
12
12
|
|
|
13
|
+
const imageDir = path.join(srcDir, 'image')
|
|
13
14
|
watchers.push({
|
|
14
15
|
paths: [srcDir, libDir, packageDirCore],
|
|
15
16
|
event: ['change', 'add', 'unlink'],
|
|
@@ -19,7 +20,8 @@ watchers.push({
|
|
|
19
20
|
console.error('restarting')
|
|
20
21
|
},
|
|
21
22
|
watchOptions: {
|
|
22
|
-
ignoreInitial: true
|
|
23
|
+
ignoreInitial: true,
|
|
24
|
+
ignored: (filePath) => filePath.startsWith(imageDir)
|
|
23
25
|
}
|
|
24
26
|
})
|
|
25
27
|
watch()
|
package/bin/server
CHANGED
|
@@ -4,4 +4,11 @@ import server from '../lib/server.js'
|
|
|
4
4
|
import generate from '../lib/generate.js'
|
|
5
5
|
|
|
6
6
|
generate()
|
|
7
|
-
server().listen(process.env.PORT || 8000)
|
|
7
|
+
const httpServer = server().listen(process.env.PORT || 8000)
|
|
8
|
+
|
|
9
|
+
const shutdown = () => {
|
|
10
|
+
httpServer.close(() => process.exit(0))
|
|
11
|
+
setTimeout(() => process.exit(0), 15000).unref()
|
|
12
|
+
}
|
|
13
|
+
process.on('SIGINT', shutdown)
|
|
14
|
+
process.on('SIGTERM', shutdown)
|
package/docs/develop.md
CHANGED
|
@@ -105,8 +105,8 @@ tenjuu99-blog/
|
|
|
105
105
|
|
|
106
106
|
1. **Red(テスト作成)**: 失敗するテストを書く
|
|
107
107
|
```bash
|
|
108
|
-
#
|
|
109
|
-
# 例:
|
|
108
|
+
# tests/ ディレクトリにテストファイルを作成
|
|
109
|
+
# 例: tests/category-tree.test.js
|
|
110
110
|
```
|
|
111
111
|
|
|
112
112
|
2. **Green(最小限の実装)**: テストがパスする最小限のコードを書く
|
|
@@ -124,13 +124,13 @@ tenjuu99-blog/
|
|
|
124
124
|
|
|
125
125
|
**テストファイルの配置:**
|
|
126
126
|
|
|
127
|
-
- `
|
|
127
|
+
- `tests/` ディレクトリに `*.test.js` 形式で配置
|
|
128
128
|
- Node.js標準のテストランナーを使用(`node --test`)
|
|
129
129
|
|
|
130
130
|
**テストの例:**
|
|
131
131
|
|
|
132
132
|
```javascript
|
|
133
|
-
//
|
|
133
|
+
// tests/example.test.js
|
|
134
134
|
import { test } from 'node:test'
|
|
135
135
|
import assert from 'node:assert'
|
|
136
136
|
import { myFunction } from '../lib/myModule.js'
|
|
@@ -143,7 +143,7 @@ test('機能の説明', () => {
|
|
|
143
143
|
|
|
144
144
|
**実装例(カテゴリー機能の場合):**
|
|
145
145
|
|
|
146
|
-
1. `
|
|
146
|
+
1. `tests/category-tree.test.js` - カテゴリーツリー構築のテスト(12件)
|
|
147
147
|
2. `packages/category/helper/category.js` - 実装
|
|
148
148
|
3. `npm test` - テスト実行
|
|
149
149
|
4. すべてパス後、次のテストを作成
|
|
@@ -480,7 +480,7 @@ npm run test:watch # ウォッチモード
|
|
|
480
480
|
新しいテストを追加する場合:
|
|
481
481
|
|
|
482
482
|
```javascript
|
|
483
|
-
//
|
|
483
|
+
// tests/example.test.js
|
|
484
484
|
import { test } from 'node:test';
|
|
485
485
|
import assert from 'node:assert';
|
|
486
486
|
|
|
@@ -493,6 +493,36 @@ test('テストの説明', () => {
|
|
|
493
493
|
|
|
494
494
|
ユニットテストに加えて、`src-sample/` での手動テストも推奨します。
|
|
495
495
|
|
|
496
|
+
### 受け入れテスト
|
|
497
|
+
|
|
498
|
+
ブラウザを使ったE2Eテストには **Playwright** を使用します。
|
|
499
|
+
|
|
500
|
+
**配置場所**: `tests/acceptance/*.spec.ts`
|
|
501
|
+
|
|
502
|
+
**実行方法**:
|
|
503
|
+
|
|
504
|
+
```bash
|
|
505
|
+
npx playwright test # 全受け入れテスト実行
|
|
506
|
+
npx playwright test --ui # UIモードで実行
|
|
507
|
+
npx playwright test --headed # ブラウザを表示して実行
|
|
508
|
+
```
|
|
509
|
+
|
|
510
|
+
**対象**: ユニットテストでは検証しにくいブラウザ操作・画面表示を伴う機能(主に `packages/editor` の操作フロー)。
|
|
511
|
+
|
|
512
|
+
**テストファイルの例**:
|
|
513
|
+
|
|
514
|
+
```typescript
|
|
515
|
+
// tests/acceptance/example.spec.ts
|
|
516
|
+
import { test, expect } from '@playwright/test';
|
|
517
|
+
|
|
518
|
+
test('機能の説明', async ({ page }) => {
|
|
519
|
+
await page.goto('/');
|
|
520
|
+
await expect(page.getByRole('heading')).toBeVisible();
|
|
521
|
+
});
|
|
522
|
+
```
|
|
523
|
+
|
|
524
|
+
設定は `playwright.config.ts` を参照してください。開発サーバーは `node bin/server`(ポート8000)が自動起動します。
|
|
525
|
+
|
|
496
526
|
## コントリビューション
|
|
497
527
|
|
|
498
528
|
### コーディングスタイル
|