Сайт Романа ПарпалакаБлогКлючевые словаS2

S2

S2 — это быстрый бесплатный движок сайта, написанный мной на PHP и выпущенный под лицензией GNU GPL.


Как определить домен из PHP

14 августа 2017 года, 23:12

Илья Бирман написал про баг в Эгее, когда сайт доступен по разным доменам, и RSS кешируется то с одним доменом, то с другим.

Эгея, чтобы узнать, на каком сервере она работает, смотрит, по какому адресу её открыли — больше ей это узнать неоткуда.

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

HTTP_HOST и SERVER_NAME

Для этих целей обычно проверяют серверную переменную HTTP_HOST. Но в ней всего лишь содержимое заголовка Host из http-запроса. Этот заголовок — часть стандарта HTTP/1.1, и в HTTP/1.0 он не обязателен. Правда, без этого заголовка не заработают виртуальные хосты — разные сайты на общем сервере. Но даже в таком случае среди сайтов есть сайт по умолчанию, открывающийся при заходе напрямую по IP. Так вот, когда устаревшие клиенты (в том числе нормальные браузеры за старыми или специально настроенными прокси) открывают сайт по умолчанию, переменная HTTP_HOST будет пустой.

Есть еще одна серверная переменная — SERVER_NAME. Обычно она содержит хост, определенный в конфигурации веб-сервера. Но на него тоже нельзя стопроцентно положиться. Например, в nginx хост по умолчанию задается конструкцией

server_name _;

Сайт будет прекрасно открываться, но при этом в SERVER_NAME окажется знак подчеркивания.

Подробности для дальнейшего чтения на стековерфлоу: HTTP_HOST vs. SERVER_NAME.

Параметр конфигурации

Если вы делаете распространяемый движок для работы на разных серверах, у вас нет гарантированного способа определить хост, по которому открыт сайт. В моем движке S2 я скопировал способ из PunBB. В нем установочный скрипт «угадывает» адрес сайта (протокол + домен + порт + подпапка) в том числе на основе HTTP_HOST, дает возможность этот адрес отредактировать и сохраняет результат в конфигурационный файл. Затем именно этот адрес используется для генерации ссылок.

Как альтернативу Илья советует настроить редиректы. Это правильно, но, опять же, не всегда выполнимо. Например, вы настроили на сервере https, но не хотите делать редирект с http на https (вы хотите поддерживать старые браузеры, но у вас нет отдельного IP-адреса на каждый домен).

Когда одна и та же страница открывается по разным адресам, Гугл рекомендует в явном виде указывать canonical-адреса:

<link rel="canonical" href="https://example.com/some/url" />

Именно они попадут в поисковую выдачу. Ясно, что движок не сможет сгенерировать такой тег, если не будет знать, на каком из доменов он на самом деле работает.

Кстати, давно хотел написать о том, что https — это новый www. Он вынуждает совершать дополнительные бессмысленные действия при настройке сайта вроде редиректов с www. Ради https мне пришлось сделать в S2 поддержку тега link rel="canonical".

Ключевые слова: www, PHP, S2 | Оставить комментарий

С наступающим!

31 декабря 2014 года, 15:04

Давно я не поздравлял читателей с праздниками. И сейчас не стану писать банальные вещи. Просто верну долги в уходящем году.

Во-первых, спустя полтора года я выпустил очередную бета-версию движка S2 и там же написал о планах развития.

Во-вторых, я записал и опубликовал половину первого альбома под названием «Большая медведица». Приятного прослушивания :)

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

Ключевые слова: праздники, музыка, S2 | Комментарии (2)

Видео о движке сайтов S2

27 июня 2012 года, 12:05

Сделал видео о своем движке сайтов S2:

В хорошем качестве смотрите на главной сайта движка.

Ключевые слова: S2, видео | Комментарии (2)

Восстановление текстов в новой версии S2

15 июня 2011 года, 12:49

В новой версии движка S2, которую я выпустил вчера, появилось очень важное нововведение. Теперь он умеет восстанавливать несохраненные тексты после непредвиденных ситуаций вроде зависаний или падений браузера, случайного закрытия окна и т. д.

