Проект для отображения markdown контента в среде 1С:Предприятие с поддержкой подсветки синтаксиса для различных языков программирования.
- Глобальные функции для работы с markdown
- Поддержка языков: BSL/1C, JSON, Gherkin и Turbo-Gherkin
- Подсветка синтаксиса с помощью highlight.js
- Адаптивный дизайн для разных экранов
- Совместимость с 1С:Предприятие 8.3.14+
- Автономная сборка в один файл для простой интеграции
Скачайте файл index-standalone.html с последней версии релиза проекта.
Добавьте скачанный файл в вашу конфигурацию 1С как макет с именем "MarkdownViewer".
Добавьте реквизит формы с типом Строка и именем MarkdownViewer.
Добавьте на форму элемент MarkdownViewer и настроите его вид как "Поле HTML документа".
Добавьте в обработчик события ПриСозданииНаСервере следующий код:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Обработка = РеквизитФормыВЗначение("Объект");
ДвоичныеДанные = Обработка.ПолучитьМакет("MarkdownViewer");
MarkdownViewer = ПолучитьНавигационнуюСсылкуИнформационнойБазы() + "/" + ПоместитьВоВременноеХранилище(ДвоичныеДанные, УникальныйИдентификатор);
КонецПроцедурыДля элемента формы MarkdownViewer добавьте обработчик события "ДокументСформирован" с именем MarkdownViewerДокументСформирован:
&НаКлиенте
Процедура MarkdownViewerДокументСформирован(Элемент)
ЭлементHTML = Элементы.MarkdownViewer.Документ["defaultView"];
ЭлементHTML.renderMarkdown(ТекстMarkdown);
КонецПроцедурыПосле интеграции в 1С вы можете использовать глобальные функции JavaScript:
// Отображение markdown контента
&НаКлиенте
Функция ОтобразитьMarkdown(ТекстMarkdown)
ЭлементHTML = Элементы.MarkdownViewer.Документ["defaultView"];
ЭлементHTML.renderMarkdown(ТекстMarkdown);
КонецФункции
// Очистка контента
&НаКлиенте
Функция ОчиститьMarkdown()
ЭлементHTML = Элементы.MarkdownViewer.Документ["defaultView"];
ЭлементHTML.clearMarkdown();
КонецФункции
// Проверка поддержки
&НаКлиенте
Функция ПоддерживаетсяMarkdown()
ЭлементHTML = Элементы.MarkdownViewer.Документ["defaultView"];
Возврат ЭлементHTML.isMarkdownSupported();
КонецФункцииОтображает markdown строку в указанный контейнер или основной контейнер документа.
Параметры:
markdownString(string) - строка с markdown контентомcontainerId(string, опционально) - ID контейнера для отображения
Очищает указанный контейнер или основной контейнер документа.
Параметры:
containerId(string, опционально) - ID контейнера для очистки
Проверяет поддержку markdown в текущей среде.
Возвращает: boolean - true если markdown поддерживается
npm installnpm run build:singleРезультат: Файл dist/index-standalone.html (~136KB) готов для интеграции в 1С.
npm run dev # Запуск dev-сервера
npm run build # Обычная сборка
npm run preview # Предварительный просмотр
npm run clean # Очистка dist/Основные CSS классы в файле styles.css:
.markdown-content- основной контейнер для markdown.language-bsl- стили для BSL кода.language-gherkin- стили для Gherkin.language-json- стили для JSON
// В файле src/highlight-config.ts
import hljs from 'highlight.js/lib/core';
// Регистрация нового языка
hljs.registerLanguage('custom', customLanguage);- 1С:Предприятие 8.3.14+
- Браузеры: Chrome 60+, Firefox 55+, Safari 12+, Edge 79+
- Node.js 16+ (для разработки)
Проект распространяется под лицензией MIT.
Приветствуются любые предложения и улучшения! Создавайте issues и pull requests.
Версия 1.1.0 | Готово к использованию в 1С! 🎉
