Markdown как способ предпочесть содержание форме

Фуф. С оформлением сайта я вроде как закончил. That’s a long journey, так сказать.

А теперь — почему, собственно, я решил этим заняться.

Прежде всего — можно посмотреть, например, Луку Кузнецова и его видео про интернет-лэндлордство. Можно порыться на других сайтах neocities, если вы не боитесь наткнуться на “левачество”, от которого Качинский в гробу бы вертелся. Это всё про идеологическую сторону вопроса, а идеология, как известно, всегда проигрывает чистому пересчёту выгоды.

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

Доводы

Пункт первый. Теория информации

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

Лучше всего веб-страницы подходят, на удивление, для передачи текстовой информации. HTML-формат был заточен под передачу информации, CSS и JavaScript его сопровождают. По натуре своей HTML-формат текстовый и медийные вставки содержит именно как вставки с файлами. Всё это вроде как интуитивно понятно, но в сознании веб-девелоперов почему-то не отпечаталось. Большинство предоставляемых в Сети ресурсов — не документы, а “сервисы”, какие-то программные системы, по недоразумению представленные через HTML, а не как обычные приложения. Результат? Вместо предоставления чистой информации Web 3.01 предоставляет “услуги”. Это наследство “услугомании”, поглотившей современное общество в запале его потребительства. Излишества, отчуждающие от реальности.2

Давайте рассмотрим, какие бывают виды информации по их медиуму и в чём их преимущества и недостатки. Я для вас составил удобненькую табличку — кстати, в Markdown'е.3

Типы информации
(курсивом выделены доводы к доступности, подходящие скорее для третьего пункта доводов)

Текст Изображение Аудио Видео
+ Высокая содержательность + Доступность подачи + Не требует зрительной фиксации + Доступность подачи
+ Простота производства (=> больше материала) + Потенциально высокая содержательность + Доступность подачи + Усвояемость информации
+ Простота навигации + Умеренный вес
+ Малый вес
+ Доступен слепым и глухим
+ Читается даже с читалки
– Более низкая доступность подачи – Обычно всё же не очень содержателен – Низкая удельная содержательность (в минуту) – Низкая удельная содержательность (в минуту)
– Иногда может весить слишком много – Высокий вес – Крайне высокий вес
– Требует более современный (=> более дорогой) компьютер и приемлемую скорость интернета

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

Пункт второй. Воздержание

Второй пункт то ли следует из первого, то ли сопоставим с первым — в общем, идея примерно та же. Информация, как я писал раньше, бывает медийной и текстовой. Для того, чтобы пользоваться оставаться в связи с реальностью, следует избегать той информации, которая несёт в себе больше вреда, чем больше — информации, которая настолько доступна и медленна, что является для ума больше пустой кашей, чем чем-то ценным. (Это, кстати, причина, по которой я склоняюсь к использованию low-end техники — подробнее как-нибудь потом.) Поберегите свои глазки: воздержитесь от мерцающих сменяющихся изображений и дайте мозгу отдохнуть за прочтением текста. Мир не убежит, а узнаете не меньше, если не больше — текстов в мире больше, чем хороших фильмов и роликов.

Аллах послал Интернет, а Иблис добавил соцсети и сервисы с мультимедиа.4 Дом знания превратили в вертеп разбойников. Рекомендую пойти против тренда.

Пункт третий. Доступность

А об инвалидах вы подумали?

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

И вопрос касается не только слепых. Индусы, африканцы, солдаты в армии, прочие third-world powers без доступа к широкополосному интернету и мощным устройствам вынуждены быть лимитированными буквально 1-2 процентами интернета. Сайты обновляются и перестают быть доступными, а вместе с ними исчезает и информация. Хорошо бы этому тренду противодействовать.

Да и свои деньги поберегите. Чего их лишний раз тратить на трафик.

Пункт четвёртый. Предпочтение

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

Применение

Ну и теперь касательно того, как это всё реализуется.

HTML, к сожалению, язык именно что разметки документа, а не его написания, и к собственно прочтению контента “всухую”, без рендеринга браузером, он не адаптирован. Это неудобно. Хочется работать через консоль, через вимы-емаксы, на худой конец хочется что угодно, даже через графический интерфейс работать, только бы не мучаться с многочисленными SGML-тегами по всему тексту. Вместо того, чтобы искать какие-то навороченные решения, я предпочту простым самопальным скриптиком генерировать свою страницу из какого-нибудь более комфортного, но при этом достаточно гибкого языка. Например, из Markdown'а, заточенного как раз под подобные нужды.5

