Задумал написать форум. Вообще-то это должно быть смешно, да? :-). Столько разных форумов понаписано — выбирай только. Но я уверен, что форумов не может быть много: есть толпа вариантов и мелочей, которыми можно быть довольным или недовольным. Вот и у меня появилось достаточно идей, желаний и недовольств моим текущим форумом, которые в сочетании с простотой написания веб-приложений на Django, это дело оправдывают.

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

Но и минусы меня слишком уж достают:

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

Ну и последняя причина, по которой я таки буду его писать — это то, что я хочу сделать этот процесс публичным прямо у себя на блоге в качестве примера разработки типового веб-приложения на Django. Я не обнаглею настолько, чтобы называть это "учебником" (мне бы первый закончить :-) ), но я все же думаю, что многим это будет полезно или просто интересно. А тем, кто только присматривается к Django, позволит составить более четкое представление о фреймворке.

Регулярность постингов при всем желании обещать не могу, но определенно надеюсь, что они будут случаться довольно часто.

Описание того, что в форуме будет, я свел в небольшую функциональную спецификацию, которую привожу ниже. Она не вдается в подробности реализации, им я буду посвящать каждый отдельный пост по теме. Также она не является и окончательной: это мое видение минимальной функциональности, которую я хочу видеть в версии 1.0. Поэтому, прошу вас делиться в комментариях своими "rulezz"ами и "suxx"ами, дельными предложениями, а также тыканиями носом в очевидные ляпы. Должен, впрочем, сказать, что не берусь подробно прямо в комментариях реагировать на все предложения и описывать причины своего выбора. Часто это просто "потому что мне так нравится" :-).

А, вот еще... Форум называется "Cicero" в честь древнего римлянина, известного у нас как Цицерон. И известен он прежде всего ораторским умением, которое применял на всяких древнеримских форумах.


Cicero. Функциональная спецификация

Cicero — это софт для веб-форума. Главная задача этого форума — давать пользователям возможность задавать вопросы и получать ответы. А вот задача поддержки долгих дискуссий без особенной привязки к заданной теме как раз не ставится. Другими словами, это "форум-техподдержка", а не "форум-чат".

Основная аудитория форума — гики.

Структура

Топик и сообщения

Основная структурная единица — топик (он же — "тема"). Это набор сообщений, посвященный ответу на вопрос, решению проблемы, реакции на баг-репорт, деланию объявления и т.д. Топик создается человеком, который пишет первое сообщение, которое и задает тему. Дальше топик может дополняться сообщениями людей по мере необходимости.

Топик посвящается одной конкретной теме. Эта тема видна в виде заголовка топика. Сообщения внутри топика своих заголовков не имеют.

Форум должен поддерживать простое и легкое отделение в новый топик сообщений, уводящих топик от своей темы.

Сообщения, организованные в топики и форумы, составляют основное содержимое форума. Помимо него у форума есть еще неосновное содержимое: профили пользователей, административные странички и т.д.

Форумы

Разговоры вокруг одной общей тематики объединяются в Форум. Форумы могут объединяться в поименованные группы, но это не обязательно.

Поиск сообщений

Поиск сообщений идет по текстам сообщений.

Поиск должен работать. С русским языком, с игнорированием регистра букв. По возможности — понимать, что в русском языке у слов бывают склонения.

Постинг

Самое главное: textarea для написания текста должна быть большой!

Форма для новых топиков находится на странице форума, форма для ответов в топик — на странице топика. Отдельных "расширенных" страниц для них не предусмотрено

Система разметки текста по умолчанию — привычный многим BB-код. Но пользователь сможет выбрать другой синтаксис у себя в профиле. Пока единственным таким синтаксисом будет Markdown.

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

Интерфейс

Основной интерфейс форума похож на все остальные форумы: список самих форумов, в них постраничный список топиков, в них постраничный список сообщений. Но есть и несколько особенностей:

Ajax

Весь процесс обмена информацией между сервером и браузером должен быть построен на HTML-формах и ссылках, и работать в отсутствие Ajax'а и javascript'а. Если же ajax есть, то он должен подключаться к формам и ссылкам в тех местах, где это имеет смысл: а именно, где обновление малой части страницы быстрее и удобнее, чем перезагрузка ее полностью. Менять ajax'ом большую часть страницы — извращение.

