Как добавить Google Analytics в reStructuredText?

Я использую реструктурированный текст для создания простых веб-сайтов. Итак, у меня есть много файлов *.rst, в которые я хочу добавить код Google Analytics. Но насколько я знаю, что-то подобное добавить нельзя?!

Я использую rst2html для преобразования файлов в html.


person Mark    schedule 04.07.2010    source источник


Ответы (4)


Я только что обнаружил простой способ добавления пользовательского содержимого в файлы .rst. Все, что вам нужно сделать, это изменить шаблон для html файлов.

Создайте новый шаблон template.txt и следующее содержимое к нему (на основе шаблона по умолчанию):

%(head_prefix)s
%(head)s
<!--your tracking code-->
%(stylesheet)s
%(body_prefix)s
%(body_pre_docinfo)s
%(docinfo)s
%(body)s
%(body_suffix)s

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

Теперь вы можете использовать свой собственный шаблон с модулем записи rst2html:

rst2html.py --template=template.txt document.rst
person Matti Pastell    schedule 13.10.2010

Я думаю, вам придется расширить docutils HTML Translator или Writer, чтобы включить GA.

Если возможно, я бы рекомендовал отказаться от rst2html и обычных docutils и вместо этого использовать Sphinx. Он основан на docutils, но гораздо мощнее. Его HTML-шаблоны можно легко расширить, включив в них произвольные HTML-теги, такие как скриптовые теги для Google Analytics.

person lunaryorn    schedule 04.07.2010
comment
Я посмотрю на Сфинкса. Спасибо. - person Mark; 06.07.2010
comment
Sphinxis отлично подходит для руководств, но для веб-сайта вы можете предпочесть rest2web voidspace.org.uk/python/ rest2web - person Matti Pastell; 06.07.2010

Вы можете вставить html в первые файлы, используя . .raw:: директива.

person Matti Pastell    schedule 05.07.2010
comment
К сожалению, мне нужно добавить HTML в заголовок. Насколько я вижу, это невозможно с директивой raw::?! - person Mark; 06.07.2010
comment
В случае GA вам не нужно добавлять код в заголовок, но прямо перед тегом ‹/body›, что означает, что вы размещаете его в конце вашего .rst документа. - person Matti Pastell; 06.07.2010
comment
Google сказал: скопируйте следующий код и вставьте его на каждую страницу, которую вы хотите отслеживать, непосредственно перед закрывающим тегом head. Но я также нашел это: google.com/support/ analytics/bin/ Думаю лучше добавить в шапку... - person Mark; 06.07.2010

В качестве решения вашей проблемы вы можете использовать инструмент массового поиска/замены, чтобы добавить код Google Analytics в файлы после их обработки переводчиком. Просто найдите тег </body> и замените его на <!--your tracking code--></body>.

Я проверил, можно ли включить необработанный HTML в reStructuredText (и оставить его нетронутым), но это не представляется возможным...

person alecwh    schedule 05.07.2010
comment
на самом деле, вы можете добавить невидимый текст в RST с синтаксисом .. comment, он будет преобразован в комментарий при преобразовании в HTML - person mykhal; 05.07.2010
comment
Я не думаю, что вы можете включить HTML-разметку... это комментарий. - person alecwh; 05.07.2010
comment
Хорошая идея! Спасибо. Но мне нужно что-то более комплексное. - person Mark; 06.07.2010