Я даже больше скажу — ни строчки на сайте не написано напрямую, всё сгенерировано из Markdown'а посредством спецскрипта и отправлено на сервер (см. приложение). Я мог бы конвертить страницу не в HTML, а в какой-нибудь другой формат (если бы мне не было лень писать конвертер), и это всё равно было бы читаемо. Никаких лишних стилизаций, так что это читаемо хоть на обычном браузере, хоть без JS, хоть без CSS (привет текстовым браузерам, там полёт для этого сайта не просто нормальный, а прекрасный), хоть на экране кнопочного телефона (при условии, что у него есть выход к интернету).

Сайт буквально адаптирован под браузеры уровня Netsurf, Links и W3M, а также на условия плохой связи (которых, правда, в мире уже практически нет, но, как говорится, никогда не поздно). Я специально сверял содержание текста во всех трёх браузерах. И даже сжимал-разжимал окошки до смешных размеров.

Изображений на сайте нет. И, скорее всего, не будет. Взамен будут ссылки на изображения. CSS-файл весит меньше полукилобайта. Никаких тяжеловесных jQuery и прочих js-фреймворков. Всё летает, всё читаемо, всё есть текст. Не страницы, а мечта библиофила.

Сайт для тех, кому нужно содержание.

Заключение

Эта страница весит 21 килобайт. Стартовая страница Гугла просит 40 килобайт трафика для загрузки. Остались какие-то вопросы?

Аппендикс, так сказать.

A1. Скрипт для сайта

Скрипт upload, преобразующий Markdown-файлы в HTML-документы и заливающий на neocities (вообще не гарантирую обновления кода, это просто рабочая версия скрипта.):

#!/bin/sh
MDFILE="$1"
HTMLFILE="${MDFILE%.*}.html"
echo -e '<!DOCTYPE html>\n<html>\n<head>' >> $HTMLFILE
cat >> $HTMLFILE <<- EOM
  <title>${MDFILE^^}</title>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <meta property="description" content="Ruslan Magometaev personal website">
  <style>body{background:#000;color:#FFF;line-height:1.5}pre{background:#111}a{color:#9E9}pre,table{display:block;overflow:auto}p,pre{padding:.3% 2%}</style>
</head>
<body>
EOM
markdown -f+fencedcode -f+footnotes $MDFILE >> $HTMLFILE
# Fix default Markdown for Links compatibility
sed -i 's/style="text-align:center;>"/align="center">/g' $HTMLFILE
sed -i 's/<table>/<table border>/g' $HTMLFILE
echo -e "\n</body>\n</html>" >> $HTMLFILE
sed -i '/^$/d' $HTMLFILE
neocities upload -d $(dirname $HTMLFILE) $HTMLFILE
mv -f $HTMLFILE .discarded

Использование (на примере этой страницы):

./upload md2web.md

A2. Полезные ссылки


Return to main page


  1. Хотелось бы дистанцироваться от всяких представлений о Web 3.0 как о “семантической паутине” или типа того. Современный Веб уже давно перестал быть похож на то, что называлось Web 2.0, и наше дело — зафиксировать то, какой является новая версия, вместо того, чтобы отрицать реальность и поддерживать свои вымышленные определения. Web 3.0 уже здесь — и это мир корпоративных сервисов.
  2. Подробнее см. Индустриальное общество и его будущее Теодора Д. Качинского (версия на английском).
  3. Я знаю, что выборка субъективная, а я не эксперт в этой области. Я не обещал, что мою информацию можно принять на веру. Я даю достоверную информацию (не забудьте в этом убедиться) и делаю выводы исходя сугубо из того, что сам и дал. А вы, будьте добры, добавляйте к этому свои собственные знания и смотрите, не поломалось ли ничего. Если поломалось — пишите мне по моим контактам когда я их выложу на сайт. Считайте это запоздалым дисклеймером.
  4. Не является фетвой. И инвестиционной рекомендацией тоже. И вообще это художественный вымысел.
  5. Мой парсер Markdown'а позволяет HTML-вставки. Иногда, довольно редко, я ими пользуюсь, и я оставляю за собой право на это. Это гибкость не в ущерб концепции, ибо вставки остаются вставками. В Markdown-исходнике этой страницы HTML-тегов нет.