Skip to content

Выделение ключевых слов

Служебная страница только для авторов: группы inline-выделения (span.kw.kw--gN), цвета, примеры слов. В боковом меню не показывается (menuMode: hide). URL: /reference/keyword-highlights/.

Не ссылаться на эту страницу из читательских статей и не писать в них про легенду цветов, классы kw--g* или имена групп g1…g6 — подсветка должна работать без пояснений.

Разметка в MDX:

<span class="kw kw--g1">FBD</span>

В путях внутри <span> экранируйте обратный слэш как \\. Идентификаторы с _ или * задавайте JSX-строкой: <span class="kw kw--g1">{'FBD_*'}</span> / {'HMI.*'} — иначе MDX трактует _/* как курсив.

Aside: внутри <Aside> цвета групп не применяйте (и не полагайтесь на них): CSS сбрасывает .kw / kw--g* в .starlight-aside к обычному тексту. В callout пишите термины без span.kw или оставляйте как есть — подсветки не будет.

<span class="kw kw--g3">JSC\\Usr\\Prj\\Conf\\NetSwitches.xls</span>

У каждой группы пара фон + текст. Переключите тему в шапке, чтобы сравнить светлую и тёмную.

Образец слева — живой span.kw (меняется с темой). Коды — из custom.css.

ГруппаОбразецСветлая: фон / текстТёмная: фон / текст
1g1#e8eef6 / #3d5a80#1e2229 / #7d8fa3
2g2#e8efe4 / #3d5a40#1e2320 / #7d9a88
3g3#eceef0 / #4a4e56#222428 / #8b9098
4g4#e4efec / #3d5a52#1e2322 / #7d9a94
5g5#f0ebe4 / #6a5640#24201c / #a09078
6g6#ebe6f2 / #5a4a70#221e28 / #9088a0

Цветовые чипы (фон группы):

ГруппаКлассСмыслПримеры
1kw--g1Unimod / FBD / ST / ModbusUnimod Unimod 2 FBD Modbus ST
2kw--g2JSC / OBJTYPE / %…% / ExcelJSC OBJTYPE %JSC% VQ @
3kw--g3Код, GAP, globals […], $SGAP.AUCS.Misc [GLOBAL_OBJECTS_PATH] $S prog.csv
4kw--g4HMI / Weintek / _init_AP_*HMI HMI.* _init_AP_Tag Weintek
5kw--g5DevStudio / IOSDevStudio alpha.DevStudio IOS DevSt.attributes SystemTag
6kw--g6Ключи, переменные, модели оборудованияTAG OBJTYPENAME TreiS304 portsTemplate

Группа 1 — Unimod / FBD / ST / Modbus (kw—g1)

Section titled “Группа 1 — Unimod / FBD / ST / Modbus (kw—g1)”

Ядро: Unimod, Unimod 2 (всегда g1 — целое сочетание), FBD, ST, Modbus, fbd-templates, FB, UDT

Производные: FBD_*, FB_*, UnimodFB, TechObject.TemplateUnimod2x, TechObject.FbdFileName, TechObject.modbusTemplate, AfaProject, ApucsProject, 2x, IGM.POU*; prog.csv — если речь о задаче FBD.

Граница: Modbus (протокол / карта / адресация ПЛК) → g1. Модули/результаты в DevStudio (ModbusTcpMaster, ModbusDevices) → g5.

Группа 2 — JSC / OBJTYPE / Template (kw—g2)

Section titled “Группа 2 — JSC / OBJTYPE / Template (kw—g2)”

Ядро: JSC, OBJTYPE, Template (лист/шаблон ОТ), ObjTypes, типовой блок. Имя переменной/колонки OBJTYPENAME → g6 (не g2).

Плейсхолдеры %…%: отдельно (константа, не путь) → g2 — %JSC%, %HMI%, %Unimod%, %DevStudio%, %Weintek%, %Libraries%, %Self%, %имя%.

Пути → всегда g3 (цельный span): файловые/каталожные пути с \\, в т.ч. начинающиеся с %…%%Self%\attibutes\BasePlcObjAttr.xlsx, %JSC%\Conf\Lib\…, JSC\Usr\Prj\Conf\NetSwitches.xls. Не выкусывать %JSC% из пути в g2. Служебные символы и инструкции Excel/JSM-моделей (источники: Правила заполнения Excel-файлов, Служебные символы и ключевые слова):

ТипСлова (все → kw—g2)
Маркеры строк# $ H d @
Инструкции колонокVQ LST IOBJ VS:имя VS:portsTemplate VS:dsType FL ATTFL $FL $ATTFL
Прочие ключевые слова моделиarr:Name +
Листы-справочники@* @nets @types @regexp

Производные: JscGlobalConf, OBJ.*, objtype-template-mapping, TagAssignement; библиотеки AFA / APUCS / Diagnostic / BASETYPES как имена библиотек ОТ.

Граница: Template в смысле листа OBJTYPE → g2; TechObject.TemplateUnimod2x → g1. Подстановки $S, [имя] / [ str ], {имя} (аргументы $FL) и вызовы GAP → g3. Отдельная константа %имя% → g2; путь (даже с %…%) → g3. Маркеры $FL / $ATTFL / FL / ATTFL → g2.

Группа 3 — код, константы, GAP, globals (kw—g3)

Section titled “Группа 3 — код, константы, GAP, globals (kw—g3)”
ПодтипПримеры
GAPGAP.* GAP.dll вызовы <script GAP.…/>
Globals SettingManager[GLOBAL_OBJECTS_PATH] [opt.unimod] [opt.plcName] [ИМЯ]
API$Api.Automiq.Ds.…
Подстановки в ячейках[имя] [TAG] $S (из колонки строки d); аргументы $FL: {имя} / {argN}
DLL / расширения / путиStandardModules.dll .jsm; пути: JSC\Usr\…, %Self%\…\file.xlsx, %JSC%\Conf\Lib\…
Командыnpm run … — только если явно консоль

Группа 4 — HMI / Weintek (kw—g4)

Section titled “Группа 4 — HMI / Weintek (kw—g4)”

Ядро: HMI, Alpha.HMI / Альфа.HMI, AplhaHMI, мнемосхема, мнемосимвол

Init-параметры HMI (всегда g4): _init_AP_Tag, _init_AP_path и производные _init_AP*

Листы/поля: HMI.* / HMI. (всегда g4), HMIS.*, HmiType, HmiSrc, BaseScreen. Имя колонки HmiTag → g6.

Weintek: Weintek, Wntk.* / WNTK, EasyBuilder, Icon_*, MS_Icon_*

Модули Atomix: HMI Менеджер, HMI Generator, Список тегов / UserTagTree (в контексте HMI)

Группа 5 — DevStudio / IOS (kw—g5)

Section titled “Группа 5 — DevStudio / IOS (kw—g5)”

Ядро (всегда g5 для полного имени продукта): alpha.DevStudio / Альфа.DevStudio; также DevStudio, alpha.Server

Листы/поля: DevSt.*, DevSt.attributes, DevStudioType, PathDevStudio, SystemTag, Domain

IOS: IOS, IOS_App / IOS_APP

Каталоги/модули: DevStudioDevs, ModbusTcpMaster, NetDiag, DevStMBDevice, NetDevices, ModbusDevices (результат в DevStudio)

Группа 6 — ключи, переменные, модели оборудования (kw—g6)

Section titled “Группа 6 — ключи, переменные, модели оборудования (kw—g6)”

Правило: в парах Ключ → значение (таблицы «Переменная | …», «Поле | Значение», колонки моделей) ключ выделяется g6.

Состав:

  • имена переменных / колонок: TAG, OBJTYPENAME, SplitRegex, portsTemplate, NETSWITCHES_DIRECTORY_PATH и т.п.;
  • имена моделей оборудования / типовых блоков как значения-идентификаторы: TreiS304, MES3300_24, NetDiag2, S304;
  • прочие ключи в Key→Value, если нет более узкой предметной группы.

Граница: OBJTYPE / OBJ.* / константа %имя% → g2; путь → g3. OBJTYPENAME / HmiTag / PathDevStudio как имена колонок → g6. HMI / HMI.* / _init_AP_Tag → g4. alpha.DevStudio (всегда) / DevStudio / DevSt.* → g5. Unimod 2 (всегда) / Modbus → g1. Подстановки [TAG], $S → g3.

Приоритет и вложенность

Section titled “Приоритет и вложенность”
  1. Цельная строка — одна группа. Если фрагмент целиком подходит под правила группы (путь, выражение, идентификатор), выделяйте весь фрагмент одним span, без вложенных выделений внутри.
  2. Не выкусывать слова из чужой строки. Ключевое слово другой группы внутри такой строки отдельно не красить.
  3. Ключ в Key→Value → g6 (в т.ч. OBJTYPENAME), кроме исключений предметной группы: _init_AP_* → g4.
  4. Узкая предметная группа для самостоятельных терминов-концептов: HMI → g4; DevStudio → g5; вызов GAP.… → g3; имя FBD_… в аргументе → g1.

Плотность: только основное, без повторов

Section titled “Плотность: только основное, без повторов”

Цель — ориентиры, не «ёлка» из цветных чипов.

Правило «первое + якорь»: для термина на странице цвет ставьте (1) при первом смысловом упоминании в прозе и (2) в якорной таблице (колонки «Переменная», шпаргалка, глоссарий, легенда символов). Дальше — обычный текст или `код` без span.kw.

Исключения из «первое + якорь» — красить при каждом появлении (вне Aside): Unimod 2; Modbus (протокол); alpha.DevStudio / Альфа.DevStudio; HMI.*; _init_AP_*.

Правило для агентов при написании статей: .cursor/rules/wiki/wiki-keyword-highlights.mdc (globs: src/content/docs/**/*.mdx).