Администрирование

Административные действия должны быть по возможности вписаны в основной интерфейс:

Функции, которые нельзя представить таким образом, будут поддержаны встроенной админкой Django.

Авторизация

Авторизация на форуме не обязательна, можно читать и писать без авторизации вообще.

Вместе с тем, авторизация поддерживается, и нужна для хранения пользовательских профилей. Авторизация происходит исключительно по OpenID. Если OpenID URL пользователя содержит данные в микроформате hCard, форум должен вытягивать оттуда ник, ФИО (вомзожно что-то еще).

OpenID — отвязная штука, но когда она выглядит просто как URL, это неинтересно. Поэтому OpenID пользователей должны интересно визуализироваться.

Pingback

Сообщения в форуме должны рассылать pingback по всем внешним URL'ам (в смысле, не внутрь форума), которые пользователи указывают в сообщениях.

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

Conditional get

Форум должен отслеживать время изменения топиков и сообщений и использовать механизм Last-Modified/If-Modified-Since, чтобы не грузить базу и клиента генерацией и передачей неизменного контента.

Синдикация и APP

Создание, редактирование и чтение основного содержимого форума должно быть доступно через Atom Publishing Protocol — по сути стандартный машинный протокол чтения и постинга произвольного авторского контента в произвольные онлайн-коллекции.

Синдикация содержимого форума в формате Atom — часть реализации APP.

Антиспам

Форум должен пытаться не пускать спам, и одновременно пытаться не нагружать сильно внимание пользователей и модераторов к этому вопросу. В частности:

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

"Белый список" OpenID пользователей будет предоставляться для публичного чтения, участвуя таким образом в децентрализованной базе "хороших" OpenID (см. social whitelisting). Также и сам форум должен иметь возможность подключать к себе аналогичные "белые списки" с других хостов.

