diff --git a/docs/architecture.md b/docs/architecture.md index fb02220..98b2aca 100644 --- a/docs/architecture.md +++ b/docs/architecture.md @@ -187,7 +187,7 @@ Deep link authority = `publisher.name` → `RuanJiazhen.learn-by-diff`. ## Examples -- `packages/courses-config` — course catalog plus each course’s JSONC. Includes `chibivue-zh-cn` and `demo-course` (git URL + `source.root: examples/demo-source`, chapter `docs` samples: https tutorial, Markdown, PDF). +- `packages/courses-config` — course catalog plus each course’s JSONC. Includes `chibivue-zh-cn`, `chibivue-zh-tw`, `chibivue-ja`, `chibivue-en` (same `book/impls` snapshots; chapter `docs` follow the book locale) and `demo-course` (git URL + `source.root: examples/demo-source`, chapter `docs` samples: https tutorial, Markdown, PDF). - `examples/demo-source` — `start` / `skeleton` / `particles` / `follow` / `glow` snapshots (canvas particles that follow the cursor). - `apps/website` — VitePress docs site (`https://rjiazhen.github.io/learn-by-diff/`). diff --git a/packages/courses-config/README.md b/packages/courses-config/README.md index 8d65c3f..f8f7276 100644 --- a/packages/courses-config/README.md +++ b/packages/courses-config/README.md @@ -11,6 +11,9 @@ | 目录 | 课程 | 语言 | 说明 | | -------------------------------------------------------- | -------------------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | [chibivue-zh-cn](./chibivue-zh-cn/course.jsonc) | chibivue:从一行 Hello, World 开始,逐步构建 | 简体中文 | 对照 [chibivue 在线书](https://book.chibivue.land/zh-cn/00-introduction/010-about.html),从 `createApp` 逐步实现 Vue.js。源码来自 [chibivue](https://github.com/chibivue-land/chibivue) 的 `book/impls`。 | +| [chibivue-zh-tw](./chibivue-zh-tw/course.jsonc) | chibivue:從一行 Hello, World 開始,逐步建置 | 繁體中文 | 對照 [chibivue 線上書](https://book.chibivue.land/zh-tw/00-introduction/010-about.html),從 `createApp` 逐步實作 Vue.js。源碼同樣來自 `book/impls`。 | +| [chibivue-ja](./chibivue-ja/course.jsonc) | chibivue:Hello, World の 1 行から一歩ずつ | 日本語 | [chibivue オンラインブック](https://book.chibivue.land/ja/00-introduction/010-about.html)に沿って、`createApp` から Vue.js を実装する。ソースは同じ `book/impls`。 | +| [chibivue-en](./chibivue-en/course.jsonc) | chibivue: from one line of Hello, World | English | Follow the [chibivue book](https://book.chibivue.land/00-introduction/010-about.html) and implement Vue.js from `createApp`. Snapshots are the same `book/impls` tree. | | [demo-course](./demo-course/.course-config/course.jsonc) | Cursor particles | English | 本仓库内的示例课。快照在 `examples/demo-source`。 | 后续课程会继续以独立目录的形式加入本目录。新增含顶层 `course.jsonc` 的目录时,提交前的钩子会把它补进 `courses.jsonc`。`.course-config/course.jsonc` 这种布局需要手写目录行。 diff --git a/packages/courses-config/chibivue-en/chapters/001-about.jsonc b/packages/courses-config/chibivue-en/chapters/001-about.jsonc new file mode 100644 index 0000000..9a89d7e --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/001-about.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "about", + "title": "Getting Started", + "fromDir": "", + "toDir": "", + "docs": "https://book.chibivue.land/00-introduction/010-about", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-en/chapters/002-what-is-vue.jsonc b/packages/courses-config/chibivue-en/chapters/002-what-is-vue.jsonc new file mode 100644 index 0000000..564e523 --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/002-what-is-vue.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "what-is-vue", + "title": "What is Vue.js?", + "fromDir": "", + "toDir": "", + "docs": "https://book.chibivue.land/00-introduction/020-what-is-vue", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-en/chapters/003-vue-core-components.jsonc b/packages/courses-config/chibivue-en/chapters/003-vue-core-components.jsonc new file mode 100644 index 0000000..2979749 --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/003-vue-core-components.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "vue-core-components", + "title": "Key Elements of Vue.js", + "fromDir": "", + "toDir": "", + "docs": "https://book.chibivue.land/00-introduction/030-vue-core-components", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-en/chapters/004-setup-project.jsonc b/packages/courses-config/chibivue-en/chapters/004-setup-project.jsonc new file mode 100644 index 0000000..d07668c --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/004-setup-project.jsonc @@ -0,0 +1,50 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "setup-project", + "title": "Approach in This Book and Setting Up the Environment", + "fromDir": "", + "toDir": "00_introduction/010_project_setup", + "docs": "https://book.chibivue.land/00-introduction/040-setup-project", + "changedFiles": [ + { + "path": "examples/playground/index.html", + "kind": "U", + }, + { + "path": "examples/playground/package.json", + "kind": "U", + }, + { + "path": "examples/playground/src/main.ts", + "kind": "U", + }, + { + "path": "examples/playground/tsconfig.json", + "kind": "U", + }, + { + "path": "examples/playground/vite.config.ts", + "kind": "U", + }, + { + "path": "package.json", + "kind": "U", + }, + { + "path": "packages/index.ts", + "kind": "U", + }, + { + "path": "pnpm-workspace.yaml", + "kind": "U", + }, + { + "path": "tsconfig.json", + "kind": "U", + }, + { + "path": "vite.config.ts", + "kind": "U", + }, + ], +} diff --git a/packages/courses-config/chibivue-en/chapters/005-create-app-api.jsonc b/packages/courses-config/chibivue-en/chapters/005-create-app-api.jsonc new file mode 100644 index 0000000..343dea8 --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/005-create-app-api.jsonc @@ -0,0 +1,26 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "create-app-api", + "title": "First Rendering and the createApp API", + "fromDir": "00_introduction/010_project_setup", + "toDir": "10_minimum_example/010_create_app", + "docs": "https://book.chibivue.land/10-minimum-example/010-create-app-api", + "changedFiles": [ + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "examples/playground/vite.config.ts", + "kind": "M", + }, + { + "path": "packages/index.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "U", + }, + ], +} diff --git a/packages/courses-config/chibivue-en/chapters/006-package-architecture.jsonc b/packages/courses-config/chibivue-en/chapters/006-package-architecture.jsonc new file mode 100644 index 0000000..34f03ba --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/006-package-architecture.jsonc @@ -0,0 +1,50 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "package-architecture", + "title": "Package Architecture", + "fromDir": "10_minimum_example/010_create_app", + "toDir": "10_minimum_example/015_package_architecture", + "docs": "https://book.chibivue.land/10-minimum-example/015-package-architecture", + "changedFiles": [ + { + "path": "examples/playground/vite.config.ts", + "kind": "M", + }, + { + "path": "packages/index.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/apiCreateApp.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/component.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/componentOptions.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/index.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/renderer.ts", + "kind": "U", + }, + { + "path": "packages/runtime-dom/index.ts", + "kind": "U", + }, + { + "path": "packages/runtime-dom/nodeOps.ts", + "kind": "U", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-en/chapters/007-simple-h-function.jsonc b/packages/courses-config/chibivue-en/chapters/007-simple-h-function.jsonc new file mode 100644 index 0000000..e510abb --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/007-simple-h-function.jsonc @@ -0,0 +1,62 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "simple-h-function", + "title": "Let's Enable Rendering HTML Elements", + "fromDir": "10_minimum_example/015_package_architecture", + "toDir": "10_minimum_example/020_simple_h_function", + "docs": "https://book.chibivue.land/10-minimum-example/020-simple-h-function", + "changedFiles": [ + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "packages/index.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/apiCreateApp.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/h.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/index.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/renderer.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/vnode.ts", + "kind": "U", + }, + { + "path": "packages/runtime-dom/index.ts", + "kind": "M", + }, + { + "path": "packages/runtime-dom/modules/attrs.ts", + "kind": "U", + }, + { + "path": "packages/runtime-dom/modules/events.ts", + "kind": "U", + }, + { + "path": "packages/runtime-dom/nodeOps.ts", + "kind": "M", + }, + { + "path": "packages/runtime-dom/patchProp.ts", + "kind": "U", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-en/chapters/008-event-handler-and-attrs.jsonc b/packages/courses-config/chibivue-en/chapters/008-event-handler-and-attrs.jsonc new file mode 100644 index 0000000..e3d40c8 --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/008-event-handler-and-attrs.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "event-handler-and-attrs", + "title": "Let's work on supporting event handlers and attributes.", + "fromDir": "10_minimum_example/020_simple_h_function", + "toDir": "10_minimum_example/020_simple_h_function", + "docs": "https://book.chibivue.land/10-minimum-example/025-event-handler-and-attrs", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-en/chapters/009-prerequisite-knowledge-for-the-reactivity-system.jsonc b/packages/courses-config/chibivue-en/chapters/009-prerequisite-knowledge-for-the-reactivity-system.jsonc new file mode 100644 index 0000000..6a5a976 --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/009-prerequisite-knowledge-for-the-reactivity-system.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "prerequisite-knowledge-for-the-reactivity-system", + "title": "Prerequisite Knowledge for the Reactivity System", + "fromDir": "10_minimum_example/020_simple_h_function", + "toDir": "10_minimum_example/020_simple_h_function", + "docs": "https://book.chibivue.land/10-minimum-example/030-prerequisite-knowledge-for-the-reactivity-system", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-en/chapters/010-try-implementing-a-minimum-reactivity-system.jsonc b/packages/courses-config/chibivue-en/chapters/010-try-implementing-a-minimum-reactivity-system.jsonc new file mode 100644 index 0000000..7bc4dec --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/010-try-implementing-a-minimum-reactivity-system.jsonc @@ -0,0 +1,54 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "try-implementing-a-minimum-reactivity-system", + "title": "Try Implementing a Small Reactivity System", + "fromDir": "10_minimum_example/020_simple_h_function", + "toDir": "10_minimum_example/030_reactive_system", + "docs": "https://book.chibivue.land/10-minimum-example/035-try-implementing-a-minimum-reactivity-system", + "changedFiles": [ + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "packages/index.ts", + "kind": "M", + }, + { + "path": "packages/reactivity/baseHandler.ts", + "kind": "U", + }, + { + "path": "packages/reactivity/dep.ts", + "kind": "U", + }, + { + "path": "packages/reactivity/effect.ts", + "kind": "U", + }, + { + "path": "packages/reactivity/index.ts", + "kind": "U", + }, + { + "path": "packages/reactivity/reactive.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/apiCreateApp.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/componentOptions.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/renderer.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-en/chapters/011-minimum-virtual-dom.jsonc b/packages/courses-config/chibivue-en/chapters/011-minimum-virtual-dom.jsonc new file mode 100644 index 0000000..9d28de3 --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/011-minimum-virtual-dom.jsonc @@ -0,0 +1,34 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "minimum-virtual-dom", + "title": "A Minimal Virtual DOM", + "fromDir": "10_minimum_example/030_reactive_system", + "toDir": "10_minimum_example/040_vdom_system", + "docs": "https://book.chibivue.land/10-minimum-example/040-minimum-virtual-dom", + "changedFiles": [ + { + "path": "packages/runtime-core/apiCreateApp.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/h.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/renderer.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/vnode.ts", + "kind": "M", + }, + { + "path": "packages/runtime-dom/nodeOps.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-en/chapters/012-minimum-component.jsonc b/packages/courses-config/chibivue-en/chapters/012-minimum-component.jsonc new file mode 100644 index 0000000..bca0c72 --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/012-minimum-component.jsonc @@ -0,0 +1,38 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "minimum-component", + "title": "Aspiring for Component-Oriented Development", + "fromDir": "10_minimum_example/040_vdom_system", + "toDir": "10_minimum_example/050_component_system", + "docs": "https://book.chibivue.land/10-minimum-example/050-minimum-component", + "changedFiles": [ + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/component.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/h.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/renderer.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/vnode.ts", + "kind": "M", + }, + { + "path": "packages/runtime-dom/nodeOps.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-en/chapters/013-component-props.jsonc b/packages/courses-config/chibivue-en/chapters/013-component-props.jsonc new file mode 100644 index 0000000..e3ebf49 --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/013-component-props.jsonc @@ -0,0 +1,34 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "component-props", + "title": "Component Props", + "fromDir": "10_minimum_example/050_component_system", + "toDir": "10_minimum_example/050_component_system2", + "docs": "https://book.chibivue.land/10-minimum-example/051-component-props", + "changedFiles": [ + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/component.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/componentOptions.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/componentProps.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/renderer.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-en/chapters/014-component-emits.jsonc b/packages/courses-config/chibivue-en/chapters/014-component-emits.jsonc new file mode 100644 index 0000000..0fc0d10 --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/014-component-emits.jsonc @@ -0,0 +1,46 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "component-emits", + "title": "Component Emit", + "fromDir": "10_minimum_example/050_component_system2", + "toDir": "10_minimum_example/050_component_system3", + "docs": "https://book.chibivue.land/10-minimum-example/052-component-emits", + "changedFiles": [ + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/component.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/componentEmits.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/componentOptions.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/componentProps.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/renderer.ts", + "kind": "M", + }, + { + "path": "packages/shared/general.ts", + "kind": "U", + }, + { + "path": "packages/shared/index.ts", + "kind": "U", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-en/chapters/015-template-compiler.jsonc b/packages/courses-config/chibivue-en/chapters/015-template-compiler.jsonc new file mode 100644 index 0000000..ba8e08c --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/015-template-compiler.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "template-compiler", + "title": "Understanding the Template Compiler", + "fromDir": "10_minimum_example/050_component_system3", + "toDir": "10_minimum_example/050_component_system3", + "docs": "https://book.chibivue.land/10-minimum-example/060-template-compiler", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-en/chapters/016-template-compiler-impl.jsonc b/packages/courses-config/chibivue-en/chapters/016-template-compiler-impl.jsonc new file mode 100644 index 0000000..8c20f6a --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/016-template-compiler-impl.jsonc @@ -0,0 +1,66 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "template-compiler-impl", + "title": "Implementing the Template Compiler", + "fromDir": "10_minimum_example/050_component_system3", + "toDir": "10_minimum_example/060_template_compiler", + "docs": "https://book.chibivue.land/10-minimum-example/061-template-compiler-impl", + "changedFiles": [ + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/ast.ts", + "kind": "U", + }, + { + "path": "packages/compiler-core/codegen.ts", + "kind": "U", + }, + { + "path": "packages/compiler-core/compile.ts", + "kind": "U", + }, + { + "path": "packages/compiler-core/index.ts", + "kind": "U", + }, + { + "path": "packages/compiler-core/parse.ts", + "kind": "U", + }, + { + "path": "packages/compiler-dom/index.ts", + "kind": "U", + }, + { + "path": "packages/index.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/component.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/componentOptions.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/index.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/renderer.ts", + "kind": "M", + }, + { + "path": "packages/runtime-dom/index.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-en/chapters/017-more-complex-parser.jsonc b/packages/courses-config/chibivue-en/chapters/017-more-complex-parser.jsonc new file mode 100644 index 0000000..8957250 --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/017-more-complex-parser.jsonc @@ -0,0 +1,30 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "more-complex-parser", + "title": "Desire to Write More Complex HTML", + "fromDir": "10_minimum_example/060_template_compiler", + "toDir": "10_minimum_example/060_template_compiler2", + "docs": "https://book.chibivue.land/10-minimum-example/070-more-complex-parser", + "changedFiles": [ + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/codegen.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/compile.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/parse.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-zh-cn/chapters/040-setup-context.jsonc b/packages/courses-config/chibivue-en/chapters/018-template-binding.jsonc similarity index 59% rename from packages/courses-config/chibivue-zh-cn/chapters/040-setup-context.jsonc rename to packages/courses-config/chibivue-en/chapters/018-template-binding.jsonc index dd18c1c..d845b8a 100644 --- a/packages/courses-config/chibivue-zh-cn/chapters/040-setup-context.jsonc +++ b/packages/courses-config/chibivue-en/chapters/018-template-binding.jsonc @@ -1,33 +1,37 @@ { "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", - "id": "setup-context", - "title": "setupContext", - "fromDir": "40_basic_component_system/030_component_proxy", - "toDir": "40_basic_component_system/040_setup_context", - "docs": "https://book.chibivue.land/zh-cn/40-basic-component-system/030-component-proxy-setup-context", + "id": "template-binding", + "title": "Data Binding", + "fromDir": "10_minimum_example/060_template_compiler2", + "toDir": "10_minimum_example/060_template_compiler3", + "docs": "https://book.chibivue.land/10-minimum-example/080-template-binding", "changedFiles": [ { "path": "examples/playground/src/main.ts", "kind": "M", }, { - "path": "packages/reactivity/ref.ts", + "path": "packages/compiler-core/ast.ts", "kind": "M", }, { - "path": "packages/runtime-core/component.ts", + "path": "packages/compiler-core/codegen.ts", "kind": "M", }, { - "path": "packages/runtime-core/componentOptions.ts", + "path": "packages/compiler-core/parse.ts", "kind": "M", }, { - "path": "packages/runtime-core/renderer.ts", + "path": "packages/runtime-core/component.ts", "kind": "M", }, { - "path": "packages/runtime-core/rendererTemplateRef.ts", + "path": "packages/runtime-core/componentOptions.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/renderer.ts", "kind": "M", }, { diff --git a/packages/courses-config/chibivue-en/chapters/019-prerequisite-knowledge-for-the-sfc.jsonc b/packages/courses-config/chibivue-en/chapters/019-prerequisite-knowledge-for-the-sfc.jsonc new file mode 100644 index 0000000..1d78a83 --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/019-prerequisite-knowledge-for-the-sfc.jsonc @@ -0,0 +1,74 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "prerequisite-knowledge-for-the-sfc", + "title": "Developing with SFC (Peripheral Knowledge)", + "fromDir": "10_minimum_example/060_template_compiler3", + "toDir": "10_minimum_example/070_sfc_compiler", + "docs": "https://book.chibivue.land/10-minimum-example/090-prerequisite-knowledge-for-the-sfc", + "changedFiles": [ + { + "path": "plugin-sample/README.md", + "kind": "U", + }, + { + "path": "plugin-sample/index.html", + "kind": "U", + }, + { + "path": "plugin-sample/package.json", + "kind": "U", + }, + { + "path": "plugin-sample/pnpm-lock.yaml", + "kind": "U", + }, + { + "path": "plugin-sample/public/vite.svg", + "kind": "U", + }, + { + "path": "plugin-sample/src/App.vue", + "kind": "U", + }, + { + "path": "plugin-sample/src/assets/vue.svg", + "kind": "U", + }, + { + "path": "plugin-sample/src/components/HelloWorld.vue", + "kind": "U", + }, + { + "path": "plugin-sample/src/main.ts", + "kind": "U", + }, + { + "path": "plugin-sample/src/plugin.sample.js", + "kind": "U", + }, + { + "path": "plugin-sample/src/style.css", + "kind": "U", + }, + { + "path": "plugin-sample/src/vite-env.d.ts", + "kind": "U", + }, + { + "path": "plugin-sample/tsconfig.json", + "kind": "U", + }, + { + "path": "plugin-sample/tsconfig.node.json", + "kind": "U", + }, + { + "path": "plugin-sample/vite.config.ts", + "kind": "U", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-en/chapters/020-parse-sfc.jsonc b/packages/courses-config/chibivue-en/chapters/020-parse-sfc.jsonc new file mode 100644 index 0000000..4c388b5 --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/020-parse-sfc.jsonc @@ -0,0 +1,110 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "parse-sfc", + "title": "Parse SFC", + "fromDir": "10_minimum_example/070_sfc_compiler", + "toDir": "10_minimum_example/070_sfc_compiler2", + "docs": "https://book.chibivue.land/10-minimum-example/091-parse-sfc", + "changedFiles": [ + { + "path": "examples/playground/src/App.vue", + "kind": "U", + }, + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "examples/playground/vite.config.ts", + "kind": "M", + }, + { + "path": "packages/@extensions/vite-plugin-chibivue/index.ts", + "kind": "U", + }, + { + "path": "packages/compiler-core/index.ts", + "kind": "M", + }, + { + "path": "packages/compiler-dom/index.ts", + "kind": "M", + }, + { + "path": "packages/compiler-sfc/compileTemplate.ts", + "kind": "U", + }, + { + "path": "packages/compiler-sfc/index.ts", + "kind": "U", + }, + { + "path": "packages/compiler-sfc/parse.ts", + "kind": "U", + }, + { + "path": "plugin-sample/README.md", + "kind": "D", + }, + { + "path": "plugin-sample/index.html", + "kind": "D", + }, + { + "path": "plugin-sample/package.json", + "kind": "D", + }, + { + "path": "plugin-sample/pnpm-lock.yaml", + "kind": "D", + }, + { + "path": "plugin-sample/public/vite.svg", + "kind": "D", + }, + { + "path": "plugin-sample/src/App.vue", + "kind": "D", + }, + { + "path": "plugin-sample/src/assets/vue.svg", + "kind": "D", + }, + { + "path": "plugin-sample/src/components/HelloWorld.vue", + "kind": "D", + }, + { + "path": "plugin-sample/src/main.ts", + "kind": "D", + }, + { + "path": "plugin-sample/src/plugin.sample.js", + "kind": "D", + }, + { + "path": "plugin-sample/src/style.css", + "kind": "D", + }, + { + "path": "plugin-sample/src/vite-env.d.ts", + "kind": "D", + }, + { + "path": "plugin-sample/tsconfig.json", + "kind": "D", + }, + { + "path": "plugin-sample/tsconfig.node.json", + "kind": "D", + }, + { + "path": "plugin-sample/vite.config.ts", + "kind": "D", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-en/chapters/021-compile-sfc-template.jsonc b/packages/courses-config/chibivue-en/chapters/021-compile-sfc-template.jsonc new file mode 100644 index 0000000..6767144 --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/021-compile-sfc-template.jsonc @@ -0,0 +1,38 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "compile-sfc-template", + "title": "SFC template block", + "fromDir": "10_minimum_example/070_sfc_compiler2", + "toDir": "10_minimum_example/070_sfc_compiler3", + "docs": "https://book.chibivue.land/10-minimum-example/092-compile-sfc-template", + "changedFiles": [ + { + "path": "packages/@extensions/vite-plugin-chibivue/index.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/codegen.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/compile.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/index.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/options.ts", + "kind": "U", + }, + { + "path": "packages/compiler-dom/index.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-en/chapters/022-compile-sfc-script.jsonc b/packages/courses-config/chibivue-en/chapters/022-compile-sfc-script.jsonc new file mode 100644 index 0000000..b6ea2ca --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/022-compile-sfc-script.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "compile-sfc-script", + "title": "SFC script block", + "fromDir": "10_minimum_example/070_sfc_compiler3", + "toDir": "10_minimum_example/070_sfc_compiler3", + "docs": "https://book.chibivue.land/10-minimum-example/093-compile-sfc-script", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-en/chapters/023-compile-sfc-style.jsonc b/packages/courses-config/chibivue-en/chapters/023-compile-sfc-style.jsonc new file mode 100644 index 0000000..73502e9 --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/023-compile-sfc-style.jsonc @@ -0,0 +1,38 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "compile-sfc-style", + "title": "SFC style block", + "fromDir": "10_minimum_example/070_sfc_compiler3", + "toDir": "10_minimum_example/070_sfc_compiler4", + "docs": "https://book.chibivue.land/10-minimum-example/094-compile-sfc-style", + "changedFiles": [ + { + "path": "examples/playground/vite.config.ts", + "kind": "M", + }, + { + "path": "package.json", + "kind": "M", + }, + { + "path": "packages/@extensions/vite-plugin-chibivue/index.ts", + "kind": "M", + }, + { + "path": "packages/compiler-sfc/index.ts", + "kind": "M", + }, + { + "path": "packages/compiler-sfc/rewriteDefault.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/component.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-en/chapters/024-break.jsonc b/packages/courses-config/chibivue-en/chapters/024-break.jsonc new file mode 100644 index 0000000..4420ef6 --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/024-break.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "break", + "title": "Taking a Short Break", + "fromDir": "10_minimum_example/070_sfc_compiler4", + "toDir": "10_minimum_example/070_sfc_compiler4", + "docs": "https://book.chibivue.land/10-minimum-example/100-break", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-zh-cn/chapters/023-shallow-ref.jsonc b/packages/courses-config/chibivue-en/chapters/025-patch-keyed-children.jsonc similarity index 55% rename from packages/courses-config/chibivue-zh-cn/chapters/023-shallow-ref.jsonc rename to packages/courses-config/chibivue-en/chapters/025-patch-keyed-children.jsonc index 4a537f4..4b71f13 100644 --- a/packages/courses-config/chibivue-zh-cn/chapters/023-shallow-ref.jsonc +++ b/packages/courses-config/chibivue-en/chapters/025-patch-keyed-children.jsonc @@ -1,33 +1,33 @@ { "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", - "id": "shallow-ref", - "title": "shallowRef", - "fromDir": "30_basic_reactivity_system/010_ref", - "toDir": "30_basic_reactivity_system/020_shallow_ref", - "docs": "https://book.chibivue.land/zh-cn/30-basic-reactivity-system/010-ref-api", + "id": "patch-keyed-children", + "title": "key Attribute and Patch Rendering", + "fromDir": "10_minimum_example/070_sfc_compiler4", + "toDir": "20_basic_virtual_dom/010_patch_keyed_children", + "docs": "https://book.chibivue.land/20-basic-virtual-dom/010-patch-keyed-children", "changedFiles": [ { "path": "examples/playground/src/App.vue", - "kind": "M", + "kind": "D", }, { "path": "examples/playground/src/main.ts", "kind": "M", }, { - "path": "packages/@extensions/vite-plugin-chibivue/index.ts", + "path": "examples/playground/vite.config.ts", "kind": "M", }, { - "path": "packages/reactivity/index.ts", + "path": "packages/runtime-core/renderer.ts", "kind": "M", }, { - "path": "packages/reactivity/ref.ts", + "path": "packages/runtime-core/vnode.ts", "kind": "M", }, { - "path": "packages/runtime-core/renderer.ts", + "path": "packages/runtime-dom/nodeOps.ts", "kind": "M", }, { diff --git a/packages/courses-config/chibivue-en/chapters/026-bit-flags.jsonc b/packages/courses-config/chibivue-en/chapters/026-bit-flags.jsonc new file mode 100644 index 0000000..1940d5a --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/026-bit-flags.jsonc @@ -0,0 +1,34 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "bit-flags", + "title": "Bit-Level Representation of VNodes", + "fromDir": "20_basic_virtual_dom/010_patch_keyed_children", + "toDir": "20_basic_virtual_dom/020_bit_flags", + "docs": "https://book.chibivue.land/20-basic-virtual-dom/020-bit-flags", + "changedFiles": [ + { + "path": "packages/reactivity/baseHandler.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/renderer.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/vnode.ts", + "kind": "M", + }, + { + "path": "packages/shared/general.ts", + "kind": "M", + }, + { + "path": "packages/shared/shapeFlags.ts", + "kind": "U", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-en/chapters/027-scheduler.jsonc b/packages/courses-config/chibivue-en/chapters/027-scheduler.jsonc new file mode 100644 index 0000000..23c1b32 --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/027-scheduler.jsonc @@ -0,0 +1,42 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "scheduler", + "title": "Scheduler", + "fromDir": "20_basic_virtual_dom/020_bit_flags", + "toDir": "20_basic_virtual_dom/050_next_tick", + "docs": "https://book.chibivue.land/20-basic-virtual-dom/030-scheduler", + "changedFiles": [ + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "packages/reactivity/effect.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/component.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/index.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/renderer.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/scheduler.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/vnode.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-en/chapters/028-patch-other-attrs.jsonc b/packages/courses-config/chibivue-en/chapters/028-patch-other-attrs.jsonc new file mode 100644 index 0000000..f54f98f --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/028-patch-other-attrs.jsonc @@ -0,0 +1,42 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "patch-other-attrs", + "title": "Patch for Unhandled Props", + "fromDir": "20_basic_virtual_dom/050_next_tick", + "toDir": "20_basic_virtual_dom/060_other_props", + "docs": "https://book.chibivue.land/20-basic-virtual-dom/040-patch-other-attrs", + "changedFiles": [ + { + "path": "packages/runtime-core/renderer.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/vnode.ts", + "kind": "M", + }, + { + "path": "packages/runtime-dom/modules/class.ts", + "kind": "U", + }, + { + "path": "packages/runtime-dom/modules/props.ts", + "kind": "U", + }, + { + "path": "packages/runtime-dom/modules/style.ts", + "kind": "U", + }, + { + "path": "packages/runtime-dom/patchProp.ts", + "kind": "M", + }, + { + "path": "packages/shared/general.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-en/chapters/029-reactivity-optimization.jsonc b/packages/courses-config/chibivue-en/chapters/029-reactivity-optimization.jsonc new file mode 100644 index 0000000..5ac713f --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/029-reactivity-optimization.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "reactivity-optimization", + "title": "Reactivity Optimization", + "fromDir": "20_basic_virtual_dom/060_other_props", + "toDir": "20_basic_virtual_dom/060_other_props", + "docs": "https://book.chibivue.land/30-basic-reactivity-system/005-reactivity-optimization", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-zh-cn/chapters/025-to-refs.jsonc b/packages/courses-config/chibivue-en/chapters/030-ref-api.jsonc similarity index 54% rename from packages/courses-config/chibivue-zh-cn/chapters/025-to-refs.jsonc rename to packages/courses-config/chibivue-en/chapters/030-ref-api.jsonc index f8ab42b..d340e35 100644 --- a/packages/courses-config/chibivue-zh-cn/chapters/025-to-refs.jsonc +++ b/packages/courses-config/chibivue-en/chapters/030-ref-api.jsonc @@ -1,14 +1,14 @@ { "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", - "id": "to-refs", - "title": "toRefs", - "fromDir": "30_basic_reactivity_system/030_to_ref", + "id": "ref-api", + "title": "ref API", + "fromDir": "20_basic_virtual_dom/060_other_props", "toDir": "30_basic_reactivity_system/040_to_refs", - "docs": "https://book.chibivue.land/zh-cn/30-basic-reactivity-system/010-ref-api", + "docs": "https://book.chibivue.land/30-basic-reactivity-system/010-ref-api", "changedFiles": [ { "path": "examples/playground/src/App.vue", - "kind": "M", + "kind": "U", }, { "path": "examples/playground/src/main.ts", @@ -18,14 +18,34 @@ "path": "packages/compiler-core/codegen.ts", "kind": "M", }, + { + "path": "packages/reactivity/effect.ts", + "kind": "M", + }, { "path": "packages/reactivity/index.ts", "kind": "M", }, + { + "path": "packages/reactivity/reactive.ts", + "kind": "M", + }, { "path": "packages/reactivity/ref.ts", + "kind": "U", + }, + { + "path": "packages/shared/general.ts", "kind": "M", }, + { + "path": "packages/shared/index.ts", + "kind": "M", + }, + { + "path": "packages/shared/typeUtils.ts", + "kind": "U", + }, { "path": "tests/e2e.spec.ts", "kind": "M", diff --git a/packages/courses-config/chibivue-en/chapters/031-computed-watch.jsonc b/packages/courses-config/chibivue-en/chapters/031-computed-watch.jsonc new file mode 100644 index 0000000..a61f3f2 --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/031-computed-watch.jsonc @@ -0,0 +1,46 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "computed-watch", + "title": "computed / watch API", + "fromDir": "30_basic_reactivity_system/040_to_refs", + "toDir": "30_basic_reactivity_system/090_watch_effect", + "docs": "https://book.chibivue.land/30-basic-reactivity-system/020-computed-watch", + "changedFiles": [ + { + "path": "examples/playground/src/App.vue", + "kind": "M", + }, + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "packages/reactivity/baseHandler.ts", + "kind": "M", + }, + { + "path": "packages/reactivity/computed.ts", + "kind": "U", + }, + { + "path": "packages/reactivity/index.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/apiWatch.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/index.ts", + "kind": "M", + }, + { + "path": "packages/shared/general.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-en/chapters/032-reactive-proxy-handlers.jsonc b/packages/courses-config/chibivue-en/chapters/032-reactive-proxy-handlers.jsonc new file mode 100644 index 0000000..1568a7a --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/032-reactive-proxy-handlers.jsonc @@ -0,0 +1,54 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "reactive-proxy-handlers", + "title": "Various Reactive Proxy Handlers", + "fromDir": "30_basic_reactivity_system/090_watch_effect", + "toDir": "30_basic_reactivity_system/120_proxy_handler_improvement", + "docs": "https://book.chibivue.land/30-basic-reactivity-system/030-reactive-proxy-handlers", + "changedFiles": [ + { + "path": "examples/playground/src/App.vue", + "kind": "M", + }, + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "packages/reactivity/baseHandler.ts", + "kind": "M", + }, + { + "path": "packages/reactivity/collectionHandlers.ts", + "kind": "U", + }, + { + "path": "packages/reactivity/effect.ts", + "kind": "M", + }, + { + "path": "packages/reactivity/reactive.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/renderer.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/rendererTemplateRef.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/vnode.ts", + "kind": "M", + }, + { + "path": "packages/shared/general.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-en/chapters/033-effect-scope.jsonc b/packages/courses-config/chibivue-en/chapters/033-effect-scope.jsonc new file mode 100644 index 0000000..5c6947c --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/033-effect-scope.jsonc @@ -0,0 +1,46 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "effect-scope", + "title": "Effect Cleanup and Effect Scope", + "fromDir": "30_basic_reactivity_system/120_proxy_handler_improvement", + "toDir": "30_basic_reactivity_system/140_effect_scope", + "docs": "https://book.chibivue.land/30-basic-reactivity-system/040-effect-scope", + "changedFiles": [ + { + "path": "examples/playground/src/App.vue", + "kind": "D", + }, + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "packages/reactivity/effect.ts", + "kind": "M", + }, + { + "path": "packages/reactivity/effectScope.ts", + "kind": "U", + }, + { + "path": "packages/reactivity/index.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/apiWatch.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/component.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/renderer.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-en/chapters/034-other-apis.jsonc b/packages/courses-config/chibivue-en/chapters/034-other-apis.jsonc new file mode 100644 index 0000000..00865b0 --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/034-other-apis.jsonc @@ -0,0 +1,42 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "other-apis", + "title": "Other Reactivity APIs", + "fromDir": "30_basic_reactivity_system/140_effect_scope", + "toDir": "30_basic_reactivity_system/150_other_apis", + "docs": "https://book.chibivue.land/30-basic-reactivity-system/050-other-apis", + "changedFiles": [ + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "examples/playground/vite.config.ts", + "kind": "M", + }, + { + "path": "packages/reactivity/baseHandler.ts", + "kind": "M", + }, + { + "path": "packages/reactivity/collectionHandlers.ts", + "kind": "M", + }, + { + "path": "packages/reactivity/index.ts", + "kind": "M", + }, + { + "path": "packages/reactivity/reactive.ts", + "kind": "M", + }, + { + "path": "packages/reactivity/ref.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-en/chapters/035-lifecycle-hooks.jsonc b/packages/courses-config/chibivue-en/chapters/035-lifecycle-hooks.jsonc new file mode 100644 index 0000000..5580a48 --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/035-lifecycle-hooks.jsonc @@ -0,0 +1,54 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "lifecycle-hooks", + "title": "Lifecycle Hooks", + "fromDir": "30_basic_reactivity_system/150_other_apis", + "toDir": "40_basic_component_system/010_lifecycle_hooks", + "docs": "https://book.chibivue.land/40-basic-component-system/010-lifecycle-hooks", + "changedFiles": [ + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "examples/playground/vite.config.ts", + "kind": "M", + }, + { + "path": "packages/reactivity/collectionHandlers.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/apiLifecycle.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/component.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/enums.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/index.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/renderer.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/scheduler.ts", + "kind": "M", + }, + { + "path": "packages/shared/general.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-en/chapters/036-provide-inject.jsonc b/packages/courses-config/chibivue-en/chapters/036-provide-inject.jsonc new file mode 100644 index 0000000..60d4f40 --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/036-provide-inject.jsonc @@ -0,0 +1,46 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "provide-inject", + "title": "Provide/Inject", + "fromDir": "40_basic_component_system/010_lifecycle_hooks", + "toDir": "40_basic_component_system/020_provide_inject", + "docs": "https://book.chibivue.land/40-basic-component-system/020-provide-inject", + "changedFiles": [ + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/apiCreateApp.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/apiInject.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/component.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/componentOptions.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/index.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/renderer.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/vnode.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-en/chapters/037-component-proxy-setup-context.jsonc b/packages/courses-config/chibivue-en/chapters/037-component-proxy-setup-context.jsonc new file mode 100644 index 0000000..7ad61ec --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/037-component-proxy-setup-context.jsonc @@ -0,0 +1,54 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "component-proxy-setup-context", + "title": "Component Proxies and setupContext", + "fromDir": "40_basic_component_system/020_provide_inject", + "toDir": "40_basic_component_system/040_setup_context", + "docs": "https://book.chibivue.land/40-basic-component-system/030-component-proxy-setup-context", + "changedFiles": [ + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "packages/reactivity/ref.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/apiDefineComponent.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/component.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/componentOptions.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/componentProps.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/componentPublicInstance.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/index.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/renderer.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/rendererTemplateRef.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-en/chapters/038-component-slot.jsonc b/packages/courses-config/chibivue-en/chapters/038-component-slot.jsonc new file mode 100644 index 0000000..82f958d --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/038-component-slot.jsonc @@ -0,0 +1,46 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "component-slot", + "title": "Slots", + "fromDir": "40_basic_component_system/040_setup_context", + "toDir": "40_basic_component_system/060_slot_extend", + "docs": "https://book.chibivue.land/40-basic-component-system/040-component-slot", + "changedFiles": [ + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/component.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/componentSlots.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/h.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/renderer.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/vnode.ts", + "kind": "M", + }, + { + "path": "packages/shared/shapeFlags.ts", + "kind": "M", + }, + { + "path": "packages/shared/typeUtils.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-en/chapters/039-options-api.jsonc b/packages/courses-config/chibivue-en/chapters/039-options-api.jsonc new file mode 100644 index 0000000..f467180 --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/039-options-api.jsonc @@ -0,0 +1,42 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "options-api", + "title": "Supporting Options API", + "fromDir": "40_basic_component_system/060_slot_extend", + "toDir": "40_basic_component_system/070_options_api", + "docs": "https://book.chibivue.land/40-basic-component-system/050-options-api", + "changedFiles": [ + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/apiDefineComponent.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/component.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/componentEmits.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/componentOptions.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/componentPublicInstance.ts", + "kind": "M", + }, + { + "path": "packages/shared/typeUtils.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-en/chapters/040-transform.jsonc b/packages/courses-config/chibivue-en/chapters/040-transform.jsonc new file mode 100644 index 0000000..1316cc5 --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/040-transform.jsonc @@ -0,0 +1,46 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "transform", + "title": "Refactoring Implementation of Transformer for Codegen", + "fromDir": "40_basic_component_system/070_options_api", + "toDir": "50_basic_template_compiler/010_transformer", + "docs": "https://book.chibivue.land/50-basic-template-compiler/010-transform", + "changedFiles": [ + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/ast.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/codegen.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/compile.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/options.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/parse.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transform.ts", + "kind": "U", + }, + { + "path": "packages/compiler-core/transforms/transformElement.ts", + "kind": "U", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-en/chapters/041-v-bind.jsonc b/packages/courses-config/chibivue-en/chapters/041-v-bind.jsonc new file mode 100644 index 0000000..f6cb31d --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/041-v-bind.jsonc @@ -0,0 +1,66 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "v-bind", + "title": "Implementing Directives (v-bind)", + "fromDir": "50_basic_template_compiler/010_transformer", + "toDir": "50_basic_template_compiler/020_v_bind", + "docs": "https://book.chibivue.land/50-basic-template-compiler/020-v-bind", + "changedFiles": [ + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/ast.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/codegen.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/compile.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/parse.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transform.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transforms/transformElement.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transforms/vBind.ts", + "kind": "U", + }, + { + "path": "packages/compiler-core/utils.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/index.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/vnode.ts", + "kind": "M", + }, + { + "path": "packages/shared/index.ts", + "kind": "M", + }, + { + "path": "packages/shared/normalizeProp.ts", + "kind": "U", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-en/chapters/042-transform-expression.jsonc b/packages/courses-config/chibivue-en/chapters/042-transform-expression.jsonc new file mode 100644 index 0000000..d15b06e --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/042-transform-expression.jsonc @@ -0,0 +1,66 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "transform-expression", + "title": "Eval expression in template", + "fromDir": "50_basic_template_compiler/020_v_bind", + "toDir": "50_basic_template_compiler/022_transform_expression", + "docs": "https://book.chibivue.land/50-basic-template-compiler/022-transform-expression", + "changedFiles": [ + { + "path": "examples/playground/src/App.vue", + "kind": "U", + }, + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/ast.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/babelUtils.ts", + "kind": "U", + }, + { + "path": "packages/compiler-core/codegen.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/compile.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/options.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/parse.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transform.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transforms/transformExpression.ts", + "kind": "U", + }, + { + "path": "packages/compiler-core/transforms/vBind.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/utils.ts", + "kind": "M", + }, + { + "path": "packages/shared/makeMap.ts", + "kind": "U", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-en/chapters/043-v-on.jsonc b/packages/courses-config/chibivue-en/chapters/043-v-on.jsonc new file mode 100644 index 0000000..0a2b475 --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/043-v-on.jsonc @@ -0,0 +1,70 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "v-on", + "title": "Supporting v-on", + "fromDir": "50_basic_template_compiler/022_transform_expression", + "toDir": "50_basic_template_compiler/025_v_on", + "docs": "https://book.chibivue.land/50-basic-template-compiler/025-v-on", + "changedFiles": [ + { + "path": "examples/playground/src/App.vue", + "kind": "D", + }, + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/ast.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/babelUtils.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/codegen.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/compile.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/runtimeHelpers.ts", + "kind": "U", + }, + { + "path": "packages/compiler-core/transform.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transforms/transformElement.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transforms/transformExpression.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transforms/vOn.ts", + "kind": "U", + }, + { + "path": "packages/compiler-core/utils.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/helpers/toHandlers.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/index.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-en/chapters/044-event-modifier.jsonc b/packages/courses-config/chibivue-en/chapters/044-event-modifier.jsonc new file mode 100644 index 0000000..23a4c63 --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/044-event-modifier.jsonc @@ -0,0 +1,70 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "event-modifier", + "title": "compiler-dom and Event Modifiers", + "fromDir": "50_basic_template_compiler/025_v_on", + "toDir": "50_basic_template_compiler/027_event_modifier2", + "docs": "https://book.chibivue.land/50-basic-template-compiler/027-event-modifier", + "changedFiles": [ + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/ast.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/codegen.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/compile.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/parse.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/runtimeHelpers.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transform.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transforms/vOn.ts", + "kind": "M", + }, + { + "path": "packages/compiler-dom/index.ts", + "kind": "M", + }, + { + "path": "packages/compiler-dom/transforms/vOn.ts", + "kind": "U", + }, + { + "path": "packages/runtime-dom/directives/vOn.ts", + "kind": "U", + }, + { + "path": "packages/runtime-dom/index.ts", + "kind": "M", + }, + { + "path": "packages/runtime-dom/runtimeHelpers.ts", + "kind": "U", + }, + { + "path": "packages/shared/general.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-en/chapters/045-fragment.jsonc b/packages/courses-config/chibivue-en/chapters/045-fragment.jsonc new file mode 100644 index 0000000..e5a626c --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/045-fragment.jsonc @@ -0,0 +1,58 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "fragment", + "title": "Support for Fragment", + "fromDir": "50_basic_template_compiler/027_event_modifier2", + "toDir": "50_basic_template_compiler/030_fragment", + "docs": "https://book.chibivue.land/50-basic-template-compiler/030-fragment", + "changedFiles": [ + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/ast.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/codegen.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/runtimeHelpers.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transform.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/h.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/index.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/renderer.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/vnode.ts", + "kind": "M", + }, + { + "path": "packages/runtime-dom/nodeOps.ts", + "kind": "M", + }, + { + "path": "packages/shared/general.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-en/chapters/046-comment.jsonc b/packages/courses-config/chibivue-en/chapters/046-comment.jsonc new file mode 100644 index 0000000..1faf15a --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/046-comment.jsonc @@ -0,0 +1,54 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "comment", + "title": "Support for Comment Node", + "fromDir": "50_basic_template_compiler/030_fragment", + "toDir": "50_basic_template_compiler/035_comment", + "docs": "https://book.chibivue.land/50-basic-template-compiler/035-comment", + "changedFiles": [ + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/ast.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/codegen.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/parse.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/runtimeHelpers.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transform.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/index.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/renderer.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/vnode.ts", + "kind": "M", + }, + { + "path": "packages/runtime-dom/nodeOps.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-en/chapters/047-v-if-and-structural-directive.jsonc b/packages/courses-config/chibivue-en/chapters/047-v-if-and-structural-directive.jsonc new file mode 100644 index 0000000..a361d1b --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/047-v-if-and-structural-directive.jsonc @@ -0,0 +1,42 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "v-if-and-structural-directive", + "title": "v-if and Structural Directives", + "fromDir": "50_basic_template_compiler/035_comment", + "toDir": "50_basic_template_compiler/040_v_if_and_structural_directive", + "docs": "https://book.chibivue.land/50-basic-template-compiler/040-v-if-and-structural-directive", + "changedFiles": [ + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "examples/playground/vite.config.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/ast.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/codegen.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/compile.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transform.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transforms/vIf.ts", + "kind": "U", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-en/chapters/048-v-for.jsonc b/packages/courses-config/chibivue-en/chapters/048-v-for.jsonc new file mode 100644 index 0000000..b50ad16 --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/048-v-for.jsonc @@ -0,0 +1,78 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "v-for", + "title": "Support for v-for", + "fromDir": "50_basic_template_compiler/040_v_if_and_structural_directive", + "toDir": "50_basic_template_compiler/050_v_for", + "docs": "https://book.chibivue.land/50-basic-template-compiler/050-v-for", + "changedFiles": [ + { + "path": "examples/playground/src/App.vue", + "kind": "U", + }, + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "examples/playground/vite.config.js", + "kind": "U", + }, + { + "path": "examples/playground/vite.config.ts", + "kind": "D", + }, + { + "path": "packages/compiler-core/ast.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/babelUtils.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/codegen.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/compile.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/runtimeHelpers.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transform.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transforms/transformExpression.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transforms/vFor.ts", + "kind": "U", + }, + { + "path": "packages/compiler-core/utils.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/helpers/renderList.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/index.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/renderer.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-en/chapters/049-resolve-component.jsonc b/packages/courses-config/chibivue-en/chapters/049-resolve-component.jsonc new file mode 100644 index 0000000..870c5bc --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/049-resolve-component.jsonc @@ -0,0 +1,102 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "resolve-component", + "title": "Resolving Components", + "fromDir": "50_basic_template_compiler/050_v_for", + "toDir": "50_basic_template_compiler/060_resolve_components", + "docs": "https://book.chibivue.land/50-basic-template-compiler/070-resolve-component", + "changedFiles": [ + { + "path": "examples/playground/src/App.vue", + "kind": "M", + }, + { + "path": "examples/playground/src/components/Counter.vue", + "kind": "U", + }, + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "examples/playground/vite.config.js", + "kind": "D", + }, + { + "path": "examples/playground/vite.config.ts", + "kind": "U", + }, + { + "path": "packages/compiler-core/ast.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/codegen.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/options.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/parse.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/runtimeHelpers.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transform.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transforms/transformElement.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/utils.ts", + "kind": "M", + }, + { + "path": "packages/compiler-dom/index.ts", + "kind": "M", + }, + { + "path": "packages/compiler-dom/parserOptions.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/apiCreateApp.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/componentOptions.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/componentRenderContext.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/helpers/resolveAssets.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/index.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/renderer.ts", + "kind": "M", + }, + { + "path": "packages/shared/domTagConfig.ts", + "kind": "U", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-en/chapters/050-component-slot-outlet.jsonc b/packages/courses-config/chibivue-en/chapters/050-component-slot-outlet.jsonc new file mode 100644 index 0000000..2949c23 --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/050-component-slot-outlet.jsonc @@ -0,0 +1,70 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "component-slot-outlet", + "title": "Support for Slots (Definition)", + "fromDir": "50_basic_template_compiler/060_resolve_components", + "toDir": "50_basic_template_compiler/080_component_slot_outlet", + "docs": "https://book.chibivue.land/50-basic-template-compiler/080-component-slot-outlet", + "changedFiles": [ + { + "path": "examples/playground/src/App.vue", + "kind": "M", + }, + { + "path": "examples/playground/src/Comp.vue", + "kind": "U", + }, + { + "path": "examples/playground/src/components/Counter.vue", + "kind": "D", + }, + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/ast.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/compile.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/parse.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/runtimeHelpers.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transforms/transformElement.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transforms/transformSlotOutlet.ts", + "kind": "U", + }, + { + "path": "packages/compiler-core/utils.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/componentPublicInstance.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/helpers/renderSlot.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/index.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-en/chapters/051-component-slot-insert.jsonc b/packages/courses-config/chibivue-en/chapters/051-component-slot-insert.jsonc new file mode 100644 index 0000000..f730e43 --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/051-component-slot-insert.jsonc @@ -0,0 +1,46 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "component-slot-insert", + "title": "Support for Slots (Usage)", + "fromDir": "50_basic_template_compiler/080_component_slot_outlet", + "toDir": "50_basic_template_compiler/085_component_slot_insert", + "docs": "https://book.chibivue.land/50-basic-template-compiler/085-component-slot-insert", + "changedFiles": [ + { + "path": "packages/compiler-core/ast.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/parse.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/runtimeHelpers.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transforms/transformElement.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transforms/vSlot.ts", + "kind": "U", + }, + { + "path": "packages/compiler-core/utils.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/componentRenderContext.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/index.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-en/chapters/052-other-directives.jsonc b/packages/courses-config/chibivue-en/chapters/052-other-directives.jsonc new file mode 100644 index 0000000..5deea7c --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/052-other-directives.jsonc @@ -0,0 +1,66 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "other-directives", + "title": "Other Directives", + "fromDir": "50_basic_template_compiler/085_component_slot_insert", + "toDir": "50_basic_template_compiler/090_other_directives", + "docs": "https://book.chibivue.land/50-basic-template-compiler/090-other-directives", + "changedFiles": [ + { + "path": "examples/playground/src/App.vue", + "kind": "M", + }, + { + "path": "examples/playground/src/Comp.vue", + "kind": "D", + }, + { + "path": "packages/compiler-core/ast.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/parse.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/runtimeHelpers.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transforms/transformElement.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transforms/vSlot.ts", + "kind": "D", + }, + { + "path": "packages/compiler-core/utils.ts", + "kind": "M", + }, + { + "path": "packages/compiler-dom/index.ts", + "kind": "M", + }, + { + "path": "packages/compiler-dom/transforms/vHtml.ts", + "kind": "U", + }, + { + "path": "packages/compiler-dom/transforms/vText.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/componentRenderContext.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/index.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-en/chapters/053-chore-compiler.jsonc b/packages/courses-config/chibivue-en/chapters/053-chore-compiler.jsonc new file mode 100644 index 0000000..1b008b2 --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/053-chore-compiler.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "chore-compiler", + "title": "Compiler Refinements", + "fromDir": "50_basic_template_compiler/090_other_directives", + "toDir": "50_basic_template_compiler/100_chore_compiler", + "docs": "https://book.chibivue.land/50-basic-template-compiler/100-chore-compiler", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-en/chapters/054-parser-optimization.jsonc b/packages/courses-config/chibivue-en/chapters/054-parser-optimization.jsonc new file mode 100644 index 0000000..ced6a1f --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/054-parser-optimization.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "parser-optimization", + "title": "Parser Optimization", + "fromDir": "50_basic_template_compiler/100_chore_compiler", + "toDir": "50_basic_template_compiler/100_chore_compiler", + "docs": "https://book.chibivue.land/50-basic-template-compiler/110-parser-optimization", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-en/chapters/055-custom-directive.jsonc b/packages/courses-config/chibivue-en/chapters/055-custom-directive.jsonc new file mode 100644 index 0000000..ce27610 --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/055-custom-directive.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "custom-directive", + "title": "Custom Directives", + "fromDir": "50_basic_template_compiler/100_chore_compiler", + "toDir": "50_basic_template_compiler/100_chore_compiler", + "docs": "https://book.chibivue.land/50-basic-template-compiler/500-custom-directive", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-en/chapters/056-script-setup.jsonc b/packages/courses-config/chibivue-en/chapters/056-script-setup.jsonc new file mode 100644 index 0000000..d4d9a6a --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/056-script-setup.jsonc @@ -0,0 +1,34 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "script-setup", + "title": "Supporting script setup", + "fromDir": "50_basic_template_compiler/100_chore_compiler", + "toDir": "60_basic_sfc_compiler/010_script_setup", + "docs": "https://book.chibivue.land/60-basic-sfc-compiler/010-script-setup", + "changedFiles": [ + { + "path": "packages/compiler-core/parse.ts", + "kind": "M", + }, + { + "path": "packages/compiler-sfc/compileScript.ts", + "kind": "U", + }, + { + "path": "packages/compiler-sfc/compileSfc.ts", + "kind": "U", + }, + { + "path": "packages/compiler-sfc/index.ts", + "kind": "M", + }, + { + "path": "packages/compiler-sfc/parse.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-en/chapters/057-define-props.jsonc b/packages/courses-config/chibivue-en/chapters/057-define-props.jsonc new file mode 100644 index 0000000..9f6b844 --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/057-define-props.jsonc @@ -0,0 +1,42 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "define-props", + "title": "Supporting defineProps", + "fromDir": "60_basic_sfc_compiler/010_script_setup", + "toDir": "60_basic_sfc_compiler/020_define_props", + "docs": "https://book.chibivue.land/60-basic-sfc-compiler/020-define-props", + "changedFiles": [ + { + "path": "examples/playground/src/App.vue", + "kind": "M", + }, + { + "path": "examples/playground/src/Child.vue", + "kind": "U", + }, + { + "path": "packages/compiler-sfc/compileScript.ts", + "kind": "M", + }, + { + "path": "packages/compiler-sfc/compileSfc.ts", + "kind": "M", + }, + { + "path": "packages/compiler-sfc/compileStyle.ts", + "kind": "U", + }, + { + "path": "packages/compiler-sfc/index.ts", + "kind": "M", + }, + { + "path": "packages/compiler-sfc/parse.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-en/chapters/058-define-emits.jsonc b/packages/courses-config/chibivue-en/chapters/058-define-emits.jsonc new file mode 100644 index 0000000..1bf1ced --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/058-define-emits.jsonc @@ -0,0 +1,26 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "define-emits", + "title": "Supporting defineEmits", + "fromDir": "60_basic_sfc_compiler/020_define_props", + "toDir": "60_basic_sfc_compiler/030_define_emits", + "docs": "https://book.chibivue.land/60-basic-sfc-compiler/030-define-emits", + "changedFiles": [ + { + "path": "examples/playground/src/App.vue", + "kind": "M", + }, + { + "path": "examples/playground/src/Child.vue", + "kind": "M", + }, + { + "path": "packages/compiler-sfc/compileScript.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-en/chapters/059-scoped-css.jsonc b/packages/courses-config/chibivue-en/chapters/059-scoped-css.jsonc new file mode 100644 index 0000000..6061d56 --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/059-scoped-css.jsonc @@ -0,0 +1,26 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "scoped-css", + "title": "Supporting Scoped CSS", + "fromDir": "60_basic_sfc_compiler/030_define_emits", + "toDir": "60_basic_sfc_compiler/040_scoped_css", + "docs": "https://book.chibivue.land/60-basic-sfc-compiler/040-scoped-css", + "changedFiles": [ + { + "path": "examples/playground/src/App.vue", + "kind": "M", + }, + { + "path": "examples/playground/src/Child.vue", + "kind": "M", + }, + { + "path": "packages/compiler-sfc/compileStyle.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-en/chapters/060-props-destructure.jsonc b/packages/courses-config/chibivue-en/chapters/060-props-destructure.jsonc new file mode 100644 index 0000000..58e9db9 --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/060-props-destructure.jsonc @@ -0,0 +1,22 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "props-destructure", + "title": "Supporting Props Destructure", + "fromDir": "60_basic_sfc_compiler/040_scoped_css", + "toDir": "60_basic_sfc_compiler/050_props_destructure", + "docs": "https://book.chibivue.land/60-basic-sfc-compiler/050-props-destructure", + "changedFiles": [ + { + "path": "examples/playground/src/App.vue", + "kind": "M", + }, + { + "path": "examples/playground/src/Child.vue", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-en/chapters/061-type-based-macros.jsonc b/packages/courses-config/chibivue-en/chapters/061-type-based-macros.jsonc new file mode 100644 index 0000000..8d3d9f1 --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/061-type-based-macros.jsonc @@ -0,0 +1,26 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "type-based-macros", + "title": "Type-based defineProps/defineEmits", + "fromDir": "60_basic_sfc_compiler/050_props_destructure", + "toDir": "60_basic_sfc_compiler/060_type_based_macros", + "docs": "https://book.chibivue.land/60-basic-sfc-compiler/060-type-based-macros", + "changedFiles": [ + { + "path": "examples/playground/src/App.vue", + "kind": "M", + }, + { + "path": "examples/playground/src/Child.vue", + "kind": "M", + }, + { + "path": "packages/compiler-sfc/compileScript.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-en/chapters/062-router.jsonc b/packages/courses-config/chibivue-en/chapters/062-router.jsonc new file mode 100644 index 0000000..03c397e --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/062-router.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "router", + "title": "Router", + "fromDir": "60_basic_sfc_compiler/060_type_based_macros", + "toDir": "60_basic_sfc_compiler/060_type_based_macros", + "docs": "https://book.chibivue.land/90-web-application-essentials/010-plugins/010-router", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-en/chapters/063-preprocessors.jsonc b/packages/courses-config/chibivue-en/chapters/063-preprocessors.jsonc new file mode 100644 index 0000000..3d81469 --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/063-preprocessors.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "preprocessors", + "title": "CSS Preprocessors", + "fromDir": "60_basic_sfc_compiler/060_type_based_macros", + "toDir": "60_basic_sfc_compiler/060_type_based_macros", + "docs": "https://book.chibivue.land/90-web-application-essentials/010-plugins/020-preprocessors", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-en/chapters/064-store.jsonc b/packages/courses-config/chibivue-en/chapters/064-store.jsonc new file mode 100644 index 0000000..645a873 --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/064-store.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "store", + "title": "Store", + "fromDir": "60_basic_sfc_compiler/060_type_based_macros", + "toDir": "60_basic_sfc_compiler/060_type_based_macros", + "docs": "https://book.chibivue.land/90-web-application-essentials/010-plugins/020-store", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-en/chapters/065-data-fetch.jsonc b/packages/courses-config/chibivue-en/chapters/065-data-fetch.jsonc new file mode 100644 index 0000000..0f7c8af --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/065-data-fetch.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "data-fetch", + "title": "Data Fetch", + "fromDir": "60_basic_sfc_compiler/060_type_based_macros", + "toDir": "60_basic_sfc_compiler/060_type_based_macros", + "docs": "https://book.chibivue.land/90-web-application-essentials/010-plugins/030-data-fetch", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-en/chapters/066-language-tools.jsonc b/packages/courses-config/chibivue-en/chapters/066-language-tools.jsonc new file mode 100644 index 0000000..0456522 --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/066-language-tools.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "language-tools", + "title": "Language Tools", + "fromDir": "60_basic_sfc_compiler/060_type_based_macros", + "toDir": "60_basic_sfc_compiler/060_type_based_macros", + "docs": "https://book.chibivue.land/90-web-application-essentials/010-plugins/040-language-tools", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-en/chapters/067-create-ssr-app.jsonc b/packages/courses-config/chibivue-en/chapters/067-create-ssr-app.jsonc new file mode 100644 index 0000000..d2251b3 --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/067-create-ssr-app.jsonc @@ -0,0 +1,110 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "create-ssr-app", + "title": "renderToString", + "fromDir": "60_basic_sfc_compiler/060_type_based_macros", + "toDir": "90_web_application_essentials/010_ssr", + "docs": "https://book.chibivue.land/90-web-application-essentials/020-ssr/010-create-ssr-app", + "changedFiles": [ + { + "path": "examples/playground/src/App.vue", + "kind": "M", + }, + { + "path": "examples/playground/src/Child.vue", + "kind": "D", + }, + { + "path": "packages/compiler-core/parse.ts", + "kind": "M", + }, + { + "path": "packages/compiler-sfc/compileScript.ts", + "kind": "D", + }, + { + "path": "packages/compiler-sfc/compileSfc.ts", + "kind": "D", + }, + { + "path": "packages/compiler-sfc/compileStyle.ts", + "kind": "D", + }, + { + "path": "packages/compiler-sfc/index.ts", + "kind": "M", + }, + { + "path": "packages/compiler-sfc/parse.ts", + "kind": "M", + }, + { + "path": "packages/index.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/apiCreateApp.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/component.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/hydration.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/index.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/vnode.ts", + "kind": "M", + }, + { + "path": "packages/runtime-dom/index.ts", + "kind": "M", + }, + { + "path": "packages/server-renderer/helpers/ssrInterpolate.ts", + "kind": "U", + }, + { + "path": "packages/server-renderer/helpers/ssrRenderAttrs.ts", + "kind": "U", + }, + { + "path": "packages/server-renderer/helpers/ssrRenderList.ts", + "kind": "U", + }, + { + "path": "packages/server-renderer/helpers/ssrUtils.ts", + "kind": "U", + }, + { + "path": "packages/server-renderer/index.ts", + "kind": "U", + }, + { + "path": "packages/server-renderer/render.ts", + "kind": "U", + }, + { + "path": "packages/server-renderer/renderToString.ts", + "kind": "U", + }, + { + "path": "packages/shared/general.ts", + "kind": "M", + }, + { + "path": "packages/shared/index.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-en/chapters/068-hydration.jsonc b/packages/courses-config/chibivue-en/chapters/068-hydration.jsonc new file mode 100644 index 0000000..7ca5927 --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/068-hydration.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "hydration", + "title": "Hydration", + "fromDir": "90_web_application_essentials/010_ssr", + "toDir": "90_web_application_essentials/010_ssr", + "docs": "https://book.chibivue.land/90-web-application-essentials/020-ssr/020-hydration", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-en/chapters/069-compiler-ssr.jsonc b/packages/courses-config/chibivue-en/chapters/069-compiler-ssr.jsonc new file mode 100644 index 0000000..7291f8b --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/069-compiler-ssr.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "compiler-ssr", + "title": "Compiler SSR", + "fromDir": "90_web_application_essentials/010_ssr", + "toDir": "90_web_application_essentials/010_ssr", + "docs": "https://book.chibivue.land/90-web-application-essentials/020-ssr/030-compiler-ssr", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-en/chapters/070-keep-alive.jsonc b/packages/courses-config/chibivue-en/chapters/070-keep-alive.jsonc new file mode 100644 index 0000000..2af4b45 --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/070-keep-alive.jsonc @@ -0,0 +1,58 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "keep-alive", + "title": "KeepAlive", + "fromDir": "90_web_application_essentials/010_ssr", + "toDir": "90_web_application_essentials/020_keep_alive", + "docs": "https://book.chibivue.land/90-web-application-essentials/030-builtins/010-keep-alive", + "changedFiles": [ + { + "path": "examples/playground/src/App.vue", + "kind": "M", + }, + { + "path": "examples/playground/src/Counter.vue", + "kind": "U", + }, + { + "path": "packages/runtime-core/apiLifecycle.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/component.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/components/KeepAlive.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/hydration.ts", + "kind": "D", + }, + { + "path": "packages/runtime-core/index.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/renderer.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/vnode.ts", + "kind": "M", + }, + { + "path": "packages/runtime-dom/index.ts", + "kind": "M", + }, + { + "path": "packages/shared/shapeFlags.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-en/chapters/071-transition.jsonc b/packages/courses-config/chibivue-en/chapters/071-transition.jsonc new file mode 100644 index 0000000..d848d30 --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/071-transition.jsonc @@ -0,0 +1,34 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "transition", + "title": "Transition", + "fromDir": "90_web_application_essentials/020_keep_alive", + "toDir": "90_web_application_essentials/030_transition", + "docs": "https://book.chibivue.land/90-web-application-essentials/030-builtins/030-transition", + "changedFiles": [ + { + "path": "examples/playground/src/App.vue", + "kind": "M", + }, + { + "path": "examples/playground/src/Counter.vue", + "kind": "D", + }, + { + "path": "packages/runtime-core/vnode.ts", + "kind": "M", + }, + { + "path": "packages/runtime-dom/components/Transition.ts", + "kind": "U", + }, + { + "path": "packages/runtime-dom/index.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-en/chapters/072-static-hoisting.jsonc b/packages/courses-config/chibivue-en/chapters/072-static-hoisting.jsonc new file mode 100644 index 0000000..3270099 --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/072-static-hoisting.jsonc @@ -0,0 +1,34 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "static-hoisting", + "title": "Static Hoisting", + "fromDir": "90_web_application_essentials/030_transition", + "toDir": "90_web_application_essentials/040_static_hoisting", + "docs": "https://book.chibivue.land/90-web-application-essentials/040-optimizations/010-static-hoisting", + "changedFiles": [ + { + "path": "examples/playground/src/App.vue", + "kind": "M", + }, + { + "path": "packages/compiler-core/ast.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/codegen.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/options.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transform.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-en/chapters/073-patch-flags.jsonc b/packages/courses-config/chibivue-en/chapters/073-patch-flags.jsonc new file mode 100644 index 0000000..423f20d --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/073-patch-flags.jsonc @@ -0,0 +1,38 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "patch-flags", + "title": "Patch Flags", + "fromDir": "90_web_application_essentials/040_static_hoisting", + "toDir": "90_web_application_essentials/050_patch_flags", + "docs": "https://book.chibivue.land/90-web-application-essentials/040-optimizations/020-patch-flags", + "changedFiles": [ + { + "path": "examples/playground/src/App.vue", + "kind": "M", + }, + { + "path": "packages/compiler-core/ast.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/codegen.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/vnode.ts", + "kind": "M", + }, + { + "path": "packages/shared/index.ts", + "kind": "M", + }, + { + "path": "packages/shared/patchFlags.ts", + "kind": "U", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-en/chapters/074-tree-flattening.jsonc b/packages/courses-config/chibivue-en/chapters/074-tree-flattening.jsonc new file mode 100644 index 0000000..8beb309 --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/074-tree-flattening.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "tree-flattening", + "title": "Tree Flattening", + "fromDir": "90_web_application_essentials/050_patch_flags", + "toDir": "90_web_application_essentials/050_patch_flags", + "docs": "https://book.chibivue.land/90-web-application-essentials/040-optimizations/030-tree-flattening", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-en/chapters/075-introduction.jsonc b/packages/courses-config/chibivue-en/chapters/075-introduction.jsonc new file mode 100644 index 0000000..644e4ec --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/075-introduction.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "introduction", + "title": "Vapor Mode", + "fromDir": "90_web_application_essentials/050_patch_flags", + "toDir": "90_web_application_essentials/050_patch_flags", + "docs": "https://book.chibivue.land/90-web-application-essentials/050-vapor/010-introduction", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-en/chapters/076-vapor-compiler.jsonc b/packages/courses-config/chibivue-en/chapters/076-vapor-compiler.jsonc new file mode 100644 index 0000000..b951ec1 --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/076-vapor-compiler.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "vapor-compiler", + "title": "Vapor Compiler", + "fromDir": "90_web_application_essentials/050_patch_flags", + "toDir": "90_web_application_essentials/050_patch_flags", + "docs": "https://book.chibivue.land/90-web-application-essentials/050-vapor/020-vapor-compiler", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-en/chapters/077-vapor-ssr.jsonc b/packages/courses-config/chibivue-en/chapters/077-vapor-ssr.jsonc new file mode 100644 index 0000000..d0d9418 --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/077-vapor-ssr.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "vapor-ssr", + "title": "Vapor SSR", + "fromDir": "90_web_application_essentials/050_patch_flags", + "toDir": "90_web_application_essentials/050_patch_flags", + "docs": "https://book.chibivue.land/90-web-application-essentials/050-vapor/030-vapor-ssr", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-en/chapters/078-hot-paths.jsonc b/packages/courses-config/chibivue-en/chapters/078-hot-paths.jsonc new file mode 100644 index 0000000..cb58fca --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/078-hot-paths.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "hot-paths", + "title": "Overview", + "fromDir": "90_web_application_essentials/050_patch_flags", + "toDir": "90_web_application_essentials/050_patch_flags", + "docs": "https://book.chibivue.land/bonus/hot-paths", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-en/chapters/079-beginner-30-min-hands-on.jsonc b/packages/courses-config/chibivue-en/chapters/079-beginner-30-min-hands-on.jsonc new file mode 100644 index 0000000..956fa62 --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/079-beginner-30-min-hands-on.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "beginner-30-min-hands-on", + "title": "Beginner 30-minute hands-on", + "fromDir": "90_web_application_essentials/050_patch_flags", + "toDir": "90_web_application_essentials/050_patch_flags", + "docs": "https://book.chibivue.land/bonus/hot-paths/beginner-30-min-hands-on", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-en/chapters/080-beginner-60-min-hands-on.jsonc b/packages/courses-config/chibivue-en/chapters/080-beginner-60-min-hands-on.jsonc new file mode 100644 index 0000000..a99d00c --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/080-beginner-60-min-hands-on.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "beginner-60-min-hands-on", + "title": "Beginner 60-minute hands-on", + "fromDir": "90_web_application_essentials/050_patch_flags", + "toDir": "90_web_application_essentials/050_patch_flags", + "docs": "https://book.chibivue.land/bonus/hot-paths/beginner-60-min-hands-on", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-en/chapters/081-intermediate-60-min-hands-on.jsonc b/packages/courses-config/chibivue-en/chapters/081-intermediate-60-min-hands-on.jsonc new file mode 100644 index 0000000..71ab6bb --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/081-intermediate-60-min-hands-on.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "intermediate-60-min-hands-on", + "title": "Intermediate 60-minute hands-on", + "fromDir": "90_web_application_essentials/050_patch_flags", + "toDir": "90_web_application_essentials/050_patch_flags", + "docs": "https://book.chibivue.land/bonus/hot-paths/intermediate-60-min-hands-on", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-en/chapters/082-advanced-30-min-summary.jsonc b/packages/courses-config/chibivue-en/chapters/082-advanced-30-min-summary.jsonc new file mode 100644 index 0000000..ae4a5d4 --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/082-advanced-30-min-summary.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "advanced-30-min-summary", + "title": "Advanced 30-minute summary", + "fromDir": "90_web_application_essentials/050_patch_flags", + "toDir": "90_web_application_essentials/050_patch_flags", + "docs": "https://book.chibivue.land/bonus/hot-paths/advanced-30-min-summary", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-en/chapters/083-hyper-ultimate-super-extreme-minimal-vue.jsonc b/packages/courses-config/chibivue-en/chapters/083-hyper-ultimate-super-extreme-minimal-vue.jsonc new file mode 100644 index 0000000..13c20da --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/083-hyper-ultimate-super-extreme-minimal-vue.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "hyper-ultimate-super-extreme-minimal-vue", + "title": "chibivue, isn't it small...?", + "fromDir": "90_web_application_essentials/050_patch_flags", + "toDir": "90_web_application_essentials/050_patch_flags", + "docs": "https://book.chibivue.land/bonus/hyper-ultimate-super-extreme-minimal-vue", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-en/chapters/084-15-min-impl.jsonc b/packages/courses-config/chibivue-en/chapters/084-15-min-impl.jsonc new file mode 100644 index 0000000..6656d7b --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/084-15-min-impl.jsonc @@ -0,0 +1,54 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "15-min-impl", + "title": "Implement", + "fromDir": "", + "toDir": "bonus/hyper-ultimate-super-extreme-minimal-vue", + "docs": "https://book.chibivue.land/bonus/hyper-ultimate-super-extreme-minimal-vue/15-min-impl", + "changedFiles": [ + { + "path": "examples/playground/index.html", + "kind": "U", + }, + { + "path": "examples/playground/package.json", + "kind": "U", + }, + { + "path": "examples/playground/src/App.vue", + "kind": "U", + }, + { + "path": "examples/playground/src/main.ts", + "kind": "U", + }, + { + "path": "examples/playground/tsconfig.json", + "kind": "U", + }, + { + "path": "examples/playground/vite.config.ts", + "kind": "U", + }, + { + "path": "package.json", + "kind": "U", + }, + { + "path": "packages/index.ts", + "kind": "U", + }, + { + "path": "pnpm-workspace.yaml", + "kind": "U", + }, + { + "path": "tsconfig.json", + "kind": "U", + }, + { + "path": "vite.config.ts", + "kind": "U", + }, + ], +} diff --git a/packages/courses-config/chibivue-en/chapters/085-debug-vuejs-core.jsonc b/packages/courses-config/chibivue-en/chapters/085-debug-vuejs-core.jsonc new file mode 100644 index 0000000..6470882 --- /dev/null +++ b/packages/courses-config/chibivue-en/chapters/085-debug-vuejs-core.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "debug-vuejs-core", + "title": "debug original Vue.js source", + "fromDir": "bonus/hyper-ultimate-super-extreme-minimal-vue", + "toDir": "bonus/hyper-ultimate-super-extreme-minimal-vue", + "docs": "https://book.chibivue.land/bonus/debug-vuejs-core", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-en/course.jsonc b/packages/courses-config/chibivue-en/course.jsonc new file mode 100644 index 0000000..59bf6ba --- /dev/null +++ b/packages/courses-config/chibivue-en/course.jsonc @@ -0,0 +1,10 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/course", + "id": "chibivue-en", + "title": "chibivue", + "description": "Follow the chibivue online book and implement Vue.js step by step, starting from createApp. Snapshots come from chibivue's book/impls.", + "source": { + "repository": "https://github.com/chibivue-land/chibivue", + "root": "book/impls", + }, +} diff --git a/packages/courses-config/chibivue-ja/chapters/001-about.jsonc b/packages/courses-config/chibivue-ja/chapters/001-about.jsonc new file mode 100644 index 0000000..002fbe1 --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/001-about.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "about", + "title": "初めに", + "fromDir": "", + "toDir": "", + "docs": "https://book.chibivue.land/ja/00-introduction/010-about", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-ja/chapters/002-what-is-vue.jsonc b/packages/courses-config/chibivue-ja/chapters/002-what-is-vue.jsonc new file mode 100644 index 0000000..64e1dba --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/002-what-is-vue.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "what-is-vue", + "title": "Vue.jsとは", + "fromDir": "", + "toDir": "", + "docs": "https://book.chibivue.land/ja/00-introduction/020-what-is-vue", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-ja/chapters/003-vue-core-components.jsonc b/packages/courses-config/chibivue-ja/chapters/003-vue-core-components.jsonc new file mode 100644 index 0000000..91df23c --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/003-vue-core-components.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "vue-core-components", + "title": "Vue.jsを構成する主要な要素", + "fromDir": "", + "toDir": "", + "docs": "https://book.chibivue.land/ja/00-introduction/030-vue-core-components", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-ja/chapters/004-setup-project.jsonc b/packages/courses-config/chibivue-ja/chapters/004-setup-project.jsonc new file mode 100644 index 0000000..418cc58 --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/004-setup-project.jsonc @@ -0,0 +1,50 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "setup-project", + "title": "本書の進め方と環境構築", + "fromDir": "", + "toDir": "00_introduction/010_project_setup", + "docs": "https://book.chibivue.land/ja/00-introduction/040-setup-project", + "changedFiles": [ + { + "path": "examples/playground/index.html", + "kind": "U", + }, + { + "path": "examples/playground/package.json", + "kind": "U", + }, + { + "path": "examples/playground/src/main.ts", + "kind": "U", + }, + { + "path": "examples/playground/tsconfig.json", + "kind": "U", + }, + { + "path": "examples/playground/vite.config.ts", + "kind": "U", + }, + { + "path": "package.json", + "kind": "U", + }, + { + "path": "packages/index.ts", + "kind": "U", + }, + { + "path": "pnpm-workspace.yaml", + "kind": "U", + }, + { + "path": "tsconfig.json", + "kind": "U", + }, + { + "path": "vite.config.ts", + "kind": "U", + }, + ], +} diff --git a/packages/courses-config/chibivue-ja/chapters/005-create-app-api.jsonc b/packages/courses-config/chibivue-ja/chapters/005-create-app-api.jsonc new file mode 100644 index 0000000..a8e9fef --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/005-create-app-api.jsonc @@ -0,0 +1,26 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "create-app-api", + "title": "初めてのレンダリングと createApp API", + "fromDir": "00_introduction/010_project_setup", + "toDir": "10_minimum_example/010_create_app", + "docs": "https://book.chibivue.land/ja/10-minimum-example/010-create-app-api", + "changedFiles": [ + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "examples/playground/vite.config.ts", + "kind": "M", + }, + { + "path": "packages/index.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "U", + }, + ], +} diff --git a/packages/courses-config/chibivue-ja/chapters/006-package-architecture.jsonc b/packages/courses-config/chibivue-ja/chapters/006-package-architecture.jsonc new file mode 100644 index 0000000..378b4ea --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/006-package-architecture.jsonc @@ -0,0 +1,50 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "package-architecture", + "title": "パッケージの設計", + "fromDir": "10_minimum_example/010_create_app", + "toDir": "10_minimum_example/015_package_architecture", + "docs": "https://book.chibivue.land/ja/10-minimum-example/015-package-architecture", + "changedFiles": [ + { + "path": "examples/playground/vite.config.ts", + "kind": "M", + }, + { + "path": "packages/index.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/apiCreateApp.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/component.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/componentOptions.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/index.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/renderer.ts", + "kind": "U", + }, + { + "path": "packages/runtime-dom/index.ts", + "kind": "U", + }, + { + "path": "packages/runtime-dom/nodeOps.ts", + "kind": "U", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-ja/chapters/007-simple-h-function.jsonc b/packages/courses-config/chibivue-ja/chapters/007-simple-h-function.jsonc new file mode 100644 index 0000000..63fdb24 --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/007-simple-h-function.jsonc @@ -0,0 +1,62 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "simple-h-function", + "title": "HTML要素をレンダリングできるようにしよう", + "fromDir": "10_minimum_example/015_package_architecture", + "toDir": "10_minimum_example/020_simple_h_function", + "docs": "https://book.chibivue.land/ja/10-minimum-example/020-simple-h-function", + "changedFiles": [ + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "packages/index.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/apiCreateApp.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/h.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/index.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/renderer.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/vnode.ts", + "kind": "U", + }, + { + "path": "packages/runtime-dom/index.ts", + "kind": "M", + }, + { + "path": "packages/runtime-dom/modules/attrs.ts", + "kind": "U", + }, + { + "path": "packages/runtime-dom/modules/events.ts", + "kind": "U", + }, + { + "path": "packages/runtime-dom/nodeOps.ts", + "kind": "M", + }, + { + "path": "packages/runtime-dom/patchProp.ts", + "kind": "U", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-ja/chapters/008-event-handler-and-attrs.jsonc b/packages/courses-config/chibivue-ja/chapters/008-event-handler-and-attrs.jsonc new file mode 100644 index 0000000..3ee9807 --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/008-event-handler-and-attrs.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "event-handler-and-attrs", + "title": "イベントハンドラや属性に対応してみる", + "fromDir": "10_minimum_example/020_simple_h_function", + "toDir": "10_minimum_example/020_simple_h_function", + "docs": "https://book.chibivue.land/ja/10-minimum-example/025-event-handler-and-attrs", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-ja/chapters/009-prerequisite-knowledge-for-the-reactivity-system.jsonc b/packages/courses-config/chibivue-ja/chapters/009-prerequisite-knowledge-for-the-reactivity-system.jsonc new file mode 100644 index 0000000..2d3e59d --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/009-prerequisite-knowledge-for-the-reactivity-system.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "prerequisite-knowledge-for-the-reactivity-system", + "title": "リアクティビティシステムの前程知識", + "fromDir": "10_minimum_example/020_simple_h_function", + "toDir": "10_minimum_example/020_simple_h_function", + "docs": "https://book.chibivue.land/ja/10-minimum-example/030-prerequisite-knowledge-for-the-reactivity-system", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-ja/chapters/010-try-implementing-a-minimum-reactivity-system.jsonc b/packages/courses-config/chibivue-ja/chapters/010-try-implementing-a-minimum-reactivity-system.jsonc new file mode 100644 index 0000000..84f594d --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/010-try-implementing-a-minimum-reactivity-system.jsonc @@ -0,0 +1,54 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "try-implementing-a-minimum-reactivity-system", + "title": "小さいリアクティビティシステムを実装してみる", + "fromDir": "10_minimum_example/020_simple_h_function", + "toDir": "10_minimum_example/030_reactive_system", + "docs": "https://book.chibivue.land/ja/10-minimum-example/035-try-implementing-a-minimum-reactivity-system", + "changedFiles": [ + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "packages/index.ts", + "kind": "M", + }, + { + "path": "packages/reactivity/baseHandler.ts", + "kind": "U", + }, + { + "path": "packages/reactivity/dep.ts", + "kind": "U", + }, + { + "path": "packages/reactivity/effect.ts", + "kind": "U", + }, + { + "path": "packages/reactivity/index.ts", + "kind": "U", + }, + { + "path": "packages/reactivity/reactive.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/apiCreateApp.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/componentOptions.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/renderer.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-ja/chapters/011-minimum-virtual-dom.jsonc b/packages/courses-config/chibivue-ja/chapters/011-minimum-virtual-dom.jsonc new file mode 100644 index 0000000..584dc45 --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/011-minimum-virtual-dom.jsonc @@ -0,0 +1,34 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "minimum-virtual-dom", + "title": "小さい仮想 DOM", + "fromDir": "10_minimum_example/030_reactive_system", + "toDir": "10_minimum_example/040_vdom_system", + "docs": "https://book.chibivue.land/ja/10-minimum-example/040-minimum-virtual-dom", + "changedFiles": [ + { + "path": "packages/runtime-core/apiCreateApp.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/h.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/renderer.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/vnode.ts", + "kind": "M", + }, + { + "path": "packages/runtime-dom/nodeOps.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-ja/chapters/012-minimum-component.jsonc b/packages/courses-config/chibivue-ja/chapters/012-minimum-component.jsonc new file mode 100644 index 0000000..c92a69a --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/012-minimum-component.jsonc @@ -0,0 +1,38 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "minimum-component", + "title": "コンポーネント指向で開発したい", + "fromDir": "10_minimum_example/040_vdom_system", + "toDir": "10_minimum_example/050_component_system", + "docs": "https://book.chibivue.land/ja/10-minimum-example/050-minimum-component", + "changedFiles": [ + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/component.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/h.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/renderer.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/vnode.ts", + "kind": "M", + }, + { + "path": "packages/runtime-dom/nodeOps.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-ja/chapters/013-component-props.jsonc b/packages/courses-config/chibivue-ja/chapters/013-component-props.jsonc new file mode 100644 index 0000000..7014a42 --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/013-component-props.jsonc @@ -0,0 +1,34 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "component-props", + "title": "Props の実装", + "fromDir": "10_minimum_example/050_component_system", + "toDir": "10_minimum_example/050_component_system2", + "docs": "https://book.chibivue.land/ja/10-minimum-example/051-component-props", + "changedFiles": [ + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/component.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/componentOptions.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/componentProps.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/renderer.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-ja/chapters/014-component-emits.jsonc b/packages/courses-config/chibivue-ja/chapters/014-component-emits.jsonc new file mode 100644 index 0000000..8ad4eda --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/014-component-emits.jsonc @@ -0,0 +1,46 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "component-emits", + "title": "Emit の実装", + "fromDir": "10_minimum_example/050_component_system2", + "toDir": "10_minimum_example/050_component_system3", + "docs": "https://book.chibivue.land/ja/10-minimum-example/052-component-emits", + "changedFiles": [ + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/component.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/componentEmits.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/componentOptions.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/componentProps.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/renderer.ts", + "kind": "M", + }, + { + "path": "packages/shared/general.ts", + "kind": "U", + }, + { + "path": "packages/shared/index.ts", + "kind": "U", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-ja/chapters/015-template-compiler.jsonc b/packages/courses-config/chibivue-ja/chapters/015-template-compiler.jsonc new file mode 100644 index 0000000..f1e9630 --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/015-template-compiler.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "template-compiler", + "title": "テンプレートコンパイラを理解する", + "fromDir": "10_minimum_example/050_component_system3", + "toDir": "10_minimum_example/050_component_system3", + "docs": "https://book.chibivue.land/ja/10-minimum-example/060-template-compiler", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-ja/chapters/016-template-compiler-impl.jsonc b/packages/courses-config/chibivue-ja/chapters/016-template-compiler-impl.jsonc new file mode 100644 index 0000000..c60ae00 --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/016-template-compiler-impl.jsonc @@ -0,0 +1,66 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "template-compiler-impl", + "title": "テンプレートコンパイラを実装する", + "fromDir": "10_minimum_example/050_component_system3", + "toDir": "10_minimum_example/060_template_compiler", + "docs": "https://book.chibivue.land/ja/10-minimum-example/061-template-compiler-impl", + "changedFiles": [ + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/ast.ts", + "kind": "U", + }, + { + "path": "packages/compiler-core/codegen.ts", + "kind": "U", + }, + { + "path": "packages/compiler-core/compile.ts", + "kind": "U", + }, + { + "path": "packages/compiler-core/index.ts", + "kind": "U", + }, + { + "path": "packages/compiler-core/parse.ts", + "kind": "U", + }, + { + "path": "packages/compiler-dom/index.ts", + "kind": "U", + }, + { + "path": "packages/index.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/component.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/componentOptions.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/index.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/renderer.ts", + "kind": "M", + }, + { + "path": "packages/runtime-dom/index.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-ja/chapters/017-more-complex-parser.jsonc b/packages/courses-config/chibivue-ja/chapters/017-more-complex-parser.jsonc new file mode 100644 index 0000000..e65c6ae --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/017-more-complex-parser.jsonc @@ -0,0 +1,30 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "more-complex-parser", + "title": "もっと複雑な HTML を書きたい", + "fromDir": "10_minimum_example/060_template_compiler", + "toDir": "10_minimum_example/060_template_compiler2", + "docs": "https://book.chibivue.land/ja/10-minimum-example/070-more-complex-parser", + "changedFiles": [ + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/codegen.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/compile.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/parse.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-ja/chapters/018-template-binding.jsonc b/packages/courses-config/chibivue-ja/chapters/018-template-binding.jsonc new file mode 100644 index 0000000..1bb3030 --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/018-template-binding.jsonc @@ -0,0 +1,42 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "template-binding", + "title": "データバインディング", + "fromDir": "10_minimum_example/060_template_compiler2", + "toDir": "10_minimum_example/060_template_compiler3", + "docs": "https://book.chibivue.land/ja/10-minimum-example/080-template-binding", + "changedFiles": [ + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/ast.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/codegen.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/parse.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/component.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/componentOptions.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/renderer.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-ja/chapters/019-prerequisite-knowledge-for-the-sfc.jsonc b/packages/courses-config/chibivue-ja/chapters/019-prerequisite-knowledge-for-the-sfc.jsonc new file mode 100644 index 0000000..1c3d75c --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/019-prerequisite-knowledge-for-the-sfc.jsonc @@ -0,0 +1,74 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "prerequisite-knowledge-for-the-sfc", + "title": "SFC で開発したい (周辺知識編)", + "fromDir": "10_minimum_example/060_template_compiler3", + "toDir": "10_minimum_example/070_sfc_compiler", + "docs": "https://book.chibivue.land/ja/10-minimum-example/090-prerequisite-knowledge-for-the-sfc", + "changedFiles": [ + { + "path": "plugin-sample/README.md", + "kind": "U", + }, + { + "path": "plugin-sample/index.html", + "kind": "U", + }, + { + "path": "plugin-sample/package.json", + "kind": "U", + }, + { + "path": "plugin-sample/pnpm-lock.yaml", + "kind": "U", + }, + { + "path": "plugin-sample/public/vite.svg", + "kind": "U", + }, + { + "path": "plugin-sample/src/App.vue", + "kind": "U", + }, + { + "path": "plugin-sample/src/assets/vue.svg", + "kind": "U", + }, + { + "path": "plugin-sample/src/components/HelloWorld.vue", + "kind": "U", + }, + { + "path": "plugin-sample/src/main.ts", + "kind": "U", + }, + { + "path": "plugin-sample/src/plugin.sample.js", + "kind": "U", + }, + { + "path": "plugin-sample/src/style.css", + "kind": "U", + }, + { + "path": "plugin-sample/src/vite-env.d.ts", + "kind": "U", + }, + { + "path": "plugin-sample/tsconfig.json", + "kind": "U", + }, + { + "path": "plugin-sample/tsconfig.node.json", + "kind": "U", + }, + { + "path": "plugin-sample/vite.config.ts", + "kind": "U", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-ja/chapters/020-parse-sfc.jsonc b/packages/courses-config/chibivue-ja/chapters/020-parse-sfc.jsonc new file mode 100644 index 0000000..25a788e --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/020-parse-sfc.jsonc @@ -0,0 +1,110 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "parse-sfc", + "title": "SFC のパース", + "fromDir": "10_minimum_example/070_sfc_compiler", + "toDir": "10_minimum_example/070_sfc_compiler2", + "docs": "https://book.chibivue.land/ja/10-minimum-example/091-parse-sfc", + "changedFiles": [ + { + "path": "examples/playground/src/App.vue", + "kind": "U", + }, + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "examples/playground/vite.config.ts", + "kind": "M", + }, + { + "path": "packages/@extensions/vite-plugin-chibivue/index.ts", + "kind": "U", + }, + { + "path": "packages/compiler-core/index.ts", + "kind": "M", + }, + { + "path": "packages/compiler-dom/index.ts", + "kind": "M", + }, + { + "path": "packages/compiler-sfc/compileTemplate.ts", + "kind": "U", + }, + { + "path": "packages/compiler-sfc/index.ts", + "kind": "U", + }, + { + "path": "packages/compiler-sfc/parse.ts", + "kind": "U", + }, + { + "path": "plugin-sample/README.md", + "kind": "D", + }, + { + "path": "plugin-sample/index.html", + "kind": "D", + }, + { + "path": "plugin-sample/package.json", + "kind": "D", + }, + { + "path": "plugin-sample/pnpm-lock.yaml", + "kind": "D", + }, + { + "path": "plugin-sample/public/vite.svg", + "kind": "D", + }, + { + "path": "plugin-sample/src/App.vue", + "kind": "D", + }, + { + "path": "plugin-sample/src/assets/vue.svg", + "kind": "D", + }, + { + "path": "plugin-sample/src/components/HelloWorld.vue", + "kind": "D", + }, + { + "path": "plugin-sample/src/main.ts", + "kind": "D", + }, + { + "path": "plugin-sample/src/plugin.sample.js", + "kind": "D", + }, + { + "path": "plugin-sample/src/style.css", + "kind": "D", + }, + { + "path": "plugin-sample/src/vite-env.d.ts", + "kind": "D", + }, + { + "path": "plugin-sample/tsconfig.json", + "kind": "D", + }, + { + "path": "plugin-sample/tsconfig.node.json", + "kind": "D", + }, + { + "path": "plugin-sample/vite.config.ts", + "kind": "D", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-ja/chapters/021-compile-sfc-template.jsonc b/packages/courses-config/chibivue-ja/chapters/021-compile-sfc-template.jsonc new file mode 100644 index 0000000..fec8a45 --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/021-compile-sfc-template.jsonc @@ -0,0 +1,38 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "compile-sfc-template", + "title": "SFC の template block", + "fromDir": "10_minimum_example/070_sfc_compiler2", + "toDir": "10_minimum_example/070_sfc_compiler3", + "docs": "https://book.chibivue.land/ja/10-minimum-example/092-compile-sfc-template", + "changedFiles": [ + { + "path": "packages/@extensions/vite-plugin-chibivue/index.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/codegen.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/compile.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/index.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/options.ts", + "kind": "U", + }, + { + "path": "packages/compiler-dom/index.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-ja/chapters/022-compile-sfc-script.jsonc b/packages/courses-config/chibivue-ja/chapters/022-compile-sfc-script.jsonc new file mode 100644 index 0000000..dcc1c64 --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/022-compile-sfc-script.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "compile-sfc-script", + "title": "SFC の script block", + "fromDir": "10_minimum_example/070_sfc_compiler3", + "toDir": "10_minimum_example/070_sfc_compiler3", + "docs": "https://book.chibivue.land/ja/10-minimum-example/093-compile-sfc-script", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-ja/chapters/023-compile-sfc-style.jsonc b/packages/courses-config/chibivue-ja/chapters/023-compile-sfc-style.jsonc new file mode 100644 index 0000000..522286e --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/023-compile-sfc-style.jsonc @@ -0,0 +1,38 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "compile-sfc-style", + "title": "SFC の style block", + "fromDir": "10_minimum_example/070_sfc_compiler3", + "toDir": "10_minimum_example/070_sfc_compiler4", + "docs": "https://book.chibivue.land/ja/10-minimum-example/094-compile-sfc-style", + "changedFiles": [ + { + "path": "examples/playground/vite.config.ts", + "kind": "M", + }, + { + "path": "package.json", + "kind": "M", + }, + { + "path": "packages/@extensions/vite-plugin-chibivue/index.ts", + "kind": "M", + }, + { + "path": "packages/compiler-sfc/index.ts", + "kind": "M", + }, + { + "path": "packages/compiler-sfc/rewriteDefault.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/component.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-ja/chapters/024-break.jsonc b/packages/courses-config/chibivue-ja/chapters/024-break.jsonc new file mode 100644 index 0000000..200babe --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/024-break.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "break", + "title": "ちょっと一息", + "fromDir": "10_minimum_example/070_sfc_compiler4", + "toDir": "10_minimum_example/070_sfc_compiler4", + "docs": "https://book.chibivue.land/ja/10-minimum-example/100-break", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-ja/chapters/025-patch-keyed-children.jsonc b/packages/courses-config/chibivue-ja/chapters/025-patch-keyed-children.jsonc new file mode 100644 index 0000000..3ef3814 --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/025-patch-keyed-children.jsonc @@ -0,0 +1,38 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "patch-keyed-children", + "title": "key属性とパッチレンダリング", + "fromDir": "10_minimum_example/070_sfc_compiler4", + "toDir": "20_basic_virtual_dom/010_patch_keyed_children", + "docs": "https://book.chibivue.land/ja/20-basic-virtual-dom/010-patch-keyed-children", + "changedFiles": [ + { + "path": "examples/playground/src/App.vue", + "kind": "D", + }, + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "examples/playground/vite.config.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/renderer.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/vnode.ts", + "kind": "M", + }, + { + "path": "packages/runtime-dom/nodeOps.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-ja/chapters/026-bit-flags.jsonc b/packages/courses-config/chibivue-ja/chapters/026-bit-flags.jsonc new file mode 100644 index 0000000..f3aea99 --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/026-bit-flags.jsonc @@ -0,0 +1,34 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "bit-flags", + "title": "ビットによるVNodeの表現", + "fromDir": "20_basic_virtual_dom/010_patch_keyed_children", + "toDir": "20_basic_virtual_dom/020_bit_flags", + "docs": "https://book.chibivue.land/ja/20-basic-virtual-dom/020-bit-flags", + "changedFiles": [ + { + "path": "packages/reactivity/baseHandler.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/renderer.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/vnode.ts", + "kind": "M", + }, + { + "path": "packages/shared/general.ts", + "kind": "M", + }, + { + "path": "packages/shared/shapeFlags.ts", + "kind": "U", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-ja/chapters/027-scheduler.jsonc b/packages/courses-config/chibivue-ja/chapters/027-scheduler.jsonc new file mode 100644 index 0000000..732c150 --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/027-scheduler.jsonc @@ -0,0 +1,42 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "scheduler", + "title": "スケジューラ", + "fromDir": "20_basic_virtual_dom/020_bit_flags", + "toDir": "20_basic_virtual_dom/050_next_tick", + "docs": "https://book.chibivue.land/ja/20-basic-virtual-dom/030-scheduler", + "changedFiles": [ + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "packages/reactivity/effect.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/component.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/index.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/renderer.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/scheduler.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/vnode.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-ja/chapters/028-patch-other-attrs.jsonc b/packages/courses-config/chibivue-ja/chapters/028-patch-other-attrs.jsonc new file mode 100644 index 0000000..40fcd97 --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/028-patch-other-attrs.jsonc @@ -0,0 +1,42 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "patch-other-attrs", + "title": "対応できていない Props のパッチ", + "fromDir": "20_basic_virtual_dom/050_next_tick", + "toDir": "20_basic_virtual_dom/060_other_props", + "docs": "https://book.chibivue.land/ja/20-basic-virtual-dom/040-patch-other-attrs", + "changedFiles": [ + { + "path": "packages/runtime-core/renderer.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/vnode.ts", + "kind": "M", + }, + { + "path": "packages/runtime-dom/modules/class.ts", + "kind": "U", + }, + { + "path": "packages/runtime-dom/modules/props.ts", + "kind": "U", + }, + { + "path": "packages/runtime-dom/modules/style.ts", + "kind": "U", + }, + { + "path": "packages/runtime-dom/patchProp.ts", + "kind": "M", + }, + { + "path": "packages/shared/general.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-ja/chapters/029-reactivity-optimization.jsonc b/packages/courses-config/chibivue-ja/chapters/029-reactivity-optimization.jsonc new file mode 100644 index 0000000..7cd99a0 --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/029-reactivity-optimization.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "reactivity-optimization", + "title": "Reactivity の最適化", + "fromDir": "20_basic_virtual_dom/060_other_props", + "toDir": "20_basic_virtual_dom/060_other_props", + "docs": "https://book.chibivue.land/ja/30-basic-reactivity-system/005-reactivity-optimization", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-ja/chapters/030-ref-api.jsonc b/packages/courses-config/chibivue-ja/chapters/030-ref-api.jsonc new file mode 100644 index 0000000..e871729 --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/030-ref-api.jsonc @@ -0,0 +1,54 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "ref-api", + "title": "ref api", + "fromDir": "20_basic_virtual_dom/060_other_props", + "toDir": "30_basic_reactivity_system/040_to_refs", + "docs": "https://book.chibivue.land/ja/30-basic-reactivity-system/010-ref-api", + "changedFiles": [ + { + "path": "examples/playground/src/App.vue", + "kind": "U", + }, + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/codegen.ts", + "kind": "M", + }, + { + "path": "packages/reactivity/effect.ts", + "kind": "M", + }, + { + "path": "packages/reactivity/index.ts", + "kind": "M", + }, + { + "path": "packages/reactivity/reactive.ts", + "kind": "M", + }, + { + "path": "packages/reactivity/ref.ts", + "kind": "U", + }, + { + "path": "packages/shared/general.ts", + "kind": "M", + }, + { + "path": "packages/shared/index.ts", + "kind": "M", + }, + { + "path": "packages/shared/typeUtils.ts", + "kind": "U", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-ja/chapters/031-computed-watch.jsonc b/packages/courses-config/chibivue-ja/chapters/031-computed-watch.jsonc new file mode 100644 index 0000000..001cc82 --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/031-computed-watch.jsonc @@ -0,0 +1,46 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "computed-watch", + "title": "computed / watch api", + "fromDir": "30_basic_reactivity_system/040_to_refs", + "toDir": "30_basic_reactivity_system/090_watch_effect", + "docs": "https://book.chibivue.land/ja/30-basic-reactivity-system/020-computed-watch", + "changedFiles": [ + { + "path": "examples/playground/src/App.vue", + "kind": "M", + }, + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "packages/reactivity/baseHandler.ts", + "kind": "M", + }, + { + "path": "packages/reactivity/computed.ts", + "kind": "U", + }, + { + "path": "packages/reactivity/index.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/apiWatch.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/index.ts", + "kind": "M", + }, + { + "path": "packages/shared/general.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-ja/chapters/032-reactive-proxy-handlers.jsonc b/packages/courses-config/chibivue-ja/chapters/032-reactive-proxy-handlers.jsonc new file mode 100644 index 0000000..7c77c6e --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/032-reactive-proxy-handlers.jsonc @@ -0,0 +1,54 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "reactive-proxy-handlers", + "title": "様々な Reactive Proxy Handler", + "fromDir": "30_basic_reactivity_system/090_watch_effect", + "toDir": "30_basic_reactivity_system/120_proxy_handler_improvement", + "docs": "https://book.chibivue.land/ja/30-basic-reactivity-system/030-reactive-proxy-handlers", + "changedFiles": [ + { + "path": "examples/playground/src/App.vue", + "kind": "M", + }, + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "packages/reactivity/baseHandler.ts", + "kind": "M", + }, + { + "path": "packages/reactivity/collectionHandlers.ts", + "kind": "U", + }, + { + "path": "packages/reactivity/effect.ts", + "kind": "M", + }, + { + "path": "packages/reactivity/reactive.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/renderer.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/rendererTemplateRef.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/vnode.ts", + "kind": "M", + }, + { + "path": "packages/shared/general.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-ja/chapters/033-effect-scope.jsonc b/packages/courses-config/chibivue-ja/chapters/033-effect-scope.jsonc new file mode 100644 index 0000000..a5442ed --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/033-effect-scope.jsonc @@ -0,0 +1,46 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "effect-scope", + "title": "Effect のクリーンアップと Effect Scope", + "fromDir": "30_basic_reactivity_system/120_proxy_handler_improvement", + "toDir": "30_basic_reactivity_system/140_effect_scope", + "docs": "https://book.chibivue.land/ja/30-basic-reactivity-system/040-effect-scope", + "changedFiles": [ + { + "path": "examples/playground/src/App.vue", + "kind": "D", + }, + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "packages/reactivity/effect.ts", + "kind": "M", + }, + { + "path": "packages/reactivity/effectScope.ts", + "kind": "U", + }, + { + "path": "packages/reactivity/index.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/apiWatch.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/component.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/renderer.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-ja/chapters/034-other-apis.jsonc b/packages/courses-config/chibivue-ja/chapters/034-other-apis.jsonc new file mode 100644 index 0000000..45bcc22 --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/034-other-apis.jsonc @@ -0,0 +1,42 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "other-apis", + "title": "その他の reactivity api", + "fromDir": "30_basic_reactivity_system/140_effect_scope", + "toDir": "30_basic_reactivity_system/150_other_apis", + "docs": "https://book.chibivue.land/ja/30-basic-reactivity-system/050-other-apis", + "changedFiles": [ + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "examples/playground/vite.config.ts", + "kind": "M", + }, + { + "path": "packages/reactivity/baseHandler.ts", + "kind": "M", + }, + { + "path": "packages/reactivity/collectionHandlers.ts", + "kind": "M", + }, + { + "path": "packages/reactivity/index.ts", + "kind": "M", + }, + { + "path": "packages/reactivity/reactive.ts", + "kind": "M", + }, + { + "path": "packages/reactivity/ref.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-ja/chapters/035-lifecycle-hooks.jsonc b/packages/courses-config/chibivue-ja/chapters/035-lifecycle-hooks.jsonc new file mode 100644 index 0000000..79897dd --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/035-lifecycle-hooks.jsonc @@ -0,0 +1,54 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "lifecycle-hooks", + "title": "ライフサイクルフック", + "fromDir": "30_basic_reactivity_system/150_other_apis", + "toDir": "40_basic_component_system/010_lifecycle_hooks", + "docs": "https://book.chibivue.land/ja/40-basic-component-system/010-lifecycle-hooks", + "changedFiles": [ + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "examples/playground/vite.config.ts", + "kind": "M", + }, + { + "path": "packages/reactivity/collectionHandlers.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/apiLifecycle.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/component.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/enums.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/index.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/renderer.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/scheduler.ts", + "kind": "M", + }, + { + "path": "packages/shared/general.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-ja/chapters/036-provide-inject.jsonc b/packages/courses-config/chibivue-ja/chapters/036-provide-inject.jsonc new file mode 100644 index 0000000..f1c14b1 --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/036-provide-inject.jsonc @@ -0,0 +1,46 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "provide-inject", + "title": "Provide/Inject", + "fromDir": "40_basic_component_system/010_lifecycle_hooks", + "toDir": "40_basic_component_system/020_provide_inject", + "docs": "https://book.chibivue.land/ja/40-basic-component-system/020-provide-inject", + "changedFiles": [ + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/apiCreateApp.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/apiInject.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/component.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/componentOptions.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/index.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/renderer.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/vnode.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-ja/chapters/037-component-proxy-setup-context.jsonc b/packages/courses-config/chibivue-ja/chapters/037-component-proxy-setup-context.jsonc new file mode 100644 index 0000000..9fc8968 --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/037-component-proxy-setup-context.jsonc @@ -0,0 +1,54 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "component-proxy-setup-context", + "title": "コンポーネントの Proxy と setupContext", + "fromDir": "40_basic_component_system/020_provide_inject", + "toDir": "40_basic_component_system/040_setup_context", + "docs": "https://book.chibivue.land/ja/40-basic-component-system/030-component-proxy-setup-context", + "changedFiles": [ + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "packages/reactivity/ref.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/apiDefineComponent.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/component.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/componentOptions.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/componentProps.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/componentPublicInstance.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/index.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/renderer.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/rendererTemplateRef.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-ja/chapters/038-component-slot.jsonc b/packages/courses-config/chibivue-ja/chapters/038-component-slot.jsonc new file mode 100644 index 0000000..ae89c6e --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/038-component-slot.jsonc @@ -0,0 +1,46 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "component-slot", + "title": "スロット", + "fromDir": "40_basic_component_system/040_setup_context", + "toDir": "40_basic_component_system/060_slot_extend", + "docs": "https://book.chibivue.land/ja/40-basic-component-system/040-component-slot", + "changedFiles": [ + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/component.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/componentSlots.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/h.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/renderer.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/vnode.ts", + "kind": "M", + }, + { + "path": "packages/shared/shapeFlags.ts", + "kind": "M", + }, + { + "path": "packages/shared/typeUtils.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-ja/chapters/039-options-api.jsonc b/packages/courses-config/chibivue-ja/chapters/039-options-api.jsonc new file mode 100644 index 0000000..8b66189 --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/039-options-api.jsonc @@ -0,0 +1,42 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "options-api", + "title": "Options APIに対応する", + "fromDir": "40_basic_component_system/060_slot_extend", + "toDir": "40_basic_component_system/070_options_api", + "docs": "https://book.chibivue.land/ja/40-basic-component-system/050-options-api", + "changedFiles": [ + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/apiDefineComponent.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/component.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/componentEmits.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/componentOptions.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/componentPublicInstance.ts", + "kind": "M", + }, + { + "path": "packages/shared/typeUtils.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-ja/chapters/040-transform.jsonc b/packages/courses-config/chibivue-ja/chapters/040-transform.jsonc new file mode 100644 index 0000000..5785d4e --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/040-transform.jsonc @@ -0,0 +1,46 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "transform", + "title": "Transformer の実装 の Codegen のリファクタ", + "fromDir": "40_basic_component_system/070_options_api", + "toDir": "50_basic_template_compiler/010_transformer", + "docs": "https://book.chibivue.land/ja/50-basic-template-compiler/010-transform", + "changedFiles": [ + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/ast.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/codegen.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/compile.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/options.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/parse.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transform.ts", + "kind": "U", + }, + { + "path": "packages/compiler-core/transforms/transformElement.ts", + "kind": "U", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-ja/chapters/041-v-bind.jsonc b/packages/courses-config/chibivue-ja/chapters/041-v-bind.jsonc new file mode 100644 index 0000000..e233f49 --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/041-v-bind.jsonc @@ -0,0 +1,66 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "v-bind", + "title": "ディレクティブを実装しよう (v-bind)", + "fromDir": "50_basic_template_compiler/010_transformer", + "toDir": "50_basic_template_compiler/020_v_bind", + "docs": "https://book.chibivue.land/ja/50-basic-template-compiler/020-v-bind", + "changedFiles": [ + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/ast.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/codegen.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/compile.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/parse.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transform.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transforms/transformElement.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transforms/vBind.ts", + "kind": "U", + }, + { + "path": "packages/compiler-core/utils.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/index.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/vnode.ts", + "kind": "M", + }, + { + "path": "packages/shared/index.ts", + "kind": "M", + }, + { + "path": "packages/shared/normalizeProp.ts", + "kind": "U", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-ja/chapters/042-transform-expression.jsonc b/packages/courses-config/chibivue-ja/chapters/042-transform-expression.jsonc new file mode 100644 index 0000000..7daeda0 --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/042-transform-expression.jsonc @@ -0,0 +1,66 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "transform-expression", + "title": "template 内での式の評価", + "fromDir": "50_basic_template_compiler/020_v_bind", + "toDir": "50_basic_template_compiler/022_transform_expression", + "docs": "https://book.chibivue.land/ja/50-basic-template-compiler/022-transform-expression", + "changedFiles": [ + { + "path": "examples/playground/src/App.vue", + "kind": "U", + }, + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/ast.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/babelUtils.ts", + "kind": "U", + }, + { + "path": "packages/compiler-core/codegen.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/compile.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/options.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/parse.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transform.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transforms/transformExpression.ts", + "kind": "U", + }, + { + "path": "packages/compiler-core/transforms/vBind.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/utils.ts", + "kind": "M", + }, + { + "path": "packages/shared/makeMap.ts", + "kind": "U", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-ja/chapters/043-v-on.jsonc b/packages/courses-config/chibivue-ja/chapters/043-v-on.jsonc new file mode 100644 index 0000000..17f6b82 --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/043-v-on.jsonc @@ -0,0 +1,70 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "v-on", + "title": "v-on に対応する", + "fromDir": "50_basic_template_compiler/022_transform_expression", + "toDir": "50_basic_template_compiler/025_v_on", + "docs": "https://book.chibivue.land/ja/50-basic-template-compiler/025-v-on", + "changedFiles": [ + { + "path": "examples/playground/src/App.vue", + "kind": "D", + }, + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/ast.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/babelUtils.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/codegen.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/compile.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/runtimeHelpers.ts", + "kind": "U", + }, + { + "path": "packages/compiler-core/transform.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transforms/transformElement.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transforms/transformExpression.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transforms/vOn.ts", + "kind": "U", + }, + { + "path": "packages/compiler-core/utils.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/helpers/toHandlers.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/index.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-ja/chapters/044-event-modifier.jsonc b/packages/courses-config/chibivue-ja/chapters/044-event-modifier.jsonc new file mode 100644 index 0000000..22c46ed --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/044-event-modifier.jsonc @@ -0,0 +1,70 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "event-modifier", + "title": "compiler-dom とイベント修飾子", + "fromDir": "50_basic_template_compiler/025_v_on", + "toDir": "50_basic_template_compiler/027_event_modifier2", + "docs": "https://book.chibivue.land/ja/50-basic-template-compiler/027-event-modifier", + "changedFiles": [ + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/ast.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/codegen.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/compile.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/parse.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/runtimeHelpers.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transform.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transforms/vOn.ts", + "kind": "M", + }, + { + "path": "packages/compiler-dom/index.ts", + "kind": "M", + }, + { + "path": "packages/compiler-dom/transforms/vOn.ts", + "kind": "U", + }, + { + "path": "packages/runtime-dom/directives/vOn.ts", + "kind": "U", + }, + { + "path": "packages/runtime-dom/index.ts", + "kind": "M", + }, + { + "path": "packages/runtime-dom/runtimeHelpers.ts", + "kind": "U", + }, + { + "path": "packages/shared/general.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-ja/chapters/045-fragment.jsonc b/packages/courses-config/chibivue-ja/chapters/045-fragment.jsonc new file mode 100644 index 0000000..d72ac74 --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/045-fragment.jsonc @@ -0,0 +1,58 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "fragment", + "title": "Fragment に対応する", + "fromDir": "50_basic_template_compiler/027_event_modifier2", + "toDir": "50_basic_template_compiler/030_fragment", + "docs": "https://book.chibivue.land/ja/50-basic-template-compiler/030-fragment", + "changedFiles": [ + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/ast.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/codegen.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/runtimeHelpers.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transform.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/h.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/index.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/renderer.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/vnode.ts", + "kind": "M", + }, + { + "path": "packages/runtime-dom/nodeOps.ts", + "kind": "M", + }, + { + "path": "packages/shared/general.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-ja/chapters/046-comment.jsonc b/packages/courses-config/chibivue-ja/chapters/046-comment.jsonc new file mode 100644 index 0000000..b163c6b --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/046-comment.jsonc @@ -0,0 +1,54 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "comment", + "title": "コメントアウトに対応する", + "fromDir": "50_basic_template_compiler/030_fragment", + "toDir": "50_basic_template_compiler/035_comment", + "docs": "https://book.chibivue.land/ja/50-basic-template-compiler/035-comment", + "changedFiles": [ + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/ast.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/codegen.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/parse.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/runtimeHelpers.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transform.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/index.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/renderer.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/vnode.ts", + "kind": "M", + }, + { + "path": "packages/runtime-dom/nodeOps.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-ja/chapters/047-v-if-and-structural-directive.jsonc b/packages/courses-config/chibivue-ja/chapters/047-v-if-and-structural-directive.jsonc new file mode 100644 index 0000000..019f403 --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/047-v-if-and-structural-directive.jsonc @@ -0,0 +1,42 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "v-if-and-structural-directive", + "title": "v-if と構造的ディレクティブ", + "fromDir": "50_basic_template_compiler/035_comment", + "toDir": "50_basic_template_compiler/040_v_if_and_structural_directive", + "docs": "https://book.chibivue.land/ja/50-basic-template-compiler/040-v-if-and-structural-directive", + "changedFiles": [ + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "examples/playground/vite.config.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/ast.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/codegen.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/compile.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transform.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transforms/vIf.ts", + "kind": "U", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-ja/chapters/048-v-for.jsonc b/packages/courses-config/chibivue-ja/chapters/048-v-for.jsonc new file mode 100644 index 0000000..3f5251f --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/048-v-for.jsonc @@ -0,0 +1,78 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "v-for", + "title": "v-for に対応する", + "fromDir": "50_basic_template_compiler/040_v_if_and_structural_directive", + "toDir": "50_basic_template_compiler/050_v_for", + "docs": "https://book.chibivue.land/ja/50-basic-template-compiler/050-v-for", + "changedFiles": [ + { + "path": "examples/playground/src/App.vue", + "kind": "U", + }, + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "examples/playground/vite.config.js", + "kind": "U", + }, + { + "path": "examples/playground/vite.config.ts", + "kind": "D", + }, + { + "path": "packages/compiler-core/ast.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/babelUtils.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/codegen.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/compile.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/runtimeHelpers.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transform.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transforms/transformExpression.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transforms/vFor.ts", + "kind": "U", + }, + { + "path": "packages/compiler-core/utils.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/helpers/renderList.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/index.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/renderer.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-ja/chapters/049-resolve-component.jsonc b/packages/courses-config/chibivue-ja/chapters/049-resolve-component.jsonc new file mode 100644 index 0000000..decb824 --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/049-resolve-component.jsonc @@ -0,0 +1,102 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "resolve-component", + "title": "コンポーネントを解決する", + "fromDir": "50_basic_template_compiler/050_v_for", + "toDir": "50_basic_template_compiler/060_resolve_components", + "docs": "https://book.chibivue.land/ja/50-basic-template-compiler/070-resolve-component", + "changedFiles": [ + { + "path": "examples/playground/src/App.vue", + "kind": "M", + }, + { + "path": "examples/playground/src/components/Counter.vue", + "kind": "U", + }, + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "examples/playground/vite.config.js", + "kind": "D", + }, + { + "path": "examples/playground/vite.config.ts", + "kind": "U", + }, + { + "path": "packages/compiler-core/ast.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/codegen.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/options.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/parse.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/runtimeHelpers.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transform.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transforms/transformElement.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/utils.ts", + "kind": "M", + }, + { + "path": "packages/compiler-dom/index.ts", + "kind": "M", + }, + { + "path": "packages/compiler-dom/parserOptions.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/apiCreateApp.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/componentOptions.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/componentRenderContext.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/helpers/resolveAssets.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/index.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/renderer.ts", + "kind": "M", + }, + { + "path": "packages/shared/domTagConfig.ts", + "kind": "U", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-ja/chapters/050-component-slot-outlet.jsonc b/packages/courses-config/chibivue-ja/chapters/050-component-slot-outlet.jsonc new file mode 100644 index 0000000..5052967 --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/050-component-slot-outlet.jsonc @@ -0,0 +1,70 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "component-slot-outlet", + "title": "スロットに対応する (定義編)", + "fromDir": "50_basic_template_compiler/060_resolve_components", + "toDir": "50_basic_template_compiler/080_component_slot_outlet", + "docs": "https://book.chibivue.land/ja/50-basic-template-compiler/080-component-slot-outlet", + "changedFiles": [ + { + "path": "examples/playground/src/App.vue", + "kind": "M", + }, + { + "path": "examples/playground/src/Comp.vue", + "kind": "U", + }, + { + "path": "examples/playground/src/components/Counter.vue", + "kind": "D", + }, + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/ast.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/compile.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/parse.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/runtimeHelpers.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transforms/transformElement.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transforms/transformSlotOutlet.ts", + "kind": "U", + }, + { + "path": "packages/compiler-core/utils.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/componentPublicInstance.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/helpers/renderSlot.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/index.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-ja/chapters/051-component-slot-insert.jsonc b/packages/courses-config/chibivue-ja/chapters/051-component-slot-insert.jsonc new file mode 100644 index 0000000..49d863f --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/051-component-slot-insert.jsonc @@ -0,0 +1,46 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "component-slot-insert", + "title": "スロットに対応する (利用編)", + "fromDir": "50_basic_template_compiler/080_component_slot_outlet", + "toDir": "50_basic_template_compiler/085_component_slot_insert", + "docs": "https://book.chibivue.land/ja/50-basic-template-compiler/085-component-slot-insert", + "changedFiles": [ + { + "path": "packages/compiler-core/ast.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/parse.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/runtimeHelpers.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transforms/transformElement.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transforms/vSlot.ts", + "kind": "U", + }, + { + "path": "packages/compiler-core/utils.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/componentRenderContext.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/index.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-ja/chapters/052-other-directives.jsonc b/packages/courses-config/chibivue-ja/chapters/052-other-directives.jsonc new file mode 100644 index 0000000..bed5b3c --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/052-other-directives.jsonc @@ -0,0 +1,66 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "other-directives", + "title": "その他のディレクティブ", + "fromDir": "50_basic_template_compiler/085_component_slot_insert", + "toDir": "50_basic_template_compiler/090_other_directives", + "docs": "https://book.chibivue.land/ja/50-basic-template-compiler/090-other-directives", + "changedFiles": [ + { + "path": "examples/playground/src/App.vue", + "kind": "M", + }, + { + "path": "examples/playground/src/Comp.vue", + "kind": "D", + }, + { + "path": "packages/compiler-core/ast.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/parse.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/runtimeHelpers.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transforms/transformElement.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transforms/vSlot.ts", + "kind": "D", + }, + { + "path": "packages/compiler-core/utils.ts", + "kind": "M", + }, + { + "path": "packages/compiler-dom/index.ts", + "kind": "M", + }, + { + "path": "packages/compiler-dom/transforms/vHtml.ts", + "kind": "U", + }, + { + "path": "packages/compiler-dom/transforms/vText.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/componentRenderContext.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/index.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-ja/chapters/053-chore-compiler.jsonc b/packages/courses-config/chibivue-ja/chapters/053-chore-compiler.jsonc new file mode 100644 index 0000000..31dc019 --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/053-chore-compiler.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "chore-compiler", + "title": "コンパイラの細かい調整", + "fromDir": "50_basic_template_compiler/090_other_directives", + "toDir": "50_basic_template_compiler/100_chore_compiler", + "docs": "https://book.chibivue.land/ja/50-basic-template-compiler/100-chore-compiler", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-ja/chapters/054-parser-optimization.jsonc b/packages/courses-config/chibivue-ja/chapters/054-parser-optimization.jsonc new file mode 100644 index 0000000..e171220 --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/054-parser-optimization.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "parser-optimization", + "title": "パーサーの最適化", + "fromDir": "50_basic_template_compiler/100_chore_compiler", + "toDir": "50_basic_template_compiler/100_chore_compiler", + "docs": "https://book.chibivue.land/ja/50-basic-template-compiler/110-parser-optimization", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-ja/chapters/055-custom-directive.jsonc b/packages/courses-config/chibivue-ja/chapters/055-custom-directive.jsonc new file mode 100644 index 0000000..0a54309 --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/055-custom-directive.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "custom-directive", + "title": "カスタムディレクティブ", + "fromDir": "50_basic_template_compiler/100_chore_compiler", + "toDir": "50_basic_template_compiler/100_chore_compiler", + "docs": "https://book.chibivue.land/ja/50-basic-template-compiler/500-custom-directive", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-ja/chapters/056-script-setup.jsonc b/packages/courses-config/chibivue-ja/chapters/056-script-setup.jsonc new file mode 100644 index 0000000..792cf20 --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/056-script-setup.jsonc @@ -0,0 +1,34 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "script-setup", + "title": "script setup に対応する", + "fromDir": "50_basic_template_compiler/100_chore_compiler", + "toDir": "60_basic_sfc_compiler/010_script_setup", + "docs": "https://book.chibivue.land/ja/60-basic-sfc-compiler/010-script-setup", + "changedFiles": [ + { + "path": "packages/compiler-core/parse.ts", + "kind": "M", + }, + { + "path": "packages/compiler-sfc/compileScript.ts", + "kind": "U", + }, + { + "path": "packages/compiler-sfc/compileSfc.ts", + "kind": "U", + }, + { + "path": "packages/compiler-sfc/index.ts", + "kind": "M", + }, + { + "path": "packages/compiler-sfc/parse.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-ja/chapters/057-define-props.jsonc b/packages/courses-config/chibivue-ja/chapters/057-define-props.jsonc new file mode 100644 index 0000000..134730e --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/057-define-props.jsonc @@ -0,0 +1,42 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "define-props", + "title": "defineProps に対応する", + "fromDir": "60_basic_sfc_compiler/010_script_setup", + "toDir": "60_basic_sfc_compiler/020_define_props", + "docs": "https://book.chibivue.land/ja/60-basic-sfc-compiler/020-define-props", + "changedFiles": [ + { + "path": "examples/playground/src/App.vue", + "kind": "M", + }, + { + "path": "examples/playground/src/Child.vue", + "kind": "U", + }, + { + "path": "packages/compiler-sfc/compileScript.ts", + "kind": "M", + }, + { + "path": "packages/compiler-sfc/compileSfc.ts", + "kind": "M", + }, + { + "path": "packages/compiler-sfc/compileStyle.ts", + "kind": "U", + }, + { + "path": "packages/compiler-sfc/index.ts", + "kind": "M", + }, + { + "path": "packages/compiler-sfc/parse.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-ja/chapters/058-define-emits.jsonc b/packages/courses-config/chibivue-ja/chapters/058-define-emits.jsonc new file mode 100644 index 0000000..6574531 --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/058-define-emits.jsonc @@ -0,0 +1,26 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "define-emits", + "title": "defineEmits に対応する", + "fromDir": "60_basic_sfc_compiler/020_define_props", + "toDir": "60_basic_sfc_compiler/030_define_emits", + "docs": "https://book.chibivue.land/ja/60-basic-sfc-compiler/030-define-emits", + "changedFiles": [ + { + "path": "examples/playground/src/App.vue", + "kind": "M", + }, + { + "path": "examples/playground/src/Child.vue", + "kind": "M", + }, + { + "path": "packages/compiler-sfc/compileScript.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-ja/chapters/059-scoped-css.jsonc b/packages/courses-config/chibivue-ja/chapters/059-scoped-css.jsonc new file mode 100644 index 0000000..dae9743 --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/059-scoped-css.jsonc @@ -0,0 +1,26 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "scoped-css", + "title": "Scoped CSS に対応する", + "fromDir": "60_basic_sfc_compiler/030_define_emits", + "toDir": "60_basic_sfc_compiler/040_scoped_css", + "docs": "https://book.chibivue.land/ja/60-basic-sfc-compiler/040-scoped-css", + "changedFiles": [ + { + "path": "examples/playground/src/App.vue", + "kind": "M", + }, + { + "path": "examples/playground/src/Child.vue", + "kind": "M", + }, + { + "path": "packages/compiler-sfc/compileStyle.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-ja/chapters/060-props-destructure.jsonc b/packages/courses-config/chibivue-ja/chapters/060-props-destructure.jsonc new file mode 100644 index 0000000..5153207 --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/060-props-destructure.jsonc @@ -0,0 +1,22 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "props-destructure", + "title": "Props の分割代入に対応する", + "fromDir": "60_basic_sfc_compiler/040_scoped_css", + "toDir": "60_basic_sfc_compiler/050_props_destructure", + "docs": "https://book.chibivue.land/ja/60-basic-sfc-compiler/050-props-destructure", + "changedFiles": [ + { + "path": "examples/playground/src/App.vue", + "kind": "M", + }, + { + "path": "examples/playground/src/Child.vue", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-ja/chapters/061-type-based-macros.jsonc b/packages/courses-config/chibivue-ja/chapters/061-type-based-macros.jsonc new file mode 100644 index 0000000..32e7809 --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/061-type-based-macros.jsonc @@ -0,0 +1,26 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "type-based-macros", + "title": "型ベースの defineProps/defineEmits", + "fromDir": "60_basic_sfc_compiler/050_props_destructure", + "toDir": "60_basic_sfc_compiler/060_type_based_macros", + "docs": "https://book.chibivue.land/ja/60-basic-sfc-compiler/060-type-based-macros", + "changedFiles": [ + { + "path": "examples/playground/src/App.vue", + "kind": "M", + }, + { + "path": "examples/playground/src/Child.vue", + "kind": "M", + }, + { + "path": "packages/compiler-sfc/compileScript.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-ja/chapters/062-router.jsonc b/packages/courses-config/chibivue-ja/chapters/062-router.jsonc new file mode 100644 index 0000000..b872e34 --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/062-router.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "router", + "title": "ルーター", + "fromDir": "60_basic_sfc_compiler/060_type_based_macros", + "toDir": "60_basic_sfc_compiler/060_type_based_macros", + "docs": "https://book.chibivue.land/ja/90-web-application-essentials/010-plugins/010-router", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-ja/chapters/063-preprocessors.jsonc b/packages/courses-config/chibivue-ja/chapters/063-preprocessors.jsonc new file mode 100644 index 0000000..3652738 --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/063-preprocessors.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "preprocessors", + "title": "CSS プリプロセッサ", + "fromDir": "60_basic_sfc_compiler/060_type_based_macros", + "toDir": "60_basic_sfc_compiler/060_type_based_macros", + "docs": "https://book.chibivue.land/ja/90-web-application-essentials/010-plugins/020-preprocessors", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-ja/chapters/064-store.jsonc b/packages/courses-config/chibivue-ja/chapters/064-store.jsonc new file mode 100644 index 0000000..b2feb04 --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/064-store.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "store", + "title": "ストア", + "fromDir": "60_basic_sfc_compiler/060_type_based_macros", + "toDir": "60_basic_sfc_compiler/060_type_based_macros", + "docs": "https://book.chibivue.land/ja/90-web-application-essentials/010-plugins/020-store", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-ja/chapters/065-data-fetch.jsonc b/packages/courses-config/chibivue-ja/chapters/065-data-fetch.jsonc new file mode 100644 index 0000000..aae9cbf --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/065-data-fetch.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "data-fetch", + "title": "データフェッチ", + "fromDir": "60_basic_sfc_compiler/060_type_based_macros", + "toDir": "60_basic_sfc_compiler/060_type_based_macros", + "docs": "https://book.chibivue.land/ja/90-web-application-essentials/010-plugins/030-data-fetch", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-ja/chapters/066-language-tools.jsonc b/packages/courses-config/chibivue-ja/chapters/066-language-tools.jsonc new file mode 100644 index 0000000..847f1fb --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/066-language-tools.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "language-tools", + "title": "Language Tools", + "fromDir": "60_basic_sfc_compiler/060_type_based_macros", + "toDir": "60_basic_sfc_compiler/060_type_based_macros", + "docs": "https://book.chibivue.land/ja/90-web-application-essentials/010-plugins/040-language-tools", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-ja/chapters/067-create-ssr-app.jsonc b/packages/courses-config/chibivue-ja/chapters/067-create-ssr-app.jsonc new file mode 100644 index 0000000..20340a3 --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/067-create-ssr-app.jsonc @@ -0,0 +1,110 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "create-ssr-app", + "title": "renderToString", + "fromDir": "60_basic_sfc_compiler/060_type_based_macros", + "toDir": "90_web_application_essentials/010_ssr", + "docs": "https://book.chibivue.land/ja/90-web-application-essentials/020-ssr/010-create-ssr-app", + "changedFiles": [ + { + "path": "examples/playground/src/App.vue", + "kind": "M", + }, + { + "path": "examples/playground/src/Child.vue", + "kind": "D", + }, + { + "path": "packages/compiler-core/parse.ts", + "kind": "M", + }, + { + "path": "packages/compiler-sfc/compileScript.ts", + "kind": "D", + }, + { + "path": "packages/compiler-sfc/compileSfc.ts", + "kind": "D", + }, + { + "path": "packages/compiler-sfc/compileStyle.ts", + "kind": "D", + }, + { + "path": "packages/compiler-sfc/index.ts", + "kind": "M", + }, + { + "path": "packages/compiler-sfc/parse.ts", + "kind": "M", + }, + { + "path": "packages/index.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/apiCreateApp.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/component.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/hydration.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/index.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/vnode.ts", + "kind": "M", + }, + { + "path": "packages/runtime-dom/index.ts", + "kind": "M", + }, + { + "path": "packages/server-renderer/helpers/ssrInterpolate.ts", + "kind": "U", + }, + { + "path": "packages/server-renderer/helpers/ssrRenderAttrs.ts", + "kind": "U", + }, + { + "path": "packages/server-renderer/helpers/ssrRenderList.ts", + "kind": "U", + }, + { + "path": "packages/server-renderer/helpers/ssrUtils.ts", + "kind": "U", + }, + { + "path": "packages/server-renderer/index.ts", + "kind": "U", + }, + { + "path": "packages/server-renderer/render.ts", + "kind": "U", + }, + { + "path": "packages/server-renderer/renderToString.ts", + "kind": "U", + }, + { + "path": "packages/shared/general.ts", + "kind": "M", + }, + { + "path": "packages/shared/index.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-ja/chapters/068-hydration.jsonc b/packages/courses-config/chibivue-ja/chapters/068-hydration.jsonc new file mode 100644 index 0000000..e891249 --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/068-hydration.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "hydration", + "title": "Hydration", + "fromDir": "90_web_application_essentials/010_ssr", + "toDir": "90_web_application_essentials/010_ssr", + "docs": "https://book.chibivue.land/ja/90-web-application-essentials/020-ssr/020-hydration", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-ja/chapters/069-compiler-ssr.jsonc b/packages/courses-config/chibivue-ja/chapters/069-compiler-ssr.jsonc new file mode 100644 index 0000000..c63bfad --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/069-compiler-ssr.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "compiler-ssr", + "title": "Compiler SSR", + "fromDir": "90_web_application_essentials/010_ssr", + "toDir": "90_web_application_essentials/010_ssr", + "docs": "https://book.chibivue.land/ja/90-web-application-essentials/020-ssr/030-compiler-ssr", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-ja/chapters/070-keep-alive.jsonc b/packages/courses-config/chibivue-ja/chapters/070-keep-alive.jsonc new file mode 100644 index 0000000..2da50c1 --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/070-keep-alive.jsonc @@ -0,0 +1,58 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "keep-alive", + "title": "KeepAlive", + "fromDir": "90_web_application_essentials/010_ssr", + "toDir": "90_web_application_essentials/020_keep_alive", + "docs": "https://book.chibivue.land/ja/90-web-application-essentials/030-builtins/010-keep-alive", + "changedFiles": [ + { + "path": "examples/playground/src/App.vue", + "kind": "M", + }, + { + "path": "examples/playground/src/Counter.vue", + "kind": "U", + }, + { + "path": "packages/runtime-core/apiLifecycle.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/component.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/components/KeepAlive.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/hydration.ts", + "kind": "D", + }, + { + "path": "packages/runtime-core/index.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/renderer.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/vnode.ts", + "kind": "M", + }, + { + "path": "packages/runtime-dom/index.ts", + "kind": "M", + }, + { + "path": "packages/shared/shapeFlags.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-ja/chapters/071-transition.jsonc b/packages/courses-config/chibivue-ja/chapters/071-transition.jsonc new file mode 100644 index 0000000..7ddb6c4 --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/071-transition.jsonc @@ -0,0 +1,34 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "transition", + "title": "Transition", + "fromDir": "90_web_application_essentials/020_keep_alive", + "toDir": "90_web_application_essentials/030_transition", + "docs": "https://book.chibivue.land/ja/90-web-application-essentials/030-builtins/030-transition", + "changedFiles": [ + { + "path": "examples/playground/src/App.vue", + "kind": "M", + }, + { + "path": "examples/playground/src/Counter.vue", + "kind": "D", + }, + { + "path": "packages/runtime-core/vnode.ts", + "kind": "M", + }, + { + "path": "packages/runtime-dom/components/Transition.ts", + "kind": "U", + }, + { + "path": "packages/runtime-dom/index.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-ja/chapters/072-static-hoisting.jsonc b/packages/courses-config/chibivue-ja/chapters/072-static-hoisting.jsonc new file mode 100644 index 0000000..55e808c --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/072-static-hoisting.jsonc @@ -0,0 +1,34 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "static-hoisting", + "title": "Static Hoisting", + "fromDir": "90_web_application_essentials/030_transition", + "toDir": "90_web_application_essentials/040_static_hoisting", + "docs": "https://book.chibivue.land/ja/90-web-application-essentials/040-optimizations/010-static-hoisting", + "changedFiles": [ + { + "path": "examples/playground/src/App.vue", + "kind": "M", + }, + { + "path": "packages/compiler-core/ast.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/codegen.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/options.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transform.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-ja/chapters/073-patch-flags.jsonc b/packages/courses-config/chibivue-ja/chapters/073-patch-flags.jsonc new file mode 100644 index 0000000..01953b1 --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/073-patch-flags.jsonc @@ -0,0 +1,38 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "patch-flags", + "title": "Patch Flags", + "fromDir": "90_web_application_essentials/040_static_hoisting", + "toDir": "90_web_application_essentials/050_patch_flags", + "docs": "https://book.chibivue.land/ja/90-web-application-essentials/040-optimizations/020-patch-flags", + "changedFiles": [ + { + "path": "examples/playground/src/App.vue", + "kind": "M", + }, + { + "path": "packages/compiler-core/ast.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/codegen.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/vnode.ts", + "kind": "M", + }, + { + "path": "packages/shared/index.ts", + "kind": "M", + }, + { + "path": "packages/shared/patchFlags.ts", + "kind": "U", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-ja/chapters/074-tree-flattening.jsonc b/packages/courses-config/chibivue-ja/chapters/074-tree-flattening.jsonc new file mode 100644 index 0000000..628876b --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/074-tree-flattening.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "tree-flattening", + "title": "Tree Flattening", + "fromDir": "90_web_application_essentials/050_patch_flags", + "toDir": "90_web_application_essentials/050_patch_flags", + "docs": "https://book.chibivue.land/ja/90-web-application-essentials/040-optimizations/030-tree-flattening", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-ja/chapters/075-introduction.jsonc b/packages/courses-config/chibivue-ja/chapters/075-introduction.jsonc new file mode 100644 index 0000000..1aac1f6 --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/075-introduction.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "introduction", + "title": "Vapor Mode", + "fromDir": "90_web_application_essentials/050_patch_flags", + "toDir": "90_web_application_essentials/050_patch_flags", + "docs": "https://book.chibivue.land/ja/90-web-application-essentials/050-vapor/010-introduction", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-ja/chapters/076-vapor-compiler.jsonc b/packages/courses-config/chibivue-ja/chapters/076-vapor-compiler.jsonc new file mode 100644 index 0000000..4be25a5 --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/076-vapor-compiler.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "vapor-compiler", + "title": "Vapor Compiler", + "fromDir": "90_web_application_essentials/050_patch_flags", + "toDir": "90_web_application_essentials/050_patch_flags", + "docs": "https://book.chibivue.land/ja/90-web-application-essentials/050-vapor/020-vapor-compiler", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-ja/chapters/077-vapor-ssr.jsonc b/packages/courses-config/chibivue-ja/chapters/077-vapor-ssr.jsonc new file mode 100644 index 0000000..743f263 --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/077-vapor-ssr.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "vapor-ssr", + "title": "Vapor SSR", + "fromDir": "90_web_application_essentials/050_patch_flags", + "toDir": "90_web_application_essentials/050_patch_flags", + "docs": "https://book.chibivue.land/ja/90-web-application-essentials/050-vapor/030-vapor-ssr", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-ja/chapters/078-hot-paths.jsonc b/packages/courses-config/chibivue-ja/chapters/078-hot-paths.jsonc new file mode 100644 index 0000000..800efb0 --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/078-hot-paths.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "hot-paths", + "title": "概要", + "fromDir": "90_web_application_essentials/050_patch_flags", + "toDir": "90_web_application_essentials/050_patch_flags", + "docs": "https://book.chibivue.land/ja/bonus/hot-paths", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-ja/chapters/079-beginner-30-min-hands-on.jsonc b/packages/courses-config/chibivue-ja/chapters/079-beginner-30-min-hands-on.jsonc new file mode 100644 index 0000000..dfa0bad --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/079-beginner-30-min-hands-on.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "beginner-30-min-hands-on", + "title": "初心者向け 30 分ハンズオン", + "fromDir": "90_web_application_essentials/050_patch_flags", + "toDir": "90_web_application_essentials/050_patch_flags", + "docs": "https://book.chibivue.land/ja/bonus/hot-paths/beginner-30-min-hands-on", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-ja/chapters/080-beginner-60-min-hands-on.jsonc b/packages/courses-config/chibivue-ja/chapters/080-beginner-60-min-hands-on.jsonc new file mode 100644 index 0000000..dbaa3de --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/080-beginner-60-min-hands-on.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "beginner-60-min-hands-on", + "title": "初心者向け 1 時間ハンズオン", + "fromDir": "90_web_application_essentials/050_patch_flags", + "toDir": "90_web_application_essentials/050_patch_flags", + "docs": "https://book.chibivue.land/ja/bonus/hot-paths/beginner-60-min-hands-on", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-ja/chapters/081-intermediate-60-min-hands-on.jsonc b/packages/courses-config/chibivue-ja/chapters/081-intermediate-60-min-hands-on.jsonc new file mode 100644 index 0000000..42cabe8 --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/081-intermediate-60-min-hands-on.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "intermediate-60-min-hands-on", + "title": "中級者向け 1 時間ハンズオン", + "fromDir": "90_web_application_essentials/050_patch_flags", + "toDir": "90_web_application_essentials/050_patch_flags", + "docs": "https://book.chibivue.land/ja/bonus/hot-paths/intermediate-60-min-hands-on", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-ja/chapters/082-advanced-30-min-summary.jsonc b/packages/courses-config/chibivue-ja/chapters/082-advanced-30-min-summary.jsonc new file mode 100644 index 0000000..abe7fe8 --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/082-advanced-30-min-summary.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "advanced-30-min-summary", + "title": "上級者向け 30 分サマリ", + "fromDir": "90_web_application_essentials/050_patch_flags", + "toDir": "90_web_application_essentials/050_patch_flags", + "docs": "https://book.chibivue.land/ja/bonus/hot-paths/advanced-30-min-summary", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-ja/chapters/083-hyper-ultimate-super-extreme-minimal-vue.jsonc b/packages/courses-config/chibivue-ja/chapters/083-hyper-ultimate-super-extreme-minimal-vue.jsonc new file mode 100644 index 0000000..d889067 --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/083-hyper-ultimate-super-extreme-minimal-vue.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "hyper-ultimate-super-extreme-minimal-vue", + "title": "chibivue、デカくないですか...?", + "fromDir": "90_web_application_essentials/050_patch_flags", + "toDir": "90_web_application_essentials/050_patch_flags", + "docs": "https://book.chibivue.land/ja/bonus/hyper-ultimate-super-extreme-minimal-vue", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-ja/chapters/084-15-min-impl.jsonc b/packages/courses-config/chibivue-ja/chapters/084-15-min-impl.jsonc new file mode 100644 index 0000000..f859ec2 --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/084-15-min-impl.jsonc @@ -0,0 +1,54 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "15-min-impl", + "title": "実装", + "fromDir": "", + "toDir": "bonus/hyper-ultimate-super-extreme-minimal-vue", + "docs": "https://book.chibivue.land/ja/bonus/hyper-ultimate-super-extreme-minimal-vue/15-min-impl", + "changedFiles": [ + { + "path": "examples/playground/index.html", + "kind": "U", + }, + { + "path": "examples/playground/package.json", + "kind": "U", + }, + { + "path": "examples/playground/src/App.vue", + "kind": "U", + }, + { + "path": "examples/playground/src/main.ts", + "kind": "U", + }, + { + "path": "examples/playground/tsconfig.json", + "kind": "U", + }, + { + "path": "examples/playground/vite.config.ts", + "kind": "U", + }, + { + "path": "package.json", + "kind": "U", + }, + { + "path": "packages/index.ts", + "kind": "U", + }, + { + "path": "pnpm-workspace.yaml", + "kind": "U", + }, + { + "path": "tsconfig.json", + "kind": "U", + }, + { + "path": "vite.config.ts", + "kind": "U", + }, + ], +} diff --git a/packages/courses-config/chibivue-ja/chapters/085-debug-vuejs-core.jsonc b/packages/courses-config/chibivue-ja/chapters/085-debug-vuejs-core.jsonc new file mode 100644 index 0000000..de41109 --- /dev/null +++ b/packages/courses-config/chibivue-ja/chapters/085-debug-vuejs-core.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "debug-vuejs-core", + "title": "本家のソースコードをデバッグする", + "fromDir": "bonus/hyper-ultimate-super-extreme-minimal-vue", + "toDir": "bonus/hyper-ultimate-super-extreme-minimal-vue", + "docs": "https://book.chibivue.land/ja/bonus/debug-vuejs-core", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-ja/course.jsonc b/packages/courses-config/chibivue-ja/course.jsonc new file mode 100644 index 0000000..33fa7e5 --- /dev/null +++ b/packages/courses-config/chibivue-ja/course.jsonc @@ -0,0 +1,10 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/course", + "id": "chibivue-ja", + "title": "chibivue 日本語コース", + "description": "chibivue のオンラインブックに沿って、createApp から Vue.js を段階的に実装する。ソースは chibivue の book/impls。", + "source": { + "repository": "https://github.com/chibivue-land/chibivue", + "root": "book/impls", + }, +} diff --git a/packages/courses-config/chibivue-zh-cn/chapters/001-about.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/001-about.jsonc new file mode 100644 index 0000000..64cfd76 --- /dev/null +++ b/packages/courses-config/chibivue-zh-cn/chapters/001-about.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "about", + "title": "入门指南", + "fromDir": "", + "toDir": "", + "docs": "https://book.chibivue.land/zh-cn/00-introduction/010-about", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-zh-cn/chapters/002-what-is-vue.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/002-what-is-vue.jsonc new file mode 100644 index 0000000..97b1381 --- /dev/null +++ b/packages/courses-config/chibivue-zh-cn/chapters/002-what-is-vue.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "what-is-vue", + "title": "什么是 Vue.js?", + "fromDir": "", + "toDir": "", + "docs": "https://book.chibivue.land/zh-cn/00-introduction/020-what-is-vue", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-zh-cn/chapters/003-vue-core-components.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/003-vue-core-components.jsonc new file mode 100644 index 0000000..4ea0c99 --- /dev/null +++ b/packages/courses-config/chibivue-zh-cn/chapters/003-vue-core-components.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "vue-core-components", + "title": "Vue.js 的关键要素", + "fromDir": "", + "toDir": "", + "docs": "https://book.chibivue.land/zh-cn/00-introduction/030-vue-core-components", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-zh-cn/chapters/001-project-setup.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/004-setup-project.jsonc similarity index 85% rename from packages/courses-config/chibivue-zh-cn/chapters/001-project-setup.jsonc rename to packages/courses-config/chibivue-zh-cn/chapters/004-setup-project.jsonc index 34350fa..d925cfd 100644 --- a/packages/courses-config/chibivue-zh-cn/chapters/001-project-setup.jsonc +++ b/packages/courses-config/chibivue-zh-cn/chapters/004-setup-project.jsonc @@ -1,6 +1,6 @@ { "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", - "id": "project-setup", + "id": "setup-project", "title": "本书的方法和环境设置", "fromDir": "", "toDir": "00_introduction/010_project_setup", @@ -34,9 +34,17 @@ "path": "packages/index.ts", "kind": "U", }, + { + "path": "pnpm-workspace.yaml", + "kind": "U", + }, { "path": "tsconfig.json", "kind": "U", }, + { + "path": "vite.config.ts", + "kind": "U", + }, ], } diff --git a/packages/courses-config/chibivue-zh-cn/chapters/002-create-app.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/005-create-app-api.jsonc similarity index 96% rename from packages/courses-config/chibivue-zh-cn/chapters/002-create-app.jsonc rename to packages/courses-config/chibivue-zh-cn/chapters/005-create-app-api.jsonc index d46966e..15571c0 100644 --- a/packages/courses-config/chibivue-zh-cn/chapters/002-create-app.jsonc +++ b/packages/courses-config/chibivue-zh-cn/chapters/005-create-app-api.jsonc @@ -1,6 +1,6 @@ { "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", - "id": "create-app", + "id": "create-app-api", "title": "第一次渲染和 createApp API", "fromDir": "00_introduction/010_project_setup", "toDir": "10_minimum_example/010_create_app", diff --git a/packages/courses-config/chibivue-zh-cn/chapters/003-package-architecture.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/006-package-architecture.jsonc similarity index 100% rename from packages/courses-config/chibivue-zh-cn/chapters/003-package-architecture.jsonc rename to packages/courses-config/chibivue-zh-cn/chapters/006-package-architecture.jsonc diff --git a/packages/courses-config/chibivue-zh-cn/chapters/004-simple-h-function.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/007-simple-h-function.jsonc similarity index 100% rename from packages/courses-config/chibivue-zh-cn/chapters/004-simple-h-function.jsonc rename to packages/courses-config/chibivue-zh-cn/chapters/007-simple-h-function.jsonc diff --git a/packages/courses-config/chibivue-zh-cn/chapters/008-event-handler-and-attrs.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/008-event-handler-and-attrs.jsonc new file mode 100644 index 0000000..970ea8b --- /dev/null +++ b/packages/courses-config/chibivue-zh-cn/chapters/008-event-handler-and-attrs.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "event-handler-and-attrs", + "title": "让我们支持事件处理器和属性", + "fromDir": "10_minimum_example/020_simple_h_function", + "toDir": "10_minimum_example/020_simple_h_function", + "docs": "https://book.chibivue.land/zh-cn/10-minimum-example/025-event-handler-and-attrs", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-zh-cn/chapters/009-prerequisite-knowledge-for-the-reactivity-system.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/009-prerequisite-knowledge-for-the-reactivity-system.jsonc new file mode 100644 index 0000000..f82da1d --- /dev/null +++ b/packages/courses-config/chibivue-zh-cn/chapters/009-prerequisite-knowledge-for-the-reactivity-system.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "prerequisite-knowledge-for-the-reactivity-system", + "title": "响应式系统的前置知识", + "fromDir": "10_minimum_example/020_simple_h_function", + "toDir": "10_minimum_example/020_simple_h_function", + "docs": "https://book.chibivue.land/zh-cn/10-minimum-example/030-prerequisite-knowledge-for-the-reactivity-system", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-zh-cn/chapters/005-reactive-system.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/010-try-implementing-a-minimum-reactivity-system.jsonc similarity index 95% rename from packages/courses-config/chibivue-zh-cn/chapters/005-reactive-system.jsonc rename to packages/courses-config/chibivue-zh-cn/chapters/010-try-implementing-a-minimum-reactivity-system.jsonc index 00dbbe5..a26e10c 100644 --- a/packages/courses-config/chibivue-zh-cn/chapters/005-reactive-system.jsonc +++ b/packages/courses-config/chibivue-zh-cn/chapters/010-try-implementing-a-minimum-reactivity-system.jsonc @@ -1,6 +1,6 @@ { "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", - "id": "reactive-system", + "id": "try-implementing-a-minimum-reactivity-system", "title": "尝试实现一个小型响应式系统", "fromDir": "10_minimum_example/020_simple_h_function", "toDir": "10_minimum_example/030_reactive_system", diff --git a/packages/courses-config/chibivue-zh-cn/chapters/006-vdom-system.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/011-minimum-virtual-dom.jsonc similarity index 96% rename from packages/courses-config/chibivue-zh-cn/chapters/006-vdom-system.jsonc rename to packages/courses-config/chibivue-zh-cn/chapters/011-minimum-virtual-dom.jsonc index f8c5648..27cd37d 100644 --- a/packages/courses-config/chibivue-zh-cn/chapters/006-vdom-system.jsonc +++ b/packages/courses-config/chibivue-zh-cn/chapters/011-minimum-virtual-dom.jsonc @@ -1,6 +1,6 @@ { "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", - "id": "vdom-system", + "id": "minimum-virtual-dom", "title": "最小虚拟 DOM", "fromDir": "10_minimum_example/030_reactive_system", "toDir": "10_minimum_example/040_vdom_system", diff --git a/packages/courses-config/chibivue-zh-cn/chapters/007-component-system.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/012-minimum-component.jsonc similarity index 97% rename from packages/courses-config/chibivue-zh-cn/chapters/007-component-system.jsonc rename to packages/courses-config/chibivue-zh-cn/chapters/012-minimum-component.jsonc index 771f529..51ce0f3 100644 --- a/packages/courses-config/chibivue-zh-cn/chapters/007-component-system.jsonc +++ b/packages/courses-config/chibivue-zh-cn/chapters/012-minimum-component.jsonc @@ -1,6 +1,6 @@ { "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", - "id": "component-system", + "id": "minimum-component", "title": "追求组件导向开发", "fromDir": "10_minimum_example/040_vdom_system", "toDir": "10_minimum_example/050_component_system", diff --git a/packages/courses-config/chibivue-zh-cn/chapters/008-component-props.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/013-component-props.jsonc similarity index 100% rename from packages/courses-config/chibivue-zh-cn/chapters/008-component-props.jsonc rename to packages/courses-config/chibivue-zh-cn/chapters/013-component-props.jsonc diff --git a/packages/courses-config/chibivue-zh-cn/chapters/009-component-emits.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/014-component-emits.jsonc similarity index 100% rename from packages/courses-config/chibivue-zh-cn/chapters/009-component-emits.jsonc rename to packages/courses-config/chibivue-zh-cn/chapters/014-component-emits.jsonc diff --git a/packages/courses-config/chibivue-zh-cn/chapters/015-template-compiler.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/015-template-compiler.jsonc new file mode 100644 index 0000000..1888dda --- /dev/null +++ b/packages/courses-config/chibivue-zh-cn/chapters/015-template-compiler.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "template-compiler", + "title": "理解模板编译器", + "fromDir": "10_minimum_example/050_component_system3", + "toDir": "10_minimum_example/050_component_system3", + "docs": "https://book.chibivue.land/zh-cn/10-minimum-example/060-template-compiler", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-zh-cn/chapters/010-template-compiler.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/016-template-compiler-impl.jsonc similarity index 97% rename from packages/courses-config/chibivue-zh-cn/chapters/010-template-compiler.jsonc rename to packages/courses-config/chibivue-zh-cn/chapters/016-template-compiler-impl.jsonc index 1973072..3b58ee6 100644 --- a/packages/courses-config/chibivue-zh-cn/chapters/010-template-compiler.jsonc +++ b/packages/courses-config/chibivue-zh-cn/chapters/016-template-compiler-impl.jsonc @@ -1,6 +1,6 @@ { "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", - "id": "template-compiler", + "id": "template-compiler-impl", "title": "实现模板编译器", "fromDir": "10_minimum_example/050_component_system3", "toDir": "10_minimum_example/060_template_compiler", diff --git a/packages/courses-config/chibivue-zh-cn/chapters/011-template-compiler-parser.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/017-more-complex-parser.jsonc similarity index 95% rename from packages/courses-config/chibivue-zh-cn/chapters/011-template-compiler-parser.jsonc rename to packages/courses-config/chibivue-zh-cn/chapters/017-more-complex-parser.jsonc index c8cc382..5fbe1d2 100644 --- a/packages/courses-config/chibivue-zh-cn/chapters/011-template-compiler-parser.jsonc +++ b/packages/courses-config/chibivue-zh-cn/chapters/017-more-complex-parser.jsonc @@ -1,6 +1,6 @@ { "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", - "id": "template-compiler-parser", + "id": "more-complex-parser", "title": "希望编写更复杂的 HTML", "fromDir": "10_minimum_example/060_template_compiler", "toDir": "10_minimum_example/060_template_compiler2", diff --git a/packages/courses-config/chibivue-zh-cn/chapters/012-template-binding.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/018-template-binding.jsonc similarity index 100% rename from packages/courses-config/chibivue-zh-cn/chapters/012-template-binding.jsonc rename to packages/courses-config/chibivue-zh-cn/chapters/018-template-binding.jsonc diff --git a/packages/courses-config/chibivue-zh-cn/chapters/013-sfc-prerequisite.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/019-prerequisite-knowledge-for-the-sfc.jsonc similarity index 97% rename from packages/courses-config/chibivue-zh-cn/chapters/013-sfc-prerequisite.jsonc rename to packages/courses-config/chibivue-zh-cn/chapters/019-prerequisite-knowledge-for-the-sfc.jsonc index 9423485..76d55d0 100644 --- a/packages/courses-config/chibivue-zh-cn/chapters/013-sfc-prerequisite.jsonc +++ b/packages/courses-config/chibivue-zh-cn/chapters/019-prerequisite-knowledge-for-the-sfc.jsonc @@ -1,6 +1,6 @@ { "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", - "id": "sfc-prerequisite", + "id": "prerequisite-knowledge-for-the-sfc", "title": "使用 SFC 开发(外围知识)", "fromDir": "10_minimum_example/060_template_compiler3", "toDir": "10_minimum_example/070_sfc_compiler", diff --git a/packages/courses-config/chibivue-zh-cn/chapters/014-parse-sfc.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/020-parse-sfc.jsonc similarity index 100% rename from packages/courses-config/chibivue-zh-cn/chapters/014-parse-sfc.jsonc rename to packages/courses-config/chibivue-zh-cn/chapters/020-parse-sfc.jsonc diff --git a/packages/courses-config/chibivue-zh-cn/chapters/015-compile-sfc-template.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/021-compile-sfc-template.jsonc similarity index 100% rename from packages/courses-config/chibivue-zh-cn/chapters/015-compile-sfc-template.jsonc rename to packages/courses-config/chibivue-zh-cn/chapters/021-compile-sfc-template.jsonc diff --git a/packages/courses-config/chibivue-zh-cn/chapters/022-compile-sfc-script.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/022-compile-sfc-script.jsonc new file mode 100644 index 0000000..c060bbb --- /dev/null +++ b/packages/courses-config/chibivue-zh-cn/chapters/022-compile-sfc-script.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "compile-sfc-script", + "title": "SFC script 块", + "fromDir": "10_minimum_example/070_sfc_compiler3", + "toDir": "10_minimum_example/070_sfc_compiler3", + "docs": "https://book.chibivue.land/zh-cn/10-minimum-example/093-compile-sfc-script", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-zh-cn/chapters/016-compile-sfc-style.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/023-compile-sfc-style.jsonc similarity index 100% rename from packages/courses-config/chibivue-zh-cn/chapters/016-compile-sfc-style.jsonc rename to packages/courses-config/chibivue-zh-cn/chapters/023-compile-sfc-style.jsonc diff --git a/packages/courses-config/chibivue-zh-cn/chapters/024-break.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/024-break.jsonc new file mode 100644 index 0000000..2dee37a --- /dev/null +++ b/packages/courses-config/chibivue-zh-cn/chapters/024-break.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "break", + "title": "稍作休息", + "fromDir": "10_minimum_example/070_sfc_compiler4", + "toDir": "10_minimum_example/070_sfc_compiler4", + "docs": "https://book.chibivue.land/zh-cn/10-minimum-example/100-break", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-zh-cn/chapters/017-patch-keyed-children.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/025-patch-keyed-children.jsonc similarity index 100% rename from packages/courses-config/chibivue-zh-cn/chapters/017-patch-keyed-children.jsonc rename to packages/courses-config/chibivue-zh-cn/chapters/025-patch-keyed-children.jsonc diff --git a/packages/courses-config/chibivue-zh-cn/chapters/018-bit-flags.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/026-bit-flags.jsonc similarity index 100% rename from packages/courses-config/chibivue-zh-cn/chapters/018-bit-flags.jsonc rename to packages/courses-config/chibivue-zh-cn/chapters/026-bit-flags.jsonc diff --git a/packages/courses-config/chibivue-zh-cn/chapters/026-computed.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/026-computed.jsonc deleted file mode 100644 index 7a4b8a9..0000000 --- a/packages/courses-config/chibivue-zh-cn/chapters/026-computed.jsonc +++ /dev/null @@ -1,30 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", - "id": "computed", - "title": "computed", - "fromDir": "30_basic_reactivity_system/040_to_refs", - "toDir": "30_basic_reactivity_system/050_computed", - "docs": "https://book.chibivue.land/zh-cn/30-basic-reactivity-system/020-computed-watch", - "changedFiles": [ - { - "path": "examples/playground/src/App.vue", - "kind": "M", - }, - { - "path": "examples/playground/src/main.ts", - "kind": "M", - }, - { - "path": "packages/reactivity/computed.ts", - "kind": "U", - }, - { - "path": "packages/reactivity/index.ts", - "kind": "M", - }, - { - "path": "tests/e2e.spec.ts", - "kind": "M", - }, - ], -} diff --git a/packages/courses-config/chibivue-zh-cn/chapters/027-computed-setter.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/027-computed-setter.jsonc deleted file mode 100644 index ced0ca3..0000000 --- a/packages/courses-config/chibivue-zh-cn/chapters/027-computed-setter.jsonc +++ /dev/null @@ -1,30 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", - "id": "computed-setter", - "title": "computed 的 setter", - "fromDir": "30_basic_reactivity_system/050_computed", - "toDir": "30_basic_reactivity_system/060_computed_setter", - "docs": "https://book.chibivue.land/zh-cn/30-basic-reactivity-system/020-computed-watch", - "changedFiles": [ - { - "path": "examples/playground/src/App.vue", - "kind": "M", - }, - { - "path": "examples/playground/src/main.ts", - "kind": "M", - }, - { - "path": "packages/reactivity/computed.ts", - "kind": "M", - }, - { - "path": "packages/reactivity/index.ts", - "kind": "M", - }, - { - "path": "tests/e2e.spec.ts", - "kind": "M", - }, - ], -} diff --git a/packages/courses-config/chibivue-zh-cn/chapters/019-scheduler.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/027-scheduler.jsonc similarity index 79% rename from packages/courses-config/chibivue-zh-cn/chapters/019-scheduler.jsonc rename to packages/courses-config/chibivue-zh-cn/chapters/027-scheduler.jsonc index d1b6508..56a7692 100644 --- a/packages/courses-config/chibivue-zh-cn/chapters/019-scheduler.jsonc +++ b/packages/courses-config/chibivue-zh-cn/chapters/027-scheduler.jsonc @@ -3,7 +3,7 @@ "id": "scheduler", "title": "调度器", "fromDir": "20_basic_virtual_dom/020_bit_flags", - "toDir": "20_basic_virtual_dom/040_scheduler", + "toDir": "20_basic_virtual_dom/050_next_tick", "docs": "https://book.chibivue.land/zh-cn/20-basic-virtual-dom/030-scheduler", "changedFiles": [ { @@ -18,6 +18,10 @@ "path": "packages/runtime-core/component.ts", "kind": "M", }, + { + "path": "packages/runtime-core/index.ts", + "kind": "M", + }, { "path": "packages/runtime-core/renderer.ts", "kind": "M", @@ -26,6 +30,10 @@ "path": "packages/runtime-core/scheduler.ts", "kind": "U", }, + { + "path": "packages/runtime-core/vnode.ts", + "kind": "M", + }, { "path": "tests/e2e.spec.ts", "kind": "M", diff --git a/packages/courses-config/chibivue-zh-cn/chapters/021-other-props.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/028-patch-other-attrs.jsonc similarity index 97% rename from packages/courses-config/chibivue-zh-cn/chapters/021-other-props.jsonc rename to packages/courses-config/chibivue-zh-cn/chapters/028-patch-other-attrs.jsonc index 67c04e2..2c9da9d 100644 --- a/packages/courses-config/chibivue-zh-cn/chapters/021-other-props.jsonc +++ b/packages/courses-config/chibivue-zh-cn/chapters/028-patch-other-attrs.jsonc @@ -1,6 +1,6 @@ { "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", - "id": "other-props", + "id": "patch-other-attrs", "title": "未处理 Props 的补丁", "fromDir": "20_basic_virtual_dom/050_next_tick", "toDir": "20_basic_virtual_dom/060_other_props", diff --git a/packages/courses-config/chibivue-zh-cn/chapters/029-reactivity-optimization.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/029-reactivity-optimization.jsonc new file mode 100644 index 0000000..115b611 --- /dev/null +++ b/packages/courses-config/chibivue-zh-cn/chapters/029-reactivity-optimization.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "reactivity-optimization", + "title": "响应式优化", + "fromDir": "20_basic_virtual_dom/060_other_props", + "toDir": "20_basic_virtual_dom/060_other_props", + "docs": "https://book.chibivue.land/zh-cn/30-basic-reactivity-system/005-reactivity-optimization", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-zh-cn/chapters/024-to-ref.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/030-ref-api.jsonc similarity index 75% rename from packages/courses-config/chibivue-zh-cn/chapters/024-to-ref.jsonc rename to packages/courses-config/chibivue-zh-cn/chapters/030-ref-api.jsonc index 517de70..99daf14 100644 --- a/packages/courses-config/chibivue-zh-cn/chapters/024-to-ref.jsonc +++ b/packages/courses-config/chibivue-zh-cn/chapters/030-ref-api.jsonc @@ -1,19 +1,23 @@ { "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", - "id": "to-ref", - "title": "toRef", - "fromDir": "30_basic_reactivity_system/020_shallow_ref", - "toDir": "30_basic_reactivity_system/030_to_ref", + "id": "ref-api", + "title": "ref API", + "fromDir": "20_basic_virtual_dom/060_other_props", + "toDir": "30_basic_reactivity_system/040_to_refs", "docs": "https://book.chibivue.land/zh-cn/30-basic-reactivity-system/010-ref-api", "changedFiles": [ { "path": "examples/playground/src/App.vue", - "kind": "M", + "kind": "U", }, { "path": "examples/playground/src/main.ts", "kind": "M", }, + { + "path": "packages/compiler-core/codegen.ts", + "kind": "M", + }, { "path": "packages/reactivity/effect.ts", "kind": "M", @@ -23,9 +27,13 @@ "kind": "M", }, { - "path": "packages/reactivity/ref.ts", + "path": "packages/reactivity/reactive.ts", "kind": "M", }, + { + "path": "packages/reactivity/ref.ts", + "kind": "U", + }, { "path": "packages/shared/general.ts", "kind": "M", diff --git a/packages/courses-config/chibivue-zh-cn/chapters/030-watch-effect.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/030-watch-effect.jsonc deleted file mode 100644 index c6effb9..0000000 --- a/packages/courses-config/chibivue-zh-cn/chapters/030-watch-effect.jsonc +++ /dev/null @@ -1,30 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", - "id": "watch-effect", - "title": "watchEffect", - "fromDir": "30_basic_reactivity_system/080_watch_api_extends", - "toDir": "30_basic_reactivity_system/090_watch_effect", - "docs": "https://book.chibivue.land/zh-cn/30-basic-reactivity-system/020-computed-watch", - "changedFiles": [ - { - "path": "examples/playground/src/App.vue", - "kind": "M", - }, - { - "path": "examples/playground/src/main.ts", - "kind": "M", - }, - { - "path": "packages/runtime-core/apiWatch.ts", - "kind": "M", - }, - { - "path": "packages/runtime-core/index.ts", - "kind": "M", - }, - { - "path": "tests/e2e.spec.ts", - "kind": "M", - }, - ], -} diff --git a/packages/courses-config/chibivue-zh-cn/chapters/028-watch.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/031-computed-watch.jsonc similarity index 70% rename from packages/courses-config/chibivue-zh-cn/chapters/028-watch.jsonc rename to packages/courses-config/chibivue-zh-cn/chapters/031-computed-watch.jsonc index 599a2a8..658097b 100644 --- a/packages/courses-config/chibivue-zh-cn/chapters/028-watch.jsonc +++ b/packages/courses-config/chibivue-zh-cn/chapters/031-computed-watch.jsonc @@ -1,9 +1,9 @@ { "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", - "id": "watch", - "title": "watch", - "fromDir": "30_basic_reactivity_system/060_computed_setter", - "toDir": "30_basic_reactivity_system/070_watch", + "id": "computed-watch", + "title": "computed / watch API", + "fromDir": "30_basic_reactivity_system/040_to_refs", + "toDir": "30_basic_reactivity_system/090_watch_effect", "docs": "https://book.chibivue.land/zh-cn/30-basic-reactivity-system/020-computed-watch", "changedFiles": [ { @@ -18,6 +18,14 @@ "path": "packages/reactivity/baseHandler.ts", "kind": "M", }, + { + "path": "packages/reactivity/computed.ts", + "kind": "U", + }, + { + "path": "packages/reactivity/index.ts", + "kind": "M", + }, { "path": "packages/runtime-core/apiWatch.ts", "kind": "U", diff --git a/packages/courses-config/chibivue-zh-cn/chapters/031-reactive-proxy-target-type.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/031-reactive-proxy-target-type.jsonc deleted file mode 100644 index 5a4421e..0000000 --- a/packages/courses-config/chibivue-zh-cn/chapters/031-reactive-proxy-target-type.jsonc +++ /dev/null @@ -1,30 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", - "id": "reactive-proxy-target-type", - "title": "不应该是响应式的对象", - "fromDir": "30_basic_reactivity_system/090_watch_effect", - "toDir": "30_basic_reactivity_system/100_reactive_proxy_target_type", - "docs": "https://book.chibivue.land/zh-cn/30-basic-reactivity-system/030-reactive-proxy-handlers", - "changedFiles": [ - { - "path": "examples/playground/src/App.vue", - "kind": "M", - }, - { - "path": "examples/playground/src/main.ts", - "kind": "M", - }, - { - "path": "packages/reactivity/reactive.ts", - "kind": "M", - }, - { - "path": "packages/shared/general.ts", - "kind": "M", - }, - { - "path": "tests/e2e.spec.ts", - "kind": "M", - }, - ], -} diff --git a/packages/courses-config/chibivue-zh-cn/chapters/033-proxy-handler-improvement.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/032-reactive-proxy-handlers.jsonc similarity index 71% rename from packages/courses-config/chibivue-zh-cn/chapters/033-proxy-handler-improvement.jsonc rename to packages/courses-config/chibivue-zh-cn/chapters/032-reactive-proxy-handlers.jsonc index fcc67c8..728eeb9 100644 --- a/packages/courses-config/chibivue-zh-cn/chapters/033-proxy-handler-improvement.jsonc +++ b/packages/courses-config/chibivue-zh-cn/chapters/032-reactive-proxy-handlers.jsonc @@ -1,8 +1,8 @@ { "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", - "id": "proxy-handler-improvement", - "title": "支持基于集合的内置对象", - "fromDir": "30_basic_reactivity_system/110_template_refs", + "id": "reactive-proxy-handlers", + "title": "各种响应式代理处理器", + "fromDir": "30_basic_reactivity_system/090_watch_effect", "toDir": "30_basic_reactivity_system/120_proxy_handler_improvement", "docs": "https://book.chibivue.land/zh-cn/30-basic-reactivity-system/030-reactive-proxy-handlers", "changedFiles": [ @@ -30,6 +30,18 @@ "path": "packages/reactivity/reactive.ts", "kind": "M", }, + { + "path": "packages/runtime-core/renderer.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/rendererTemplateRef.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/vnode.ts", + "kind": "M", + }, { "path": "packages/shared/general.ts", "kind": "M", diff --git a/packages/courses-config/chibivue-zh-cn/chapters/035-effect-scope.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/033-effect-scope.jsonc similarity index 75% rename from packages/courses-config/chibivue-zh-cn/chapters/035-effect-scope.jsonc rename to packages/courses-config/chibivue-zh-cn/chapters/033-effect-scope.jsonc index ae3aa4a..4250c7f 100644 --- a/packages/courses-config/chibivue-zh-cn/chapters/035-effect-scope.jsonc +++ b/packages/courses-config/chibivue-zh-cn/chapters/033-effect-scope.jsonc @@ -1,11 +1,15 @@ { "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", "id": "effect-scope", - "title": "EffectScope", - "fromDir": "30_basic_reactivity_system/130_cleanup_effects", + "title": "Effect 清理和 Effect 作用域", + "fromDir": "30_basic_reactivity_system/120_proxy_handler_improvement", "toDir": "30_basic_reactivity_system/140_effect_scope", "docs": "https://book.chibivue.land/zh-cn/30-basic-reactivity-system/040-effect-scope", "changedFiles": [ + { + "path": "examples/playground/src/App.vue", + "kind": "D", + }, { "path": "examples/playground/src/main.ts", "kind": "M", @@ -22,6 +26,10 @@ "path": "packages/reactivity/index.ts", "kind": "M", }, + { + "path": "packages/runtime-core/apiWatch.ts", + "kind": "M", + }, { "path": "packages/runtime-core/component.ts", "kind": "M", diff --git a/packages/courses-config/chibivue-zh-cn/chapters/036-other-apis.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/034-other-apis.jsonc similarity index 100% rename from packages/courses-config/chibivue-zh-cn/chapters/036-other-apis.jsonc rename to packages/courses-config/chibivue-zh-cn/chapters/034-other-apis.jsonc diff --git a/packages/courses-config/chibivue-zh-cn/chapters/037-lifecycle-hooks.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/035-lifecycle-hooks.jsonc similarity index 100% rename from packages/courses-config/chibivue-zh-cn/chapters/037-lifecycle-hooks.jsonc rename to packages/courses-config/chibivue-zh-cn/chapters/035-lifecycle-hooks.jsonc diff --git a/packages/courses-config/chibivue-zh-cn/chapters/038-provide-inject.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/036-provide-inject.jsonc similarity index 100% rename from packages/courses-config/chibivue-zh-cn/chapters/038-provide-inject.jsonc rename to packages/courses-config/chibivue-zh-cn/chapters/036-provide-inject.jsonc diff --git a/packages/courses-config/chibivue-zh-cn/chapters/039-component-proxy.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/037-component-proxy-setup-context.jsonc similarity index 84% rename from packages/courses-config/chibivue-zh-cn/chapters/039-component-proxy.jsonc rename to packages/courses-config/chibivue-zh-cn/chapters/037-component-proxy-setup-context.jsonc index 86a1b56..0eb6e49 100644 --- a/packages/courses-config/chibivue-zh-cn/chapters/039-component-proxy.jsonc +++ b/packages/courses-config/chibivue-zh-cn/chapters/037-component-proxy-setup-context.jsonc @@ -1,15 +1,19 @@ { "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", - "id": "component-proxy", - "title": "组件代理", + "id": "component-proxy-setup-context", + "title": "组件代理和 setupContext", "fromDir": "40_basic_component_system/020_provide_inject", - "toDir": "40_basic_component_system/030_component_proxy", + "toDir": "40_basic_component_system/040_setup_context", "docs": "https://book.chibivue.land/zh-cn/40-basic-component-system/030-component-proxy-setup-context", "changedFiles": [ { "path": "examples/playground/src/main.ts", "kind": "M", }, + { + "path": "packages/reactivity/ref.ts", + "kind": "M", + }, { "path": "packages/runtime-core/apiDefineComponent.ts", "kind": "U", diff --git a/packages/courses-config/chibivue-zh-cn/chapters/041-component-slot.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/038-component-slot.jsonc similarity index 80% rename from packages/courses-config/chibivue-zh-cn/chapters/041-component-slot.jsonc rename to packages/courses-config/chibivue-zh-cn/chapters/038-component-slot.jsonc index 8b16311..8103742 100644 --- a/packages/courses-config/chibivue-zh-cn/chapters/041-component-slot.jsonc +++ b/packages/courses-config/chibivue-zh-cn/chapters/038-component-slot.jsonc @@ -1,9 +1,9 @@ { "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", "id": "component-slot", - "title": "默认插槽", + "title": "插槽", "fromDir": "40_basic_component_system/040_setup_context", - "toDir": "40_basic_component_system/050_component_slot", + "toDir": "40_basic_component_system/060_slot_extend", "docs": "https://book.chibivue.land/zh-cn/40-basic-component-system/040-component-slot", "changedFiles": [ { @@ -14,10 +14,6 @@ "path": "packages/runtime-core/component.ts", "kind": "M", }, - { - "path": "packages/runtime-core/componentRenderContext.ts", - "kind": "U", - }, { "path": "packages/runtime-core/componentSlots.ts", "kind": "U", @@ -26,10 +22,6 @@ "path": "packages/runtime-core/h.ts", "kind": "M", }, - { - "path": "packages/runtime-core/index.ts", - "kind": "M", - }, { "path": "packages/runtime-core/renderer.ts", "kind": "M", diff --git a/packages/courses-config/chibivue-zh-cn/chapters/043-options-api.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/039-options-api.jsonc similarity index 100% rename from packages/courses-config/chibivue-zh-cn/chapters/043-options-api.jsonc rename to packages/courses-config/chibivue-zh-cn/chapters/039-options-api.jsonc diff --git a/packages/courses-config/chibivue-zh-cn/chapters/044-transformer.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/040-transform.jsonc similarity index 98% rename from packages/courses-config/chibivue-zh-cn/chapters/044-transformer.jsonc rename to packages/courses-config/chibivue-zh-cn/chapters/040-transform.jsonc index 8d9e9b4..04535bf 100644 --- a/packages/courses-config/chibivue-zh-cn/chapters/044-transformer.jsonc +++ b/packages/courses-config/chibivue-zh-cn/chapters/040-transform.jsonc @@ -1,6 +1,6 @@ { "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", - "id": "transformer", + "id": "transform", "title": "重构 Transformer 的 Codegen 实现", "fromDir": "40_basic_component_system/070_options_api", "toDir": "50_basic_template_compiler/010_transformer", diff --git a/packages/courses-config/chibivue-zh-cn/chapters/045-v-bind.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/041-v-bind.jsonc similarity index 100% rename from packages/courses-config/chibivue-zh-cn/chapters/045-v-bind.jsonc rename to packages/courses-config/chibivue-zh-cn/chapters/041-v-bind.jsonc diff --git a/packages/courses-config/chibivue-zh-cn/chapters/046-transform-expression.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/042-transform-expression.jsonc similarity index 100% rename from packages/courses-config/chibivue-zh-cn/chapters/046-transform-expression.jsonc rename to packages/courses-config/chibivue-zh-cn/chapters/042-transform-expression.jsonc diff --git a/packages/courses-config/chibivue-zh-cn/chapters/047-v-on.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/043-v-on.jsonc similarity index 100% rename from packages/courses-config/chibivue-zh-cn/chapters/047-v-on.jsonc rename to packages/courses-config/chibivue-zh-cn/chapters/043-v-on.jsonc diff --git a/packages/courses-config/chibivue-zh-cn/chapters/048-event-modifier.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/044-event-modifier.jsonc similarity index 86% rename from packages/courses-config/chibivue-zh-cn/chapters/048-event-modifier.jsonc rename to packages/courses-config/chibivue-zh-cn/chapters/044-event-modifier.jsonc index 3a0a8e2..1966efd 100644 --- a/packages/courses-config/chibivue-zh-cn/chapters/048-event-modifier.jsonc +++ b/packages/courses-config/chibivue-zh-cn/chapters/044-event-modifier.jsonc @@ -1,19 +1,11 @@ { "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", "id": "event-modifier", - "title": "withModifiers", + "title": "compiler-dom 和事件修饰符", "fromDir": "50_basic_template_compiler/025_v_on", - "toDir": "50_basic_template_compiler/027_event_modifier", + "toDir": "50_basic_template_compiler/027_event_modifier2", "docs": "https://book.chibivue.land/zh-cn/50-basic-template-compiler/027-event-modifier", "changedFiles": [ - { - "path": "examples/playground/package.json", - "kind": "D", - }, - { - "path": "examples/playground/pnpm-lock.yaml", - "kind": "U", - }, { "path": "examples/playground/src/main.ts", "kind": "M", @@ -66,6 +58,10 @@ "path": "packages/runtime-dom/runtimeHelpers.ts", "kind": "U", }, + { + "path": "packages/shared/general.ts", + "kind": "M", + }, { "path": "tests/e2e.spec.ts", "kind": "M", diff --git a/packages/courses-config/chibivue-zh-cn/chapters/050-fragment.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/045-fragment.jsonc similarity index 100% rename from packages/courses-config/chibivue-zh-cn/chapters/050-fragment.jsonc rename to packages/courses-config/chibivue-zh-cn/chapters/045-fragment.jsonc diff --git a/packages/courses-config/chibivue-zh-cn/chapters/051-comment.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/046-comment.jsonc similarity index 100% rename from packages/courses-config/chibivue-zh-cn/chapters/051-comment.jsonc rename to packages/courses-config/chibivue-zh-cn/chapters/046-comment.jsonc diff --git a/packages/courses-config/chibivue-zh-cn/chapters/052-v-if.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/047-v-if-and-structural-directive.jsonc similarity index 96% rename from packages/courses-config/chibivue-zh-cn/chapters/052-v-if.jsonc rename to packages/courses-config/chibivue-zh-cn/chapters/047-v-if-and-structural-directive.jsonc index e061e8c..e1cf871 100644 --- a/packages/courses-config/chibivue-zh-cn/chapters/052-v-if.jsonc +++ b/packages/courses-config/chibivue-zh-cn/chapters/047-v-if-and-structural-directive.jsonc @@ -1,6 +1,6 @@ { "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", - "id": "v-if", + "id": "v-if-and-structural-directive", "title": "v-if 和结构指令", "fromDir": "50_basic_template_compiler/035_comment", "toDir": "50_basic_template_compiler/040_v_if_and_structural_directive", diff --git a/packages/courses-config/chibivue-zh-cn/chapters/053-v-for.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/048-v-for.jsonc similarity index 100% rename from packages/courses-config/chibivue-zh-cn/chapters/053-v-for.jsonc rename to packages/courses-config/chibivue-zh-cn/chapters/048-v-for.jsonc diff --git a/packages/courses-config/chibivue-zh-cn/chapters/049-event-modifier2.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/049-event-modifier2.jsonc deleted file mode 100644 index c0e8a07..0000000 --- a/packages/courses-config/chibivue-zh-cn/chapters/049-event-modifier2.jsonc +++ /dev/null @@ -1,42 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", - "id": "event-modifier2", - "title": "其他事件修饰符", - "fromDir": "50_basic_template_compiler/027_event_modifier", - "toDir": "50_basic_template_compiler/027_event_modifier2", - "docs": "https://book.chibivue.land/zh-cn/50-basic-template-compiler/027-event-modifier", - "changedFiles": [ - { - "path": "examples/playground/package.json", - "kind": "U", - }, - { - "path": "examples/playground/pnpm-lock.yaml", - "kind": "D", - }, - { - "path": "examples/playground/src/main.ts", - "kind": "M", - }, - { - "path": "packages/compiler-dom/transforms/vOn.ts", - "kind": "M", - }, - { - "path": "packages/runtime-dom/directives/vOn.ts", - "kind": "M", - }, - { - "path": "packages/runtime-dom/runtimeHelpers.ts", - "kind": "M", - }, - { - "path": "packages/shared/general.ts", - "kind": "M", - }, - { - "path": "tests/e2e.spec.ts", - "kind": "M", - }, - ], -} diff --git a/packages/courses-config/chibivue-zh-cn/chapters/054-resolve-components.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/049-resolve-component.jsonc similarity index 98% rename from packages/courses-config/chibivue-zh-cn/chapters/054-resolve-components.jsonc rename to packages/courses-config/chibivue-zh-cn/chapters/049-resolve-component.jsonc index 605da68..957e081 100644 --- a/packages/courses-config/chibivue-zh-cn/chapters/054-resolve-components.jsonc +++ b/packages/courses-config/chibivue-zh-cn/chapters/049-resolve-component.jsonc @@ -1,6 +1,6 @@ { "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", - "id": "resolve-components", + "id": "resolve-component", "title": "解析组件", "fromDir": "50_basic_template_compiler/050_v_for", "toDir": "50_basic_template_compiler/060_resolve_components", diff --git a/packages/courses-config/chibivue-zh-cn/chapters/055-component-slot-outlet.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/050-component-slot-outlet.jsonc similarity index 100% rename from packages/courses-config/chibivue-zh-cn/chapters/055-component-slot-outlet.jsonc rename to packages/courses-config/chibivue-zh-cn/chapters/050-component-slot-outlet.jsonc diff --git a/packages/courses-config/chibivue-zh-cn/chapters/056-component-slot-insert.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/051-component-slot-insert.jsonc similarity index 100% rename from packages/courses-config/chibivue-zh-cn/chapters/056-component-slot-insert.jsonc rename to packages/courses-config/chibivue-zh-cn/chapters/051-component-slot-insert.jsonc diff --git a/packages/courses-config/chibivue-zh-cn/chapters/057-other-directives.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/052-other-directives.jsonc similarity index 100% rename from packages/courses-config/chibivue-zh-cn/chapters/057-other-directives.jsonc rename to packages/courses-config/chibivue-zh-cn/chapters/052-other-directives.jsonc diff --git a/packages/courses-config/chibivue-zh-cn/chapters/058-chore-compiler.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/053-chore-compiler.jsonc similarity index 100% rename from packages/courses-config/chibivue-zh-cn/chapters/058-chore-compiler.jsonc rename to packages/courses-config/chibivue-zh-cn/chapters/053-chore-compiler.jsonc diff --git a/packages/courses-config/chibivue-zh-cn/chapters/054-parser-optimization.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/054-parser-optimization.jsonc new file mode 100644 index 0000000..3b5b891 --- /dev/null +++ b/packages/courses-config/chibivue-zh-cn/chapters/054-parser-optimization.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "parser-optimization", + "title": "解析器优化", + "fromDir": "50_basic_template_compiler/100_chore_compiler", + "toDir": "50_basic_template_compiler/100_chore_compiler", + "docs": "https://book.chibivue.land/zh-cn/50-basic-template-compiler/110-parser-optimization", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-zh-cn/chapters/055-custom-directive.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/055-custom-directive.jsonc new file mode 100644 index 0000000..b4af99d --- /dev/null +++ b/packages/courses-config/chibivue-zh-cn/chapters/055-custom-directive.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "custom-directive", + "title": "自定义指令", + "fromDir": "50_basic_template_compiler/100_chore_compiler", + "toDir": "50_basic_template_compiler/100_chore_compiler", + "docs": "https://book.chibivue.land/zh-cn/50-basic-template-compiler/500-custom-directive", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-zh-cn/chapters/059-script-setup.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/056-script-setup.jsonc similarity index 100% rename from packages/courses-config/chibivue-zh-cn/chapters/059-script-setup.jsonc rename to packages/courses-config/chibivue-zh-cn/chapters/056-script-setup.jsonc diff --git a/packages/courses-config/chibivue-zh-cn/chapters/060-define-props.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/057-define-props.jsonc similarity index 100% rename from packages/courses-config/chibivue-zh-cn/chapters/060-define-props.jsonc rename to packages/courses-config/chibivue-zh-cn/chapters/057-define-props.jsonc diff --git a/packages/courses-config/chibivue-zh-cn/chapters/061-define-emits.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/058-define-emits.jsonc similarity index 100% rename from packages/courses-config/chibivue-zh-cn/chapters/061-define-emits.jsonc rename to packages/courses-config/chibivue-zh-cn/chapters/058-define-emits.jsonc diff --git a/packages/courses-config/chibivue-zh-cn/chapters/062-scoped-css.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/059-scoped-css.jsonc similarity index 100% rename from packages/courses-config/chibivue-zh-cn/chapters/062-scoped-css.jsonc rename to packages/courses-config/chibivue-zh-cn/chapters/059-scoped-css.jsonc diff --git a/packages/courses-config/chibivue-zh-cn/chapters/063-props-destructure.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/060-props-destructure.jsonc similarity index 100% rename from packages/courses-config/chibivue-zh-cn/chapters/063-props-destructure.jsonc rename to packages/courses-config/chibivue-zh-cn/chapters/060-props-destructure.jsonc diff --git a/packages/courses-config/chibivue-zh-cn/chapters/064-type-based-macros.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/061-type-based-macros.jsonc similarity index 100% rename from packages/courses-config/chibivue-zh-cn/chapters/064-type-based-macros.jsonc rename to packages/courses-config/chibivue-zh-cn/chapters/061-type-based-macros.jsonc diff --git a/packages/courses-config/chibivue-zh-cn/chapters/062-router.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/062-router.jsonc new file mode 100644 index 0000000..16f0f67 --- /dev/null +++ b/packages/courses-config/chibivue-zh-cn/chapters/062-router.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "router", + "title": "路由器", + "fromDir": "60_basic_sfc_compiler/060_type_based_macros", + "toDir": "60_basic_sfc_compiler/060_type_based_macros", + "docs": "https://book.chibivue.land/zh-cn/90-web-application-essentials/010-plugins/010-router", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-zh-cn/chapters/063-preprocessors.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/063-preprocessors.jsonc new file mode 100644 index 0000000..71fd467 --- /dev/null +++ b/packages/courses-config/chibivue-zh-cn/chapters/063-preprocessors.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "preprocessors", + "title": "CSS 预处理器", + "fromDir": "60_basic_sfc_compiler/060_type_based_macros", + "toDir": "60_basic_sfc_compiler/060_type_based_macros", + "docs": "https://book.chibivue.land/zh-cn/90-web-application-essentials/010-plugins/020-preprocessors", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-zh-cn/chapters/064-store.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/064-store.jsonc new file mode 100644 index 0000000..c8d882e --- /dev/null +++ b/packages/courses-config/chibivue-zh-cn/chapters/064-store.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "store", + "title": "状态管理", + "fromDir": "60_basic_sfc_compiler/060_type_based_macros", + "toDir": "60_basic_sfc_compiler/060_type_based_macros", + "docs": "https://book.chibivue.land/zh-cn/90-web-application-essentials/010-plugins/020-store", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-zh-cn/chapters/065-data-fetch.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/065-data-fetch.jsonc new file mode 100644 index 0000000..5da3069 --- /dev/null +++ b/packages/courses-config/chibivue-zh-cn/chapters/065-data-fetch.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "data-fetch", + "title": "数据获取", + "fromDir": "60_basic_sfc_compiler/060_type_based_macros", + "toDir": "60_basic_sfc_compiler/060_type_based_macros", + "docs": "https://book.chibivue.land/zh-cn/90-web-application-essentials/010-plugins/030-data-fetch", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-zh-cn/chapters/066-language-tools.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/066-language-tools.jsonc new file mode 100644 index 0000000..8b77ffb --- /dev/null +++ b/packages/courses-config/chibivue-zh-cn/chapters/066-language-tools.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "language-tools", + "title": "Language Tools", + "fromDir": "60_basic_sfc_compiler/060_type_based_macros", + "toDir": "60_basic_sfc_compiler/060_type_based_macros", + "docs": "https://book.chibivue.land/zh-cn/90-web-application-essentials/010-plugins/040-language-tools", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-zh-cn/chapters/065-ssr.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/067-create-ssr-app.jsonc similarity index 98% rename from packages/courses-config/chibivue-zh-cn/chapters/065-ssr.jsonc rename to packages/courses-config/chibivue-zh-cn/chapters/067-create-ssr-app.jsonc index 3b6d88a..6872083 100644 --- a/packages/courses-config/chibivue-zh-cn/chapters/065-ssr.jsonc +++ b/packages/courses-config/chibivue-zh-cn/chapters/067-create-ssr-app.jsonc @@ -1,6 +1,6 @@ { "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", - "id": "ssr", + "id": "create-ssr-app", "title": "renderToString", "fromDir": "60_basic_sfc_compiler/060_type_based_macros", "toDir": "90_web_application_essentials/010_ssr", diff --git a/packages/courses-config/chibivue-zh-cn/chapters/068-hydration.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/068-hydration.jsonc new file mode 100644 index 0000000..a1b4c77 --- /dev/null +++ b/packages/courses-config/chibivue-zh-cn/chapters/068-hydration.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "hydration", + "title": "Hydration(水合)", + "fromDir": "90_web_application_essentials/010_ssr", + "toDir": "90_web_application_essentials/010_ssr", + "docs": "https://book.chibivue.land/zh-cn/90-web-application-essentials/020-ssr/020-hydration", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-zh-cn/chapters/069-compiler-ssr.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/069-compiler-ssr.jsonc new file mode 100644 index 0000000..f4f6ed9 --- /dev/null +++ b/packages/courses-config/chibivue-zh-cn/chapters/069-compiler-ssr.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "compiler-ssr", + "title": "Compiler SSR", + "fromDir": "90_web_application_essentials/010_ssr", + "toDir": "90_web_application_essentials/010_ssr", + "docs": "https://book.chibivue.land/zh-cn/90-web-application-essentials/020-ssr/030-compiler-ssr", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-zh-cn/chapters/066-keep-alive.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/070-keep-alive.jsonc similarity index 100% rename from packages/courses-config/chibivue-zh-cn/chapters/066-keep-alive.jsonc rename to packages/courses-config/chibivue-zh-cn/chapters/070-keep-alive.jsonc diff --git a/packages/courses-config/chibivue-zh-cn/chapters/067-transition.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/071-transition.jsonc similarity index 100% rename from packages/courses-config/chibivue-zh-cn/chapters/067-transition.jsonc rename to packages/courses-config/chibivue-zh-cn/chapters/071-transition.jsonc diff --git a/packages/courses-config/chibivue-zh-cn/chapters/068-static-hoisting.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/072-static-hoisting.jsonc similarity index 100% rename from packages/courses-config/chibivue-zh-cn/chapters/068-static-hoisting.jsonc rename to packages/courses-config/chibivue-zh-cn/chapters/072-static-hoisting.jsonc diff --git a/packages/courses-config/chibivue-zh-cn/chapters/069-patch-flags.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/073-patch-flags.jsonc similarity index 100% rename from packages/courses-config/chibivue-zh-cn/chapters/069-patch-flags.jsonc rename to packages/courses-config/chibivue-zh-cn/chapters/073-patch-flags.jsonc diff --git a/packages/courses-config/chibivue-zh-cn/chapters/074-tree-flattening.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/074-tree-flattening.jsonc new file mode 100644 index 0000000..fc39a7d --- /dev/null +++ b/packages/courses-config/chibivue-zh-cn/chapters/074-tree-flattening.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "tree-flattening", + "title": "树扁平化", + "fromDir": "90_web_application_essentials/050_patch_flags", + "toDir": "90_web_application_essentials/050_patch_flags", + "docs": "https://book.chibivue.land/zh-cn/90-web-application-essentials/040-optimizations/030-tree-flattening", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-zh-cn/chapters/075-introduction.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/075-introduction.jsonc new file mode 100644 index 0000000..bdaa9ef --- /dev/null +++ b/packages/courses-config/chibivue-zh-cn/chapters/075-introduction.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "introduction", + "title": "Vapor 模式", + "fromDir": "90_web_application_essentials/050_patch_flags", + "toDir": "90_web_application_essentials/050_patch_flags", + "docs": "https://book.chibivue.land/zh-cn/90-web-application-essentials/050-vapor/010-introduction", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-zh-cn/chapters/076-vapor-compiler.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/076-vapor-compiler.jsonc new file mode 100644 index 0000000..ac2bc0c --- /dev/null +++ b/packages/courses-config/chibivue-zh-cn/chapters/076-vapor-compiler.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "vapor-compiler", + "title": "Vapor 编译器", + "fromDir": "90_web_application_essentials/050_patch_flags", + "toDir": "90_web_application_essentials/050_patch_flags", + "docs": "https://book.chibivue.land/zh-cn/90-web-application-essentials/050-vapor/020-vapor-compiler", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-zh-cn/chapters/077-vapor-ssr.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/077-vapor-ssr.jsonc new file mode 100644 index 0000000..68e857a --- /dev/null +++ b/packages/courses-config/chibivue-zh-cn/chapters/077-vapor-ssr.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "vapor-ssr", + "title": "Vapor SSR", + "fromDir": "90_web_application_essentials/050_patch_flags", + "toDir": "90_web_application_essentials/050_patch_flags", + "docs": "https://book.chibivue.land/zh-cn/90-web-application-essentials/050-vapor/030-vapor-ssr", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-zh-cn/chapters/078-hot-paths.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/078-hot-paths.jsonc new file mode 100644 index 0000000..059973e --- /dev/null +++ b/packages/courses-config/chibivue-zh-cn/chapters/078-hot-paths.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "hot-paths", + "title": "路线概览", + "fromDir": "90_web_application_essentials/050_patch_flags", + "toDir": "90_web_application_essentials/050_patch_flags", + "docs": "https://book.chibivue.land/zh-cn/bonus/hot-paths", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-zh-cn/chapters/079-beginner-30-min-hands-on.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/079-beginner-30-min-hands-on.jsonc new file mode 100644 index 0000000..3573400 --- /dev/null +++ b/packages/courses-config/chibivue-zh-cn/chapters/079-beginner-30-min-hands-on.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "beginner-30-min-hands-on", + "title": "初学者 30 分钟动手实践", + "fromDir": "90_web_application_essentials/050_patch_flags", + "toDir": "90_web_application_essentials/050_patch_flags", + "docs": "https://book.chibivue.land/zh-cn/bonus/hot-paths/beginner-30-min-hands-on", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-zh-cn/chapters/080-beginner-60-min-hands-on.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/080-beginner-60-min-hands-on.jsonc new file mode 100644 index 0000000..b86e80d --- /dev/null +++ b/packages/courses-config/chibivue-zh-cn/chapters/080-beginner-60-min-hands-on.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "beginner-60-min-hands-on", + "title": "初学者 60 分钟动手实践", + "fromDir": "90_web_application_essentials/050_patch_flags", + "toDir": "90_web_application_essentials/050_patch_flags", + "docs": "https://book.chibivue.land/zh-cn/bonus/hot-paths/beginner-60-min-hands-on", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-zh-cn/chapters/081-intermediate-60-min-hands-on.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/081-intermediate-60-min-hands-on.jsonc new file mode 100644 index 0000000..6845856 --- /dev/null +++ b/packages/courses-config/chibivue-zh-cn/chapters/081-intermediate-60-min-hands-on.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "intermediate-60-min-hands-on", + "title": "进阶 60 分钟动手实践", + "fromDir": "90_web_application_essentials/050_patch_flags", + "toDir": "90_web_application_essentials/050_patch_flags", + "docs": "https://book.chibivue.land/zh-cn/bonus/hot-paths/intermediate-60-min-hands-on", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-zh-cn/chapters/082-advanced-30-min-summary.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/082-advanced-30-min-summary.jsonc new file mode 100644 index 0000000..f436759 --- /dev/null +++ b/packages/courses-config/chibivue-zh-cn/chapters/082-advanced-30-min-summary.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "advanced-30-min-summary", + "title": "高级 30 分钟概要", + "fromDir": "90_web_application_essentials/050_patch_flags", + "toDir": "90_web_application_essentials/050_patch_flags", + "docs": "https://book.chibivue.land/zh-cn/bonus/hot-paths/advanced-30-min-summary", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-zh-cn/chapters/083-hyper-ultimate-super-extreme-minimal-vue.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/083-hyper-ultimate-super-extreme-minimal-vue.jsonc new file mode 100644 index 0000000..418c437 --- /dev/null +++ b/packages/courses-config/chibivue-zh-cn/chapters/083-hyper-ultimate-super-extreme-minimal-vue.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "hyper-ultimate-super-extreme-minimal-vue", + "title": "chibivue,不是很小吗...?", + "fromDir": "90_web_application_essentials/050_patch_flags", + "toDir": "90_web_application_essentials/050_patch_flags", + "docs": "https://book.chibivue.land/zh-cn/bonus/hyper-ultimate-super-extreme-minimal-vue", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-zh-cn/chapters/070-minimal-vue.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/084-15-min-impl.jsonc similarity index 81% rename from packages/courses-config/chibivue-zh-cn/chapters/070-minimal-vue.jsonc rename to packages/courses-config/chibivue-zh-cn/chapters/084-15-min-impl.jsonc index 6dd39c6..c904aab 100644 --- a/packages/courses-config/chibivue-zh-cn/chapters/070-minimal-vue.jsonc +++ b/packages/courses-config/chibivue-zh-cn/chapters/084-15-min-impl.jsonc @@ -1,10 +1,10 @@ { "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", - "id": "minimal-vue", - "title": "15 分钟编写 Vue.js", + "id": "15-min-impl", + "title": "实现", "fromDir": "", "toDir": "bonus/hyper-ultimate-super-extreme-minimal-vue", - "docs": "https://book.chibivue.land/zh-cn/bonus/hyper-ultimate-super-extreme-minimal-vue/", + "docs": "https://book.chibivue.land/zh-cn/bonus/hyper-ultimate-super-extreme-minimal-vue/15-min-impl", "changedFiles": [ { "path": "examples/playground/index.html", @@ -38,9 +38,17 @@ "path": "packages/index.ts", "kind": "U", }, + { + "path": "pnpm-workspace.yaml", + "kind": "U", + }, { "path": "tsconfig.json", "kind": "U", }, + { + "path": "vite.config.ts", + "kind": "U", + }, ], } diff --git a/packages/courses-config/chibivue-zh-cn/chapters/085-debug-vuejs-core.jsonc b/packages/courses-config/chibivue-zh-cn/chapters/085-debug-vuejs-core.jsonc new file mode 100644 index 0000000..e1e27f5 --- /dev/null +++ b/packages/courses-config/chibivue-zh-cn/chapters/085-debug-vuejs-core.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "debug-vuejs-core", + "title": "调试原始 Vue.js 源码", + "fromDir": "bonus/hyper-ultimate-super-extreme-minimal-vue", + "toDir": "bonus/hyper-ultimate-super-extreme-minimal-vue", + "docs": "https://book.chibivue.land/zh-cn/bonus/debug-vuejs-core", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-zh-tw/chapters/001-about.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/001-about.jsonc new file mode 100644 index 0000000..bd205a2 --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/001-about.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "about", + "title": "入門指南", + "fromDir": "", + "toDir": "", + "docs": "https://book.chibivue.land/zh-tw/00-introduction/010-about", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-zh-tw/chapters/002-what-is-vue.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/002-what-is-vue.jsonc new file mode 100644 index 0000000..51a1ad0 --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/002-what-is-vue.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "what-is-vue", + "title": "什麼是 Vue.js?", + "fromDir": "", + "toDir": "", + "docs": "https://book.chibivue.land/zh-tw/00-introduction/020-what-is-vue", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-zh-tw/chapters/003-vue-core-components.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/003-vue-core-components.jsonc new file mode 100644 index 0000000..75be221 --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/003-vue-core-components.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "vue-core-components", + "title": "Vue.js 的關鍵要素", + "fromDir": "", + "toDir": "", + "docs": "https://book.chibivue.land/zh-tw/00-introduction/030-vue-core-components", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-zh-tw/chapters/004-setup-project.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/004-setup-project.jsonc new file mode 100644 index 0000000..3c365d9 --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/004-setup-project.jsonc @@ -0,0 +1,50 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "setup-project", + "title": "本書的方法和環境設定", + "fromDir": "", + "toDir": "00_introduction/010_project_setup", + "docs": "https://book.chibivue.land/zh-tw/00-introduction/040-setup-project", + "changedFiles": [ + { + "path": "examples/playground/index.html", + "kind": "U", + }, + { + "path": "examples/playground/package.json", + "kind": "U", + }, + { + "path": "examples/playground/src/main.ts", + "kind": "U", + }, + { + "path": "examples/playground/tsconfig.json", + "kind": "U", + }, + { + "path": "examples/playground/vite.config.ts", + "kind": "U", + }, + { + "path": "package.json", + "kind": "U", + }, + { + "path": "packages/index.ts", + "kind": "U", + }, + { + "path": "pnpm-workspace.yaml", + "kind": "U", + }, + { + "path": "tsconfig.json", + "kind": "U", + }, + { + "path": "vite.config.ts", + "kind": "U", + }, + ], +} diff --git a/packages/courses-config/chibivue-zh-tw/chapters/005-create-app-api.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/005-create-app-api.jsonc new file mode 100644 index 0000000..75e67b2 --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/005-create-app-api.jsonc @@ -0,0 +1,26 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "create-app-api", + "title": "第一次渲染和 createApp API", + "fromDir": "00_introduction/010_project_setup", + "toDir": "10_minimum_example/010_create_app", + "docs": "https://book.chibivue.land/zh-tw/10-minimum-example/010-create-app-api", + "changedFiles": [ + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "examples/playground/vite.config.ts", + "kind": "M", + }, + { + "path": "packages/index.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "U", + }, + ], +} diff --git a/packages/courses-config/chibivue-zh-tw/chapters/006-package-architecture.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/006-package-architecture.jsonc new file mode 100644 index 0000000..0ff0a37 --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/006-package-architecture.jsonc @@ -0,0 +1,50 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "package-architecture", + "title": "套件架構", + "fromDir": "10_minimum_example/010_create_app", + "toDir": "10_minimum_example/015_package_architecture", + "docs": "https://book.chibivue.land/zh-tw/10-minimum-example/015-package-architecture", + "changedFiles": [ + { + "path": "examples/playground/vite.config.ts", + "kind": "M", + }, + { + "path": "packages/index.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/apiCreateApp.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/component.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/componentOptions.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/index.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/renderer.ts", + "kind": "U", + }, + { + "path": "packages/runtime-dom/index.ts", + "kind": "U", + }, + { + "path": "packages/runtime-dom/nodeOps.ts", + "kind": "U", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-zh-tw/chapters/007-simple-h-function.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/007-simple-h-function.jsonc new file mode 100644 index 0000000..5b036ba --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/007-simple-h-function.jsonc @@ -0,0 +1,62 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "simple-h-function", + "title": "讓我們啟用 HTML 元素渲染", + "fromDir": "10_minimum_example/015_package_architecture", + "toDir": "10_minimum_example/020_simple_h_function", + "docs": "https://book.chibivue.land/zh-tw/10-minimum-example/020-simple-h-function", + "changedFiles": [ + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "packages/index.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/apiCreateApp.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/h.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/index.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/renderer.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/vnode.ts", + "kind": "U", + }, + { + "path": "packages/runtime-dom/index.ts", + "kind": "M", + }, + { + "path": "packages/runtime-dom/modules/attrs.ts", + "kind": "U", + }, + { + "path": "packages/runtime-dom/modules/events.ts", + "kind": "U", + }, + { + "path": "packages/runtime-dom/nodeOps.ts", + "kind": "M", + }, + { + "path": "packages/runtime-dom/patchProp.ts", + "kind": "U", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-zh-tw/chapters/008-event-handler-and-attrs.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/008-event-handler-and-attrs.jsonc new file mode 100644 index 0000000..727b2f0 --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/008-event-handler-and-attrs.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "event-handler-and-attrs", + "title": "讓我們支援事件處理器和屬性", + "fromDir": "10_minimum_example/020_simple_h_function", + "toDir": "10_minimum_example/020_simple_h_function", + "docs": "https://book.chibivue.land/zh-tw/10-minimum-example/025-event-handler-and-attrs", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-zh-tw/chapters/009-prerequisite-knowledge-for-the-reactivity-system.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/009-prerequisite-knowledge-for-the-reactivity-system.jsonc new file mode 100644 index 0000000..a3f5dbe --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/009-prerequisite-knowledge-for-the-reactivity-system.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "prerequisite-knowledge-for-the-reactivity-system", + "title": "響應式系統的前置知識", + "fromDir": "10_minimum_example/020_simple_h_function", + "toDir": "10_minimum_example/020_simple_h_function", + "docs": "https://book.chibivue.land/zh-tw/10-minimum-example/030-prerequisite-knowledge-for-the-reactivity-system", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-zh-tw/chapters/010-try-implementing-a-minimum-reactivity-system.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/010-try-implementing-a-minimum-reactivity-system.jsonc new file mode 100644 index 0000000..0300177 --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/010-try-implementing-a-minimum-reactivity-system.jsonc @@ -0,0 +1,54 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "try-implementing-a-minimum-reactivity-system", + "title": "嘗試實作一個小型響應式系統", + "fromDir": "10_minimum_example/020_simple_h_function", + "toDir": "10_minimum_example/030_reactive_system", + "docs": "https://book.chibivue.land/zh-tw/10-minimum-example/035-try-implementing-a-minimum-reactivity-system", + "changedFiles": [ + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "packages/index.ts", + "kind": "M", + }, + { + "path": "packages/reactivity/baseHandler.ts", + "kind": "U", + }, + { + "path": "packages/reactivity/dep.ts", + "kind": "U", + }, + { + "path": "packages/reactivity/effect.ts", + "kind": "U", + }, + { + "path": "packages/reactivity/index.ts", + "kind": "U", + }, + { + "path": "packages/reactivity/reactive.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/apiCreateApp.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/componentOptions.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/renderer.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-zh-tw/chapters/011-minimum-virtual-dom.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/011-minimum-virtual-dom.jsonc new file mode 100644 index 0000000..42358fd --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/011-minimum-virtual-dom.jsonc @@ -0,0 +1,34 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "minimum-virtual-dom", + "title": "最小虛擬 DOM", + "fromDir": "10_minimum_example/030_reactive_system", + "toDir": "10_minimum_example/040_vdom_system", + "docs": "https://book.chibivue.land/zh-tw/10-minimum-example/040-minimum-virtual-dom", + "changedFiles": [ + { + "path": "packages/runtime-core/apiCreateApp.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/h.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/renderer.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/vnode.ts", + "kind": "M", + }, + { + "path": "packages/runtime-dom/nodeOps.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-zh-tw/chapters/012-minimum-component.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/012-minimum-component.jsonc new file mode 100644 index 0000000..ab99f6f --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/012-minimum-component.jsonc @@ -0,0 +1,38 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "minimum-component", + "title": "邁向元件導向開發", + "fromDir": "10_minimum_example/040_vdom_system", + "toDir": "10_minimum_example/050_component_system", + "docs": "https://book.chibivue.land/zh-tw/10-minimum-example/050-minimum-component", + "changedFiles": [ + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/component.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/h.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/renderer.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/vnode.ts", + "kind": "M", + }, + { + "path": "packages/runtime-dom/nodeOps.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-zh-tw/chapters/013-component-props.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/013-component-props.jsonc new file mode 100644 index 0000000..8e54149 --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/013-component-props.jsonc @@ -0,0 +1,34 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "component-props", + "title": "元件 Props", + "fromDir": "10_minimum_example/050_component_system", + "toDir": "10_minimum_example/050_component_system2", + "docs": "https://book.chibivue.land/zh-tw/10-minimum-example/051-component-props", + "changedFiles": [ + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/component.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/componentOptions.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/componentProps.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/renderer.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-zh-tw/chapters/014-component-emits.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/014-component-emits.jsonc new file mode 100644 index 0000000..8a73f88 --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/014-component-emits.jsonc @@ -0,0 +1,46 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "component-emits", + "title": "元件事件", + "fromDir": "10_minimum_example/050_component_system2", + "toDir": "10_minimum_example/050_component_system3", + "docs": "https://book.chibivue.land/zh-tw/10-minimum-example/052-component-emits", + "changedFiles": [ + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/component.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/componentEmits.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/componentOptions.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/componentProps.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/renderer.ts", + "kind": "M", + }, + { + "path": "packages/shared/general.ts", + "kind": "U", + }, + { + "path": "packages/shared/index.ts", + "kind": "U", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-zh-tw/chapters/015-template-compiler.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/015-template-compiler.jsonc new file mode 100644 index 0000000..20e85f6 --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/015-template-compiler.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "template-compiler", + "title": "理解模板編譯器", + "fromDir": "10_minimum_example/050_component_system3", + "toDir": "10_minimum_example/050_component_system3", + "docs": "https://book.chibivue.land/zh-tw/10-minimum-example/060-template-compiler", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-zh-tw/chapters/016-template-compiler-impl.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/016-template-compiler-impl.jsonc new file mode 100644 index 0000000..cecc93b --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/016-template-compiler-impl.jsonc @@ -0,0 +1,66 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "template-compiler-impl", + "title": "實作模板編譯器", + "fromDir": "10_minimum_example/050_component_system3", + "toDir": "10_minimum_example/060_template_compiler", + "docs": "https://book.chibivue.land/zh-tw/10-minimum-example/061-template-compiler-impl", + "changedFiles": [ + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/ast.ts", + "kind": "U", + }, + { + "path": "packages/compiler-core/codegen.ts", + "kind": "U", + }, + { + "path": "packages/compiler-core/compile.ts", + "kind": "U", + }, + { + "path": "packages/compiler-core/index.ts", + "kind": "U", + }, + { + "path": "packages/compiler-core/parse.ts", + "kind": "U", + }, + { + "path": "packages/compiler-dom/index.ts", + "kind": "U", + }, + { + "path": "packages/index.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/component.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/componentOptions.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/index.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/renderer.ts", + "kind": "M", + }, + { + "path": "packages/runtime-dom/index.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-zh-tw/chapters/017-more-complex-parser.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/017-more-complex-parser.jsonc new file mode 100644 index 0000000..2ba0b48 --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/017-more-complex-parser.jsonc @@ -0,0 +1,30 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "more-complex-parser", + "title": "希望編寫更複雜的 HTML", + "fromDir": "10_minimum_example/060_template_compiler", + "toDir": "10_minimum_example/060_template_compiler2", + "docs": "https://book.chibivue.land/zh-tw/10-minimum-example/070-more-complex-parser", + "changedFiles": [ + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/codegen.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/compile.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/parse.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-zh-tw/chapters/018-template-binding.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/018-template-binding.jsonc new file mode 100644 index 0000000..b000afd --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/018-template-binding.jsonc @@ -0,0 +1,42 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "template-binding", + "title": "資料綁定", + "fromDir": "10_minimum_example/060_template_compiler2", + "toDir": "10_minimum_example/060_template_compiler3", + "docs": "https://book.chibivue.land/zh-tw/10-minimum-example/080-template-binding", + "changedFiles": [ + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/ast.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/codegen.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/parse.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/component.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/componentOptions.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/renderer.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-zh-tw/chapters/019-prerequisite-knowledge-for-the-sfc.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/019-prerequisite-knowledge-for-the-sfc.jsonc new file mode 100644 index 0000000..81de68b --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/019-prerequisite-knowledge-for-the-sfc.jsonc @@ -0,0 +1,74 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "prerequisite-knowledge-for-the-sfc", + "title": "使用 SFC 開發(外圍知識)", + "fromDir": "10_minimum_example/060_template_compiler3", + "toDir": "10_minimum_example/070_sfc_compiler", + "docs": "https://book.chibivue.land/zh-tw/10-minimum-example/090-prerequisite-knowledge-for-the-sfc", + "changedFiles": [ + { + "path": "plugin-sample/README.md", + "kind": "U", + }, + { + "path": "plugin-sample/index.html", + "kind": "U", + }, + { + "path": "plugin-sample/package.json", + "kind": "U", + }, + { + "path": "plugin-sample/pnpm-lock.yaml", + "kind": "U", + }, + { + "path": "plugin-sample/public/vite.svg", + "kind": "U", + }, + { + "path": "plugin-sample/src/App.vue", + "kind": "U", + }, + { + "path": "plugin-sample/src/assets/vue.svg", + "kind": "U", + }, + { + "path": "plugin-sample/src/components/HelloWorld.vue", + "kind": "U", + }, + { + "path": "plugin-sample/src/main.ts", + "kind": "U", + }, + { + "path": "plugin-sample/src/plugin.sample.js", + "kind": "U", + }, + { + "path": "plugin-sample/src/style.css", + "kind": "U", + }, + { + "path": "plugin-sample/src/vite-env.d.ts", + "kind": "U", + }, + { + "path": "plugin-sample/tsconfig.json", + "kind": "U", + }, + { + "path": "plugin-sample/tsconfig.node.json", + "kind": "U", + }, + { + "path": "plugin-sample/vite.config.ts", + "kind": "U", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-zh-tw/chapters/020-parse-sfc.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/020-parse-sfc.jsonc new file mode 100644 index 0000000..53573ac --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/020-parse-sfc.jsonc @@ -0,0 +1,110 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "parse-sfc", + "title": "解析 SFC", + "fromDir": "10_minimum_example/070_sfc_compiler", + "toDir": "10_minimum_example/070_sfc_compiler2", + "docs": "https://book.chibivue.land/zh-tw/10-minimum-example/091-parse-sfc", + "changedFiles": [ + { + "path": "examples/playground/src/App.vue", + "kind": "U", + }, + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "examples/playground/vite.config.ts", + "kind": "M", + }, + { + "path": "packages/@extensions/vite-plugin-chibivue/index.ts", + "kind": "U", + }, + { + "path": "packages/compiler-core/index.ts", + "kind": "M", + }, + { + "path": "packages/compiler-dom/index.ts", + "kind": "M", + }, + { + "path": "packages/compiler-sfc/compileTemplate.ts", + "kind": "U", + }, + { + "path": "packages/compiler-sfc/index.ts", + "kind": "U", + }, + { + "path": "packages/compiler-sfc/parse.ts", + "kind": "U", + }, + { + "path": "plugin-sample/README.md", + "kind": "D", + }, + { + "path": "plugin-sample/index.html", + "kind": "D", + }, + { + "path": "plugin-sample/package.json", + "kind": "D", + }, + { + "path": "plugin-sample/pnpm-lock.yaml", + "kind": "D", + }, + { + "path": "plugin-sample/public/vite.svg", + "kind": "D", + }, + { + "path": "plugin-sample/src/App.vue", + "kind": "D", + }, + { + "path": "plugin-sample/src/assets/vue.svg", + "kind": "D", + }, + { + "path": "plugin-sample/src/components/HelloWorld.vue", + "kind": "D", + }, + { + "path": "plugin-sample/src/main.ts", + "kind": "D", + }, + { + "path": "plugin-sample/src/plugin.sample.js", + "kind": "D", + }, + { + "path": "plugin-sample/src/style.css", + "kind": "D", + }, + { + "path": "plugin-sample/src/vite-env.d.ts", + "kind": "D", + }, + { + "path": "plugin-sample/tsconfig.json", + "kind": "D", + }, + { + "path": "plugin-sample/tsconfig.node.json", + "kind": "D", + }, + { + "path": "plugin-sample/vite.config.ts", + "kind": "D", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-zh-tw/chapters/021-compile-sfc-template.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/021-compile-sfc-template.jsonc new file mode 100644 index 0000000..970e612 --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/021-compile-sfc-template.jsonc @@ -0,0 +1,38 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "compile-sfc-template", + "title": "SFC template 區塊", + "fromDir": "10_minimum_example/070_sfc_compiler2", + "toDir": "10_minimum_example/070_sfc_compiler3", + "docs": "https://book.chibivue.land/zh-tw/10-minimum-example/092-compile-sfc-template", + "changedFiles": [ + { + "path": "packages/@extensions/vite-plugin-chibivue/index.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/codegen.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/compile.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/index.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/options.ts", + "kind": "U", + }, + { + "path": "packages/compiler-dom/index.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-zh-tw/chapters/022-compile-sfc-script.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/022-compile-sfc-script.jsonc new file mode 100644 index 0000000..bc7dbf2 --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/022-compile-sfc-script.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "compile-sfc-script", + "title": "SFC script 區塊", + "fromDir": "10_minimum_example/070_sfc_compiler3", + "toDir": "10_minimum_example/070_sfc_compiler3", + "docs": "https://book.chibivue.land/zh-tw/10-minimum-example/093-compile-sfc-script", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-zh-tw/chapters/023-compile-sfc-style.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/023-compile-sfc-style.jsonc new file mode 100644 index 0000000..9511365 --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/023-compile-sfc-style.jsonc @@ -0,0 +1,38 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "compile-sfc-style", + "title": "SFC style 區塊", + "fromDir": "10_minimum_example/070_sfc_compiler3", + "toDir": "10_minimum_example/070_sfc_compiler4", + "docs": "https://book.chibivue.land/zh-tw/10-minimum-example/094-compile-sfc-style", + "changedFiles": [ + { + "path": "examples/playground/vite.config.ts", + "kind": "M", + }, + { + "path": "package.json", + "kind": "M", + }, + { + "path": "packages/@extensions/vite-plugin-chibivue/index.ts", + "kind": "M", + }, + { + "path": "packages/compiler-sfc/index.ts", + "kind": "M", + }, + { + "path": "packages/compiler-sfc/rewriteDefault.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/component.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-zh-tw/chapters/024-break.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/024-break.jsonc new file mode 100644 index 0000000..b5abbe8 --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/024-break.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "break", + "title": "稍作休息", + "fromDir": "10_minimum_example/070_sfc_compiler4", + "toDir": "10_minimum_example/070_sfc_compiler4", + "docs": "https://book.chibivue.land/zh-tw/10-minimum-example/100-break", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-zh-cn/chapters/032-template-refs.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/025-patch-keyed-children.jsonc similarity index 56% rename from packages/courses-config/chibivue-zh-cn/chapters/032-template-refs.jsonc rename to packages/courses-config/chibivue-zh-tw/chapters/025-patch-keyed-children.jsonc index 8be9234..c530973 100644 --- a/packages/courses-config/chibivue-zh-cn/chapters/032-template-refs.jsonc +++ b/packages/courses-config/chibivue-zh-tw/chapters/025-patch-keyed-children.jsonc @@ -1,31 +1,35 @@ { "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", - "id": "template-refs", - "title": "Template Refs", - "fromDir": "30_basic_reactivity_system/100_reactive_proxy_target_type", - "toDir": "30_basic_reactivity_system/110_template_refs", - "docs": "https://book.chibivue.land/zh-cn/30-basic-reactivity-system/030-reactive-proxy-handlers", + "id": "patch-keyed-children", + "title": "key 屬性和補丁渲染", + "fromDir": "10_minimum_example/070_sfc_compiler4", + "toDir": "20_basic_virtual_dom/010_patch_keyed_children", + "docs": "https://book.chibivue.land/zh-tw/20-basic-virtual-dom/010-patch-keyed-children", "changedFiles": [ { "path": "examples/playground/src/App.vue", - "kind": "M", + "kind": "D", }, { "path": "examples/playground/src/main.ts", "kind": "M", }, { - "path": "packages/runtime-core/renderer.ts", + "path": "examples/playground/vite.config.ts", "kind": "M", }, { - "path": "packages/runtime-core/rendererTemplateRef.ts", - "kind": "U", + "path": "packages/runtime-core/renderer.ts", + "kind": "M", }, { "path": "packages/runtime-core/vnode.ts", "kind": "M", }, + { + "path": "packages/runtime-dom/nodeOps.ts", + "kind": "M", + }, { "path": "tests/e2e.spec.ts", "kind": "M", diff --git a/packages/courses-config/chibivue-zh-tw/chapters/026-bit-flags.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/026-bit-flags.jsonc new file mode 100644 index 0000000..8040e4d --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/026-bit-flags.jsonc @@ -0,0 +1,34 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "bit-flags", + "title": "VNode 的位元級表示", + "fromDir": "20_basic_virtual_dom/010_patch_keyed_children", + "toDir": "20_basic_virtual_dom/020_bit_flags", + "docs": "https://book.chibivue.land/zh-tw/20-basic-virtual-dom/020-bit-flags", + "changedFiles": [ + { + "path": "packages/reactivity/baseHandler.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/renderer.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/vnode.ts", + "kind": "M", + }, + { + "path": "packages/shared/general.ts", + "kind": "M", + }, + { + "path": "packages/shared/shapeFlags.ts", + "kind": "U", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-zh-cn/chapters/020-next-tick.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/027-scheduler.jsonc similarity index 60% rename from packages/courses-config/chibivue-zh-cn/chapters/020-next-tick.jsonc rename to packages/courses-config/chibivue-zh-tw/chapters/027-scheduler.jsonc index 307fca9..81836dd 100644 --- a/packages/courses-config/chibivue-zh-cn/chapters/020-next-tick.jsonc +++ b/packages/courses-config/chibivue-zh-tw/chapters/027-scheduler.jsonc @@ -1,23 +1,35 @@ { "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", - "id": "next-tick", - "title": "nextTick", - "fromDir": "20_basic_virtual_dom/040_scheduler", + "id": "scheduler", + "title": "調度器", + "fromDir": "20_basic_virtual_dom/020_bit_flags", "toDir": "20_basic_virtual_dom/050_next_tick", - "docs": "https://book.chibivue.land/zh-cn/20-basic-virtual-dom/030-scheduler", + "docs": "https://book.chibivue.land/zh-tw/20-basic-virtual-dom/030-scheduler", "changedFiles": [ { "path": "examples/playground/src/main.ts", "kind": "M", }, + { + "path": "packages/reactivity/effect.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/component.ts", + "kind": "M", + }, { "path": "packages/runtime-core/index.ts", "kind": "M", }, { - "path": "packages/runtime-core/scheduler.ts", + "path": "packages/runtime-core/renderer.ts", "kind": "M", }, + { + "path": "packages/runtime-core/scheduler.ts", + "kind": "U", + }, { "path": "packages/runtime-core/vnode.ts", "kind": "M", diff --git a/packages/courses-config/chibivue-zh-tw/chapters/028-patch-other-attrs.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/028-patch-other-attrs.jsonc new file mode 100644 index 0000000..c4a8cf5 --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/028-patch-other-attrs.jsonc @@ -0,0 +1,42 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "patch-other-attrs", + "title": "未處理 Props 的補丁", + "fromDir": "20_basic_virtual_dom/050_next_tick", + "toDir": "20_basic_virtual_dom/060_other_props", + "docs": "https://book.chibivue.land/zh-tw/20-basic-virtual-dom/040-patch-other-attrs", + "changedFiles": [ + { + "path": "packages/runtime-core/renderer.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/vnode.ts", + "kind": "M", + }, + { + "path": "packages/runtime-dom/modules/class.ts", + "kind": "U", + }, + { + "path": "packages/runtime-dom/modules/props.ts", + "kind": "U", + }, + { + "path": "packages/runtime-dom/modules/style.ts", + "kind": "U", + }, + { + "path": "packages/runtime-dom/patchProp.ts", + "kind": "M", + }, + { + "path": "packages/shared/general.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-zh-tw/chapters/029-reactivity-optimization.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/029-reactivity-optimization.jsonc new file mode 100644 index 0000000..618ed56 --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/029-reactivity-optimization.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "reactivity-optimization", + "title": "響應式最佳化", + "fromDir": "20_basic_virtual_dom/060_other_props", + "toDir": "20_basic_virtual_dom/060_other_props", + "docs": "https://book.chibivue.land/zh-tw/30-basic-reactivity-system/005-reactivity-optimization", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-zh-cn/chapters/022-ref.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/030-ref-api.jsonc similarity index 69% rename from packages/courses-config/chibivue-zh-cn/chapters/022-ref.jsonc rename to packages/courses-config/chibivue-zh-tw/chapters/030-ref-api.jsonc index bf84d00..b56e915 100644 --- a/packages/courses-config/chibivue-zh-cn/chapters/022-ref.jsonc +++ b/packages/courses-config/chibivue-zh-tw/chapters/030-ref-api.jsonc @@ -1,10 +1,10 @@ { "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", - "id": "ref", + "id": "ref-api", "title": "ref API", "fromDir": "20_basic_virtual_dom/060_other_props", - "toDir": "30_basic_reactivity_system/010_ref", - "docs": "https://book.chibivue.land/zh-cn/30-basic-reactivity-system/010-ref-api", + "toDir": "30_basic_reactivity_system/040_to_refs", + "docs": "https://book.chibivue.land/zh-tw/30-basic-reactivity-system/010-ref-api", "changedFiles": [ { "path": "examples/playground/src/App.vue", @@ -15,7 +15,7 @@ "kind": "M", }, { - "path": "packages/@extensions/vite-plugin-chibivue/index.ts", + "path": "packages/compiler-core/codegen.ts", "kind": "M", }, { @@ -35,9 +35,17 @@ "kind": "U", }, { - "path": "packages/runtime-core/renderer.ts", + "path": "packages/shared/general.ts", "kind": "M", }, + { + "path": "packages/shared/index.ts", + "kind": "M", + }, + { + "path": "packages/shared/typeUtils.ts", + "kind": "U", + }, { "path": "tests/e2e.spec.ts", "kind": "M", diff --git a/packages/courses-config/chibivue-zh-cn/chapters/029-watch-api-extends.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/031-computed-watch.jsonc similarity index 57% rename from packages/courses-config/chibivue-zh-cn/chapters/029-watch-api-extends.jsonc rename to packages/courses-config/chibivue-zh-tw/chapters/031-computed-watch.jsonc index 23a8658..2fc251c 100644 --- a/packages/courses-config/chibivue-zh-cn/chapters/029-watch-api-extends.jsonc +++ b/packages/courses-config/chibivue-zh-tw/chapters/031-computed-watch.jsonc @@ -1,10 +1,10 @@ { "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", - "id": "watch-api-extends", - "title": "watch 的其他 API", - "fromDir": "30_basic_reactivity_system/070_watch", - "toDir": "30_basic_reactivity_system/080_watch_api_extends", - "docs": "https://book.chibivue.land/zh-cn/30-basic-reactivity-system/020-computed-watch", + "id": "computed-watch", + "title": "computed / watch API", + "fromDir": "30_basic_reactivity_system/040_to_refs", + "toDir": "30_basic_reactivity_system/090_watch_effect", + "docs": "https://book.chibivue.land/zh-tw/30-basic-reactivity-system/020-computed-watch", "changedFiles": [ { "path": "examples/playground/src/App.vue", @@ -14,12 +14,24 @@ "path": "examples/playground/src/main.ts", "kind": "M", }, + { + "path": "packages/reactivity/baseHandler.ts", + "kind": "M", + }, + { + "path": "packages/reactivity/computed.ts", + "kind": "U", + }, { "path": "packages/reactivity/index.ts", "kind": "M", }, { "path": "packages/runtime-core/apiWatch.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/index.ts", "kind": "M", }, { diff --git a/packages/courses-config/chibivue-zh-tw/chapters/032-reactive-proxy-handlers.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/032-reactive-proxy-handlers.jsonc new file mode 100644 index 0000000..2684d1d --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/032-reactive-proxy-handlers.jsonc @@ -0,0 +1,54 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "reactive-proxy-handlers", + "title": "各種響應式代理處理器", + "fromDir": "30_basic_reactivity_system/090_watch_effect", + "toDir": "30_basic_reactivity_system/120_proxy_handler_improvement", + "docs": "https://book.chibivue.land/zh-tw/30-basic-reactivity-system/030-reactive-proxy-handlers", + "changedFiles": [ + { + "path": "examples/playground/src/App.vue", + "kind": "M", + }, + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "packages/reactivity/baseHandler.ts", + "kind": "M", + }, + { + "path": "packages/reactivity/collectionHandlers.ts", + "kind": "U", + }, + { + "path": "packages/reactivity/effect.ts", + "kind": "M", + }, + { + "path": "packages/reactivity/reactive.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/renderer.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/rendererTemplateRef.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/vnode.ts", + "kind": "M", + }, + { + "path": "packages/shared/general.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-zh-cn/chapters/034-cleanup-effects.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/033-effect-scope.jsonc similarity index 55% rename from packages/courses-config/chibivue-zh-cn/chapters/034-cleanup-effects.jsonc rename to packages/courses-config/chibivue-zh-tw/chapters/033-effect-scope.jsonc index b6dc7c0..1a29bc0 100644 --- a/packages/courses-config/chibivue-zh-cn/chapters/034-cleanup-effects.jsonc +++ b/packages/courses-config/chibivue-zh-tw/chapters/033-effect-scope.jsonc @@ -1,10 +1,10 @@ { "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", - "id": "cleanup-effects", - "title": "ReactiveEffect 的清理", + "id": "effect-scope", + "title": "Effect 清理和 Effect 作用域", "fromDir": "30_basic_reactivity_system/120_proxy_handler_improvement", - "toDir": "30_basic_reactivity_system/130_cleanup_effects", - "docs": "https://book.chibivue.land/zh-cn/30-basic-reactivity-system/040-effect-scope", + "toDir": "30_basic_reactivity_system/140_effect_scope", + "docs": "https://book.chibivue.land/zh-tw/30-basic-reactivity-system/040-effect-scope", "changedFiles": [ { "path": "examples/playground/src/App.vue", @@ -18,10 +18,26 @@ "path": "packages/reactivity/effect.ts", "kind": "M", }, + { + "path": "packages/reactivity/effectScope.ts", + "kind": "U", + }, + { + "path": "packages/reactivity/index.ts", + "kind": "M", + }, { "path": "packages/runtime-core/apiWatch.ts", "kind": "M", }, + { + "path": "packages/runtime-core/component.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/renderer.ts", + "kind": "M", + }, { "path": "tests/e2e.spec.ts", "kind": "M", diff --git a/packages/courses-config/chibivue-zh-tw/chapters/034-other-apis.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/034-other-apis.jsonc new file mode 100644 index 0000000..cc24f02 --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/034-other-apis.jsonc @@ -0,0 +1,42 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "other-apis", + "title": "其他響應式 API", + "fromDir": "30_basic_reactivity_system/140_effect_scope", + "toDir": "30_basic_reactivity_system/150_other_apis", + "docs": "https://book.chibivue.land/zh-tw/30-basic-reactivity-system/050-other-apis", + "changedFiles": [ + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "examples/playground/vite.config.ts", + "kind": "M", + }, + { + "path": "packages/reactivity/baseHandler.ts", + "kind": "M", + }, + { + "path": "packages/reactivity/collectionHandlers.ts", + "kind": "M", + }, + { + "path": "packages/reactivity/index.ts", + "kind": "M", + }, + { + "path": "packages/reactivity/reactive.ts", + "kind": "M", + }, + { + "path": "packages/reactivity/ref.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-zh-tw/chapters/035-lifecycle-hooks.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/035-lifecycle-hooks.jsonc new file mode 100644 index 0000000..4610438 --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/035-lifecycle-hooks.jsonc @@ -0,0 +1,54 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "lifecycle-hooks", + "title": "生命週期鉤子", + "fromDir": "30_basic_reactivity_system/150_other_apis", + "toDir": "40_basic_component_system/010_lifecycle_hooks", + "docs": "https://book.chibivue.land/zh-tw/40-basic-component-system/010-lifecycle-hooks", + "changedFiles": [ + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "examples/playground/vite.config.ts", + "kind": "M", + }, + { + "path": "packages/reactivity/collectionHandlers.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/apiLifecycle.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/component.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/enums.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/index.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/renderer.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/scheduler.ts", + "kind": "M", + }, + { + "path": "packages/shared/general.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-zh-tw/chapters/036-provide-inject.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/036-provide-inject.jsonc new file mode 100644 index 0000000..60589c0 --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/036-provide-inject.jsonc @@ -0,0 +1,46 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "provide-inject", + "title": "Provide/Inject", + "fromDir": "40_basic_component_system/010_lifecycle_hooks", + "toDir": "40_basic_component_system/020_provide_inject", + "docs": "https://book.chibivue.land/zh-tw/40-basic-component-system/020-provide-inject", + "changedFiles": [ + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/apiCreateApp.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/apiInject.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/component.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/componentOptions.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/index.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/renderer.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/vnode.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-zh-tw/chapters/037-component-proxy-setup-context.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/037-component-proxy-setup-context.jsonc new file mode 100644 index 0000000..ab75e66 --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/037-component-proxy-setup-context.jsonc @@ -0,0 +1,54 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "component-proxy-setup-context", + "title": "元件代理和 setupContext", + "fromDir": "40_basic_component_system/020_provide_inject", + "toDir": "40_basic_component_system/040_setup_context", + "docs": "https://book.chibivue.land/zh-tw/40-basic-component-system/030-component-proxy-setup-context", + "changedFiles": [ + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "packages/reactivity/ref.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/apiDefineComponent.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/component.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/componentOptions.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/componentProps.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/componentPublicInstance.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/index.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/renderer.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/rendererTemplateRef.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-zh-cn/chapters/042-slot-extend.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/038-component-slot.jsonc similarity index 53% rename from packages/courses-config/chibivue-zh-cn/chapters/042-slot-extend.jsonc rename to packages/courses-config/chibivue-zh-tw/chapters/038-component-slot.jsonc index 6b3164e..1f36644 100644 --- a/packages/courses-config/chibivue-zh-cn/chapters/042-slot-extend.jsonc +++ b/packages/courses-config/chibivue-zh-tw/chapters/038-component-slot.jsonc @@ -1,21 +1,25 @@ { "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", - "id": "slot-extend", - "title": "命名插槽与作用域插槽", - "fromDir": "40_basic_component_system/050_component_slot", + "id": "component-slot", + "title": "插槽", + "fromDir": "40_basic_component_system/040_setup_context", "toDir": "40_basic_component_system/060_slot_extend", - "docs": "https://book.chibivue.land/zh-cn/40-basic-component-system/040-component-slot", + "docs": "https://book.chibivue.land/zh-tw/40-basic-component-system/040-component-slot", "changedFiles": [ { "path": "examples/playground/src/main.ts", "kind": "M", }, { - "path": "packages/runtime-core/componentRenderContext.ts", - "kind": "D", + "path": "packages/runtime-core/component.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/componentSlots.ts", + "kind": "U", }, { - "path": "packages/runtime-core/index.ts", + "path": "packages/runtime-core/h.ts", "kind": "M", }, { @@ -26,6 +30,14 @@ "path": "packages/runtime-core/vnode.ts", "kind": "M", }, + { + "path": "packages/shared/shapeFlags.ts", + "kind": "M", + }, + { + "path": "packages/shared/typeUtils.ts", + "kind": "M", + }, { "path": "tests/e2e.spec.ts", "kind": "M", diff --git a/packages/courses-config/chibivue-zh-tw/chapters/039-options-api.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/039-options-api.jsonc new file mode 100644 index 0000000..f8ffff7 --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/039-options-api.jsonc @@ -0,0 +1,42 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "options-api", + "title": "支援 Options API", + "fromDir": "40_basic_component_system/060_slot_extend", + "toDir": "40_basic_component_system/070_options_api", + "docs": "https://book.chibivue.land/zh-tw/40-basic-component-system/050-options-api", + "changedFiles": [ + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/apiDefineComponent.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/component.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/componentEmits.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/componentOptions.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/componentPublicInstance.ts", + "kind": "M", + }, + { + "path": "packages/shared/typeUtils.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-zh-tw/chapters/040-transform.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/040-transform.jsonc new file mode 100644 index 0000000..0e57123 --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/040-transform.jsonc @@ -0,0 +1,46 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "transform", + "title": "重構 Transformer 的 Codegen 實作", + "fromDir": "40_basic_component_system/070_options_api", + "toDir": "50_basic_template_compiler/010_transformer", + "docs": "https://book.chibivue.land/zh-tw/50-basic-template-compiler/010-transform", + "changedFiles": [ + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/ast.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/codegen.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/compile.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/options.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/parse.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transform.ts", + "kind": "U", + }, + { + "path": "packages/compiler-core/transforms/transformElement.ts", + "kind": "U", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-zh-tw/chapters/041-v-bind.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/041-v-bind.jsonc new file mode 100644 index 0000000..11cc40a --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/041-v-bind.jsonc @@ -0,0 +1,66 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "v-bind", + "title": "實作指令(v-bind)", + "fromDir": "50_basic_template_compiler/010_transformer", + "toDir": "50_basic_template_compiler/020_v_bind", + "docs": "https://book.chibivue.land/zh-tw/50-basic-template-compiler/020-v-bind", + "changedFiles": [ + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/ast.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/codegen.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/compile.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/parse.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transform.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transforms/transformElement.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transforms/vBind.ts", + "kind": "U", + }, + { + "path": "packages/compiler-core/utils.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/index.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/vnode.ts", + "kind": "M", + }, + { + "path": "packages/shared/index.ts", + "kind": "M", + }, + { + "path": "packages/shared/normalizeProp.ts", + "kind": "U", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-zh-tw/chapters/042-transform-expression.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/042-transform-expression.jsonc new file mode 100644 index 0000000..1f7af43 --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/042-transform-expression.jsonc @@ -0,0 +1,66 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "transform-expression", + "title": "在模板中求值運算式", + "fromDir": "50_basic_template_compiler/020_v_bind", + "toDir": "50_basic_template_compiler/022_transform_expression", + "docs": "https://book.chibivue.land/zh-tw/50-basic-template-compiler/022-transform-expression", + "changedFiles": [ + { + "path": "examples/playground/src/App.vue", + "kind": "U", + }, + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/ast.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/babelUtils.ts", + "kind": "U", + }, + { + "path": "packages/compiler-core/codegen.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/compile.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/options.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/parse.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transform.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transforms/transformExpression.ts", + "kind": "U", + }, + { + "path": "packages/compiler-core/transforms/vBind.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/utils.ts", + "kind": "M", + }, + { + "path": "packages/shared/makeMap.ts", + "kind": "U", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-zh-tw/chapters/043-v-on.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/043-v-on.jsonc new file mode 100644 index 0000000..838b4de --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/043-v-on.jsonc @@ -0,0 +1,70 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "v-on", + "title": "支援 v-on", + "fromDir": "50_basic_template_compiler/022_transform_expression", + "toDir": "50_basic_template_compiler/025_v_on", + "docs": "https://book.chibivue.land/zh-tw/50-basic-template-compiler/025-v-on", + "changedFiles": [ + { + "path": "examples/playground/src/App.vue", + "kind": "D", + }, + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/ast.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/babelUtils.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/codegen.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/compile.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/runtimeHelpers.ts", + "kind": "U", + }, + { + "path": "packages/compiler-core/transform.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transforms/transformElement.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transforms/transformExpression.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transforms/vOn.ts", + "kind": "U", + }, + { + "path": "packages/compiler-core/utils.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/helpers/toHandlers.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/index.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-zh-tw/chapters/044-event-modifier.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/044-event-modifier.jsonc new file mode 100644 index 0000000..c46f194 --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/044-event-modifier.jsonc @@ -0,0 +1,70 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "event-modifier", + "title": "compiler-dom 和事件修飾符", + "fromDir": "50_basic_template_compiler/025_v_on", + "toDir": "50_basic_template_compiler/027_event_modifier2", + "docs": "https://book.chibivue.land/zh-tw/50-basic-template-compiler/027-event-modifier", + "changedFiles": [ + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/ast.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/codegen.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/compile.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/parse.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/runtimeHelpers.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transform.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transforms/vOn.ts", + "kind": "M", + }, + { + "path": "packages/compiler-dom/index.ts", + "kind": "M", + }, + { + "path": "packages/compiler-dom/transforms/vOn.ts", + "kind": "U", + }, + { + "path": "packages/runtime-dom/directives/vOn.ts", + "kind": "U", + }, + { + "path": "packages/runtime-dom/index.ts", + "kind": "M", + }, + { + "path": "packages/runtime-dom/runtimeHelpers.ts", + "kind": "U", + }, + { + "path": "packages/shared/general.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-zh-tw/chapters/045-fragment.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/045-fragment.jsonc new file mode 100644 index 0000000..198d611 --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/045-fragment.jsonc @@ -0,0 +1,58 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "fragment", + "title": "支援 Fragment", + "fromDir": "50_basic_template_compiler/027_event_modifier2", + "toDir": "50_basic_template_compiler/030_fragment", + "docs": "https://book.chibivue.land/zh-tw/50-basic-template-compiler/030-fragment", + "changedFiles": [ + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/ast.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/codegen.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/runtimeHelpers.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transform.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/h.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/index.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/renderer.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/vnode.ts", + "kind": "M", + }, + { + "path": "packages/runtime-dom/nodeOps.ts", + "kind": "M", + }, + { + "path": "packages/shared/general.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-zh-tw/chapters/046-comment.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/046-comment.jsonc new file mode 100644 index 0000000..4b6c167 --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/046-comment.jsonc @@ -0,0 +1,54 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "comment", + "title": "支援註釋節點", + "fromDir": "50_basic_template_compiler/030_fragment", + "toDir": "50_basic_template_compiler/035_comment", + "docs": "https://book.chibivue.land/zh-tw/50-basic-template-compiler/035-comment", + "changedFiles": [ + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/ast.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/codegen.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/parse.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/runtimeHelpers.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transform.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/index.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/renderer.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/vnode.ts", + "kind": "M", + }, + { + "path": "packages/runtime-dom/nodeOps.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-zh-tw/chapters/047-v-if-and-structural-directive.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/047-v-if-and-structural-directive.jsonc new file mode 100644 index 0000000..0c3ae93 --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/047-v-if-and-structural-directive.jsonc @@ -0,0 +1,42 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "v-if-and-structural-directive", + "title": "v-if 和結構指令", + "fromDir": "50_basic_template_compiler/035_comment", + "toDir": "50_basic_template_compiler/040_v_if_and_structural_directive", + "docs": "https://book.chibivue.land/zh-tw/50-basic-template-compiler/040-v-if-and-structural-directive", + "changedFiles": [ + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "examples/playground/vite.config.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/ast.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/codegen.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/compile.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transform.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transforms/vIf.ts", + "kind": "U", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-zh-tw/chapters/048-v-for.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/048-v-for.jsonc new file mode 100644 index 0000000..814c57b --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/048-v-for.jsonc @@ -0,0 +1,78 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "v-for", + "title": "支援 v-for", + "fromDir": "50_basic_template_compiler/040_v_if_and_structural_directive", + "toDir": "50_basic_template_compiler/050_v_for", + "docs": "https://book.chibivue.land/zh-tw/50-basic-template-compiler/050-v-for", + "changedFiles": [ + { + "path": "examples/playground/src/App.vue", + "kind": "U", + }, + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "examples/playground/vite.config.js", + "kind": "U", + }, + { + "path": "examples/playground/vite.config.ts", + "kind": "D", + }, + { + "path": "packages/compiler-core/ast.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/babelUtils.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/codegen.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/compile.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/runtimeHelpers.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transform.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transforms/transformExpression.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transforms/vFor.ts", + "kind": "U", + }, + { + "path": "packages/compiler-core/utils.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/helpers/renderList.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/index.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/renderer.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-zh-tw/chapters/049-resolve-component.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/049-resolve-component.jsonc new file mode 100644 index 0000000..043e882 --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/049-resolve-component.jsonc @@ -0,0 +1,102 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "resolve-component", + "title": "解析元件", + "fromDir": "50_basic_template_compiler/050_v_for", + "toDir": "50_basic_template_compiler/060_resolve_components", + "docs": "https://book.chibivue.land/zh-tw/50-basic-template-compiler/070-resolve-component", + "changedFiles": [ + { + "path": "examples/playground/src/App.vue", + "kind": "M", + }, + { + "path": "examples/playground/src/components/Counter.vue", + "kind": "U", + }, + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "examples/playground/vite.config.js", + "kind": "D", + }, + { + "path": "examples/playground/vite.config.ts", + "kind": "U", + }, + { + "path": "packages/compiler-core/ast.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/codegen.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/options.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/parse.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/runtimeHelpers.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transform.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transforms/transformElement.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/utils.ts", + "kind": "M", + }, + { + "path": "packages/compiler-dom/index.ts", + "kind": "M", + }, + { + "path": "packages/compiler-dom/parserOptions.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/apiCreateApp.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/componentOptions.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/componentRenderContext.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/helpers/resolveAssets.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/index.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/renderer.ts", + "kind": "M", + }, + { + "path": "packages/shared/domTagConfig.ts", + "kind": "U", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-zh-tw/chapters/050-component-slot-outlet.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/050-component-slot-outlet.jsonc new file mode 100644 index 0000000..1cb228f --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/050-component-slot-outlet.jsonc @@ -0,0 +1,70 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "component-slot-outlet", + "title": "支援插槽(定義)", + "fromDir": "50_basic_template_compiler/060_resolve_components", + "toDir": "50_basic_template_compiler/080_component_slot_outlet", + "docs": "https://book.chibivue.land/zh-tw/50-basic-template-compiler/080-component-slot-outlet", + "changedFiles": [ + { + "path": "examples/playground/src/App.vue", + "kind": "M", + }, + { + "path": "examples/playground/src/Comp.vue", + "kind": "U", + }, + { + "path": "examples/playground/src/components/Counter.vue", + "kind": "D", + }, + { + "path": "examples/playground/src/main.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/ast.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/compile.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/parse.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/runtimeHelpers.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transforms/transformElement.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transforms/transformSlotOutlet.ts", + "kind": "U", + }, + { + "path": "packages/compiler-core/utils.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/componentPublicInstance.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/helpers/renderSlot.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/index.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-zh-tw/chapters/051-component-slot-insert.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/051-component-slot-insert.jsonc new file mode 100644 index 0000000..2339ffc --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/051-component-slot-insert.jsonc @@ -0,0 +1,46 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "component-slot-insert", + "title": "支援插槽(使用)", + "fromDir": "50_basic_template_compiler/080_component_slot_outlet", + "toDir": "50_basic_template_compiler/085_component_slot_insert", + "docs": "https://book.chibivue.land/zh-tw/50-basic-template-compiler/085-component-slot-insert", + "changedFiles": [ + { + "path": "packages/compiler-core/ast.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/parse.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/runtimeHelpers.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transforms/transformElement.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transforms/vSlot.ts", + "kind": "U", + }, + { + "path": "packages/compiler-core/utils.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/componentRenderContext.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/index.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-zh-tw/chapters/052-other-directives.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/052-other-directives.jsonc new file mode 100644 index 0000000..cbc0b51 --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/052-other-directives.jsonc @@ -0,0 +1,66 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "other-directives", + "title": "其他指令", + "fromDir": "50_basic_template_compiler/085_component_slot_insert", + "toDir": "50_basic_template_compiler/090_other_directives", + "docs": "https://book.chibivue.land/zh-tw/50-basic-template-compiler/090-other-directives", + "changedFiles": [ + { + "path": "examples/playground/src/App.vue", + "kind": "M", + }, + { + "path": "examples/playground/src/Comp.vue", + "kind": "D", + }, + { + "path": "packages/compiler-core/ast.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/parse.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/runtimeHelpers.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transforms/transformElement.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transforms/vSlot.ts", + "kind": "D", + }, + { + "path": "packages/compiler-core/utils.ts", + "kind": "M", + }, + { + "path": "packages/compiler-dom/index.ts", + "kind": "M", + }, + { + "path": "packages/compiler-dom/transforms/vHtml.ts", + "kind": "U", + }, + { + "path": "packages/compiler-dom/transforms/vText.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/componentRenderContext.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/index.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-zh-tw/chapters/053-chore-compiler.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/053-chore-compiler.jsonc new file mode 100644 index 0000000..a1ba885 --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/053-chore-compiler.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "chore-compiler", + "title": "編譯器細節最佳化", + "fromDir": "50_basic_template_compiler/090_other_directives", + "toDir": "50_basic_template_compiler/100_chore_compiler", + "docs": "https://book.chibivue.land/zh-tw/50-basic-template-compiler/100-chore-compiler", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-zh-tw/chapters/054-parser-optimization.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/054-parser-optimization.jsonc new file mode 100644 index 0000000..0d06955 --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/054-parser-optimization.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "parser-optimization", + "title": "解析器最佳化", + "fromDir": "50_basic_template_compiler/100_chore_compiler", + "toDir": "50_basic_template_compiler/100_chore_compiler", + "docs": "https://book.chibivue.land/zh-tw/50-basic-template-compiler/110-parser-optimization", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-zh-tw/chapters/055-custom-directive.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/055-custom-directive.jsonc new file mode 100644 index 0000000..b1446ac --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/055-custom-directive.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "custom-directive", + "title": "自訂指令", + "fromDir": "50_basic_template_compiler/100_chore_compiler", + "toDir": "50_basic_template_compiler/100_chore_compiler", + "docs": "https://book.chibivue.land/zh-tw/50-basic-template-compiler/500-custom-directive", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-zh-tw/chapters/056-script-setup.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/056-script-setup.jsonc new file mode 100644 index 0000000..e14ff83 --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/056-script-setup.jsonc @@ -0,0 +1,34 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "script-setup", + "title": "支援 script setup", + "fromDir": "50_basic_template_compiler/100_chore_compiler", + "toDir": "60_basic_sfc_compiler/010_script_setup", + "docs": "https://book.chibivue.land/zh-tw/60-basic-sfc-compiler/010-script-setup", + "changedFiles": [ + { + "path": "packages/compiler-core/parse.ts", + "kind": "M", + }, + { + "path": "packages/compiler-sfc/compileScript.ts", + "kind": "U", + }, + { + "path": "packages/compiler-sfc/compileSfc.ts", + "kind": "U", + }, + { + "path": "packages/compiler-sfc/index.ts", + "kind": "M", + }, + { + "path": "packages/compiler-sfc/parse.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-zh-tw/chapters/057-define-props.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/057-define-props.jsonc new file mode 100644 index 0000000..b14843a --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/057-define-props.jsonc @@ -0,0 +1,42 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "define-props", + "title": "支援 defineProps", + "fromDir": "60_basic_sfc_compiler/010_script_setup", + "toDir": "60_basic_sfc_compiler/020_define_props", + "docs": "https://book.chibivue.land/zh-tw/60-basic-sfc-compiler/020-define-props", + "changedFiles": [ + { + "path": "examples/playground/src/App.vue", + "kind": "M", + }, + { + "path": "examples/playground/src/Child.vue", + "kind": "U", + }, + { + "path": "packages/compiler-sfc/compileScript.ts", + "kind": "M", + }, + { + "path": "packages/compiler-sfc/compileSfc.ts", + "kind": "M", + }, + { + "path": "packages/compiler-sfc/compileStyle.ts", + "kind": "U", + }, + { + "path": "packages/compiler-sfc/index.ts", + "kind": "M", + }, + { + "path": "packages/compiler-sfc/parse.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-zh-tw/chapters/058-define-emits.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/058-define-emits.jsonc new file mode 100644 index 0000000..cdf68b7 --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/058-define-emits.jsonc @@ -0,0 +1,26 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "define-emits", + "title": "支援 defineEmits", + "fromDir": "60_basic_sfc_compiler/020_define_props", + "toDir": "60_basic_sfc_compiler/030_define_emits", + "docs": "https://book.chibivue.land/zh-tw/60-basic-sfc-compiler/030-define-emits", + "changedFiles": [ + { + "path": "examples/playground/src/App.vue", + "kind": "M", + }, + { + "path": "examples/playground/src/Child.vue", + "kind": "M", + }, + { + "path": "packages/compiler-sfc/compileScript.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-zh-tw/chapters/059-scoped-css.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/059-scoped-css.jsonc new file mode 100644 index 0000000..af629d4 --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/059-scoped-css.jsonc @@ -0,0 +1,26 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "scoped-css", + "title": "支援作用域 CSS", + "fromDir": "60_basic_sfc_compiler/030_define_emits", + "toDir": "60_basic_sfc_compiler/040_scoped_css", + "docs": "https://book.chibivue.land/zh-tw/60-basic-sfc-compiler/040-scoped-css", + "changedFiles": [ + { + "path": "examples/playground/src/App.vue", + "kind": "M", + }, + { + "path": "examples/playground/src/Child.vue", + "kind": "M", + }, + { + "path": "packages/compiler-sfc/compileStyle.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-zh-tw/chapters/060-props-destructure.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/060-props-destructure.jsonc new file mode 100644 index 0000000..bb864c1 --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/060-props-destructure.jsonc @@ -0,0 +1,22 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "props-destructure", + "title": "支援 Props 解構", + "fromDir": "60_basic_sfc_compiler/040_scoped_css", + "toDir": "60_basic_sfc_compiler/050_props_destructure", + "docs": "https://book.chibivue.land/zh-tw/60-basic-sfc-compiler/050-props-destructure", + "changedFiles": [ + { + "path": "examples/playground/src/App.vue", + "kind": "M", + }, + { + "path": "examples/playground/src/Child.vue", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-zh-tw/chapters/061-type-based-macros.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/061-type-based-macros.jsonc new file mode 100644 index 0000000..170ddfd --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/061-type-based-macros.jsonc @@ -0,0 +1,26 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "type-based-macros", + "title": "基於型別的 defineProps/defineEmits", + "fromDir": "60_basic_sfc_compiler/050_props_destructure", + "toDir": "60_basic_sfc_compiler/060_type_based_macros", + "docs": "https://book.chibivue.land/zh-tw/60-basic-sfc-compiler/060-type-based-macros", + "changedFiles": [ + { + "path": "examples/playground/src/App.vue", + "kind": "M", + }, + { + "path": "examples/playground/src/Child.vue", + "kind": "M", + }, + { + "path": "packages/compiler-sfc/compileScript.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-zh-tw/chapters/062-router.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/062-router.jsonc new file mode 100644 index 0000000..b6bf99d --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/062-router.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "router", + "title": "路由器", + "fromDir": "60_basic_sfc_compiler/060_type_based_macros", + "toDir": "60_basic_sfc_compiler/060_type_based_macros", + "docs": "https://book.chibivue.land/zh-tw/90-web-application-essentials/010-plugins/010-router", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-zh-tw/chapters/063-preprocessors.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/063-preprocessors.jsonc new file mode 100644 index 0000000..f0cb30c --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/063-preprocessors.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "preprocessors", + "title": "CSS 預處理器", + "fromDir": "60_basic_sfc_compiler/060_type_based_macros", + "toDir": "60_basic_sfc_compiler/060_type_based_macros", + "docs": "https://book.chibivue.land/zh-tw/90-web-application-essentials/010-plugins/020-preprocessors", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-zh-tw/chapters/064-store.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/064-store.jsonc new file mode 100644 index 0000000..c628740 --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/064-store.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "store", + "title": "狀態管理", + "fromDir": "60_basic_sfc_compiler/060_type_based_macros", + "toDir": "60_basic_sfc_compiler/060_type_based_macros", + "docs": "https://book.chibivue.land/zh-tw/90-web-application-essentials/010-plugins/020-store", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-zh-tw/chapters/065-data-fetch.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/065-data-fetch.jsonc new file mode 100644 index 0000000..101c0db --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/065-data-fetch.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "data-fetch", + "title": "資料擷取", + "fromDir": "60_basic_sfc_compiler/060_type_based_macros", + "toDir": "60_basic_sfc_compiler/060_type_based_macros", + "docs": "https://book.chibivue.land/zh-tw/90-web-application-essentials/010-plugins/030-data-fetch", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-zh-tw/chapters/066-language-tools.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/066-language-tools.jsonc new file mode 100644 index 0000000..c453527 --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/066-language-tools.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "language-tools", + "title": "Language Tools", + "fromDir": "60_basic_sfc_compiler/060_type_based_macros", + "toDir": "60_basic_sfc_compiler/060_type_based_macros", + "docs": "https://book.chibivue.land/zh-tw/90-web-application-essentials/010-plugins/040-language-tools", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-zh-tw/chapters/067-create-ssr-app.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/067-create-ssr-app.jsonc new file mode 100644 index 0000000..c6ed819 --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/067-create-ssr-app.jsonc @@ -0,0 +1,110 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "create-ssr-app", + "title": "renderToString", + "fromDir": "60_basic_sfc_compiler/060_type_based_macros", + "toDir": "90_web_application_essentials/010_ssr", + "docs": "https://book.chibivue.land/zh-tw/90-web-application-essentials/020-ssr/010-create-ssr-app", + "changedFiles": [ + { + "path": "examples/playground/src/App.vue", + "kind": "M", + }, + { + "path": "examples/playground/src/Child.vue", + "kind": "D", + }, + { + "path": "packages/compiler-core/parse.ts", + "kind": "M", + }, + { + "path": "packages/compiler-sfc/compileScript.ts", + "kind": "D", + }, + { + "path": "packages/compiler-sfc/compileSfc.ts", + "kind": "D", + }, + { + "path": "packages/compiler-sfc/compileStyle.ts", + "kind": "D", + }, + { + "path": "packages/compiler-sfc/index.ts", + "kind": "M", + }, + { + "path": "packages/compiler-sfc/parse.ts", + "kind": "M", + }, + { + "path": "packages/index.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/apiCreateApp.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/component.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/hydration.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/index.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/vnode.ts", + "kind": "M", + }, + { + "path": "packages/runtime-dom/index.ts", + "kind": "M", + }, + { + "path": "packages/server-renderer/helpers/ssrInterpolate.ts", + "kind": "U", + }, + { + "path": "packages/server-renderer/helpers/ssrRenderAttrs.ts", + "kind": "U", + }, + { + "path": "packages/server-renderer/helpers/ssrRenderList.ts", + "kind": "U", + }, + { + "path": "packages/server-renderer/helpers/ssrUtils.ts", + "kind": "U", + }, + { + "path": "packages/server-renderer/index.ts", + "kind": "U", + }, + { + "path": "packages/server-renderer/render.ts", + "kind": "U", + }, + { + "path": "packages/server-renderer/renderToString.ts", + "kind": "U", + }, + { + "path": "packages/shared/general.ts", + "kind": "M", + }, + { + "path": "packages/shared/index.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-zh-tw/chapters/068-hydration.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/068-hydration.jsonc new file mode 100644 index 0000000..a2bff13 --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/068-hydration.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "hydration", + "title": "Hydration(水合)", + "fromDir": "90_web_application_essentials/010_ssr", + "toDir": "90_web_application_essentials/010_ssr", + "docs": "https://book.chibivue.land/zh-tw/90-web-application-essentials/020-ssr/020-hydration", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-zh-tw/chapters/069-compiler-ssr.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/069-compiler-ssr.jsonc new file mode 100644 index 0000000..7358865 --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/069-compiler-ssr.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "compiler-ssr", + "title": "Compiler SSR", + "fromDir": "90_web_application_essentials/010_ssr", + "toDir": "90_web_application_essentials/010_ssr", + "docs": "https://book.chibivue.land/zh-tw/90-web-application-essentials/020-ssr/030-compiler-ssr", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-zh-tw/chapters/070-keep-alive.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/070-keep-alive.jsonc new file mode 100644 index 0000000..9244723 --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/070-keep-alive.jsonc @@ -0,0 +1,58 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "keep-alive", + "title": "KeepAlive", + "fromDir": "90_web_application_essentials/010_ssr", + "toDir": "90_web_application_essentials/020_keep_alive", + "docs": "https://book.chibivue.land/zh-tw/90-web-application-essentials/030-builtins/010-keep-alive", + "changedFiles": [ + { + "path": "examples/playground/src/App.vue", + "kind": "M", + }, + { + "path": "examples/playground/src/Counter.vue", + "kind": "U", + }, + { + "path": "packages/runtime-core/apiLifecycle.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/component.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/components/KeepAlive.ts", + "kind": "U", + }, + { + "path": "packages/runtime-core/hydration.ts", + "kind": "D", + }, + { + "path": "packages/runtime-core/index.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/renderer.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/vnode.ts", + "kind": "M", + }, + { + "path": "packages/runtime-dom/index.ts", + "kind": "M", + }, + { + "path": "packages/shared/shapeFlags.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-zh-tw/chapters/071-transition.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/071-transition.jsonc new file mode 100644 index 0000000..c6a9c33 --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/071-transition.jsonc @@ -0,0 +1,34 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "transition", + "title": "Transition", + "fromDir": "90_web_application_essentials/020_keep_alive", + "toDir": "90_web_application_essentials/030_transition", + "docs": "https://book.chibivue.land/zh-tw/90-web-application-essentials/030-builtins/030-transition", + "changedFiles": [ + { + "path": "examples/playground/src/App.vue", + "kind": "M", + }, + { + "path": "examples/playground/src/Counter.vue", + "kind": "D", + }, + { + "path": "packages/runtime-core/vnode.ts", + "kind": "M", + }, + { + "path": "packages/runtime-dom/components/Transition.ts", + "kind": "U", + }, + { + "path": "packages/runtime-dom/index.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-zh-tw/chapters/072-static-hoisting.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/072-static-hoisting.jsonc new file mode 100644 index 0000000..c655705 --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/072-static-hoisting.jsonc @@ -0,0 +1,34 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "static-hoisting", + "title": "靜態提升", + "fromDir": "90_web_application_essentials/030_transition", + "toDir": "90_web_application_essentials/040_static_hoisting", + "docs": "https://book.chibivue.land/zh-tw/90-web-application-essentials/040-optimizations/010-static-hoisting", + "changedFiles": [ + { + "path": "examples/playground/src/App.vue", + "kind": "M", + }, + { + "path": "packages/compiler-core/ast.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/codegen.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/options.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/transform.ts", + "kind": "M", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-zh-tw/chapters/073-patch-flags.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/073-patch-flags.jsonc new file mode 100644 index 0000000..67fa4b7 --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/073-patch-flags.jsonc @@ -0,0 +1,38 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "patch-flags", + "title": "補丁標誌", + "fromDir": "90_web_application_essentials/040_static_hoisting", + "toDir": "90_web_application_essentials/050_patch_flags", + "docs": "https://book.chibivue.land/zh-tw/90-web-application-essentials/040-optimizations/020-patch-flags", + "changedFiles": [ + { + "path": "examples/playground/src/App.vue", + "kind": "M", + }, + { + "path": "packages/compiler-core/ast.ts", + "kind": "M", + }, + { + "path": "packages/compiler-core/codegen.ts", + "kind": "M", + }, + { + "path": "packages/runtime-core/vnode.ts", + "kind": "M", + }, + { + "path": "packages/shared/index.ts", + "kind": "M", + }, + { + "path": "packages/shared/patchFlags.ts", + "kind": "U", + }, + { + "path": "tests/e2e.spec.ts", + "kind": "M", + }, + ], +} diff --git a/packages/courses-config/chibivue-zh-tw/chapters/074-tree-flattening.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/074-tree-flattening.jsonc new file mode 100644 index 0000000..fd6124b --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/074-tree-flattening.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "tree-flattening", + "title": "樹扁平化", + "fromDir": "90_web_application_essentials/050_patch_flags", + "toDir": "90_web_application_essentials/050_patch_flags", + "docs": "https://book.chibivue.land/zh-tw/90-web-application-essentials/040-optimizations/030-tree-flattening", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-zh-tw/chapters/075-introduction.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/075-introduction.jsonc new file mode 100644 index 0000000..6ce7d3f --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/075-introduction.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "introduction", + "title": "Vapor 模式", + "fromDir": "90_web_application_essentials/050_patch_flags", + "toDir": "90_web_application_essentials/050_patch_flags", + "docs": "https://book.chibivue.land/zh-tw/90-web-application-essentials/050-vapor/010-introduction", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-zh-tw/chapters/076-vapor-compiler.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/076-vapor-compiler.jsonc new file mode 100644 index 0000000..40f3c57 --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/076-vapor-compiler.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "vapor-compiler", + "title": "Vapor 編譯器", + "fromDir": "90_web_application_essentials/050_patch_flags", + "toDir": "90_web_application_essentials/050_patch_flags", + "docs": "https://book.chibivue.land/zh-tw/90-web-application-essentials/050-vapor/020-vapor-compiler", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-zh-tw/chapters/077-vapor-ssr.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/077-vapor-ssr.jsonc new file mode 100644 index 0000000..d155355 --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/077-vapor-ssr.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "vapor-ssr", + "title": "Vapor SSR", + "fromDir": "90_web_application_essentials/050_patch_flags", + "toDir": "90_web_application_essentials/050_patch_flags", + "docs": "https://book.chibivue.land/zh-tw/90-web-application-essentials/050-vapor/030-vapor-ssr", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-zh-tw/chapters/078-hot-paths.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/078-hot-paths.jsonc new file mode 100644 index 0000000..9bc0ae3 --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/078-hot-paths.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "hot-paths", + "title": "路線概覽", + "fromDir": "90_web_application_essentials/050_patch_flags", + "toDir": "90_web_application_essentials/050_patch_flags", + "docs": "https://book.chibivue.land/zh-tw/bonus/hot-paths", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-zh-tw/chapters/079-beginner-30-min-hands-on.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/079-beginner-30-min-hands-on.jsonc new file mode 100644 index 0000000..3759c1b --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/079-beginner-30-min-hands-on.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "beginner-30-min-hands-on", + "title": "初學者 30 分鐘動手實作", + "fromDir": "90_web_application_essentials/050_patch_flags", + "toDir": "90_web_application_essentials/050_patch_flags", + "docs": "https://book.chibivue.land/zh-tw/bonus/hot-paths/beginner-30-min-hands-on", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-zh-tw/chapters/080-beginner-60-min-hands-on.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/080-beginner-60-min-hands-on.jsonc new file mode 100644 index 0000000..68b1684 --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/080-beginner-60-min-hands-on.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "beginner-60-min-hands-on", + "title": "初學者 60 分鐘動手實作", + "fromDir": "90_web_application_essentials/050_patch_flags", + "toDir": "90_web_application_essentials/050_patch_flags", + "docs": "https://book.chibivue.land/zh-tw/bonus/hot-paths/beginner-60-min-hands-on", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-zh-tw/chapters/081-intermediate-60-min-hands-on.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/081-intermediate-60-min-hands-on.jsonc new file mode 100644 index 0000000..4d9ae29 --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/081-intermediate-60-min-hands-on.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "intermediate-60-min-hands-on", + "title": "進階 60 分鐘動手實作", + "fromDir": "90_web_application_essentials/050_patch_flags", + "toDir": "90_web_application_essentials/050_patch_flags", + "docs": "https://book.chibivue.land/zh-tw/bonus/hot-paths/intermediate-60-min-hands-on", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-zh-tw/chapters/082-advanced-30-min-summary.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/082-advanced-30-min-summary.jsonc new file mode 100644 index 0000000..b85fe66 --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/082-advanced-30-min-summary.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "advanced-30-min-summary", + "title": "高階 30 分鐘概要", + "fromDir": "90_web_application_essentials/050_patch_flags", + "toDir": "90_web_application_essentials/050_patch_flags", + "docs": "https://book.chibivue.land/zh-tw/bonus/hot-paths/advanced-30-min-summary", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-zh-tw/chapters/083-hyper-ultimate-super-extreme-minimal-vue.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/083-hyper-ultimate-super-extreme-minimal-vue.jsonc new file mode 100644 index 0000000..dda44f9 --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/083-hyper-ultimate-super-extreme-minimal-vue.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "hyper-ultimate-super-extreme-minimal-vue", + "title": "chibivue,不是很小嗎...?", + "fromDir": "90_web_application_essentials/050_patch_flags", + "toDir": "90_web_application_essentials/050_patch_flags", + "docs": "https://book.chibivue.land/zh-tw/bonus/hyper-ultimate-super-extreme-minimal-vue", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-zh-tw/chapters/084-15-min-impl.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/084-15-min-impl.jsonc new file mode 100644 index 0000000..6197203 --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/084-15-min-impl.jsonc @@ -0,0 +1,54 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "15-min-impl", + "title": "實作", + "fromDir": "", + "toDir": "bonus/hyper-ultimate-super-extreme-minimal-vue", + "docs": "https://book.chibivue.land/zh-tw/bonus/hyper-ultimate-super-extreme-minimal-vue/15-min-impl", + "changedFiles": [ + { + "path": "examples/playground/index.html", + "kind": "U", + }, + { + "path": "examples/playground/package.json", + "kind": "U", + }, + { + "path": "examples/playground/src/App.vue", + "kind": "U", + }, + { + "path": "examples/playground/src/main.ts", + "kind": "U", + }, + { + "path": "examples/playground/tsconfig.json", + "kind": "U", + }, + { + "path": "examples/playground/vite.config.ts", + "kind": "U", + }, + { + "path": "package.json", + "kind": "U", + }, + { + "path": "packages/index.ts", + "kind": "U", + }, + { + "path": "pnpm-workspace.yaml", + "kind": "U", + }, + { + "path": "tsconfig.json", + "kind": "U", + }, + { + "path": "vite.config.ts", + "kind": "U", + }, + ], +} diff --git a/packages/courses-config/chibivue-zh-tw/chapters/085-debug-vuejs-core.jsonc b/packages/courses-config/chibivue-zh-tw/chapters/085-debug-vuejs-core.jsonc new file mode 100644 index 0000000..a0e1ae7 --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/chapters/085-debug-vuejs-core.jsonc @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/chapter", + "id": "debug-vuejs-core", + "title": "除錯 Vue.js 原始碼", + "fromDir": "bonus/hyper-ultimate-super-extreme-minimal-vue", + "toDir": "bonus/hyper-ultimate-super-extreme-minimal-vue", + "docs": "https://book.chibivue.land/zh-tw/bonus/debug-vuejs-core", + "changedFiles": [], +} diff --git a/packages/courses-config/chibivue-zh-tw/course.jsonc b/packages/courses-config/chibivue-zh-tw/course.jsonc new file mode 100644 index 0000000..4c0ab80 --- /dev/null +++ b/packages/courses-config/chibivue-zh-tw/course.jsonc @@ -0,0 +1,10 @@ +{ + "$schema": "https://raw.githubusercontent.com/RJiazhen/learn-by-diff/refs/heads/main/packages/protocol/schema.json#/$defs/course", + "id": "chibivue-zh-tw", + "title": "chibivue 繁體中文課程", + "description": "對照 chibivue 線上書,從 createApp 逐步實作 Vue.js。源碼來自 chibivue 的 book/impls。", + "source": { + "repository": "https://github.com/chibivue-land/chibivue", + "root": "book/impls", + }, +} diff --git a/packages/courses-config/courses.jsonc b/packages/courses-config/courses.jsonc index e9b3748..5e4ad74 100644 --- a/packages/courses-config/courses.jsonc +++ b/packages/courses-config/courses.jsonc @@ -9,6 +9,21 @@ "title": "chibivue 中文课程", "path": "chibivue-zh-cn", }, + { + "id": "chibivue-zh-tw", + "title": "chibivue 繁體中文課程", + "path": "chibivue-zh-tw", + }, + { + "id": "chibivue-ja", + "title": "chibivue 日本語コース", + "path": "chibivue-ja", + }, + { + "id": "chibivue-en", + "title": "chibivue", + "path": "chibivue-en", + }, { "id": "demo-course", "title": "Cursor particles",