Интерфейс простой. При следующем входе в админку выводится вот такое сообщение:

Восстановленный текст из нового окна можно затем скопировать куда угодно.

Реализация тоже крайне простая. Каждые 5 секунд содержимое редактора отправляется в HTML5-хранилище (которое localStorage) и удаляется во время сохранения. При входе в админку отображается сообщение, показанное выше, если в хранилище что-то есть.

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

Ключевые слова: S2, интерфейсы, веб-разработка | Комментарии (2)

Совместное редактирование без блокировок

17 мая 2011 года, 13:24

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

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

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

Едва ли решение с блокировками можно признать удачным. Если автор начинает редактировать документ, а потом отвлекается, нужно отбирать блокировку по по истечению какого-либо времени (в DokuWiki, кажется, 15 минут), чтобы документ не остался заблокированным навечно. Тогда изменения отвлекшегося автора могут быть утеряны.

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

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

Блокировки держат пользователя в напряжении (нельзя отвлекаться больше, чем на 15 минут) и не решают задачу совместного редактирования до конца: всё равно остается возможность возникновения конкурирующих правок. В моем методе ничто без надобности не отвлекает пользователя от его задач.

Ключевые слова: интерфейсы, S2 | Комментарии (4)

Новая версия S2 и блог о теоретической физике

16 марта 2011 года, 17:47

Выпустил новую версию движка S2. Среди изменений, помимо испрвлений небольших ошибок, быстрый поиск по заголовкам. Пока пользователь набирает поисковую фразу, ему можно показывать подсказки.

Другое важное изменение — выпуск нового расширения s2_latex для вставки математических формул. С ним на S2 можно легко делать сайты и блоги с кучей формул.

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

Ключевые слова: S2, физика | Оставить комментарий

Новая версия S2

4 февраля 2011 года, 22:32

Наконец-то я выпустил новую версию движка сайтов S2. Ура!

Ключевые слова: S2 | Оставить комментарий

Про Linode, written.ru и S2

19 сентября 2010 года, 23:25

Давно я не писал о хостинге. Не писал, потому что с хостингом у меня до недавнего времени ничего не менялось.

Зимой я решил опубликовать код движка S2 и стал подыскивать репозиторий для исходников. SourceForge, как и другие похожие сервисы для проектов с открытым кодом, имеет в лицензионном соглашении какое-то жуткое условие (если верить переводу в Википедии):

В одном из пунктов условий использования говорится, что передавая какие-либо данные через SourceForge.net, пользователи дают SourceForge, Inc. неисключительную пожизненную лицензию на их использование, изменение и продажу.

Мне это не понравилось, и я решил заказать виртуальный сервер, поднять на нем репозиторий subversion и со временем перенести на этот сервер все свои сайты.

Примерно в это же время Иван Сагалаев написал о переезде на VPS-хостинг Linode и дал ему положительную характеристику.

Я заказал самый дешевый вариант. Виртуальный сервер с жестким диском 16 гигабайт, 384 мегабайтами оперативной памяти и месячным трафиком в 200 гигабайт стоил 20 долларов в месяц. Летом, в честь дня рождения Linode, увеличили количество оперативной памяти до 512 мегабайт. Для моих целей такого сервера более чем достаточно.

Приведу свой реферальный код: 8c0e35f89f3d4065678d05cdb156f494d9e8d4c3. Если вы укажете его при регистрации и станете клиентом Linode, мне перепадет копеечка в благодарность за рекомендацию :)

А рекомендаций Linode действительно заслуживает: есть возможность простой смены тарифного плана; переездов между дата-центрами; размещения серверов в Лондоне (меньше время ответа, чем для серверов в США); покупки дополнительного места на диске, или оперативной памяти, или трафика, или даже регулярных бекапов. Единственный потенциальный недостаток — англоязычная поддержка, но это можно потерпеть.

