rst for home page

Никто не любит писать руками (x)html, но браузеры больше ничего не понимают :]. Приходится генерить его всякими извратскими способами. Я с недавних пор юзаю rst или reStructuredText.

Здесь можно посмотреть результат сгенеренной и исходной страниц.

Примеры использования разметки rst.

Я это дело настроил на apache-2.2 и docutils-0.7.

Нам нужно зарегать расширение .rst как нечто, что подается на вход генератору страницы. Я просто написал cgi. Можно пойти дальше - вкрутить кэширование в cgi или написать свой mod_чегонибудь, но у меня нагрузка пока просто смешная.

В корне нашего сайта лежит .htaccess с таким обработчиком:

# mod_action
AddHandler reStructuredText-type .rst
Action     reStructuredText-type  /rst/handle-rst.cgi

DirectoryIndex index.rst

Содержимое rst/handle-rst.cgi:

#!/bin/sh -e
if [ x"$PATH_TRANSLATED" = x ]; then
echo -e -n "Content-Type: text/plain\r\n"
echo -e -n "\r\n"
echo -e -n "Ok, please tell me how did you get here?"
else
if [ x"$QUERY_STRING" = x"raw" ]; then
echo -e -n "Content-Type: text/plain\r\n"
echo -e -n "\r\n"
# raw dump
cat "$PATH_TRANSLATED"
else
echo -e -n "Content-Type: text/xml\r\n"
echo -e -n "\r\n"
/usr/bin/rst2html.py \
--link-stylesheet \
--stylesheet-path="/rst/css/html4css1.css" \
"$PATH_TRANSLATED"
fi
fi

Тут мы особым образом обрабатываем запрос ‘?raw’ (выводим файл ‘как есть’) или генерим xml скриптом rst2html.py (входит в состав docutils)

Posted on December 15, 2010
comments powered by Disqus