2010-12-12 2 views
4

Проблема: Я пытаюсь написать «параллельный текст», используя reStructuredText. Под «параллельным текстом» я подразумеваю нечто вроде аннотированных произведений художественной литературы, где текст находится в двух столбцах. В левом столбце содержится основной текст, а в правом столбце - комментарий. Я буду использовать sphinx для создания документации HTML и Latex.Sphinx для написания «параллельного текста»

У меня есть следующие требования:

  1. Как уже упоминалось выше, я должен быть в состоянии набирать текст в две колонки, одна для основного текста и один для аннотаций.
  2. Аннотации могут быть «уровнем предложения» и не всегда будут «уровнем абзаца». I.e., я хочу иметь возможность комментировать различные предложения в абзаце или целом абзаце.
  3. Будет здорово иметь режим, в котором все аннотации отключены, поэтому выходные HTML и латекс содержат только основной текст. В этом случае я хотел бы иметь возможность использовать всю «недвижимость» в среде, а не только колонку.
  4. Будет очень приятно иметь функцию «Список аннотаций», если это возможно.

Я довольно новичок в реструктурированном тексте и в Sphinx, но имеет значительный опыт работы с Python. Я ищу некоторые идеи о том, как делать то, что я хочу делать. Я читал о reStructuredText, а также о написании расширений Sphinx, поэтому написать расширение для Sphinx не может быть и речи.

Кто-нибудь сделал что-то подобное раньше?

Спасибо!

+1

Не могли бы вы использовать таблицы? http://docutils.sourceforge.net/docs/ref/rst/restructuredtext.html#tables Тогда вы можете каким-то образом изменить границы ячеек таблицы и поля ячеек, чтобы получить то, что вы хотите. Возможно, придется сделать какой-то настраиваемый файл CSS. –

+0

Росс, это интересная идея. Я попробую это. Благодаря! –

ответ

2

Это похоже на сноски? Я бы предложил взглянуть на http://ignorethecode.net/blog/2010/04/20/footnotes/

Если они соответствуют вашей цели, интеграция их не должна быть слишком сложной. Sphinx выводит сноски со специальным классом. Замена

$ ("а [REL = 'сноска']")

в коде, с JQuery селектор CSS ваш выбор должен дать вам то, что вы хотите.

+0

Мне нравится эта идея. Одна из проблем заключается в том, что, поскольку в аннотации будет * много * комментариев, в главном тексте будет много сносок. Я также хочу видеть все аннотации в контексте. Директива 'sidebar' - это, вероятно, то, что мне нужно, но проблема в том, что боковая панель плавающая, поэтому она не гарантируется, что она явно связана с основным текстом. Благодаря! –

+0

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