Со временем я установил и настроил практически все нужные программы. Единственное, с чем не справился — с настройкой почтового сервера. Если быть точным, я повторил инструкцию по настройке SMTP и POP/IMAP серверов с виртуальными почтовыми ящиками, и они даже заработали. Но у меня не хватило терпения, чтобы прикрутить к этому делу хоть какой-нибудь веб-интерфейс (у почты же должен быть веб-интерфейс!).

Да и конфигурация почтового сервера не для простых смертных. Я пытался изменить поведение SMTP-сервера, чтобы уменьшить количество спама, но у меня ничего не получилось. Наверно, всё-таки, можно разобраться в логике работы и множестве параметров, но это целесообразно, если вы собираетесь подрабатывать системным администратором и каждую неделю поднимать почтовые серверы.

Мне ничего не оставалось, кроме как сдаться Гуглу — настроить пересылку всех писем на ящик на gmail.com.

Предыдущей ночью настал момент истины. На старом хостинге заканчивается оплаченный период, и я перенес written.ru на свой сервер. Скопировал файлы и содержимое базы данных, переделал .htaccess в конфигурацию nginx, обновил конфигурацию exim, настроил DNS-записи, прописал адреса новых ns-серверов. За два часа сайт заработал на новом месте.

Вообще-то, у меня были большие планы — поднять сайт на самой последней версии S2. Дело в том, что почти год назад я скопировал код сайта (это был еще SiteX 0.91), переименовал в S2 и начал доводить до ума. Cайт остался на старой версии, с небольшими багами и без новых вкусных плюшек. В итоге я не успел доделать некоторые специфичные для written.ru вещи, которые не нужны в S2. Пришлось переносить старый код.

В качестве лирического отступления расскажу о достоинствах модульной архитектуры S2. Специфичные для конкретных сайтов вещи лучше всего оформить в виде плагинов — расширений. При этом код ядра и других расширений остается нетронутым, и его легко обновлять до новых версий.

Сайт на новом месте себя чувствует очень хорошо. Включил отображение времени работы скриптов в нижней части страницы. Оно редко превышает 10 миллисекунд. Это говорит о том, что и хостинг хороший, и движок хороший :)

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

Ключевые слова: www, этот сайт, S2 | Комментарии (25)

Поиск

11 февраля 2010 года, 15:30

Написал в блог разработки S2 всё, что я думаю о поиске на сайтах.

А еще я сделал автоматический экспорт свн-лога S2 в твитер. Не знаю, правда, кому это нужно. Просто прикольно. Да и пришлось всего лишь две строчки добавить.

Ключевые слова: S2 | Оставить комментарий

Первый релиз S2

2 февраля 2010 года, 17:17

Я доделал сайт движка S2 и сделал самый первый релиз — выпустил альфа-версию. В общем, встречайте «убийцу Вордпресса»!

Да, и если можете — попиарьте его, пожалуйста :)

Ключевые слова: S2 | Комментарии (3)

Демо-сайт движка S2

9 января 2010 года, 18:56

Установил последнюю ревизию S2 на демонстрационный сайт (спасибо рефератам Яндекса). Можно протестировать админку (логин admin и пароль admin). Любые изменения демонстрационного сайта откатываются каждый час, так что не стесняйтесь в своих желаниях :)

Кстати, на дефолтный стиль оформления потратил целый день, и теперь он мне очень нравится.

Пора делать сайт движка и самый первый альфа-релиз.

Ключевые слова: S2 | Оставить комментарий

Базы данных

4 января 2010 года, 23:45

Сейчас S2 поддерживает две базы данных: MySQL и PostgreSQL (правда, поддержку последней нужно тестировать). Из-за активного использования подзапросов работа с SQLite 2 невозможна. А про SQLite 3 в PHP я ничего не знаю. Поэтому думаю вообще забить на SQLite.

Вопрос: сильно ли нужна движку сайта поддержка SQLite?

Ключевые слова: S2 | Комментарии (1)

S2

3 декабря 2009 года, 19:41

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

