К обсуждениям

PowerShell смешивает ячейки Markdown с долларом: проверяем границу pipe table

Редакция VOne Технологии

Как безопасно проверить, почему ConvertFrom-Markdown объединяет соседние ячейки таблицы с денежными значениями: минимальная матрица исходника, AST и HTML без изменения рабочего отчёта.

Отделите исходный Markdown от результата рендеринга

ConvertFrom-Markdown принимает строку или файл и возвращает объект MarkdownInfo, в котором доступны дерево токенов и HTML-представление. Поэтому сначала сохраните неизменённую копию исходной строки и отдельно посчитайте ожидаемое число столбцов. Используйте нейтральные значения без реальных сумм, названий клиентов и путей. Сравните три артефакта: исходный текст, структуру Tokens и строки td в Html. Если уже дерево токенов объединяет содержимое, граница находится до HTML. Если токены разделены, а HTML нет, это другой слой. Не судите только по виду в браузере: стили могут скрыть пустую ячейку, но не меняют структуру результата. Такой контроль сохраняет исходные данные и не требует правки рабочего отчёта.

Матрица из четырёх обезличенных входов

Соберите таблицу 2×2 на копии: одна или две денежные ячейки по горизонтали, обычный символ доллара или временно экранированный по вертикали. Во всех четырёх случаях оставьте одинаковую строку-разделитель GFM и одинаковое число вертикальных черт. Спецификация GFM определяет таблицу через строку заголовка, delimiter row и разделение ячеек символом pipe; сам доллар относится к обычной пунктуации. Запишите число токенов и ячеек HTML для каждой комбинации. Не объявляйте экранирование исправлением: это только диагностический контроль. Если сбой зависит от двух долларовых маркеров по разные стороны разделителя, матрица локализует сочетание, но не доказывает внутреннюю причину реализации PowerShell.

Безопасная временная граница для отчётов

До выяснения статуса храните канонический Markdown отдельно от полученного HTML и проверяйте число столбцов автоматически или визуально на тестовой копии. Если временное экранирование сохраняет структуру, применяйте его только к небольшому контролируемому экспорту и явно помечайте преобразование. Не запускайте глобальную замену доллара: она может затронуть кодовые фрагменты, ссылки и уже экранированные значения. Не подменяйте исходные финансовые данные снимком HTML. Критерий остановки — любое расхождение числа ячеек, потеря текста или необходимость менять тысячи строк без теста обратимости. В этом случае используйте исходный документ как источник истины и передайте минимальный пример разработчикам.

Что приложить к воспроизводимому issue

Укажите точную версию PowerShell, платформу, одну синтетическую строку таблицы и три результата: исходник, Tokens и Html. Добавьте таблицу четырёх проверок и отметьте, меняется ли поведение при экранировании только первого или только второго доллара. Не прикладывайте полный отчёт, реальные суммы, имена и домашние пути. Ссылка на свежий issue подтверждает лишь наличие обсуждения; статус Open не означает подтверждённую причину или срок исправления. Повторное обращение полезно, если минимальный пример воспроизводится на актуальной стабильной версии и показывает структурное расхождение, а не только визуальное оформление. До этого не объединяйте разные ошибки Markdown под одним диагнозом.

Материал подготовлен редакцией VOne с применением ИИ для структуры матрицы; факты вручную сверены по Microsoft Learn и спецификации GFM, а issue использован только как обезличенный сигнал.

Источники и проверка

Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.

Ответы

0 опубликовано
Ответов пока нет. Вы можете начать обсуждение.

Ваш ответ

Добавьте свой опыт или уточнение по теме.

Вы публикуете как Аноним Аватар отличает разговоры, но не раскрывает личные данные.

Ответ появится сразу. Не публикуйте личные данные, ключи и приватные ссылки.