Цифровой садик - приветственная

Цифровой садик - приветственная | Полный список всего, что тут есть | RSS | Подписаться через follow.it

13.11.2024

vale

Как обычно, заметки о том, за что зацепилось. Задачи написать исчерпывающее - нет.

https://vale.sh/docs/ - вроде как, самый гибкий и актуальный из нынешних линтеров для текста. Меня интересует в варианте cli, который бесплатен и открыт.

Словарики

Конкретная папка задаётся в конфиге строкой

Vocab = SomeName

И Somename должно быть подпапкой папки Vocab в StylesPath.

В папке SomeName ожидаются два файла — accept.txt и reject.txt.

The effects of using a custom Vocab are as follows:

  • Entries in accept.txt are added to every exception list in all styles listed in BasedOnStyles—meaning that you now only need to update your project’s vocabulary to customize third-party styles (rather than the styles themselves).
  • Entries in accept.txt are automatically added to a substitution rule (Vale.Terms), ensuring that any occurrences of these words or phrases exactly match their corresponding entry in accept.txt.
  • Entries in reject.txt are automatically added to an existence rule (Vale.Avoid) that will flag all occurrences as errors.

This means that your exceptions can be developed independent of a style, allowing you to use the same exceptions with multiple styles or switch styles without having to re-implement them.

The entries are case-sensitive and may also be regular expressions.

Два варианта для случаев, когда учитывать регистр не особо надо:

(?i)MongoDB
[Oo]bservability

Первый — а без разницы, какой там где регистр, хоть mOnGoDb пиши. Во втором случае есть выбор между прописной и строчной первой буквой.

Или указать Vale.Terms = NO, тогда тоже на регистр внимание не особо обращается.

На этом месте я ещё отдельно тихо грущу про регэкспы для всех наших парадигм склонения-спряжения. Скорее всего, писать основу и оставлять сколько-то символов на варианты.

Ignore files are for style creators while vocabularies are for style users. If you’re developing or maintaining a style, you may still want to include a custom spelling rule—MyStyle.Spelling—that packages its own ignore files. As a user of styles, vocabularies should be able to replace the use of ignore files completely.

В стилях, которые расширяют spelling, можно hunspell-ные словарики указать: https://vale.sh/docs/topics/styles/#spelling.

Стили

https://vale.sh/docs/topics/styles/

Стиль - папка в StylePath, которая содержит YAML-файлы (c расширением .yml) с правилами.

Шаблончик такого файла

# All rules should define the following header keys:
#
# `extends` indicates the extension point being used (see below for information
# on the possible values).
extends: existence
# `message` is shown to the user when the rule is broken.
#
# Many extension points accept format specifiers (%s), which are replaced by
# extracted values. See the extension-specific sections below for more details.
message: "Consider removing '%s'"
# `level` assigns the rule's severity.
#
# The accepted values are suggestion, warning, and error.
level: warning
# `scope` specifies where this rule should apply -- e.g., headings, sentences, etc.
#
# See the Markup section for more information on scoping.
scope: heading
# `link` gives the source for this rule.
link: 'https://errata.ai/'
# The number of times this rule should raise an alert.
#
# By default, there is no limit.
limit: 1

То бишь, коротенько шаблон:

extends: existence
level: warning
scope: heading
link: 'https://errata.ai/'
limit: 1

Варианты правил

  • existence — (как в примере выше) реагирует на присутствие. Например, рекомендует удалть неудачное клише. https://vale.sh/docs/topics/styles/#existence
  • substitution — предлагает замену. https://vale.sh/docs/topics/styles/#substitution
  • occurence — ограничивает количество появлений чего-то в некотором контексте. Типа «три запятых в предложении», «пять слов с -изм в абзаце». https://vale.sh/docs/topics/styles/#occurrence
  • repetition — ловит повторы. https://vale.sh/docs/topics/styles/#repetition Запятые из примера выше можно бы и здесь сделать, а вот -изм — уже нет. Можно натравить на все повторы в принципе.
  • consistency — не сбиваться между разными вариантами слов. Типа, начали писать «сиянье», значит «сияние» уже не в этом тексте. https://vale.sh/docs/topics/styles/#consistency
  • conditional — Отслеживает появление второго элемента при обнаружении первого. Например, если в тексте появилось «во-первых», то «во-вторых» должно быть где-то достаточно близко. https://vale.sh/docs/topics/styles/#conditional
  • capitalization — Про https://vale.sh/docs/topics/styles/#capitalization

    There are a few pre-defined variables that can be passed as matches:

    $title: “The Quick Brown Fox Jumps Over the Lazy Dog.” $sentence: “The quick brown fox jumps over the lazy dog.” $lower: “the quick brown fox jumps over the lazy dog.” $upper: “THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG.” Additionally, when using match: $title, you can specify a style of either “AP” or “Chicago”.

  • metric — меряет удобочитаемость всякими способами. При определённом результате формул предупреждает, что результат таксебе. https://vale.sh/docs/topics/styles/#metric
  • spelling — опирается на Hunspell. Можно указывать пути к словарям и нужные словари. https://vale.sh/docs/topics/styles/#spelling
    • чтобы игнорировать то, что хочет распознаваться как ошибка:
      • указать в текстовом ignore-файле, файл указать в правиле.
      • написать фильтр - если у этих слов есть какое-то общее свойство. Там в примере всякие названия, связанные с python и начинающиеся на py.
  • sequence — правила на уровне предложений, вроде как про грамматику. Но их я пока не поняла. https://vale.sh/docs/topics/styles/#sequence
  • script — возможность писать произвольные штуки на https://github.com/d5/tengo (https://tengolang.com/). https://vale.sh/docs/topics/styles/#script

Конфиг

Прихватывала частично, что глянулось.

  • Format-specific sections apply their settings only to files that match their associated glob pattern. For example, [*] matches all files while [*.{md,txt}] only matches files that end with either .md or .txt. You can have as many format-specific sections as you’d like and settings defined under a more specific section will override those in [*].
  • specifies the minimum alert severity that Vale will report. The options are “suggestion”, “warning”, or “error” (defaults to “warning”).
  • specifies styles that should have all of their rules enabled.
  • enable certain rules within a style, you can do so on an individual basis.
  • disable rule on an individual basis.
  • change rule severity level.
  • allow to exclude certain block-level sections of text that don’t have an associated HTML tag that could be used with SkippedScopes.
  • allow you to exclude certain inline-level sections of text that don’t have an associated HTML tag that could be used with IgnoredScopes.

Ссылки


Если у вас есть мысли, комментарии, предложения или отклики по поводу этой страницы или этого цифрового сада в целом, напишите мне сообщение на agnessa@agnessa.pp.ru. Мне ооочень интересно!

Задонатить.


An IndieWeb Webring 🕸💍