Математика и код
Математика
$…$ — строчная формула, $$…$$ — выключная:
The famous one is $E=mc^2$, and this is a display formula:
$$
\int_0^\infty e^{-x^2}\,dx = \frac{\sqrt{\pi}}{2}
$$- Правила разделителей взяты из Marp Core (по marp-core 4.4.0):
$с пробелом после него не открывает формулу, а с цифрой после него не закрывает её, так что цены вроде$5 and $10остаются текстом. - go-tex/math набирает каждую формулу во
встроенный SVG с размерами в
em, так что она следует размеру текста и стоит на его базовой линии. Один и тот же SVG используется в HTML-странице, в изображениях и в PDF. - Формула, которая не разбирается, остаётся видимой как написана; ошибка
сохраняется в её
title.
Код
Блоки кода раскрашивает go-rouge, который пишет имена классов highlight.js — те, что стилизуют темы Marp:
```go
fmt.Println("hello")
```Язык, неизвестный go-rouge, записывается простым текстом, как это делает Marp Core.
Номера строк
В v0.8.0 блок может нумеровать свои строки. В Marp Core номеров строк нет, и он игнорирует то, что идёт после языка в ограждении, поэтому параметры пишутся в фигурных скобках, и презентация, которая их использует, отрисовывается в Marp так же, как без них:
```go {lineNumbers}
func main() {
fmt.Println("hello")
}
```
```go {lineNumbers=10}
// starts at 10
```| Запись | Значение |
|---|---|
{lineNumbers} | нумерация с 1 (читаются также {lines:true} из Slidev и {.numberLines} из Pandoc) |
{lineNumbers=10} | нумерация с 10 (также startLine=10, startFrom="10" из Pandoc) |
{lineNumbers=false} | без номеров, что бы ни говорил слайд |
Чтобы включить нумерацию для каждого блока слайда и следующих за ним, задайте
директиву: <!-- lineNumbers: true --> (_lineNumbers — для одного слайда).
Kind (тип слайда) может задать её сразу для семейства слайдов:
kinds:
listing: {lineNumbers: true}Каждый номер начинает свою строку внутри блока кода темы, отделённый чертой. Он остаётся на базовой линии своей строки, даже если строка выше обычной, например из-за выноски или эмодзи. Номера приглушены цветом, смешанным из цвета кода и его фона, с контрастом не ниже 4,5:1 в темах default, gaia и uncover, светлых и тёмных. Они не выделяются на странице и не читаются скринридерами. В PDF они нарисованы, но исключены из текста, так что извлекатель текста читает только код. В файле PowerPoint или OpenDocument они — редактируемый текст в начале каждой строки. Презентация, не использующая этот параметр, отрисовывается как раньше, байт в байт. Подсветка выбранных строк пока не поддерживается.
Выноски в коде
В v0.8.0 строка кода может заканчиваться пронумерованным кружком, который отсылает к примечанию под блоком. Синтаксис — из Quarto, он же форма комментария в Asciidoctor. Маркер — это комментарий на собственном языке кода, так что код остаётся корректным, а примечания — это упорядоченный список сразу после блока:
```go
func main() { // <1>
x := load() // <2>
fmt.Println(x)
}
```
1. The entry point.
2. Reads the input.| Запись | Значение |
|---|---|
// <1>, # <1>, -- <1>, ; <1>, % <1>, ' <1> | строчный комментарий, содержащий только маркер: заменяются оба — комментарий и маркер — кружком |
<!-- <1> -->, /* <1> */ | то же для языков с обрамлёнными комментариями |
// <1> <2> | два кружка на одной строке |
x = 1 # count <1> | текст комментария остаётся, кружок идёт после него |
Маркеры становятся кружками, только если список сразу после блока начинается с 1 и содержит пункт для каждого номера. Иначе блок остаётся как написан. Кружки — это кольца цвета кода в темах default, gaia и uncover, светлых или тёмных. Пункты списка нумеруются такими же кружками.
Кружки не выделяются. Копирование кода со страницы даёт код без маркеров. В PDF они — векторы, исключённые из текста, а в файле PowerPoint или OpenDocument — редактируемые фигуры. Выноски сочетаются с номерами строк. В Marp Core выносок нет (marp-core 4.4.0), поэтому в Marp комментарии и нумерованный список показываются как написано. Презентация, которая их не использует, отрисовывается как раньше, байт в байт.
В v0.9.0 кружок и его примечание находят друг друга в HTML-странице. Наведение
на кружок или переход к нему клавишей Tab подкрашивает его примечание, и
примечание делает то же со своим кружком. Это то, что делает
code-annotations: hover в Quarto, но здесь это делает одна лишь таблица
стилей, без скрипта. Поэтому оно одинаково работает и в изолированном
превью Playground, и в превью VS Code, которые оба ограничивают скрипты. Каждый
кружок описан своим примечанием, так что скринридер читает примечание, когда
доходит до кружка. Подсветка плавно появляется, только если читатель не просил
уменьшить анимацию. Изображения, PDF, файлы PowerPoint и OpenDocument не
меняются, байт в байт.
Шрифты
Встроены Lato Regular, Bold, Black и курсивы, а также Roboto Mono Regular, Bold и курсивы, так что заголовки gaia получают свою насыщенность, а курсивный текст отображается курсивом.
Created on by tannevaled
Modified on by tannevaled