Этот сайт — моя персональная записная книжка. Интересна мне, по большей части, история, своя жизнь и немного программирование.

«Виола»: математический модуль

Наверное, можно подумать, что я забросил заниматься браузером «Виола» — первым графическим браузером с потрясающими для своего времени возможностями. На самом деле — ничего подобного: почти каждый день, с редкими пропусками, я что-то в нём правлю.

Тот исходный код, который мне достался, был в статусе беты, но даже для беты тут очень много вполне очевидных багов, которые нужно исправить. А ещё — много впечатляющих вещей, которые автор, по всей видимости, не успел доделать. Часть из них я нашёл чисто случайно, как, например, модуль для отображения математических формул.

Нашёлся он совершенно случайно, когда я чинил баг с отображением символьных сущностей HTML — плёвая ошибка: дело было в том, что char у меня в компиляторе — тип со знаком, а в компиляторе автора, видимо, был без него. Из-за этого часть функций, работающих с символами, работала неверно.

В общем, обнаружив модуль для отображения математических функций, я занялся им. Основное поправил, но кое-что до сих пор работает неправильно, буду позже править, думаю на это уйдёт ещё много сил.

Вот как выглядят формулы:

<math>&integral;<sup>&infin;</sup><sub>0</sub> e<sup>-x</sup> = <box>&sigma;<over>2</box></math>

Это третья формула на моём скриншоте, можно посмотреть чему соответствуют отдельные элементы. Как можно убедиться, реализованное в «Виоле» почти в точности совпадает со стандартом HTML Math, разрабатываемым когда-то Консорциумом Всемирной паутины, который так и остался в стадии черновика. Правда в браузере реализована только малая часть.

Синтаксис довольно простой, но, в принципе, несложные формулы записать можно. Вся математика отображается красным, я думал это какой-то баг, но нет, это такая особенность.

2 комментария
AZ 19 дн

А как ты понял, что красная математика это особенность, а не баг?

Евгений Степанищев 18 дн

Я подумал, что это баг, потому что все сущности выводились на обычном фоне, а математические — на красном. Они явно были картинками, а не символами, как всё остальное, поэтому я подумал, что это баг декодирования картинки. Позже выяснилось, что это и не картинки, рисуется всё векторно и цвет там ставится явным образом:

static char _slotValue_HTML_math4[] = "red";

AZ 18 дн

Ааа, я просто подумал, что может быть какая-то история прям за этим быть, копание в vcs(кстати, она там была CVS, SVN или вообще без неё?), а то такой красный, выглядит как ошметок отладки, пока прозрачность трушную не сделал например.

Евгений Степанищев 18 дн

Без, конечно :-)

CVS уже существовала в те годы, но в ранние 90-е не так уж много проектов её использовали.