Фуф. С оформлением сайта я вроде как закончил. 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 килобайт трафика для загрузки. Остались какие-то вопросы?
Скрипт 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