Похоже, лучшие времена наступили. Я решил доработать и опубликовать движок. Вообще, характеристики у него и раньше были неплохие, а интерфейс администратора — просто отличный. На этот раз основное внимание я уделил настраиваемости и расширяемости, стилям, языковым пакетам и шаблонам. В общем, всему тому, без чего written.ru спокойно обходился, но без чего нельзя представить себе «настоящую» CMS. В результате в движке поменялось многое.

Во-первых, я решил не изобретать велосипед, а использовать код из открытых проектов. Самые большие позаимствованные части — модуль для работы с базами данных и система расширений из PunBB. При заимствовании, как говорится, не осталось нетронутых строчек кода.

Во-вторых, как этого требует лицензия PunBB, движок будет выпущен под лицензией GPL. Как-либо «монетизировать» это дело я пока не собираюсь. Вообще я уверен, что косвенная выгода от публикации кода движка будет больше возможных доходов от продаж.

В-третьих, такие изменения не могли не затронуть название. Старое рабочее название движка, «SiteX», неудовлетворительно по нескольким причинам:

  • оно не вполне уникально;
  • интересные домены, содержащие sitex, оказались занятыми;
  • название можно прочитать несколькими способами (я подразумевал «сайтекс», а некоторые произносили «сайт икс»).

Я решил изменить название на «S2». Новое название лишено прежних недостатков и обладает рядом достоинств:

  • это намек на SiteX второй версии;
  • его можно прочитать единственным способом, «эс два»;
  • такое название похоже на названия движков b2, e2, R2;
  • домены s2cms.ru и даже s2cms.com оказались свободными;
  • символы S и 2, расположенные рядом, образуют неповторимую форму, такую, что долго думать над логотипом не приходится.

По сравнению с SiteX пользовательский интерфейс существенно не изменился. Изменилась (точнее, появилась) идеология: S2 — это относительно небольшой и быстрый, но легко расширяемый движок сайта.

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

Ключевые слова: S2 | Комментарии (7)

Опять про SiteX

6 января 2009 года, 20:44

SiteX назвали конкурентом движка блогов с названием «Явь» (правда, что он собой представляет и каковы условия его использования — неясно). Забавно.

Кстати, я всё еще не передумал сделать SiteX оупенсорсом. Сейчас SiteX выполняет одну из первых задач — быть движком для written.ru, причем выполняет ее, как нетрудно заметить, вполне успешно. У меня были и другие идеи, реализация которых сделает SiteX более-менее универсальным движком. Например, можно сделать регистрацию пользователей и обеспечить возможность работать над одним проектом нескольким авторам, прикрутить OpenID, переделать внутреннее устройство (сделать систему расширений и вынести часть функций в расширения). Сейчас у меня на всё это времени нет, и вряд ли оно появится в обозримом будущем.

Однако я совсем не против, чтобы отдачу от времени и умственных усилий, ушедших на SiteX, почувствовали и другие. Один из вариантов — сделать код SiteX'а открытым. Смена лицензии будет иметь смысл, если кто-нибудь из разработчиков присоединится к проекту.

Мысли и вопросы по поводу вышеизложенного приветствуются.

Ключевые слова: S2 | Комментарии (2)

SiteX

28 ноября 2008 года, 00:01

Может сделать SiteX оупенсорсом? Кто-нибудь хочет присоединиться к разработке?

Ключевые слова: S2 | Оставить комментарий

SiteX

9 декабря 2007 года, 22:43

Несколько недель назад я закончил работу над движком сайта SiteX, на котором сейчас работает written.ru. Текущая версия — 0.91. Для тех, кто хочет узнать, что такое SiteX и с чем его едят, я написал небольшой обзор движка.

Комментарии можно оставлять здесь.

Ключевые слова: S2 | Оставить комментарий

У сайта день рождения

20 июля 2007 года, 17:50

Сегодня у сайта written.ru день рождения. Ровно два года назад я закачал на сервер набор HTML-файлов и картинок (именно это и представлял с самого начала сайт). Потом был PHP, выбор хостинга, домен, новый дизайн, движок блога.

