Выделение ключевых слов
Служебная страница только для авторов: группы 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>У каждой группы пара фон + текст. Переключите тему в шапке, чтобы сравнить светлую и тёмную.
Палитра цветов
Section titled “Палитра цветов”Образец слева — живой span.kw (меняется с темой). Коды — из custom.css.
| Группа | Образец | Светлая: фон / текст | Тёмная: фон / текст |
|---|---|---|---|
| 1 | g1 | #e8eef6 / #3d5a80 | #1e2229 / #7d8fa3 |
| 2 | g2 | #e8efe4 / #3d5a40 | #1e2320 / #7d9a88 |
| 3 | g3 | #eceef0 / #4a4e56 | #222428 / #8b9098 |
| 4 | g4 | #e4efec / #3d5a52 | #1e2322 / #7d9a94 |
| 5 | g5 | #f0ebe4 / #6a5640 | #24201c / #a09078 |
| 6 | g6 | #ebe6f2 / #5a4a70 | #221e28 / #9088a0 |
Цветовые чипы (фон группы):
Образцы по группам
Section titled “Образцы по группам”| Группа | Класс | Смысл | Примеры |
|---|---|---|---|
| 1 | kw--g1 | Unimod / FBD / ST / Modbus | Unimod Unimod 2 FBD Modbus ST |
| 2 | kw--g2 | JSC / OBJTYPE / %…% / Excel | JSC OBJTYPE %JSC% VQ @ |
| 3 | kw--g3 | Код, GAP, globals […], $S | GAP.AUCS.Misc [GLOBAL_OBJECTS_PATH] $S prog.csv |
| 4 | kw--g4 | HMI / Weintek / _init_AP_* | HMI HMI.* _init_AP_Tag Weintek |
| 5 | kw--g5 | DevStudio / IOS | DevStudio alpha.DevStudio IOS DevSt.attributes SystemTag |
| 6 | kw--g6 | Ключи, переменные, модели оборудования | TAG OBJTYPENAME TreiS304 portsTemplate |
Состав групп (слова)
Section titled “Состав групп (слова)”Группа 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)”| Подтип | Примеры |
|---|---|
| GAP | GAP.* 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 “Приоритет и вложенность”- Цельная строка — одна группа. Если фрагмент целиком подходит под правила группы (путь, выражение, идентификатор), выделяйте весь фрагмент одним
span, без вложенных выделений внутри. - Не выкусывать слова из чужой строки. Ключевое слово другой группы внутри такой строки отдельно не красить.
- Ключ в Key→Value → g6 (в т.ч. OBJTYPENAME), кроме исключений предметной группы: _init_AP_* → g4.
- Узкая предметная группа для самостоятельных терминов-концептов: 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).
Связанные разделы
Section titled “Связанные разделы”Примеры применения в статьях (без ссылок из читательского текста на эту страницу): networks, excel-rules, object-types, ObjectTypeVersion 1.0, service-symbols.