npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@cffnpwr/textlint-rule-no-doubled-additive-conjunction

v1.1.0

Published

同一段落内での「さらに」「また」「加えて」の複数回使用を検出するtextlintルール

Readme

@cffnpwr/textlint-rule-no-doubled-additive-conjunction

GitHub License npm Version JSR Version

A textlint rule that detects the use of additive conjunctions (「さらに」「また」「加えて」) more than once within the same paragraph.

日本語のREADMEはこちら

Repeatedly firing off additive conjunctions tends to produce a structure that merely strings a list together with conjunctions. Since paraphrasing the word (「さらに」→「また」) does not change the fact that they are being repeated, the target words are counted together as a group.

<!-- NG -->
また、一つ目の理由があります。
さらに、二つ目の理由もあります。

<!-- OK -->
理由は二つあります。
一つ目は〜です。
二つ目は〜です。

A word is counted as a conjunction only when the target word appears at the beginning of a sentence followed by the full-width comma 「、」 (「また、」「さらに、」「加えて、」). The delimiter immediately after it is restricted to the full-width comma 「、」; a half-width comma 「,」 or a sentence beginning with no comma is out of scope. The same applies when the target words are swapped out via conjunctions: a swapped-in word is likewise counted only in the form of "word + comma 「、」". Different words such as 「またの機会」 or 「また聞き」, and adverbial uses within a sentence such as 「性能をさらに高める」, are out of scope. Because the sentence-beginning check is performed on text with emphasis and other markup removed, a sentence beginning such as **また**、 is also counted. Inline code, HTML, and images are not included in the text used for the sentence-beginning check.

When the total number of occurrences of the target words within a paragraph reaches two or more, each occurrence from the second one onward is reported. The first use is not reported, as it is a legitimate usage.

Each report includes a suggestion that removes the conjunction and the full-width comma 「、」 immediately after it. The suggestion is not applied automatically by textlint --fix; it is only applied when the user selects it in an editor. This is because whether to remove the conjunction or to restructure the sentence or paragraph depends on context.

The existing textlint-rule-no-doubled-conjunction detects repetition of the same conjunction across adjacent sentences via morphological analysis, but because IPAdic does not classify 「さらに」 (an adverb) or 「加えて」 (a verb + particle) as conjunctions, it cannot handle repeated use of the additive family. This rule complements it.

How to Install

npm

npm install --save-dev @cffnpwr/textlint-rule-no-doubled-additive-conjunction

or

npx jsr add -D @cffnpwr/textlint-rule-no-doubled-additive-conjunction

yarn

yarn add --dev @cffnpwr/textlint-rule-no-doubled-additive-conjunction

or

yarn dlx jsr add -D @cffnpwr/textlint-rule-no-doubled-additive-conjunction

pnpm

pnpm add --save-dev @cffnpwr/textlint-rule-no-doubled-additive-conjunction

or

pnpm dlx jsr add -D @cffnpwr/textlint-rule-no-doubled-additive-conjunction

Bun

bun add --dev @cffnpwr/textlint-rule-no-doubled-additive-conjunction

or

bunx jsr add -D @cffnpwr/textlint-rule-no-doubled-additive-conjunction

Deno

deno add --dev npm:@cffnpwr/textlint-rule-no-doubled-additive-conjunction

or

deno add --dev jsr:@cffnpwr/textlint-rule-no-doubled-additive-conjunction

How to Use

Add it to .textlintrc.json.

{
  "rules": {
    "@cffnpwr/textlint-rule-no-doubled-additive-conjunction": true
  }
}

Options

interface Options {
  conjunctions?: string[];
  skipBlockQuote?: boolean;
}

| Option | Default | Description | | --- | --- | --- | | conjunctions | ["さらに", "また", "加えて"] | The list of words to count. When specified, it overrides the default | | skipBlockQuote | true | Excludes content under quotes (BlockQuote) from inspection |

Specifying an unknown option key or an invalid value results in an error.

{
  "rules": {
    "@cffnpwr/textlint-rule-no-doubled-additive-conjunction": {
      "conjunctions": ["さらに", "また", "加えて", "更に"]
    }
  }
}

License

MIT