{"_id":"@223n/lint-config-ja","_rev":"7-4a3bafa86e7d054e5a165be3cc91fb0f","name":"@223n/lint-config-ja","dist-tags":{"latest":"3.0.0"},"versions":{"1.0.0":{"name":"@223n/lint-config-ja","version":"1.0.0","keywords":["textlint","textlint-config","markdownlint","markdownlint-config","japanese","lint","documentation"],"author":{"name":"223n"},"license":"Apache-2.0","_id":"@223n/lint-config-ja@1.0.0","maintainers":[{"name":"223n","email":"223n@223n.tech"}],"homepage":"https://github.com/223n/node_japanese_lint_template#readme","bugs":{"url":"https://github.com/223n/node_japanese_lint_template/issues"},"bin":{"lint-vocabulary":"bin/lint-vocabulary.mjs"},"dist":{"shasum":"6fc26e6363e45352537a61977def8394ac5a4174","tarball":"https://registry.npmjs.org/@223n/lint-config-ja/-/lint-config-ja-1.0.0.tgz","fileCount":8,"integrity":"sha512-oefgfoYWPb+/LA+8jsUt5UnnEgqe/uSEhr15bbXxuHuc0otQQEqvf0CTm2d8kLN7wzb6ktJuZTtAYg2FkwvpUQ==","signatures":[{"sig":"MEUCIQCo3aA0r/NPea8a0EgacvpJC1/WiyVgcIJ2KIo0E8wTKAIgVcA9pv2HTySIzJ2zg021KTv/7C93B8jX3PG6sx+Kn18=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":59800},"main":"config/textlint.js","type":"commonjs","engines":{"node":">=22"},"gitHead":"d7cdaa38d974f58b11827ee17c401edb91dd351f","scripts":{"lint":"npm run lint:md && npm run lint:ja","test":"bash test/run.sh","check":"npm run lint && npm test && npm run example","example":"npm --prefix example install --no-audit --no-fund && npm --prefix example run lint","lint:ja":"textlint .","lint:md":"markdownlint-cli2","lint:ja:fix":"textlint --fix .","lint:md:fix":"markdownlint-cli2 --fix"},"_npmUser":{"name":"223n","email":"223n@223n.tech"},"repository":{"url":"git+https://github.com/223n/node_japanese_lint_template.git","type":"git"},"_npmVersion":"12.0.2","description":"日本語の技術文書を検査するための共有設定（textlint / markdownlint）と、禁じた語彙の混入を見る道具。","directories":{},"_nodeVersion":"24.19.0","dependencies":{"textlint-filter-rule-comments":"^1.3.0","textlint-rule-preset-jtf-style":"^3.0.3","textlint-rule-preset-ja-spacing":"^2.4.3","textlint-rule-preset-ja-technical-writing":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"textlint":"^15.8.0","markdownlint-cli2":"^0.23.2"},"peerDependencies":{"textlint":">=14.0.0","markdownlint-cli2":">=0.19.0"},"peerDependenciesMeta":{"textlint":{"optional":true},"markdownlint-cli2":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/lint-config-ja_1.0.0_1788736192891_0.230297590360377","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@223n/lint-config-ja","version":"1.0.1","keywords":["textlint","textlint-config","markdownlint","markdownlint-config","japanese","lint","documentation"],"author":{"name":"223n"},"license":"Apache-2.0","_id":"@223n/lint-config-ja@1.0.1","maintainers":[{"name":"223n","email":"223n@223n.tech"}],"homepage":"https://github.com/223n/node_japanese_lint_template#readme","bugs":{"url":"https://github.com/223n/node_japanese_lint_template/issues"},"bin":{"lint-vocabulary":"bin/lint-vocabulary.mjs"},"dist":{"shasum":"d54ace1889d700390339abe4e38da85e95904a4d","tarball":"https://registry.npmjs.org/@223n/lint-config-ja/-/lint-config-ja-1.0.1.tgz","fileCount":8,"integrity":"sha512-yobD6s7AffWe55LT+FGfukcPnODMbhT0d8t023dqEAlcYpHUYzCZvpp0RPsa7al7rhm2c4zXU6VRv4dj7Spgdw==","signatures":[{"sig":"MEUCIQCzs9Lh3kFHlREv0jDoIe4W7FerQZfLDFBSTcvGj1GAcAIgGTS3qR0KykmSPUmXTtaH9EOwuaxPiWUbvImc1M1pq28=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCIa2J4vNKwBwAyoO7VGceUL4h2Er53Qeodva0jTkSI8QIhAMV9CkzuYNbPUb4wD9M8/LzIYW/WDOQa7mWaM+0Nh4z0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@223n%2flint-config-ja@1.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":62031},"main":"config/textlint.js","type":"commonjs","engines":{"node":">=22"},"gitHead":"8b1ca4c1b89410e64c981a064839d8641b33b258","scripts":{"lint":"npm run lint:md && npm run lint:ja","test":"bash test/run.sh","check":"npm run lint && npm test && npm run example","example":"npm --prefix example install --no-audit --no-fund && npm --prefix example run lint","lint:ja":"textlint .","lint:md":"markdownlint-cli2","lint:ja:fix":"textlint --fix .","lint:md:fix":"markdownlint-cli2 --fix"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f5db8bae-f3f4-4d62-911e-4ae0e9c4b522"}},"repository":{"url":"git+https://github.com/223n/node_japanese_lint_template.git","type":"git"},"_npmVersion":"12.0.2","description":"日本語の技術文書を検査するための共有設定（textlint / markdownlint）と、禁じた語彙の混入を見る道具。","directories":{},"_nodeVersion":"24.20.0","dependencies":{"textlint-filter-rule-comments":"^1.3.0","textlint-rule-preset-jtf-style":"^3.0.3","textlint-rule-preset-ja-spacing":"^2.4.3","textlint-rule-preset-ja-technical-writing":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"textlint":"^15.8.0","markdownlint-cli2":"^0.23.2"},"peerDependencies":{"textlint":">=14.0.0","markdownlint-cli2":">=0.19.0"},"peerDependenciesMeta":{"textlint":{"optional":true},"markdownlint-cli2":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/lint-config-ja_1.0.1_1788744240902_0.8257537786470677","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@223n/lint-config-ja","version":"1.1.0","keywords":["textlint","textlint-config","markdownlint","markdownlint-config","japanese","lint","documentation"],"author":{"name":"223n"},"license":"Apache-2.0","_id":"@223n/lint-config-ja@1.1.0","maintainers":[{"name":"223n","email":"223n@223n.tech"}],"homepage":"https://github.com/223n/node_japanese_lint_template#readme","bugs":{"url":"https://github.com/223n/node_japanese_lint_template/issues"},"bin":{"lint-vocabulary":"bin/lint-vocabulary.mjs"},"dist":{"shasum":"0e71b7e4557445cf57b453dd7dc8b88fbe0f9b66","tarball":"https://registry.npmjs.org/@223n/lint-config-ja/-/lint-config-ja-1.1.0.tgz","fileCount":8,"integrity":"sha512-gq//XXAq1D9o2kn0PV0PeiSkF26BIxk647Wl8PI6cz+K4Vm7Ub85bUm+NatT/AC1xExIvibY3UexIQXNJHA4Kg==","signatures":[{"sig":"MEUCIQDPZ9SBHdm/gFU7m72qAoKk1EuRI33UtNQNi8xCQlVCbwIgGhoWjpYxGVlM+dv/Z3FfpuTkG7GQIVRK98Ik4eMY39o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCG+1ssS4j+mP7vrj44FRUsY0X1SzQimeA0eBI81O6qGAIhAIXF08+AAR/RHa3eG9y+fvBahLklHvjnKC3qn6S1zuRn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@223n%2flint-config-ja@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":62903},"main":"config/textlint.js","type":"commonjs","engines":{"node":">=22"},"gitHead":"c3d77ef5254c651202db205646a2dc9dac76d747","scripts":{"lint":"npm run lint:md && npm run lint:ja","test":"bash test/run.sh","check":"npm run lint && npm test && npm run example","example":"npm --prefix example install --no-audit --no-fund && npm --prefix example run lint","lint:ja":"textlint .","lint:md":"markdownlint-cli2","lint:ja:fix":"textlint --fix .","lint:md:fix":"markdownlint-cli2 --fix"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f5db8bae-f3f4-4d62-911e-4ae0e9c4b522"}},"repository":{"url":"git+https://github.com/223n/node_japanese_lint_template.git","type":"git"},"_npmVersion":"12.0.2","description":"日本語の技術文書を検査するための共有設定（textlint / markdownlint）と、禁じた語彙の混入を見る道具。","directories":{},"_nodeVersion":"24.20.0","dependencies":{"textlint-filter-rule-comments":"^1.3.0","textlint-rule-preset-jtf-style":"^3.0.3","textlint-rule-preset-ja-spacing":"^3.0.3","textlint-rule-preset-ja-technical-writing":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"textlint":"^15.8.0","markdownlint-cli2":"^0.23.2"},"peerDependencies":{"textlint":">=14.0.0","markdownlint-cli2":">=0.19.0"},"peerDependenciesMeta":{"textlint":{"optional":true},"markdownlint-cli2":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/lint-config-ja_1.1.0_1788850348462_0.11506972340374833","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@223n/lint-config-ja","version":"2.0.0","keywords":["textlint","textlint-config","markdownlint","markdownlint-config","japanese","lint","documentation"],"author":{"name":"223n"},"license":"Apache-2.0","_id":"@223n/lint-config-ja@2.0.0","maintainers":[{"name":"223n","email":"223n@223n.tech"}],"homepage":"https://github.com/223n/node_japanese_lint_template#readme","bugs":{"url":"https://github.com/223n/node_japanese_lint_template/issues"},"bin":{"lint-vocabulary":"bin/lint-vocabulary.mjs"},"dist":{"shasum":"d3cc14e7fcaf28f5975ec188506027b55cbfd448","tarball":"https://registry.npmjs.org/@223n/lint-config-ja/-/lint-config-ja-2.0.0.tgz","fileCount":8,"integrity":"sha512-Ynh/zcC9xWdmKE+NHwMPJU6nRPbILBMclP3+af88MZUKTpT2aLSmsuMgPtXr/tu2veH70bMMP2BI6qMmbVv+Cg==","signatures":[{"sig":"MEQCIH5J4pucDF/m/czlkj992fQNeE4rE9UtVeFN7yZbZbY4AiAITXZ8Azuacd8mPXbv+hbiaMeL9l2kYzA7mCNKeNx4xA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIDgfX0FJE1OppmUwjhC3BoN37TD/o8YhnuI0qcZpsFMNAiEAtrsUhIa58Hl1Luj705qkv6j+tCFsSG2mXwk4xKPIHAU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@223n%2flint-config-ja@2.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":62649},"main":"config/textlint.js","type":"commonjs","engines":{"node":">=22"},"gitHead":"0e28af03c9d503cea886bb179d9e7edc4bdf92e2","scripts":{"lint":"npm run lint:md && npm run lint:ja","test":"bash test/run.sh","check":"npm run lint && npm test && npm run example","example":"npm --prefix example install --no-audit --no-fund && npm --prefix example run lint","lint:ja":"textlint .","lint:md":"markdownlint-cli2","lint:ja:fix":"textlint --fix .","lint:md:fix":"markdownlint-cli2 --fix"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f5db8bae-f3f4-4d62-911e-4ae0e9c4b522"}},"repository":{"url":"git+https://github.com/223n/node_japanese_lint_template.git","type":"git"},"_npmVersion":"12.0.2","description":"日本語の技術文書を検査するための共有設定（textlint / markdownlint）と、禁じた語彙の混入を見る道具。","directories":{},"_nodeVersion":"24.20.0","dependencies":{"textlint-filter-rule-comments":"^1.3.0","textlint-rule-preset-jtf-style":"^3.0.3","textlint-rule-preset-ja-spacing":"^3.0.3","textlint-rule-preset-ja-technical-writing":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"textlint":"^15.8.0","markdownlint-cli2":"^0.23.2"},"peerDependencies":{"textlint":">=14.0.0","markdownlint-cli2":">=0.19.0"},"peerDependenciesMeta":{"textlint":{"optional":true},"markdownlint-cli2":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/lint-config-ja_2.0.0_1789116124355_0.8582889781268066","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"@223n/lint-config-ja","version":"2.1.0","keywords":["textlint","textlint-config","markdownlint","markdownlint-config","japanese","lint","documentation"],"author":{"name":"223n"},"license":"Apache-2.0","_id":"@223n/lint-config-ja@2.1.0","maintainers":[{"name":"223n","email":"223n@223n.tech"}],"homepage":"https://github.com/223n/node_japanese_lint_template#readme","bugs":{"url":"https://github.com/223n/node_japanese_lint_template/issues"},"bin":{"lint-vocabulary":"bin/lint-vocabulary.mjs"},"dist":{"shasum":"2d882291431303e2cc7a311999f4a8b2afb3cc03","tarball":"https://registry.npmjs.org/@223n/lint-config-ja/-/lint-config-ja-2.1.0.tgz","fileCount":17,"integrity":"sha512-VJt8nwLMgH2Q9dyS0HvNKgyflz02S4Opvp1ADhsBMGMHDfAiHVamsNt1FXJJq6iHoRAQ+S7cZx92oDyLN1rhfQ==","signatures":[{"sig":"MEQCICP+7O7+7881LvofXI+yq3Ic8Nw20pbkFXuvprzY0bxAAiAcZvp/wKSWnxnqj1A4UOxmWYh51tv+v1sDV6aEMbvMvg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIHnKN0ObChqk0EXT5xP3BphJb2NE9B9sLP5UvfgI+2DMAiAcjAFem482VXI0YeBWKRloagce+HFVRhXJUA5/DnJ8+g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@223n%2flint-config-ja@2.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":171589},"main":"config/textlint.js","type":"commonjs","engines":{"node":">=22"},"gitHead":"bde5e4fbe8fb5efdbb6823256c99cb29723c861c","scripts":{"lint":"npm run lint:md && npm run lint:ja","test":"bash test/run.sh","check":"npm run lint && npm test && npm run example","example":"npm --prefix example install --no-audit --no-fund && npm --prefix example run lint","lint:ja":"textlint .","lint:md":"markdownlint-cli2","lint:ja:fix":"textlint --fix .","lint:md:fix":"markdownlint-cli2 --fix"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f5db8bae-f3f4-4d62-911e-4ae0e9c4b522"}},"repository":{"url":"git+https://github.com/223n/node_japanese_lint_template.git","type":"git"},"_npmVersion":"12.0.2","description":"日本語の技術文書を検査するための共有設定（textlint / markdownlint）と、禁じた語彙の混入を見る道具。","directories":{},"_nodeVersion":"24.20.0","dependencies":{"textlint-rule-prh":"^6.1.0","textlint-filter-rule-comments":"^1.3.0","textlint-rule-preset-jtf-style":"^3.0.3","textlint-rule-preset-ja-spacing":"^3.0.3","textlint-rule-no-kangxi-radicals":"^0.2.2","textlint-rule-preset-ja-technical-writing":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"textlint":"^15.8.0","markdownlint-cli2":"^0.23.2"},"peerDependencies":{"textlint":">=14.0.0","markdownlint-cli2":">=0.19.0"},"peerDependenciesMeta":{"textlint":{"optional":true},"markdownlint-cli2":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/lint-config-ja_2.1.0_1789926868242_0.6367513687679793","host":"s3://npm-registry-packages-npm-production"}},"2.1.1":{"name":"@223n/lint-config-ja","version":"2.1.1","keywords":["textlint","textlint-config","markdownlint","markdownlint-config","japanese","lint","documentation"],"author":{"name":"223n"},"license":"Apache-2.0","_id":"@223n/lint-config-ja@2.1.1","maintainers":[{"name":"223n","email":"223n@223n.tech"}],"homepage":"https://github.com/223n/node_japanese_lint_template#readme","bugs":{"url":"https://github.com/223n/node_japanese_lint_template/issues"},"bin":{"lint-vocabulary":"bin/lint-vocabulary.mjs"},"dist":{"shasum":"e365febf4a0cab02d714d815b8f30e70055d0e68","tarball":"https://registry.npmjs.org/@223n/lint-config-ja/-/lint-config-ja-2.1.1.tgz","fileCount":17,"integrity":"sha512-L/Y44jYSTDsK1XRJWMtr6b8wbXzpqDWdwrSj5JI8dANRPHl/dykQ2ORAtOyUNtPcMqYooJwEpaj4W/oKH/Xjog==","signatures":[{"sig":"MEYCIQC09evbDmd9+aXNUVJl7IYEFHrj6zTqU03WgYLPYlnw7AIhAI8LtZhYTrj4D2EH2y0dfxXfDdWyFoscTFIWqxEaa2mK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQC1nWVcssWJwsSM3EnFlzFzv6KNWjsG7KsUz4SBneHr1AIhAP031dpfoYImr0rm/ju20cTWnmVEOz1C4wjZb8euHs94","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@223n%2flint-config-ja@2.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":171971},"main":"config/textlint.js","type":"commonjs","engines":{"node":">=22"},"gitHead":"d1017465230e436feb0164b725bb4f43d1001767","scripts":{"lint":"npm run lint:md && npm run lint:ja","test":"bash test/run.sh","check":"npm run lint && npm test && npm run example","example":"npm --prefix example install --no-audit --no-fund && npm --prefix example run lint","lint:ja":"textlint .","lint:md":"markdownlint-cli2","lint:ja:fix":"textlint --fix .","lint:md:fix":"markdownlint-cli2 --fix"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f5db8bae-f3f4-4d62-911e-4ae0e9c4b522"}},"repository":{"url":"git+https://github.com/223n/node_japanese_lint_template.git","type":"git"},"_npmVersion":"12.0.2","description":"日本語の技術文書を検査するための共有設定（textlint / markdownlint）と、禁じた語彙の混入を見る道具。","directories":{},"_nodeVersion":"24.20.0","dependencies":{"textlint-rule-prh":"^6.1.0","textlint-filter-rule-comments":"^1.3.0","textlint-rule-preset-jtf-style":"^3.0.3","textlint-rule-preset-ja-spacing":"^3.0.3","textlint-rule-no-kangxi-radicals":"^0.2.2","textlint-rule-preset-ja-technical-writing":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"textlint":"^15.8.0","markdownlint-cli2":"^0.23.2"},"peerDependencies":{"textlint":">=14.0.0","markdownlint-cli2":">=0.19.0"},"peerDependenciesMeta":{"textlint":{"optional":true},"markdownlint-cli2":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/lint-config-ja_2.1.1_1789930407482_0.33569669307819683","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"_id":"@223n/lint-config-ja@3.0.0","bin":{"lint-vocabulary":"bin/lint-vocabulary.mjs"},"bugs":{"url":"https://github.com/223n/node_japanese_lint_template/issues"},"dist":{"shasum":"01de583dd372a05c7c3241ca6dbd05d88a0a662d","tarball":"https://registry.npmjs.org/@223n/lint-config-ja/-/lint-config-ja-3.0.0.tgz","fileCount":18,"integrity":"sha512-97C/juslpxdZKteGfF43p1Gwo7aHiBLgmonucqSDd/my/1JY5A+HL3f+mOJ7AgB83llMN0jBMXgD8x8dDSPk2Q==","signatures":[{"sig":"MEYCIQCxePhc3/N/1wmWojI/+480/Ueop1Jd5D7YXgWCrNa03QIhAP1qDiao69Mn14MZA+3Lv/Ns+c51qcDyFqJz1NGfzPUv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIEumRQET5GSTlwFmo2bIlldinBd2WyG5zS3XPX/XV7aJAiEAjEsJvzwfMQIIS8XUHGTekhOkvyZMiNIqNVBZsu63cHQ="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@223n%2flint-config-ja@3.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":212404},"main":"config/textlint.js","name":"@223n/lint-config-ja","type":"commonjs","author":{"name":"223n"},"engines":{"node":">=22"},"gitHead":"4d80866ce000081426c88f2a2ab96dac517bb3db","license":"Apache-2.0","scripts":{"lint":"npm run lint:md && npm run lint:ja","test":"bash test/run.sh && node test/desumasu-ending.mjs","check":"npm run lint && npm test && npm run example","example":"npm --prefix example install --no-audit --no-fund && npm --prefix example run lint","lint:ja":"textlint .","lint:md":"markdownlint-cli2","lint:ja:fix":"textlint --fix .","lint:md:fix":"markdownlint-cli2 --fix"},"version":"3.0.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"f5db8bae-f3f4-4d62-911e-4ae0e9c4b522"}},"homepage":"https://github.com/223n/node_japanese_lint_template#readme","keywords":["textlint","textlint-config","markdownlint","markdownlint-config","japanese","lint","documentation"],"repository":{"url":"git+https://github.com/223n/node_japanese_lint_template.git","type":"git"},"_npmVersion":"12.2.0","description":"日本語の技術文書を検査するための共有設定（textlint / markdownlint）と、禁じた語彙の混入を見る道具。","directories":{},"maintainers":[{"name":"223n","email":"223n@223n.tech"}],"_nodeVersion":"24.21.0","dependencies":{"kuromojin":"^3.0.1","textlint-rule-prh":"^6.1.0","textlint-util-to-string":"^3.3.4","textlint-filter-rule-comments":"^1.3.0","textlint-rule-preset-jtf-style":"^3.0.3","textlint-rule-preset-ja-spacing":"^3.0.3","textlint-rule-no-kangxi-radicals":"^0.2.2","textlint-rule-preset-ja-technical-writing":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"textlint":"^15.8.0","markdownlint-cli2":"^0.23.2"},"peerDependencies":{"textlint":">=14.0.0","markdownlint-cli2":">=0.19.0"},"peerDependenciesMeta":{"textlint":{"optional":true},"markdownlint-cli2":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/lint-config-ja_3.0.0_1791069221770_0.28204039286398763"}}},"time":{"created":"2026-09-06T23:09:52.669Z","modified":"2026-10-03T23:13:42.153Z","1.0.0":"2026-09-06T23:09:53.019Z","1.0.1":"2026-09-07T01:24:00.982Z","1.1.0":"2026-09-08T06:52:28.547Z","2.0.0":"2026-09-11T08:42:04.448Z","2.1.0":"2026-09-20T17:54:28.336Z","2.1.1":"2026-09-20T18:53:27.557Z","3.0.0":"2026-10-03T23:13:41.860Z"},"bugs":{"url":"https://github.com/223n/node_japanese_lint_template/issues"},"author":{"name":"223n"},"license":"Apache-2.0","homepage":"https://github.com/223n/node_japanese_lint_template#readme","keywords":["textlint","textlint-config","markdownlint","markdownlint-config","japanese","lint","documentation"],"repository":{"url":"git+https://github.com/223n/node_japanese_lint_template.git","type":"git"},"description":"日本語の技術文書を検査するための共有設定（textlint / markdownlint）と、禁じた語彙の混入を見る道具。","maintainers":[{"name":"223n","email":"223n@223n.tech"}],"readme":"# node_japanese_lint_template\n\n日本語の技術文書を検査するための共有設定と、その利用見本である。\n\n`textlint`と`markdownlint`の規則を1つのパッケージにまとめてあり、\n利用する側は依存を1つ足して設定を2行書くだけで済む。\n禁じた語彙がソースに混入していないかを見る道具（`lint-vocabulary`）も同梱している。\n\nVS Code拡張「テキスト校正くん」（`ics.japanese-proofreading`）が使う校正辞書も同梱しており、\n表記ゆれと誤用を既定で拾う。\n\n## 何ができるか\n\n| 検査 | 道具 | 見るもの |\n| ---- | ---- | ---- |\n| `lint:md` | `markdownlint-cli2` | Markdownの書式 |\n| `lint:ja` | `textlint` | 日本語の書き方。文体、一文の長さ、助詞の連続、表記ゆれなど |\n| `lint:vocab` | `lint-vocabulary` | 禁じた語彙がソースに混入していないか |\n\n`lint:ja`だけが警告という段階を持ち、警告があっても通る。\n`lint:md`と`lint:vocab`は引っかかると失敗する。\n`markdownlint`に警告の段階は無く、指摘はすべて失敗として扱われる。\n\n## 導入手順\n\n### 必要なもの\n\nNode 22以上が要る。\n`markdownlint-cli2` 0.23がNode 22以上を求めるためである。\n\n`markdownlint`を使わず`textlint`と語彙検査だけを使うなら、実際にはNode 20.18でも動く。\nただしその組み合わせは検査していないため、`engines`は22以上と書いてある。\n\n### 既存のプロジェクトに足す\n\n依存を入れる。\n\n```bash\nnpm install --save-dev @223n/lint-config-ja textlint markdownlint-cli2\n```\n\n`textlint`と`markdownlint-cli2`を並べて書くのは、この2つが実行する道具そのものだからである。\n共有設定の側は`peerDependencies`として宣言してあり、利用側が版を選べる。\n\nnpmを使わず、GitHubを直接指して入れることもできる。\n\n```bash\nnpm install --save-dev \\\n  github:223n/node_japanese_lint_template#v3.0.0 \\\n  textlint markdownlint-cli2\n```\n\n`#v3.0.0`の部分は、実在するタグを指す必要がある。\nタグの一覧は[リリース](https://github.com/223n/node_japanese_lint_template/releases)にある。\nどちらの経路で入れても、パッケージ名は`@223n/lint-config-ja`である。\n\n設定ファイルを2つ置く。\n\n```javascript\n// .textlintrc.js\nmodule.exports = require('@223n/lint-config-ja')\n```\n\nこれは`@223n/lint-config-ja/config/textlint.js`と同じである。\nどちらの書き方でもよい。\n\n```jsonc\n// .markdownlint-cli2.jsonc\n{\n  \"config\": {\n    \"extends\": \"@223n/lint-config-ja/config/markdownlint.jsonc\"\n  },\n  \"globs\": [\"**/*.md\"],\n  \"ignores\": [\"node_modules/**\"]\n}\n```\n\n検査の対象から外すものを書く。\n\n```text\n# .textlintignore\nnode_modules/**\n```\n\n除外の書き方は`.gitignore`と違う。\n`node_modules/`のように末尾をスラッシュで終えても効かない。\nディレクトリごと外すときは`node_modules/**`と書く。\n\n`package.json`に呼び出しを足す。\n\n```jsonc\n{\n  \"scripts\": {\n    \"lint\": \"npm run lint:md && npm run lint:ja\",\n    \"lint:md\": \"markdownlint-cli2\",\n    \"lint:md:fix\": \"markdownlint-cli2 --fix\",\n    \"lint:ja\": \"textlint .\",\n    \"lint:ja:fix\": \"textlint --fix .\"\n  }\n}\n```\n\nこれで`npm run lint`が動く。\n\n### 新しいプロジェクトを作る\n\nGitHubの「Use this template」から作ると、設定と見本が入った状態で始まる。\n\n`example/`と`test/`はテンプレートを保守するためのもので、\n新しいプロジェクトには要らない。消す場合は`package.json`の`scripts`から\n`test`と`example`と`check`も一緒に消す。消し忘れると`npm test`が動かなくなる。\n\n### 語彙検査も使う\n\n`lint-vocabulary.config.json`を置き、`package.json`に呼び出しを足す。\n\n```jsonc\n{\n  \"scripts\": {\n    \"lint\": \"npm run lint:md && npm run lint:ja && npm run lint:vocab\",\n    \"lint:vocab\": \"lint-vocabulary\"\n  }\n}\n```\n\n`lint`の側にも繋ぐこと。\n`lint:vocab`を足すだけでは`npm run lint`から呼ばれない。\n\n設定の書き方は[語彙検査](https://github.com/223n/node_japanese_lint_template/blob/main/docs/%E8%AA%9E%E5%BD%99%E6%A4%9C%E6%9F%BB.md)にある。\n\n## 設定を変える\n\n### 文体をですます調にする\n\n```javascript\n// .textlintrc.js\nmodule.exports = require('@223n/lint-config-ja/config/textlint-desumasu.js')\n```\n\n#### 普通体の文末も拾う\n\n上の設定で文体を見る`no-mix-dearu-desumasu`は、「である」「だ」のような明示的な常体しか拾わない。\n「〜を確かめる」「〜はない」「〜した」のような普通体の文末は素通りする。\n表のセルは、そもそも文体の検査の対象に入らない。\nそのため、ですます調の文書に普通体の文末が混ざっても検査を通る。\n\nそこで、ですます調の設定には、規則`@223n/lint-config-ja/rules/desumasu-ending`が既定で入る（3.0.0から）。\n文末を形態素解析で見て、述語に「です」「ます」が含まれない文末を報告する。\n「ました」「ません」「でした」「でしょう」「ください」は丁寧な文末として通る。\n\n| 見るもの | 見ないもの |\n| ---- | ---- |\n| 本文の段落、箇条書きの項目、表のセル | 見出し、表の見出しの行、コードブロック、コードスパン、HTML、引用、リンクのURL、URLを書いた文字列（`<…>`と裸のURL）、ページ内リンク（`#…`）の文字列、画像の代替テキスト |\n\nページ内リンクの文字列は、目次のように見出しを写したものが多いので見ない。\nリンクだけを並べた箇条書きの項目や表のセルも、句点で終わらなければ見ない。\n\n次のものは報告しない。\n\n- 名詞、記号、数字、英字で終わるもの（「推奨」「約70GB」）\n- 閉じかぎ（`」`と`』`）や閉じの引用符（`”`、`\"`、`〟`、`》`）で終わるもの。引用の可能性があるためである\n- 「あり」「なし」のように、名詞として置いた語\n- 箇条書きと表で、「〜か」で終わる断片（「WebPを書き出せるか」）。名詞のように置いた問いである\n- 箇条書きと表で、「と」「ので」「から」のような接続助詞で終わる断片（「保存すると」）。言い切っていない形である\n\n文末の注記は外してから見る。\nかっこの注記（「（4.10）」「［1］」「〔注〕」）、参照の印（「※1」）、`<sup>`の注の番号、コロン、絵文字である。\n「〜します（4.10）」は「〜します」として見るので、丁寧な文末として通る。\n自動の修正（`--fix`）は付けていない。\n\n既定は、`style`が`'ですます'`なら有効、`'である'`なら無効である。\n文末を広く見るため、2.xから上げると、既存の文書で指摘が一斉に出ることがある。\nすぐに直せないときは、`desumasuEnding`を`false`にして外す。\n\n```javascript\n// .textlintrc.js\nconst { createTextlintConfig } = require('@223n/lint-config-ja/config/textlint-base.js')\n\nmodule.exports = createTextlintConfig({ style: 'ですます', desumasuEnding: false })\n```\n\n`style`が`'である'`のときに`true`を渡すと、設定を作る時点で止まる。\n\n規則の細かい動きは、作った設定の上で変える。\n\n```javascript\n// .textlintrc.js\nconst { createTextlintConfig } = require('@223n/lint-config-ja/config/textlint-base.js')\n\nconst config = createTextlintConfig({ style: 'ですます' })\nconfig.rules['@223n/lint-config-ja/rules/desumasu-ending'] = {\n  checkList: false, // 箇条書きを見ない\n  allow: ['^(行う|行わない)$'], // 報告しない文の正規表現。表の値として並べた語を通す\n}\n\nmodule.exports = config\n```\n\n| オプション | 既定 | 意味 |\n| ---- | ---- | ---- |\n| `checkTable` | `true` | 表のセルを見る |\n| `checkList` | `true` | 箇条書きの項目を見る |\n| `checkFragments` | `true` | 表のセルと箇条書きの項目で、「。」などで終わらない断片（「使わない」）の末尾も見る。`<br>`や行末の空白2つで改行した行は、行ごとに見る。本文の段落では「。」などで終わる文だけを見る |\n| `allow` | `[]` | 報告しない文の正規表現。文の全体（Markdownの記号を除き、句点は含まない）に当てる。`'/〜/i'`の形で書くとフラグを付けられる |\n\n表の値として「行う」「行わない」を並べるような文書では、`checkFragments`を`false`にすると指摘が減る。\n表に置いた人名（「わたる」）やラベル名（「対応しない」）も、動詞の形なので拾う。\n書き換えられない語は、`allow`に足すか、下のコメントで止める。\n\nオプションの型が違うとき（`\"false\"`のような文字列）や、知らない名前を書いたときは、検査を始める時点で止まる。\n\n文書の一部だけを止めるときは、規則の名前を書いたコメントで囲む。\n\n```markdown\n<!-- textlint-disable @223n/lint-config-ja/rules/desumasu-ending -->\n\n| 設定 | 値 |\n| ---- | ---- |\n| 自動更新 | しない |\n\n<!-- textlint-enable @223n/lint-config-ja/rules/desumasu-ending -->\n```\n\n### 一部だけ変える\n\n設定を作る関数を直に呼ぶ。\n\n```javascript\n// .textlintrc.js\nconst { createTextlintConfig } = require('@223n/lint-config-ja/config/textlint-base.js')\n\nmodule.exports = createTextlintConfig({\n  style: 'ですます',            // 'である'（既定）か 'ですます'\n  sentenceLength: 100,          // 一文の最大文字数。既定は 120\n  maxKanjiContinuousLen: 5,     // 漢字を連ねてよい上限。既定は 6。false で規則ごと切る\n  strictSentenceEnd: true,      // 文末の句点を厳しく見る。既定は false\n  jtfStyle: false,              // 日本翻訳連盟のスタイルガイドを当てる。既定は true\n  halfWidthSpacing: 'always',   // 全角と半角の間のスペース。既定は 'never'\n  proofreading: false,          // 校正辞書を当てる。既定は true\n  proofreadingSeverity: 'error', // 校正辞書の指摘の強さ。既定は 'warning'\n  proofreadingDictionaries: ['誤字'], // 当てる辞書。既定は7種すべて\n  desumasuEnding: false,        // 普通体の文末を拾う。既定はですます調なら true、である調なら false\n})\n```\n\nよく使うのは次の2つである。\n\n`jtfStyle`を`false`にすると、日本翻訳連盟のスタイルガイドを丸ごと外す。\nこの`preset`は37の規則を持ち、うち33が既定で有効になる。\n指摘が多すぎて手が付けられないときの逃げ道である。\n\n`halfWidthSpacing`は全角と半角の間のスペースを決める。\n既定の`'never'`は「入れない」を求める。\n`'always'`にすると「入れる」を求め、`false`にすると見ない。\n\nコードスパン、リンク、スラッシュの前後は、この設定とは別に「入れない」を求める。\n`'always'`にしても変わらない。\nスペースを入れる書き方に合わせる場合は、下の手順で`ja-space-around-code`、\n`ja-space-around-link`、`ja-no-space-around-slash`を切る。\n\n`desumasuEnding`は、上の「普通体の文末も拾う」に書いた。\n規則のオプションの変え方と、文書の一部だけを止める書き方もそこにある。\n\n### 校正辞書を絞る\n\nVS Code拡張「テキスト校正くん」が使う校正辞書を同梱しており、既定で有効である。\n語の対応表で表記ゆれと誤用を拾う。\n\n<!-- textlint-disable prh -->\n\n| 辞書 | 拾うもの |\n| ---- | ---- |\n| 誤字 | アボガド → アボカド |\n| 重言 | 馬から落馬 → 落馬 |\n| ひらく漢字 | 出来る → できる |\n| 冗長な表現 | することができます → できます |\n| 外来語カタカナ表記 | プリンタ → プリンター |\n| 固有名詞 | 東京ビックサイト → 東京ビッグサイト |\n| 技術用語 | Github → GitHub |\n\n<!-- textlint-enable prh -->\n\n指摘は警告として出るため、検査そのものは止まらない。\n「ひらく漢字」と「外来語カタカナ表記」は書き手の好みに属する指摘を含み、\nこれで検査を止めると既存の文書が一斉に落ちるためである。\n\n辞書を選ぶときは名前を並べる。\n\n```javascript\nmodule.exports = createTextlintConfig({ proofreadingDictionaries: ['誤字', '技術用語'] })\n```\n\n丸ごと切るときは`proofreading: false`と書く。\n`proofreadingDictionaries: []`は書き損じと見なして止める。\n\n語を足したいときは、同梱した辞書を書き換えず、自分の辞書を足す。\n書き換えると取得元との差分が分からなくなるためである。\n\n```javascript\nconst path = require('node:path')\nconst { createTextlintConfig } = require('@223n/lint-config-ja/config/textlint-base.js')\n\nconst config = createTextlintConfig()\nconfig.rules.prh.rulePaths.push(path.resolve(__dirname, 'dict/my-prh.yml'))\n\nmodule.exports = config\n```\n\n### 規則を個別に上書きする\n\n作った設定に手を入れる。\n\n```javascript\n// .textlintrc.js\nconst { createTextlintConfig } = require('@223n/lint-config-ja/config/textlint-base.js')\n\nconst config = createTextlintConfig()\nconfig.rules['preset-ja-technical-writing']['no-exclamation-question-mark'] = false\n\nmodule.exports = config\n```\n\n`config/textlint.js`を直に読んで書き換えないこと。\n`require`は同じオブジェクトを返すため、読んだ先すべてに影響する。\n`createTextlintConfig`は呼ぶたびに新しいオブジェクトを返す。\n\n`markdownlint`は、同じ設定の中に書いた規則が`extends`で読んだものより優先される。\n行の順序ではなく、どちらに書いたかで決まる。\n\n```jsonc\n{\n  \"config\": {\n    \"extends\": \"@223n/lint-config-ja/config/markdownlint.jsonc\",\n    \"MD033\": { \"allowed_elements\": [\"br\"] }\n  }\n}\n```\n\nなお`MD013`（行の長さ）を戻しても、日本語の地の文にはほとんど効かない。\nこの規則は空白の無い行を報告しないため、日本語の長い一文は素通りする。\n\n## 版を固定する\n\nタグで指す。\n\n```jsonc\n{\n  \"devDependencies\": {\n    \"@223n/lint-config-ja\": \"github:223n/node_japanese_lint_template#v3.0.0\"\n  }\n}\n```\n\n`package-lock.json`にはタグではなくコミットの識別子が記録されるため、\n`npm ci`は常に同じものを入れる。\n規則を上げるときはタグを書き換える。\n\n## パッケージとして公開する\n\ngit参照のままでも使えるが、npmに登録すると導入が短くなり、版の範囲指定が使える。\n\n```jsonc\n{\n  \"devDependencies\": {\n    \"@223n/lint-config-ja\": \"^3.0.0\"\n  }\n}\n```\n\ngit参照はタグで一点を指すだけなので、修正版が出ても自動では入らない。\n`^3.0.0`と書ければ、後方互換のある修正は`npm update`で入る。\n\n### 一度だけの設定\n\n公開は`.github/workflows/release.yml`が行い、認証にTrusted Publishing（OIDC）を使う。\nそのためトークンを秘密として置く必要はない。\n\nただし**Trusted Publisherの設定は、パッケージがnpmに存在して初めて現れる**。\nそのため順序は次のようになる。\n\n#### 1. 手元から一度だけ公開する\n\n`223n`のアカウントを作ったうえで、次を実行する。\n\n```bash\nnpm login\nnpm publish --access public\n```\n\nスコープ付きのパッケージは`--access public`を付けないと非公開の扱いになり、有料のプランを求められる。\n\n`npm login`を済ませずに実行すると認証で失敗する。\nまた、`package.json`の`name`のスコープ（`@223n`）と、npmのアカウント名またはorganization名が一致している必要がある。\n\n#### 2. Trusted Publisherを設定する\n\n公開するとパッケージの設定画面が現れる。\nnpmjs.comで「Packages」から対象のパッケージを開き、「Settings」の「Trusted publishing」で次を入れる。\n\n| 項目 | 入れる値 |\n| ---- | ---- |\n| 提供元 | GitHub Actions |\n| 所有者 | `223n` |\n| リポジトリ | `node_japanese_lint_template` |\n| ワークフローのファイル名 | `release.yml` |\n| 環境 | 空でよい |\n\nファイル名は経路を含めず、`release.yml`とだけ書く。\n\n#### 3. 以降は自動になる\n\n2回目からはタグを切るだけでよい。\n手元での`npm login`も、トークンの保存も要らない。\n\n#### 公開済みの版は飛ばす\n\n同じ版の上書きは、npmでもGitHub Packagesでもできない。\nそのため公開の前に、その版が既にあるかを確かめ、あれば飛ばす。\n\nこれで次の2つの場面が扱える。\n\n- 手元から先に公開した版へ、あとからタグを切る場合\n- 片方の公開だけが落ちて、入れ直す場合\n\n版を上げ忘れたままタグを切る誤りは、その手前の「タグと版が一致するか」で止まる。\n\n### GitHub Packagesにも公開する\n\n`release.yml`はnpmと同時にGitHub Packagesへも公開する。\nこちらは`GITHUB_TOKEN`で認証するため、設定は要らない。\n\nただし**GitHub Packagesは公開されたパッケージでも取得に認証を求める**。\nGitHubの文書は「private、internal、publicのいずれのパッケージも、公開・取得・削除にアクセストークンが必要」と述べている。\n\nそのため利用側には`.npmrc`と個人アクセストークンが要る。\n\n```text\n# .npmrc\n@223n:registry=https://npm.pkg.github.com\n//npm.pkg.github.com/:_authToken=${GITHUB_TOKEN}\n```\n\nトークンには`read:packages`の権限が要る。\nGitHub Actionsから使う場合は、その実行の`GITHUB_TOKEN`をそのまま渡せる。\n\n### どれを使うか\n\n3つの経路があり、利用側の手間が違う。\n\n| 経路 | 利用側に要るもの | 版の指定 |\n| ---- | ---- | ---- |\n| npm | 依存を1行書くだけ | `^3.0.0`の範囲指定が使える |\n| git参照 | 依存を1行書くだけ | タグで一点を指す |\n| GitHub Packages | `.npmrc`とアクセストークン | `^3.0.0`の範囲指定が使える |\n\n**特に理由が無ければnpmを使うのがよい。**\n認証が要らず、範囲指定も使えるためである。\n\nGitHub Packagesは、npmを使わない方針の組織や、GitHubの中で完結させたい場合に選ぶ。\n\n### 公開の手順\n\n版を上げ、タグを切って押す。\n\n```bash\nnpm version patch   # または minor / major\ngit push --follow-tags\n```\n\n`release.yml`が動き、次の順に確かめてから公開する。\n\n1. タグと`package.json`の版が一致するか\n1. 検査が通るか\n1. 配布物に余計なものが入っていないか\n\n版を上げ忘れたままタグを切ると、公開の前に止まる。\n公開は実質取り消せない（`npm unpublish`は72時間以内に限られる）ため、手前で止める。\n\n## 非公開のリポジトリとして使う場合\n\nこのリポジトリを公開しないまま使うこともできるが、認証の設定が要る。\n\n手元では、GitHubへのSSH鍵か認証情報の補助が入っていれば動く。\n短縮形ではなく完全な形で書くほうが確実である。\n\n```jsonc\n{\n  \"devDependencies\": {\n    \"@223n/lint-config-ja\": \"git+ssh://git@github.com/223n/node_japanese_lint_template.git#v3.0.0\"\n  }\n}\n```\n\nGitHub Actionsでは、`actions/checkout`が使う既定の権限が自分のリポジトリしか読めない。\n別のリポジトリを引くには、次のどちらかを足す。\n\n```yaml\n# 細かい権限を絞ったトークンを秘密として置く場合\n- run: git config --global url.\"https://x-access-token:${{ secrets.LINT_TOKEN }}@github.com/\".insteadOf \"https://github.com/\"\n- run: npm ci\n```\n\nデプロイ鍵を使う場合は、鍵を置いてから引く。\n\n```yaml\n- run: |\n    mkdir -p ~/.ssh\n    printf '%s\\n' \"${{ secrets.LINT_DEPLOY_KEY }}\" > ~/.ssh/id_ed25519\n    chmod 600 ~/.ssh/id_ed25519\n    ssh-keyscan github.com >> ~/.ssh/known_hosts\n- run: npm ci\n```\n\n第三者のアクションを使えば短く書けるが、公開の鍵を扱うため、ここでは自前で書いている。\n\n## 知っておくとよいこと\n\n### 依存の巻き上げを前提にしている\n\n`textlint`は規則を名前で探す。\nこの共有設定が`dependencies`に持つ規則は、`npm`が利用側の`node_modules`へ巻き上げることで見つかる。\n\n`pnpm`や`yarn`のPnPのように巻き上げないやり方では、規則が見つからずに失敗することがある。\nその場合は、規則の`package`を利用側の`devDependencies`にも直接足す。\n\n### 版を上げると規則が増えることがある\n\n`config/markdownlint.jsonc`は`default: true`で、名前を挙げていない規則は既定のまま有効になる。\n`markdownlint`の版が上がって規則が増えると、それも自動で有効になる。\n\nこれは意図した動きである。\nただし版を上げた直後に、新しい指摘が出ることはある。\n版は`package-lock.json`で固定されるため、`npm ci`を使うかぎり勝手には変わらない。\n\n## 依存の警告について\n\n供給経路を見る道具（Socketなど）にかけると、依存の木に対する警告が並ぶ。\n「難読化コード」のような強い文言も出るため、先に断っておく。\n\n**実地に確かめた結果、対応を要する危険は見つからなかった。**\n\nまず、そこに並ぶのはこのパッケージ自身のコードではない。\n直接依存は`package.json`の`dependencies`に並べたものだけだが、そこから`textlint`の生態系295パッケージが広がり、警告はその全体に対して出る。\n普通体の文末の規則のために直接依存へ足した`kuromojin`と`textlint-util-to-string`は、もとから依存の木に入っていたものである。\n足しても、木に新しく加わったパッケージはない。\n\n295パッケージすべてを走査した結果である。\n\n| 見たもの | 結果 |\n| ---- | ---- |\n| インストール時に走るスクリプト | 0 |\n| 外部通信を読み込むファイル | 0 |\n| レジストリ以外を出所とする依存 | 0 |\n| 既知の脆弱性（`npm audit`） | 0 |\n| コピーレフトのライセンス | 0（MIT 285、BSD 5、ISC 3、Apache-2.0 2） |\n\n開発時の依存としての実害は「入れた瞬間に走るもの」と「検査を走らせたときに動くもの」に限られるが、\nどちらも成立しない。\n\nいちばん重い「難読化コード」は、縮小して配る成果物に対する誤検出である。\n該当ファイルには元のソースを含むソースマップが同梱されており、意図を隠す目的とは正反対である。\nしかもそのファイルはNodeでは読み込まれない。\n\n警告ごとの内訳、唯一の注意点、手元で同じことを確かめる手順は\n[依存の警告](https://github.com/223n/node_japanese_lint_template/blob/main/docs/%E4%BE%9D%E5%AD%98%E3%81%AE%E8%AD%A6%E5%91%8A.md)にある。\n\n## 何が入っているか\n\n| 位置 | 中身 |\n| ---- | ---- |\n| `config/textlint.js` | である調の設定。既定 |\n| `config/textlint-desumasu.js` | ですます調の設定 |\n| `config/textlint-base.js` | 設定を作る関数。細かく変えるときに使う |\n| `rules/desumasu-ending.js` | 普通体の文末を拾う規則。ですます調の設定に既定で入る（`desumasuEnding`） |\n| `config/markdownlint.jsonc` | Markdownの検査規則 |\n| `dict/` | 校正辞書。出典と許諾は`dict/README.md`にある |\n| `bin/lint-vocabulary.mjs` | 語彙検査の実行ファイル |\n| `example/` | 利用見本。実際に検査が通ることを確かめられる |\n| `test/` | 語彙検査（`test/run.sh`）、普通体の文末の規則（`test/desumasu-ending.mjs`）、導入手順（`test/install.sh`）の検証 |\n| `docs/` | 規則の理由と、語彙検査の設定方法 |\n\n## 見本を動かす\n\n```bash\nnpm install\nnpm run example\n```\n\n`example/`は`file:..`でこのリポジトリを参照している。\n規則を変えたときに、利用側から見てどうなるかをその場で確かめられる。\n\n## 開発\n\n```bash\nnpm install\nnpm run lint      # このリポジトリ自身の文書を、このリポジトリが配る規則で検査する\nnpm test          # 語彙検査と、普通体の文末の規則の検証\nnpm run example   # 利用見本の検証\nnpm run check     # 上の3つをまとめて\n```\n\n## 文書\n\n- [規則の理由](https://github.com/223n/node_japanese_lint_template/blob/main/docs/%E8%A6%8F%E5%89%87%E3%81%AE%E7%90%86%E7%94%B1.md) — どの規則をなぜ切ったか\n- [語彙検査](https://github.com/223n/node_japanese_lint_template/blob/main/docs/%E8%AA%9E%E5%BD%99%E6%A4%9C%E6%9F%BB.md) — `lint-vocabulary`の設定と使い方\n- [依存の警告](https://github.com/223n/node_japanese_lint_template/blob/main/docs/%E4%BE%9D%E5%AD%98%E3%81%AE%E8%AD%A6%E5%91%8A.md) — 供給経路の道具が出す警告を確かめた結果\n- [校正辞書](https://github.com/223n/node_japanese_lint_template/blob/main/dict/README.md) — 同梱した辞書の出典と更新のしかた\n- [セキュリティに関する方針](https://github.com/223n/node_japanese_lint_template/blob/main/SECURITY.md) — 弱点を見つけたときの知らせ方と、扱う範囲\n\n## ライセンス\n\nApache License 2.0。[LICENSE](LICENSE)を見よ。\n\n同梱した校正辞書（`dict/prh_*.yml`）だけはMIT Licenseである。\n取得元はICSが公開している辞書である。\n全文は[dict/LICENSE](dict/LICENSE)に、出典は[dict/README.md](dict/README.md)にある。\n","readmeFilename":"README.md"}