Песочница

Изображения Лиспекса

Создайте изображение исходника Лиспекса, проверьте его, восстановите исходные байты и запустите программу.

Подготовьте исходник

Установите Native CLI или пакет npm, чтобы пользоваться командой lispex. В новой рабочей папке сохраните следующий текст в файле heading-image.lspx. Чтобы получить ровно 219 байт, используйте UTF-8 без метки порядка байтов, окончания строк LF и перевод строки в конце файла.

LISPEX
(define (место-заголовка осталось-строк)
  (if (< осталось-строк 2) 'следующая-страница 'оставить))
(display (место-заголовка 1))
(newline)

Правило возвращает следующая-страница, если под заголовком осталось меньше двух строк. Последние две формы выводят этот результат и перевод строки.

1. Создайте изображение

SH
lispex image encode --source heading-image.lspx --out heading-image.lspx.png

Команда создаёт heading-image.lspx.png, ничего не печатает и завершается с кодом 0. Этот исходник помещается на одной странице.

Кодировщик определяет число страниц по исходнику и его структуре. Для одной страницы имя результата должно оканчиваться на .lspx.png, для нескольких страниц на .lspx-images.zip. При неверном суффиксе команда останавливается до записи файла. Например, при image-pageset-required замените суффикс результата на .lspx-images.zip.

2. Проверьте изображение

SH
lispex image inspect --image heading-image.lspx.png

Команда проверяет всё изображение, выводит JSON и завершается с кодом 0. Эти строки вывода описывают пример.

  "source_bytes": 219,
  "node_count": 24,
  "max_depth": 3,
  "page_count": 1,

JSON также содержит идентификаторы формата и профиля, source_id и хеши SHA-256 для проверки целостности. Команда сообщает эти значения, не печатая исходник. Другие окончания строк меняют байты исходника и их идентификаторы.

3. Восстановите исходник

SH
lispex image decode --image heading-image.lspx.png --out recovered.lspx

Команда создаёт recovered.lspx с теми же 219 байтами, что и в исходном файле. Она ничего не печатает и завершается с кодом 0. Откройте файл, чтобы прочитать четыре строки из примера выше.

Команды encode и decode сохраняют существующие выходные файлы. Если файл уже есть, выберите другое имя результата.

4. Запустите изображение

SH
lispex run --image heading-image.lspx.png

Команда печатает.

следующая-страница

Код завершения равен 0. Перед запуском команда полностью декодирует и проверяет изображение, в том числе пересоздаёт его для побайтового сравнения. Только после этого восстановленный исходник поступает в интерпретатор.

Используйте Песочницу

Песочница работает с файлами изображений локально в браузере.

ДействиеРезультат
Создать изображениеСоздаёт изображение текущего содержимого редактора
Открыть изображениеПроверяет локальный PNG или ZIP перед показом
Перейти на страницуПоказывает PNG-страницу полностью проверенного изображения
Восстановить исходникЗаменяет содержимое редактора без запуска программы
Скачать изображениеСохраняет файл изображения
Запустить изображениеОтдельным действием проверяет изображение и запускает исходник

Native и npm предоставляют одинаковые файловые команды. Открытая сборка WASM предоставляет те же операции Rust с изображениями для встраивания. Песочница использует их для работы с локальными файлами.

Передавайте исходный файл

Передавайте исходный PNG или полный ZIP. Для нескольких страниц используйте ZIP как вход для inspect, decode или run --image.

Снимки экрана, изменение размера или цвета, добавление метаданных, повторное сжатие, пропуск и перестановка страниц отвергаются. Декодер читает точные байты файла. Он не использует OCR или распознавание камерой.

Передайте исходник Ваучеру

Изображение содержит доступные для чтения исходные данные. Ваучер Лиспекса проверяет производителя и применяет политику доверия получателя. Он также связывает данные с запросом, выполняет программу повторно и позволяет локально решить, принять ли результат.

Передавайте изображение как исходник Ваучера через --source-image. Сначала команда полностью проверяет изображение. Native принимает эту опцию для идентификатора исходника, создания политики, выпуска, просмотра, проверки подлинности, повторного выполнения и проверки допуска. npm принимает её для идентификатора исходника, создания политики и проверки подлинности. Получатель передаёт точный вход и применяет правила авторизации, связанные с этим запросом.

Формат и безопасность изображений · Обзор Ваучера · «Лиспекс в вашем приложении»