Giter Site home page Giter Site logo

write-good's Introduction

write-good Build Status Vale version license

write-good: Naive linter for English prose for developers who can't write good and wanna learn to do other stuff good too.

This repository contains a Vale-compatible implementation of the guidelines enforced by the write-good (LICENSE) linter.

Getting Started

❗ write-good requires Vale >= 1.7.0. ❗

Download the latest release, copy the "write-good" directory to your StylesPath, and include it in your configuration file:

# This goes in a file named either `.vale.ini` or `_vale.ini`.
StylesPath = path/to/some/directory
MinAlertLevel = warning # suggestion, warning or error

# Only Markdown and .txt files; change to whatever you're using.
[*.{md,txt}]
# List of styles to load.
BasedOnStyles = write-good

See Usage for more information.

write-good's People

Contributors

jdkato avatar mdaffin avatar tomschenkjr avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

write-good's Issues

Illusions incorrectly flags lines

Given the following rst:

foo foo

foo bar

foo ``bar`` foo bar

foo ``bar`` foo ``bar``

foo ``bar`` foo ``bar`` cows

The output is:

 1:1  warning  'foo' is repeated!  write-good.Illusions 
 5:1  warning  'foo' is repeated!  write-good.Illusions 
 7:1  warning  'foo' is repeated!  write-good.Illusions 
 9:1  warning  'foo' is repeated!  write-good.Illusions 

Expected output should only contain line 1. My guess is that vale removes the literal (the text between double backticks) before applying the regex.

Note that if you remove the empty lines, the output is different even though it should be the same.

write-good rules are triggered for words detected within compound words

❯ vale --version
vale version "2.20.1"

vale ls-config:

{
  "BlockIgnores": {
    "*.md": [
      "(?sm)^({{[%\u003c] [^{]*? [%\u003e]}})\\n$",
      "(?s) *({{\u003c highlight [^\u003e]* ?\u003e}}.*?{{\u003c ?/ ?highlight \u003e}})"
    ]
  },
  "Checks": null,
  "Formats": {
    "ex": "md",
    "exs": "md"
  },
  "Asciidoctor": {},
  "FormatToLang": {},
  "GBaseStyles": null,
  "GChecks": {},
  "IgnoredClasses": null,
  "IgnoredScopes": null,
  "MinAlertLevel": 0,
  "Vocab": [
    "base"
  ],
  "RuleToLevel": {},
  "SBaseStyles": {
    "*.{txt,org,md}": [
      "Vale",
      "write-good",
      "proselint",
      "alex",
      "Joblint"
    ]
  },
  "SChecks": {
    "*.md": {},
    "*.{txt,org,md}": {}
  },
  "SkippedScopes": null,
  "Stylesheets": {},
  "StylesPath": "/home/john/.config/vale/styles",
  "TokenIgnores": {
    "*.md": [
      "({{[%\u003c] .* [%\u003e]}}.*?{{[%\u003c] ?/.* [%\u003e]}})",
      "(\\[.+\\]\\({{\u003c .+ \u003e}}\\))"
    ]
  },
  "WordTemplate": "",
  "DictionaryPath": "",
  "NLPEndpoint": ""
}
echo "And cares are different from yours. And yes! I made sure you knew it," | vale

 stdin.txt
 1:11  suggestion  Try to avoid using 'are'.  write-good.E-Prime 

✔ 0 errors, 0 warnings and 1 suggestion in stdin.

❯ echo "And snares are different from yours. And yes! I made sure you knew it," | vale

 stdin.txt
 1:12  suggestion  Try to avoid using 'are'.  write-good.E-Prime 

✔ 0 errors, 0 warnings and 1 suggestion in stdin.

How do I ignore an instance of TooWordy?

I've written "Set the minimum version for each dev dependency."

Vale warns that "minimum" is too wordy.

In this technical context I think it's the right word to use.

Can I tell Vale to ignore just this instance of the word (say by line number) and warn me anywhere else?

"also" is not "so"

There may be a false positive for the word "also" in So.yml. The file looks for "so followed by a space" but this is also true when the word also is followed by a space. Perhaps, instead, it should look for "so preceded by a period and/or space(s)" and also look for "so preceded by line break(s)"

Unfortunately I can read regex fairly well, but I'm unsure how to write it, or else I'd try my hand at a pull request.

write-good.ThereIs

The sentence This is the where there are cows. triggers an error Don't start a sentence with 'there are'.

Update

Is it possible for a new release of this implementation closer to write-good's last update?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.