В течение трех недель я написал новый движок (и систему редактирования) с рабочим названием SiteX, о котором я думал и который планировал написать последние полгода. Теперь сайт работает на базе данных, у него есть система редактирования с удобным веб-интерфейсом. Также я обновил дизайн, исправив ошибки в предыдущем варианте.

Как это обычно случается, я реализовал не всё, что хотел. Иначе чем бы я занимался дальше? ;)

Подробно анализировать события, произошедшие с сайтом за прошедший год, я не буду.

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

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

Смотрите также:
Сайту шесть лет
Сайту пять лет
written.ru четыре года
С трехлетием, written.ru!
Сайту written.ru — год

Ключевые слова: этот сайт, S2 | Комментарии (1)

По мотивам нового движка блога

13 марта 2007 года, 14:08

PHP меня радует такими вещами (хотя заслуги PHP в этом особой нет, это типичный синтаксис C):

while ($row = mysql_fetch_row($result))
	$tag_ord[$a[] = $row[0]] = ++$i;

А вот MySQL порадовал меня следующим:

SELECT
	recs.c_time,
	title,
	recs.text,
	recs.url,
	commented,
	count(if(comms.id = recs.id, 1, NULL))
FROM recs, rectags, comms
WHERE recs.id = rectags.record_id
AND tag_id = 5
AND published = 1
GROUP BY recs.id
ORDER BY recs.c_time DESC

Добавлено 13.12.2007: А сейчас MySQL радует меня возможностью написать такой запрос:

SELECT s.id, b.title, b.c_time, b.url,
FROM (
	SELECT rec.id, label
	FROM (
		SELECT record_id
		FROM rectags
		WHERE tag_id = 4
	) tt, recs
	WHERE recs.id = tt.record_id
	AND recs.label <> ''
) s, recs b
WHERE s.label = b.label
AND b.id <> s.id
ORDER BY 3 DESC
Ключевые слова: S2 | Оставить комментарий

Новый движок блога

10 марта 2007 года, 15:59

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

  1. Для хранения информации используется MySQL (раньше были текстовые файлы).
  2. Линейная навигация, использовавшая «страницы» по 20 записей, заменена на календарь (как в R2 или в Interra).
  3. Списки последних записей и комментариев.
  4. ЧПУ — человекопонятные Url.
  5. Кеширование на стороне сервера и настройка правильного кеширования в браузере.
  6. Через RSS экспортируются только те записи, которые появились после предыдущего обращения клиента к RSS (Идея взята отсюда).
  7. Можно подписаться на комментарии к определенной записи.
  8. Я попробовал сделать защиту от спама в комментариях. Если метод окажется хорошим, я потом напишу о нем.
  9. У ключевых слов может быть описание (например, как у слова кино). Это позволит в определенной степени реализовать идею «knowledge base» (загляните в размышления).
  10. Автоматическая типографика.
  11. Административный интерфейс.

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

Что еще в планах?
  1. Поиск. (сделано)
  2. Простейшая разметка в комментариях, цитирование. (сделано)
  3. Связывание записей в группы и автоматическая расстановка ссылок «см. также» (некий аналог ключевых слов, только без явного их выделения). (сделано)
  4. Возможно, RSS отдельно для ключевых слов, комментариев и т. д.

Комментарии по поводу нового движка приветствуются.

Ключевые слова: S2 | Оставить комментарий

Опять об авторских проектах и блогах

20 января 2007 года, 16:58

Первоначально я задумывал written.ru как авторский проект, на котором будут истории и размышления. Тогда всё выглядело как набор файлов html, редактируемых во FrontPage. Достаточно быстро я сообразил, что это не есть хорошо. Через полгода статьи перекочевали в отдельные почти текстовые файлы, дизайн ушел в шаблоны, и всем этим управляет PHP-скрипт. Одновременно я пришел к тому, что для разнообразия и оживления на сайте неплохо бы сделать «ежедневные заметки» — блог. Еще через полгода я сделал нынешний дизайн, изменил структуру (распределение материалов по рубрикам).

