Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 8 additions & 19 deletions .github/workflows/ja.yaml
Original file line number Diff line number Diff line change
@@ -1,29 +1,18 @@
name: Lint
name: textlint

on: [push]

defaults:
run:
shell: bash

jobs:
textlint:

runs-on: ubuntu-latest

strategy:
matrix:
node-version: [12.x]

steps:
- uses: actions/checkout@v1
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
- name: Lint
run: |
yarn
yarn lint
env:
CI: true
node-version: '14'
- name: Install deps
run: yarn
- name: Run textlint
run: yarn lint
1 change: 1 addition & 0 deletions .node-version
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
v14.17.1
16 changes: 16 additions & 0 deletions .textlintrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"rules": {
"preset-vuejs-jp": {
"no-mix-dearu-desumasu": {
"strict": false
}
}
},
"filters": {
"allowlist": {
"allow": [
"->"
]
}
}
}
12 changes: 4 additions & 8 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,21 +3,17 @@
"@vuepress/plugin-pwa": "^1.5.4",
"sass": "^1.32.0",
"sass-loader": "^8.0.2",
"shelljs": "^0.8.4",
"textlint": "^11.7.6",
"textlint-checker-for-vuejs-jp-docs": "git+https://github.com/vuejs-jp/textlint-checker-for-vuejs-jp-docs.git",
"textlint-plugin-jtf-style": "^1.0.1",
"textlint-rule-detect-bad-chars": "^1.0.2",
"textlint-rule-no-mix-dearu-desumasu": "^4.0.1",
"textlint": "^12.0.0",
"textlint-filter-rule-allowlist": "^2.0.1",
"textlint-rule-preset-vuejs-jp": "git+https://github.com/vuejs-jp/textlint-rule-preset-vuejs-jp.git",
"vuepress": "^1.5.4"
},
"scripts": {
"dev": "yarn serve",
"serve": "vuepress dev src",
"build": "vuepress build src",
"test": "npm run lint",
"lint": "node -e \"var shell=require('shelljs');var files=shell.find(['./src/**/*.md']).filter(function(file){return !file.endsWith('/guide/team.md')}).join(' ');if(shell.exec('textlint --rulesdir ./node_modules/textlint-checker-for-vuejs-jp-docs/rules/textlint-rule-vue-jp-docs -f pretty-error '+files).code!==0){shell.exit(1)};\"",
"lint:single": "textlint --rulesdir ./node_modules/textlint-checker-for-vuejs-jp-docs/rules/textlint-rule-vue-jp-docs -f pretty-error"
"lint": "textlint --format pretty-error src/**"
},
"dependencies": {
"@docsearch/css": "^1.0.0-alpha.27",
Expand Down
24 changes: 0 additions & 24 deletions src/.textlintrc

This file was deleted.

4 changes: 2 additions & 2 deletions src/api/application-api.md
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@ const myDirective = app.directive('my-directive')
このオブジェクトは、以下のプロパティを持ちます。

- `instance`: ディレクティブが使われているコンポーネントのインスタンス。
- `value`: ディレクティブの値。例えば `v-my-directive="1 + 1"` の場合、 value は `2`となります。
- `value`: ディレクティブの値。例えば `v-my-directive="1 + 1"` の場合、 value は `2` となります。
- `oldValue`: 以前の値であり、 `beforeUpdate` および `updated` でのみ利用できます。値が変更されているかを判別できます。
- `arg`: 引数がある場合はそれを含むオブジェクト。例えば `v-my-directive:foo` の場合、 arg は `"foo"` となります。
- `modifiers`: 修飾子がある場合はそれを含むオブジェクト。例えば `v-my-directive.foo.bar` の場合、 modifiers オブジェクトは `{ foo: true, bar: true }` となります。
Expand Down Expand Up @@ -299,7 +299,7 @@ setTimeout(() => app.unmount(), 5000)

Vue.js プラグインをインストールします。プラグインが Object の場合は `install` メソッドが必要となります。関数の場合は、それ自体をインストールメソッドとして適用します。

インストールメソッドはアプリケーションを第一引数に受け取って実行されます。`use` に渡されたあらゆるy `options` は、第二引数以降に渡されます。
インストールメソッドはアプリケーションを第一引数に受け取って実行されます。`use` に渡されたあらゆる y `options` は、第二引数以降に渡されます。

同じプラグインに対してこのメソッドが複数回呼び出された場合、プラグインは一度だけインストールされます。

Expand Down
2 changes: 1 addition & 1 deletion src/cookbook/editable-svg-icons.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ export default {
}
```

塗りつぶし色のデフォルト `currentColor` プロパティは、アイコンの周囲のテキスト色を継承します。必要なら、別の色をプロパティとして渡すこともできます。
塗りつぶし色のデフォルト `currentColor` プロパティは、アイコンの周囲のテキスト色を継承します。必要なら、別の色をプロパティとして渡すこともできます。

アイコンのパスを内包する `IconWrite.vue` だけを内容にすると、このように使えます:

Expand Down
8 changes: 4 additions & 4 deletions src/cookbook/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@

- 特定の一般的な問題を解決しましょう。
- できるだけシンプルな例から始めましょう。
- 複雑なことは1つずつ紹介しましょう
- 複雑なことは 1 つずつ紹介しましょう
- 概念を再説明するのではなく、他のドキュメントにリンクしましょう。
- その問題に精通していると前提とするのではなく、問題点を説明しましょう。
- 最終的な結果だけではなく、プロセスを説明しましょう。
Expand All @@ -38,8 +38,8 @@

### 基本的な例 <Badge text="必須" type="error" />

1. 問題を1文か2文で明確にしましょう
2. 最も簡単な問題に対しての解答を1文か2文で説明しましょう
1. 問題を 1 文か 2 文で明確にしましょう
2. 最も簡単な問題に対しての解答を 1 文か 2 文で説明しましょう
3. 小さなコードサンプルを表示しましょう。
4. これが何を達成しているのかを文章で説明しましょう。

Expand Down Expand Up @@ -69,7 +69,7 @@

### 代替パターン <Badge text="必須 回避のセクションに付随する" type="warning" />

このセクションは、上記の回避についてのセクションを提供した場合に必要となります。特定の状況で何かがアンチパターンだと言われても、疑問を残さないように、他の方法を模索することが重要です。その際には、ウェブは大きなテントであり、多くの人が異なるコードベースの構造を持ち、異なる目標を解決していることを考慮してください。アプリの規模は大きいのか小さいのか?既存のプロジェクトに Vue を統合しているのか、それともゼロから構築しているのか。ユーザーは1つの目標だけを達成しようとしているのか、それとも多くの目標を達成しようとしているのか?非同期データが多いのか?これらの懸念事項はすべて、代替の実装に影響を与えます。良いクックブックのレシピは、開発者にこのような状況を提供します。
このセクションは、上記の回避についてのセクションを提供した場合に必要となります。特定の状況で何かがアンチパターンだと言われても、疑問を残さないように、他の方法を模索することが重要です。その際には、ウェブは大きなテントであり、多くの人が異なるコードベースの構造を持ち、異なる目標を解決していることを考慮してください。アプリの規模は大きいのか小さいのか?既存のプロジェクトに Vue を統合しているのか、それともゼロから構築しているのか。ユーザーは 1 つの目標だけを達成しようとしているのか、それとも多くの目標を達成しようとしているのか?非同期データが多いのか?これらの懸念事項はすべて、代替の実装に影響を与えます。良いクックブックのレシピは、開発者にこのような状況を提供します。

## 謝辞

Expand Down
2 changes: 1 addition & 1 deletion src/guide/a11y-basics.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ export default {

## コンテンツの構造

アクセシビリティの最も重要な部分の1つは、デザインがアクセシブルな実装をサポートできることを確認することです。デザインは、色のコントラスト、フォントの選択、テキストのサイズ、言語だけでなく、アプリケーション内でのコンテンツの構造も考慮する必要があります。
アクセシビリティの最も重要な部分の 1 つは、デザインがアクセシブルな実装をサポートできることを確認することです。デザインは、色のコントラスト、フォントの選択、テキストのサイズ、言語だけでなく、アプリケーション内でのコンテンツの構造も考慮する必要があります。

### 見出し

Expand Down
4 changes: 2 additions & 2 deletions src/guide/a11y-resources.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,9 @@

## ユーザー

世界保健機関は、世界人口の15%が何らかの障害を持っており、そのうち2~4%が重度の障害を持っていると推定しています。これは全世界で推定10億人の人々であり、障害者は世界最大のマイノリティグループとなっています。
世界保健機関は、世界人口の 15%が何らかの障害を持っており、そのうち 2~4%が重度の障害を持っていると推定しています。これは全世界で推定 10 億人の人々であり、障害者は世界最大のマイノリティグループとなっています。

障害の種類は多岐にわたりますが、大きく分けて4つのカテゴリーに分けられます:
障害の種類は多岐にわたりますが、大きく分けて 4 つのカテゴリーに分けられます:

- _[視覚](https://webaim.org/articles/visual/)_ - このようなユーザーは、スクリーンリーダー、スクリーン拡大、スクリーンコントラストの制御、または点字表示を使用することで恩恵を受けることができます。
- _[聴覚](https://webaim.org/articles/auditory/)_ - このようなユーザーは、キャプション、トランスクリプト、手話ビデオの恩恵を受けることができます。
Expand Down
2 changes: 1 addition & 1 deletion src/guide/a11y-semantics.md
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,7 @@ Chrome DevTools で検出することで Description を確認することがで

多くのユーザが混乱する可能性があるため、プレースホルダの使用は避けてください。

プレースホルダによる問題の1つは初期状態で [color contrast criteria](https://www.w3.org/WAI/WCAG21/Understanding/contrast-minimum.html) を満たしていないことです。色のコントラストを修正するとプレースホルダが入力欄に事前入力されたデータのように見えます。以下の例を見ると、color contrast criteria を満たしている Last Name プレースホルダが事前入力されたデータのように見えることが確認できます:
プレースホルダによる問題の 1 つは初期状態で [color contrast criteria](https://www.w3.org/WAI/WCAG21/Understanding/contrast-minimum.html) を満たしていないことです。色のコントラストを修正するとプレースホルダが入力欄に事前入力されたデータのように見えます。以下の例を見ると、color contrast criteria を満たしている Last Name プレースホルダが事前入力されたデータのように見えることが確認できます:

<common-codepen-snippet title="Form Placeholder" slug="ExZvvMw" :height="265" tab="js,result" theme="light" :preview="false" :editable="false" />

Expand Down
2 changes: 1 addition & 1 deletion src/guide/change-detection.md
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ vm.message = 'Hello!'

data オプションで `message` を宣言していないと、Vue は render 関数が存在しないプロパティにアクセスしようとしていることを警告します。

この制限の背後には技術的な理由があります。それは依存性追跡システムにおける一連のエッジケースを排除し、また コンポーネントインスタンスと型チェックシステムとの親和性を高めます。しかしコードの保守性の観点からも重要な事項があります: `data` オブジェクトはコンポーネントの状態のスキーマのようなものです。前もって全てのリアクティブなプロパティを宣言しておくと、後から見直したり別の開発者が読んだりしたときにコンポーネントのコードを簡単に理解することができます。
この制限の背後には技術的な理由があります。それは依存性追跡システムにおける一連のエッジケースを排除し、またコンポーネントインスタンスと型チェックシステムとの親和性を高めます。しかしコードの保守性の観点からも重要な事項があります: `data` オブジェクトはコンポーネントの状態のスキーマのようなものです。前もって全てのリアクティブなプロパティを宣言しておくと、後から見直したり別の開発者が読んだりしたときにコンポーネントのコードを簡単に理解することができます。

## 非同期更新キュー

Expand Down
4 changes: 2 additions & 2 deletions src/guide/component-attrs.md
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ const app = Vue.createApp({

`inheritAttrs` を `false` にセットした場合属性の継承は無効化されますが、`inheritAttrs` の設定に関わらずコンポーネントの `$attrs` プロパティを使って、`props` や `emits` といったコンポーネントのプロパティを除く全ての属性(例えば `class` や `style` 、`v-on` といったものも)を他の要素の属性への適用することを制御できます。

[前節](#属性の継承) で利用した date-picker のコンポーネント例を用いて、プロパティでない属性の全てを ルートの `div` 要素ではなく `input` 要素に適用する場合、`v-bind` を用いて簡略的に記述することも可能です。
[前節](#属性の継承) で利用した date-picker のコンポーネント例を用いて、プロパティでない属性の全てをルートの `div` 要素ではなく `input` 要素に適用する場合、`v-bind` を用いて簡略的に記述することも可能です。

```js{5}
app.component('date-picker', {
Expand All @@ -111,7 +111,7 @@ app.component('date-picker', {

## ルート要素が複数の場合の属性の継承

コンポーネントのルート要素が一つでなく複数のルート要素からなる場合には、暗黙の属性の継承は行われません。`$attrs` を用いた明示的なアサインを行わない場合、ランタイム上で warning が発行されます。
コンポーネントのルート要素が 1 つでなく複数のルート要素からなる場合には、暗黙の属性の継承は行われません。`$attrs` を用いた明示的なアサインを行わない場合、ランタイム上で warning が発行されます。

```html
<custom-layout id="custom-layout" @click="changeValue"></custom-layout>
Expand Down
8 changes: 4 additions & 4 deletions src/guide/component-basics.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,10 @@ app.component('button-counter', {
```

::: info
ここでは単純な例を示していますが, 典型的な Vue アプリケーションでは文字列テンプレートではなく単一ファイルコンポーネントを使用します。 詳しくは[こちら](single-file-component.html)で解説しています。
ここでは単純な例を示していますが典型的な Vue アプリケーションでは文字列テンプレートではなく単一ファイルコンポーネントを使用します。詳しくは[こちら](single-file-component.html)で解説しています。
:::

コンポーネントは名前付きの再利用可能なインスタンスです。この例の場合は`<button-counter>`です。このコンポーネントをルートインスタンスの中でカスタム要素として使用することができます。
コンポーネントは名前付きの再利用可能なインスタンスです。この例の場合は `<button-counter>` です。このコンポーネントをルートインスタンスの中でカスタム要素として使用することができます。

```html
<div id="components-demo">
Expand Down Expand Up @@ -325,7 +325,7 @@ app.component('custom-input', {
<custom-input v-model="searchText"></custom-input>
```

このコンポーネント内で `v-model` を実装するもう一つの方法は `computed` プロパティの機能を使ってゲッターとセッターを定義することです。 `get` メソッドは `modelValue` プロパティを返して、 `set` メソッドは対応するイベントを発行する必要があります。
このコンポーネント内で `v-model` を実装するもう 1 つの方法は `computed` プロパティの機能を使ってゲッターとセッターを定義することです。 `get` メソッドは `modelValue` プロパティを返して、 `set` メソッドは対応するイベントを発行する必要があります。

```js
app.component('custom-input', {
Expand Down Expand Up @@ -462,6 +462,6 @@ app.component('blog-post', {
- [単一ファイル (`.vue`) コンポーネント](single-file-component.html)
- `<script type="text/x-template">`

とりあえず DOM テンプレートパース時の警告についてはこれで以上です。そして実は、Vue の _本質_ の最後となります。おめでとうございます! まだまだ学ぶべきことはありますが、まずは一休みして自分で Vue を実際に使って楽しいものを作ってみることをお勧めします。
とりあえず DOM テンプレートパース時の警告についてはこれで以上です。そして実は、Vue の _本質_ の最後となります。おめでとうございますまだまだ学ぶべきことはありますが、まずは一休みして自分で Vue を実際に使って楽しいものを作ってみることをお勧めします。

理解したばかりの知識に慣れてきたら、サイドバーのコンポーネントの詳細セクションの他のページと同様に、[動的 & 非同期コンポーネント](component-dynamic-async.html)の完全なガイドを読むために戻ってくることをお勧めします。
4 changes: 2 additions & 2 deletions src/guide/component-props.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ props: {
<blog-post title="My journey with Vue"></blog-post>
```

次のような、`v-bind`やそのショートカットである `:` 文字を使って動的に割り当てられたプロパティも見たことがあるでしょう:
次のような、`v-bind` やそのショートカットである `:` 文字を使って動的に割り当てられたプロパティも見たことがあるでしょう:

```html
<!-- 変数の値を動的に割り当てます -->
Expand Down Expand Up @@ -100,7 +100,7 @@ props: {

### オブジェクトのプロパティの受け渡し

オブジェクトのすべてのプロパティをコンポーネントのプロパティ(props)として渡したい場合は、引数なしで `v-bind` を使うことができます (`:prop-name` の代わりに `v-bind`を使用)。例えば、`post` オブジェクトが与えられたとします。
オブジェクトのすべてのプロパティをコンポーネントのプロパティ(props)として渡したい場合は、引数なしで `v-bind` を使うことができます (`:prop-name` の代わりに `v-bind` を使用)。例えば、`post` オブジェクトが与えられたとします。

```js
post: {
Expand Down
Loading