textlint rule for prh.
JavaScript
Clone or download

README.md

textlint-rule-prh textlint rule Build Status

textlint rule for prh/prh: proofreading helper.

This rule check the spell by used with prh.yml.

Installation

npm install textlint-rule-prh

Usage

  1. It require Rule Options!
{
    "rules": {
        "prh": {
            "rulePaths" :["path/to/prh.yml"]
        }
    }
}

Options

  • rulePaths(required) : array of path to YAML file from .textlintrc file
{
    "rules": {
        "prh": {
            "rulePaths" :["./prh-rules/rule1.yml", "./prh-rules/rule2.yml"]
        }
    }
}

You can use ~ as Home directory abbreviation.

{
    "rules": {
        "prh": {
            "rulePaths" :["~/global-rule/rule1.yml"]
        }
    }
}
  • checkLink(optional) : Check Link node type (default: false)
  • checkBlockQuote(optional) : Check BlockQuote node type (default: false)
  • checkEmphasis(optional) : Check Emphasis node type (default: false)
  • checkHeader(optional) : Check Header node type (default: true)
{
    "rules": {
        "prh": {
            "checkEmphasis": true,
            "checkHeader": false
        }
    }
}

Fixable

textlint rule

textlint-rule-prh support --fix feature of textlint.

textlint --fix README.md

What is prh.yml?

Please See prh/prh: proofreading helper.

prh format

prh.yml can define RegExp as a dictionary.

# prh version
version: 1
rules:

  # format case-sensitive
  - expected: Cookie
  # the above is equal to following
  # - expected: Cookie
  #   pattern: "/[CcCc][OoOo][OoOo][KkKk][IiIi][EeEe]/g"
  #   options:
  #     wordBoundary: false
  #   specs: []

  # Write test to `expect`
  - expected: jQuery
    specs:
      - from: jquery
        to:   jQuery
      - from: JQUERY
        to:   jQuery

# If the `specs` is failed、fail to load prh.yml
# - expected: JavaScript
#   specs:
#     - from: JAVASCRIPT
#       to:   JavaScprit
# Error: JavaScript spec failed. "JAVASCRIPT", expected "JavaScprit", but got "JavaScript", /[JjJj][AaAa][VvVv][AaAa][SsSs][CcCc][RrRr][IiIi][PpPp][TtTt]/g

# pattern => expected
  - expected: default
    pattern:  deflaut

# Allow to write multiple `pattern`
  - expected: hardware
    patterns:
      - hadware
      - harrdware
      - harddware

# Allow to write `pattern` as RegExp
# Can use $1...$9
# Should wrap `/` and `/`
  # ECMAScript
  - expected: ECMAScript $1
    patterns:
      - /ECMAScript([0-9]+)/
      - /ECMA Script([0-9]+)/
    specs:
      - from: ECMAScript2015
        to:   ECMAScript 2015

# expected contain pattern
# https://github.com/textlint-rule/textlint-rule-prh/pull/8
  - expected: ベンダー
    pattern: /ベンダ(?!ー)/
    specs:
      - from: ベンダ
        to: ベンダー
      - from: ベンダー
        to: ベンダー
  # wordBoundary option
  - expected: js
  # === pattern: "/\b[JjJj][SsSs]\b/g"
    options:
      wordBoundary: true
    specs:
      - from: foo JS bar
        to:   foo js bar
      - from: foo altJS bar
        to:   foo altJS bar

imports

prh.yml can import other yaml file

version: 1

imports:
  - imports-a.yml
  - imports-b.yml

Example

See textlint-rule/prh-textlint-example: Example of textlint + prh..

Tests

npm test

Contributing

  1. Fork it!
  2. Create your feature branch: git checkout -b my-new-feature
  3. Commit your changes: git commit -am 'Add some feature'
  4. Push to the branch: git push origin my-new-feature
  5. Submit a pull request :D

License

MIT