Прошло еще полгода. К этому времени стало ясно, что трудно провести границу между блогом и остальной частью сайта в том плане, что не всегда однозначно можно сказать, где следует расположить тот или иной материал. Кроме того, записей в блоге накопилось достаточно много, и он начинает «перевешивать» на сайте. Иногда у меня появляются мысли перенести все статьи в блог и оставить только его (особенно после того, как я в блоге сделал систему редактирования). Независимо от этих соображений (а может и зависимо) у меня назрело желание переписать движок для сайта с использованием MySQL. С нуля. Ну или почти с нуля. С нормальной системой редактирования. Фактически, CMS, но узкоспециализированную.

Возможные решения:

1. Изменить модель хранения и доступа к информации. Сейчас это отдельно статьи на сайте и записи в блоге. Предлагается для рассмотрения вариант knowledge base. Зачем это надо? Такая система хранения записей в отличие от уже надоевших блогов не распространена. Можно постараться и сделать CMS доступной для распространения. Нужно продумать, как те материалы (в том числе из блога), что есть сейчас, впишутся в рамки knowledge base.

2. Оставить всё, как есть. Наиболее простое решение. Правда, придется писать два отдельных движка для блога и для сайта, что не является оригинальным, поскольку уже проделывалось очень много раз.

Добавлено: Материалы на сайте в разделе «Заметки» и записи здесь, в блоге, совершенно различны «по духу». Нет смысла размещать статьи в блоге. Они представляют самостоятельную ценность. Им больше подходит роль структурной единицы на сайте. Записи в блоге в большинстве своем короткие. Они описывают что-либо достаточно полно только вместе с другими заметками по той же теме.

Структура сайта (распределение статей по разделам) сейчас достаточно наглядна, трудностей у пользователей не возникает. Они также знакомы с блогами. А «knowledge base» может вызвать у новых посетителей затруднения.

Один из вариантов — сделать «блогообразный knowledge base». К некоторым (или всем) ключевым словам можно сделать описание, которое и будет «основным темообразующим документом» в случае необходимости, затем можно разместить ссылки на статьи или даже разделы, имеющие те же ключевые слова, а после выводить записи.

Еще добавлено:

...контент, который востребован и не теряет актуальности со временем (или теряет, но не так быстро, как, например, новости)...

Не совсем понятно, что делать с контентом, который устаревает достаточно быстро (а у меня он есть). В результате размышлений я пришел к выводу, что существующая форма, в которой воплощено содержимое, адекватнее «knowledge base». Придется делать по сути два отдельных движка, хоть и тесно интегрированных. В блоге сделаю возможность давать описание ключевым словам. А также нужно подумать о реализации более тесной связи между блогом и статьями через ключевые слова.

Ключевые слова: этот сайт, S2 | Оставить комментарий

Трансляция блога в ЖЖ

18 ноября 2006 года, 00:29

Продолжаю дорабатывать систему редактирования записей в блоге. На этот раз прикрутил возможность экспорта записей в ЖЖ, как хотел ранее. Трансляция блога доступна по адресу parpalak.livejournal.com.

За основу взяты имеющиеся наработки. Правда, всё это иногда отказывается работать. Разбираюсь, почему.

Ключевые слова: S2 | Оставить комментарий

Простейший редактор на javascript

14 ноября 2006 года, 13:49

На выходных сделал простейший редактор записей в этом блоге на javascript. За основу взята эта разработка. Вот работающий вариант (не мой, а оригинальный).

Получилось весьма удобно. До сих пор приходилось все теги вручную прописывать (ну, или почти вручную :) ). Непонятно, почему я раньше не сделал нечто подобное.

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

Добавлено: Это дело правильно работает только в Опере. В IE работает немного не так, как хотелось. А Firefox совсем капризничает. Буду выяснять, в чем дело.

Еще добавлено: Firefox капризничает, потому что не понимает document.selection.createRange(). Ну и пусть не понимает, всё равно я Оперой пользуюсь. Тем, кто хочет во всём этом разбираться, можно посоветовать статью о WYSIWYG-редакторе.

Ключевые слова: S2 | Комментарии (2)
Поделиться
Записи