Существуют ли средства проверки правописания, которые знают о Markdown?

14

Я хотел бы провести проверку орфографии над своими статьями, прежде чем публиковать их. Я думаю, что aspellвсе в порядке, но он не должен пытаться проверить блоки кода:

asdfasdfa adsfa sdfa text to check adsfasd f

```
a wild code block appeared!
thisHas quiteOften() some strings.that should NOT get changed
```

and also `inlined code` should not get checked

Существуют ли проверки правописания на основе командной строки для Linux, которые знают о Markdown и, следовательно, игнорируют блоки кода? Мне нужно иметь возможность запустить это в пакетном режиме для нескольких файлов.

(Бонусные баллы, если вы знаете тот, который действительно понимает LaTeX - нет, aspell -tне полностью работает)

Мартин Тома
источник
Какой редактор? Я использую flyspell-modeс ispellв Emacs, и я настроил его игнорировать команды LaTeX. Работает отлично.
Terdon
Я использую vimтекстиль для публикации в своем блоге и считаю, что знает о разметке, поэтому они существуют.
SLM

Ответы:

7

Я собираюсь за бонусные баллы. Я использую emacsи flyspell-modeвключил по умолчанию для документов LaTeX. Он отлично работает и игнорирует команды LaTeX.

Соответствующие строки в моем .emacsфайле:

;; load flyspell-mode for LaTeX files
(add-hook 'LaTeX-mode-hook 'flyspell-mode) 

;; make flyspell mode ignore latex commands
(setq ispell-extra-args '("--dont-tex-check-comments"))

На самом деле не очень много использовал уценку, но я думаю, вы можете сделать то же самое для нее.

Тердон
источник
Похоже, что emacs по умолчанию не игнорирует HTML. Первые ошибки проверки орфографии, которые я получил, были от <li>-tags.
Мартин Тома
1
Я попросил проверку орфографии на основе оболочки, потому что я хотел бы проверить около 400 файлов уценки. Если проверка орфографии не находит ошибку, она должна просто выйти (не открывая окно). Я думаю, что emacs не основан на Shell, не так ли?
Мартин Тома
@moose Я не понял, что вам нужна утилита командной строки, которая запускает несколько файлов. Emacs вполне может сделать это (в конце концов, он делает все остальное), но я не знаю как. flyspellРежим просто выделяет ошибки при вводе текста.
Тердон
Спасибо за ответ; Я думаю, что это может быть очень хорошим выбором для новых документов (+1), но для старых документов это не помогает. Я извиняюсь за то, что не ясно о командной строке / пакетной части вопроса.
Мартин Тома
3

Может быть, Markdown-Spellcheck - правильный инструмент для вас. Вам необходимо установить nodejs/npm.

Тестовый запуск в интерактивном режиме:

$ cat test.md 
asdfasdfa adsfa sdfa text to check adsfasd f

```
a wildwild code block appppeared!
thisHas quiteOften() some strings.that should NOT get changed
```

and also `inLIned code` should not get checked
$ mdspell test.md 
Spelling - test.md
asdfasdfa adsfa sdfa text to check adsf
?   Ignore
asdfasdfa adsfa sdfa text to check adsfasd f
?   Ignore
asdfasdfa adsfa sdfa text to check adsfasd f
?   Ignore
sdfa adsfa sdfa text to check adsfasd f
?   Ignore
>> 1 file is free from spelling errors
Фредди
источник