Комментарии: 46

  1. Flack

    Гики замерли в ожидании :)

  2. Лёха Скрипник

    Самое главное: textarea для написания текста должна быть большой!

    Она должна быть небольшой, но авторасширяемой при вводе текста. Как в гталке.

  3. Евгений

    Идеи хорошие, будем наблюдать за процессом.

  4. Горбунов Олег

    Наверное, стоит добавить вполне очевидное удобное цитирование предыдущих сообщений, и их частей. Но я уверен, что вы это планировали.
    Про OpenID и hCard — замечательная мысль, несомненно требующая реализации!

  5. Майк

    Очень интересно. Буду следить.

    Интересующие вопросы:

    • Какова глубина "Группа форумов/Форум/Тема", будет ли наращиваться без ограничений (как в bulletin)?
    • Какие права и насколько произвольно можно будет расставлять на папки/темы?
    • Механизм подключения плагинов
    • Окончательно ли решение о плоской структуре топика? Оно действительно проще, чем древовидное (например, rsdn.ru), но теряется простота модерирования.
    • "Основная аудитория форума — гики." переводится как "никаких рюшечек"?
    • Окончательно ли решение про "отсутствие кучи отвлекающих деталей"? Можно ли будет реализовать их плагинами?

    Извините, если сразу много, просто тема действительно интересна.

  6. voldmar

    «сам форум не будет регистрировать пинги извне» — может стоит оставить эту фичу? Ведь на топики в форумах, особенно полезные, часто ссылаются.

  7. Алексей Головко

    Иван,

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

    Немного о себе: веб-разработчик с опытом, с python/javascript/ajax на ты :). С Django опыта не много, но, насколько я понимаю, это поправимло.

    Если предложение интересно, то e-mail в комментарии :)

    P.S. Очень понравился подход к разработке (а именно составление достаточно подробной функциональной спецификации), хотя некоторые моменты, на мой взгляд, можно обсудить.

  8. lorien

    Сам использую punbb уже около 1.5 лет. За полтора года движок почти не изменился, лишь иногда секурити патчи выходят. Согласен, что хаки для punbb - это ужасно, кроме того внутренняя архитектура движка тоже оставляет желать лучшего - вермишель из логики, кусков шаблонов и обращений к БД.

    Сам хотел в том году писать движок на PHP, даже сайт замутил, думал, это простимулирует меня на работу, но потом процесс заглох ) Мои идеи по поводу форума я изложил тут: http://kolobb.org/forum/viewtopic.php?id=3, правда потом, подумав, я понял, что реализация движка, гибко поддерживающего плагины - довольно нетривиальная задача.

    К настоящему времени, у меня есть реальная необходимость в python-движке форума для портала pydev.ru, поэтому я заинтересован в разработке.

  9. Денис Барушев

    Ой, как все это правильно. Буду внимательно следить за процессом.

  10. pythy

    Разговоры вокруг одной общей тематики
    объединяются в Форум. Форумы могут
    объединяться в поименованные группы,
    но это не обязательно.

    Даешь форум с виртуальными папками! Теги в массы!

  11. Murkt

    Даешь форум с виртуальными папками! Теги в массы!

    Это будет уродски :)

    Основная структурная единица — топик

    А как по поводу нумерации топиков? Каждому форуму свою нумерацию, или сквозную на всю толпу топиков?

  12. Der Ketzer

    Создать хороший движок форума, без идиотских графических смайликов, без получасовой загрузки страниц и прочего кретинизма, просто замечательная идея. Еще было бы неплохо, если бы он получил широкое распространение =).

    Самый лучший форум, из тех, что я видел - http://ganjawars.ru/forum.php. Однако, недостатков хватает.

    З.Ы. Если уж и отдавать записи через RSS не полностью, то было бы неплохо юзера об этом предупреждать... Ссылку что ли ставить на продолжение или многоточие в конце.

  13. Сергеев Сергей

    было бы не плохо забить в требованиях независимость от шаблонов (к сожалению часто встречается), а следовательно и поддержку валидности xHTML кода :)

    а идея не нова и много копий было сломано, но как и сказано форумов много не бывает :)

  14. igorekk

    Иван, ждём :)
    Благодаря этому сайту я "подсел" на Django и забываю php как страшный сон.

  15. User

    Что может быть проще: реализовать загрузку отдельных элементов (сообщений, юзерских данных, названий тем или форумов) через Ajax. Чтобы, во-первых, каждый раз не грузился весь скелет, а во-вторых, можно было выбрать, сколько и каких элементов должны отображаться. Когда юзер, например, переходит вперед на 1 сообщение, скрипт удаляет один верхний контейнер вместе с сообщением и добавляет один (который уже загружен) внизу, куда и грузится новое сообщение. Все сообщения кэшируются (при обновлении сообщается только время в сжатом формате - соответственно, если сообщение было обновлено, грузится апдейт с отображением истории).

    Плюс, для особо продвинутых гиков, предусмотреть возможность создания оффлайн-клиента типа janus/forumizer (вообще по интерфейсу здесь лучше ориентироваться на the bat, но пускай клиент пишут сами гики!) Это же значительная экономия трафика, а если что не так, то сделать поддержку еще и "плоской" версии.

    Пока все, что я видел из форумных движков - отстой. Особенность PHP?

  16. Дмитрий Честных

    User:

    Когда юзер, например, переходит вперед на 1 сообщение, скрипт удаляет один верхний контейнер вместе с сообщением и добавляет один (который уже загружен) внизу, куда и грузится новое сообщение.

    Первый вопрос: зачем?
    Второй вопрос: что делать с URL?
    Третий вопрос: экономия трафика так уж важна?

  17. Иван Сагалаев

    Ух! Спасибо за ажиотаж :-). Отвечу на некоторые вопросы скопом.

    Общие забытые мной в статье вопросы:

    • нет, я не планирую делать "самый лучший форум" ни сразу, ни вести его к этому в будущем; я просто хочу написать небольшой законченный проект
    • но да, код будет открыт, буду рад, если кто-то сделает из этой базы "самый лучший форум" :-)

    Про расширяемую textarea. Я не вижу минусов у просто большой textarea. Поэтому не вижу, что решит расширяемая. Поэтому не понимаю, зачем нужно усложнять простое решение.

    Какова глубина “Группа форумов/Форум/Тема”, будет ли наращиваться без ограничений (как в bulletin)?

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

    Какие права и насколько произвольно можно будет расставлять на папки/темы?

    Пока права планируется только два: автор конкретного сообщения и админ.

    Механизм подключения плагинов

    Не будет. Это одновременно и не нужно мне в этой задаче (всегда можно дописать что-то в код), и сложно, потому что загодя не спланируешь, надо по ходу использования выяснять, где людям нужны плагины. А я хочу просто написать форум, большой проект вести не хочу.

    Окончательно ли решение о плоской структуре топика? Оно действительно проще, чем древовидное (например, rsdn.ru), но теряется простота модерирования.

    Да, решение твердое. Честно говоря, ни разу не сталкивался у себя со сложностью модерирования... Ре-е-едкий топик у меня набирает больше 10 сообщений.

    “Основная аудитория форума — гики.” переводится как “никаких рюшечек”?

    Нет, скорее "гиковские рюшечки". Уже припасена одна, связанная с OpenID :-)

    «сам форум не будет регистрировать пинги извне» — может стоит оставить эту фичу? Ведь на топики в форумах, особенно полезные, часто ссылаются.

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

    хочу предложить свое участие в разработке

    Спасибо! Однако, я не вижу, как это можно вложить в формат проекта. Движок уже почти полностью сдизайнен, и большая часть времени у меня будет уходить, я думаю, на посты о коде, чем на сам код. Кроме того признаюсь, что идеи о многих фичах (или об отсутствии таковых) мне настолько дороги, что я просто не готов их обсуждать :-). А если я хочу все фичи написать сам, то потенциальным коллегам останется только исправлять за мной баги. Ну и кто я буду после этого? :-)

    Тем не менее, если кому-нибудь будет не лень присылать мне патчи, фиксящие какие-то баги, буду страшно рад :-).

    Впрочем повторюсь, код будет открыт.

    А как по поводу нумерации топиков? Каждому форуму свою нумерацию, или сквозную на всю толпу топиков?

    Не думал про это с функциональной точки зрения... Сквозной номер (ID в базе) у них, конечно, будет. А разве нужна нумерация внутри форума?

    было бы не плохо забить в требованиях независимость от шаблонов

    Не очень понял, как это... Шаблоны там, конечно, будут отдельно от кода. А поскольку это Django, то я бы даже сказал сильно отдельно.

    а следовательно и поддержку валидности xHTML кода :)

    Кхм :-). Я, наверное, самый известный человек в рунете, довольно холодно относящийся к пользе XHTML, и DTD-валидации. Поэтому это практически невероятно :-).

    Что может быть проще: реализовать загрузку отдельных элементов (сообщений, юзерских данных, названий тем или форумов) через Ajax.

    Можно я отвечу прямо и в тон? :-) Проще — не через Ajax. То, что Вы описали — реально сложнее, чем ссылки. Не "сверхтрудно", а сложнее в системном смысле.

    Экономия трафика и времени на передаче структуры будет копеечной. Структура не будет дико большой.

    Но главное, это разрушает стандартный, знакомый, эффективный интерфейс веба и всю инфраструктуру вокруг него: от закладок до поиска. Делать это только ради модной технологии — не мой стиль :-). У каждого конкретного использования ajax'а должен быть конкретный смысл.

  18. Макс Лапшин

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

  19. Макс Лапшин

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

  20. Иван Сагалаев

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

  21. dp_wiz

    Openid это хорошоо, хорошооо... Будешь свой писать или выдернешь из Zilbo'вского (http://svn.zyons.python-hosting.com/trunk/zilbo/common/openid/) ?

  22. astol

    А почему не сделать топик как ленту в Google Reader, которая подгружает сообщения по мере просмотра? Вот уж ничто не раздражает так, как pagination.

  23. Василий

    поддержу pythy. Если не весь форум на тэгах, то хотя бы удобную работу с тэгами хотелось бы...

    А как насчет WYGIWYS-редактора? (или как он там пишется...)

  24. Mikky

    Re: Василий

    WYGIWYS-редактор? (или как он там пишется…)

    _W_hat _Y_ou _S_ee _I_s _W_hat _Y_ou _G_et
    WYSIWYG (=

  25. dp_wiz

    А как насчет WYGIWYS-редактора? (или как он там пишется…)

    Сильно подозреваю, что будет что-то вроде Showdown для коментов (;

    Я у себя попробовал - неплохо, однако.

  26. Max Ischenko

    На developers.org.ua нет форума как раз из-за отсутствия хорошего форумного ПО. Недавно, правда нашел http://pocoo.org/ — но он тоже пре-альфа.

  27. Alrond

    “Прочитанность” сообщений отмечается не по факту их прочтения, а по времени последнего визита.

    Можно хранить зависимости для всех пользователей для всех топиков.
    По-началу это выглядит, как будто надо создавать огромную базу, но это не так.
    Можно для каждого пользователя иметь запись (text или blob), где номер символа соответствует номеру топика. Таким образом одним символом можно "зашифровать" отношение юзера с топиком.
    Обсуждение подобного здесь: http://www.sql.ru/forum/actualthread.aspx?tid=399774

  28. estapt

    вот люди используют самописный форум на питоне
    http://www.python.promsoft.ru/index.php?action=forum
    у них есть несколько уникальных фишечек

  29. FX Poster

    estapt
    Кажется я чего-то не понял... Почему, если движок на питоне, все ссылки идут через index.php?

  30. Мрачный аббат

    FX Poster
    У меня вот, например, блог целиком на PHP, но все страницы имеют адрес вида /post_name.html
    Расширение в общем случае ни о чем не говорит.

    Иван Сагалаев
    Иван, успехов вам в этом проекте!

  31. bw

    Поддерживаю идею и минимализм :-).
    Как только появится рабочая версия, сразу же начну прикручивать её к своему Twisted-based сайту.

    ..bw

  32. Mikky

    Мрачный аббат

    FX Poster
    У меня вот, например, блог целиком на PHP, но все страницы имеют адрес вида /post_name.html
    Расширение в общем случае ни о чем не говорит.

    Ну Вы же согласитесь, что это крайне странный способ маскировки форума [=

  33. Иван Сагалаев

    На том форуме прямо сейчас на первой странице висит топик "Движок форума на Питоне", где четко написано, что их форум написан на PHP.

  34. dark-demon

    [QUOTE]А как по поводу нумерации топиков? Каждому форуму свою нумерацию, или сквозную на всю толпу топиков?[/QUOTE] не, лучше чпу, как на dklab.ru :)

    [QUOTE]Про расширяемую textarea. Я не вижу минусов у просто большой textarea. Поэтому не вижу, что решит расширяемая. Поэтому не понимаю, зачем нужно усложнять простое решение.[/QUOTE] лучше - авторасширяемая текстареа. тобишь, чтобы скроллинг в ней не появлялся.

  35. xonix

    Обычно сообщения типа "создаю свой форум, cms, ..." (особенно если на PHP - то вообще труба:) ) воспринимаю весьма скептически. Есть в этом како-то мальчишество, но только не в Вашем, Иван, случае :-)
    Питон - отличный язык, и надобно его популяризовать, в том числе в вебе.
    Желаю успехов в этом проекте, уверен, что у Вас получится очередной качественный продукт, т.к. Вы человек не только слова но и дела! Буду с интересом наблюдать за результатами.

  36. User

    "Но главное, это разрушает стандартный, знакомый, эффективный интерфейс веба и всю инфраструктуру вокруг него: от закладок до поиска. Делать это только ради модной технологии — не мой стиль :-). У каждого конкретного использования ajax’а должен быть конкретный смысл."

    Я согласен, что это чуть посложнее очередного клона phpBB или rsdn. Но в то же время проблему с закладками можно обойти - реализовать внутри структуры ссылку на добавление специальной закладки (примерно как в Google Maps). Тут вообще все зависит от того, как планируется юзать форум. Для юзеров, от которых ожидается не очень высокий уровень ИТ-компетентности, вполне можно такое сбацать - как альтернативное представление (фиксированное, древовидное и динамическое).

    Вообще, проблемы аякса - это проблемы браузера. Браузеры спроектированы изначально на просмотр статических документов, они пляшут от Location и Source code, а нужно работать с текущим состоянием страницы и динамическим урлом, который позволяет добиться такого ее состояния. Поэтому аякс и неудобен для гиков, но это не значит, что у него нет перспектив.

    Лично я, потусовавшись по различным форумам, успел "заценить" убогость стандартного интерфейса "страница за страницей, по 10-15-... сообщений". Некоторые форумы содержат тематические данные, которые часто необходимо сохранить все вместе в оффлайне (те же варезники). Поэтому определенной части юзеров явно пригодится клиент или, скажем, гейт в ннтп - rsdn вот сами и распространяют клиент rsdn@home. Это как с почтой - кто работает эпизодически, тому веб, а кто постоянно, тому бат. Плюс ко всему редактор постов - еще более нужная вещь, хоть и приведет к цвето-шрифто-размерному беспределу. Опять же, главное - предназначение форума, у каждого движка свои особенности применения. И, в принципе, для начала лучше сугубо минимальный функционал сделать, если он будет работать, чем нечто навороченное и глючное. Мне вот больше по душе ru-board, чем пхпбб со стандартной темой. А как-то еще набрел на иноязычный форум с русским разделом - в один "прекрасный" день афтары не нашли ничего лучше, как конвертировать его из 1252 в юникод, в результате то, что получилось, ни в какой браузерной кодировке не отображается как надо. Речь о форуме Rejetto по &RQ. Так вот не мешало бы предусмотреть (мало где ЭТО окажется) в админке некоторые расширенные возможности перекодирования на уровне юзера.

  37. Oleg Andreev

    Насчет форматтера текста. Нужен все-таки wysiwyg. Чтобы не замирать в ожидании того, во что превратится написанное, а сразу увидеть. Используя при этом BB и разные маркдауны.

    (пред. комментарий залит по ошибке)

  38. Zigzag

    идея замечательная, с интересом буду наблюдать за ходом работ. у меня вопрос такой, если не XHTML, то, по крайней мере HTML и CSS планируется быть валидным? Вполне готов поучаствовать в написаниий шаблонов сайта (X)HTML, CSS, WAI и s508 совместимых.

  39. Иван Сагалаев

    Не... Я уже писал, почему DTD-валидация (и тем более CSS-валидация) — цель сама по себе довольно бесполезная. И я не стремлюсь к ней не потому что не умею (поверьте, умею :-) ), а как раз потому что цели у меня более широкие: отделение содержимого от оформления, корректная семантика, доступность. Это все можно делать только головой и руками, алгоритмически это не проверяется.

    Собственно, поскольку HTML я надеюсь сделать достаточно хорошим, переделать его в XHTML, кому нужно, можно будет довольно легко.

  40. Michael Samoylov

    Осмелюсь предложить заюзать готовую реализацию pingback-клиента:

    http://geeksite.googlecode.com/svn/trunk/apps/blog/pingback.py (сам клиент)
    http://geeksite.googlecode.com/svn/trunk/apps/blog/models.py (см. Entry.save(), Entry.ping())
    http://geeksite.googlecode.com/svn/trunk/apps/utils/html.py (url_extractor)

  41. frst

    Так есть же http://getvanilla.com/
    Почти идеальный форум.
    И снаружи и внутри все по понятиям.

  42. Иван Сагалаев

    Я его тогда, когда искал форум, чуть не поставил. Отказался потому что там была обязательная регистрация пользователей, что для нормального открытого форума губительно. Да и сейчас, думаю, там много чего нет из мной перечисленного.

  43. StraNNicK

    Фичареквест:
    Как насчёт одноразового пароля?
    Примерно так: http://artreal.exler.ru/readme/11.03.2007/parolnajak

  44. Дмитрий Сергеев

    А меня Ванилла обманула. Там и впрямь незарегистрированные пользователи писать не могут. Правда, потихоньку делается некрасивый патч http://lussumo.com/community/discussion/3908/2/guestpost-v13/

    Хотелось бы работающего поиска и как раз таки возможность писать анонимным пользователям. Думаю, я как раз успею немного разобраться с пайтоном к моменту первого релиза :) Удачи.

  45. [...] всеми руками за то, чтобы портировать идеи, которые в Cicero заложены. Потому что я серьезно считаю, что этот форум сильно [...]

  46. [...] почитайте дизайн-документ к cicero, это одна из основных его [...]

Добавить комментарий