install.fairie/.config/taskfiles/lint/Taskfile-prose.yml
Brian Zalewski f42899b107 Latest
2022-12-24 15:04:59 -05:00

58 lines
2.2 KiB
YAML

---
version: '3'
tasks:
prose:
deps:
- :install:pipx:proselint
desc: Lint text/markdown for English prose with `proselint`
summary: |
# Lint for English Prose
This task uses `proselint` to analyze markdown files for prose. It will generate recommendations
based on typography, grammar, and wording.
**Example scanning all markdown files:**
`task lint:prose`
**Example scanning specific file (markdown or not):**
`task lint:prose -- myfile.js`
For more information, see [Proselint's GitHub page](https://github.com/amperser/proselint).
log:
error: Error encountered while validating {{if .CLI_ARGS}}`{{.CLI_ARGS}}`{{else}}the project{{end}} with Proselint
start: Linting {{if .CLI_ARGS}}`{{.CLI_ARGS}}`{{else}}the project{{end}} prose with Proselint
success: Successfully validated {{if .CLI_ARGS}}`{{.CLI_ARGS}}`{{else}}the project{{end}} with Proselint
cmds:
- task: prose:config
- |
PATH="$PATH:$HOME/.local/bin"
{{if .CLI_ARGS}}
{{.PYTHON_HANDLE}}proselint {{.CLI_ARGS}}
{{else}}
find . -type d \( {{.IGNORE_FOLDERS}} \) -prune -o -type f \( -name '*.md' \) -print0 | xargs -0 -r -n1 {{.PYTHON_HANDLE}}proselint
{{end}}
- task: prose:config:restore
prose:config:
log:
error: Error encountered while ensuring Proselint configuration is in proper location
start: Moving Proselint configuration to proper location
success: Ensured Proselint configuration is in proper location
cmds:
- |
if [ -f ~/.config/proselint/config.json ]; then
.config/log info 'Backing up `proselint` from `~/.config/proselint/config.json` to `~/.config/proselint/config.json.backup`'
mv ~/.config/proselint/config.json ~/.config/proselint/config.json.backup
fi
- mkdir -p ~/.config/proselint
- cp .config/proselint.json ~/.config/proselint/config.json
prose:config:restore:
log:
error: Error restoring original Proselint configuration
start: Restoring original Proselint configuration
cmds:
- mv ~/.config/proselint/config.json.backup ~/.config/proselint/config
status:
- '[ ! -f ~/.config/proselint/config.json.backup ]'