КраситьНе красить
Концепты раздела при первом появлении (OBJTYPE, DevStudio, HMI)То же слово во 2–3-м абзаце и ниже
Маркеры/$FL/%имя% там, где их вводят (таблица легенды, шпаргалка)Каждый $ / # / VQ в каждой строке длинного примера
Путь — один раз в таблице «где лежит» или в первом образцеПовтор того же пути в прозе
Все ключи g6 в колонке «Переменная / Поле»Повтор ключа цветом в тексте описания справа
Значения-идентификаторы (TreiS304) — один раз в списке типовТе же имена в каждом примере-строке

Ориентиры: обзорная статья ~15–25 span; учебная с примерами — шпаргалка + один цветной образец + глоссарий; Служебные символы — плотнее (это сама легенда). Внутри <Aside> цвета не действуют — span.kw не ставить.

НеверноВерно
JSC + хвост пути отдельноJSC\Usr\Prj\Conf\NetSwitches\NetSwitches.xls
%JSC% + хвост пути отдельно%JSC%\USR\PRJ\Conf\NetSwitches\Templates\[SystemPosition]\$S.xls

Отдельное слово JSC в обычном тексте (не внутри пути) — по-прежнему g2.

Стили: src/styles/custom.css (переменные --kw-gN-bg / --kw-gN-fg).

Примеры применения в статьях (без ссылок из читательского текста на эту страницу): networks, excel-rules, object-types, ObjectTypeVersion 1.0, service-symbols.