hackforla / website

Hack for LA's website
https://www.hackforla.org
GNU General Public License v2.0
317 stars 752 forks source link

Find Linter and Matching VS Code Plugin to Spell Check Site #3546

Closed kathrynsilvaconway closed 1 year ago

kathrynsilvaconway commented 2 years ago

Dependency

Overview

Our website needs to be free of misspellings so that our reputation for quality is maintained. For this issue, we will find a third party linter and VS Code plugin to spell check all text in pull requests that will appear on the website.

Action Items

Resources/Instructions

JessicaLucindaCheng commented 2 years ago

@kathrynsilvaconway

ExperimentsInHonesty commented 2 years ago

@kathrynsilvaconway Good News! I figured out how to find the CI/CD spell checkers, so that we can try to find the pair that we are looking for. Here are the ones that work on GitHub. This probably includes action. So they may not all be suitable. What we are looking for it one that works on PRs or commits. https://github.com/marketplace?type=&verification=&query=spell

ExperimentsInHonesty commented 1 year ago

@kathrynsilvaconway issue #2401 is not a dependency, its the issue that informs the making of this issue. https://github.com/hackforla/website/issues/2401#issuecomment-1146721700

blulady commented 1 year ago

@kathrynsilvaconway

* I don't think [Fix misspelled words on citizen-engagement-card.yml file from "policymaking" to "policy making" #2909](https://github.com/hackforla/website/issues/2909) and [Identify all mispelled words on site and make issues to fix #2401](https://github.com/hackforla/website/issues/2401) are dependencies for this issue. Dependencies are issues that need to be completed before this issue can be worked on. Issue [Fix misspelled words on citizen-engagement-card.yml file from "policymaking" to "policy making" #2909](https://github.com/hackforla/website/issues/2909) is to be completed **after** this issue is done because we want the misspellings to be corrected **after** we find the linter so we have something for the linter to find.

  * [x]  completed

* You should include the list of spelling errors to use to check that the plugin is effective. See the bottom of this comment for the list: [Identify all mispelled words on site and make issues to fix #2401 (comment)](https://github.com/hackforla/website/issues/2401#issuecomment-1146721700)

* You may want to add a link to [Identify all mispelled words on site and make issues to fix #2401](https://github.com/hackforla/website/issues/2401) in the Resources/Instructions section so that we can trace back where this issue came from.

Using the spelling errors to check if the Spell-Checker we use is a brilliant idea but I am uncertain about some of the items that are in the list because: `- line 41 "your" to "you're" Mobile_responsiveness.yml grammatical error

There are some genuine spelling errors:

Which makes me wonder:

ExperimentsInHonesty commented 1 year ago

@blulady - I am not sure what you are talking about here. And I don't think I need to know because that issue is totally resolved by the creation of this issue.

is 3546 a dependency for https://github.com/hackforla/website/issues/2401? Do we need to hold on, close or release https://github.com/hackforla/website/issues/2401 because if we have the Dev (or us) create spelling issues that we then test for... but also if we release it by the time someone picks it up, it might not exist anymore?

ExperimentsInHonesty commented 1 year ago

@blulady you said

could we have the Dev(or us) create their own spelling/grammatical errors to test when running the spell check?

I agree. We should add the errors from the list to the Misspelled list spreadsheet and differentiate between misspellings and grammar errors. Keeping in mind, the solution is not to create the perfect spreadsheet but rather a good enough list to figure out which linter/plugin might work.

ExperimentsInHonesty commented 1 year ago

@blulady Product is taking this issue back temporarily until we are finished updating the spreadsheet.

ExperimentsInHonesty commented 1 year ago

@blulady Bishir and I updated the spelling list, including adding a column that indicates if it's a spelling or grammar issue. The person working on this is welcome to skip the grammar problems if the linter does not do them, we could do that with a separate linter on another issue if necessary. I don't want trying to find the perfect linter to be the enemy of finding a serviceable linter.

Make any changes you feel our necessary to this issue to convey that, and please hide all the comments once the top part is clear.

github-actions[bot] commented 1 year ago

Hi @christinaor, thank you for taking up this issue! Hfla appreciates you :)

Do let fellow developers know about your:- i. Availability: (When are you available to work on the issue/answer questions other programmers might have about your issue?) ii. ETA: (When do you expect this issue to be completed?)

You're awesome!

P.S. - You may not take up another issue until this issue gets merged (or closed). Thanks again :)

christinaor commented 1 year ago

Availability: 4pm-10pm EST, M-F ETA: 10pm Thurs

christinaor commented 1 year ago

Progress: Code Spell Checker from VS Marketplace appears to have an equivalent npm package for developers who would prefer to use git and if they're not using VS Code as their IDE.

Next steps are installing the combination to ensure both fix spelling errors consistently, and then apply them against the spreadsheet from the design team.

Blockers: Previously resolved questions on what would entail solving this issue with @jdingeman at Tuesday standup. Resolution is to create a PR using the plugin/extension to fix the spelling errors and touch base with Bonnie with a plan of action on implementing the spell checker in a GitHub action. Availability: 4pm-10pm EST, Wed-Fri, 1h each night as necessary ETA: 10p, 2/17

christinaor commented 1 year ago

I looked through a few more spell checkers on VS Code and checked if they had equivalent npm packages that would allow them to be written into GitHub actions. Surprisingly, there aren't too many spell checkers that are up to date and note that their dictionaries may not be accurate. Code Spell Checker appears to be the most current. Its equivalent npm package is called "cspell", which when executed on a path will list the line and point where the misspelling is. I have tested the npm package on my branch but did not include it in the PR since I'd like to confirm next steps.

One limitation of Code Spell Checker is that it only checks words with at least 4 characters, so it could not pick up one of the misspellings in the Google Sheet ("te" to "the") - this had to be manually corrected. There are configuration files we can create to be more specific about which words are included as an error, but I did not find anything to account for words less than 4 characters in this program.

Plan of Action:

Aveline-art commented 1 year ago

@christinaor One thing to take a look at would be textlint, which comes packaged with superlinter. It can be activated from the lint workflow file, if not already. It looks like there are also a couple of plugins that might add html linting as well.

Edit: Funny enough there are prepackaged rules for grammar + spelling, proper English diction, and inclusive language.