http://dev.jast.ru 

SCIR. Технология управления статическим сайтом

В данном документе описана технология организации статического сайта SCIR (Separate Content and Include the Rest), предназначенная для облегчения поддержки и увеличения функциональности редко изменяющегося сайта, состоящего из html документов, на основе предоставляемых web-сервером Apache [1] возможностей и без применения дополнительных средств программирования.


1 Введение

Используемый в заголовке термин «статический сайт» применен для обозначения сайта, который не обновляется в режиме реального времени и для реализации которого можно ограничиться только html документами.

В основе технологии SCIR лежат следующие идеи:

Макет сайта, использующего SCIR, доступен на сайте проекта [3] в виде архива и работающей демо-версии.

2 Технология

2.1 Структура сайта

Макет сайта имеет следующую структуру

.cpfiles .htsetup .idsetup       Служебные файлы (см. п. 3)
html/       DOCUMENT_ROOT Web сервера
  i/     каталог для графики контента
  .styles/     каталог с файлами стилей и навигации
    default/   каталог описания стиля default
      i/ каталог с графикой для стиля default
  part../     каталоги разделов сайта

 

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

DIR/.htaccess
настройки текущего каталога
DIR/.context.shtml
шапка документов текущего каталога

2.2 Макеты страниц

Макет страницы по умолчанию задается в переменной $SCIR_NAVYSIDE файла .htaccess. В качестве примера использованы следующие макеты:

LEFT (RIGHT)
вертикальный блок навигации расположен с соответствующей стороны контента. Это статическое свойство сайта и может быть задано отдельным стилем.
NONE
блок навигации отсутствует и контент занимает всю ширину html страницы. Такой макет может использоваться для страниц с табличными данными, которые целесообразно разместить по всей ширине окна браузера. Задается переназначением переменной $SCIR_NAVYSIDE в коде таких страниц.

Стиль «для печати»

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

2.3 Использование SSI

Включение SSI директив производится по следующим правилам

<!-#set var="SCIR_TITLE" value="Заголовок страницы"

-><!-#include virtual=".context.shtml"

->

<a <!-#

if expr="\"$du\" != \"/index.html\""

->href='/'<!-#

else

->class='active'<!-#

endif

->>TITLE</a>

3 Используемые файлы

3.1 Подготовка дистрибутива к работе

Дистрибутив содержит командные файлы для использования администратором, назначение которых описано в файле INSTALL:

.idsetup
запускается однократно и в первую очередь. Заменяет @SCIR: на $ Id $ для облегчения использования файлов проекта в системе CVS
.cpfiles
запускается однократно и только для демо-сайта. Дублирует макеты страниц в подкаталоги
httpd.conf
пример файла конфигурации сервера Apache

3.2 Активация изменений

.htsetup
запускается при установке и каждый раз при добавлении файлов или изменении стиля сайта. Устанавливает корректные права доступа на файлы и создает линк на каталог текущего стиля
html/.htaccess
файл настроек SCIR
# Main .htaccess file

 

# Required Apache options

Options FollowSymLinks IncludesNOEXEC MultiViews

AddHandler server-parsed .shtml .css

 

# XBitHack SSI:

# user executable -> SSI

# group executable -> Cached SSI

XBitHack full

 

# Stage

AddHandler server-parsed .html .htm

 

# Global data

SetEnv SCIR_COPY_HOLDER "2002, YOUR_NAME"

SetEnv SCIR_COPY_MAIL "webmaster@somewhere.ru"

SetEnv SCIR_SITE_NOTE "[Site info]<br>[Site description]"

 

# Default language

SetEnv SCIR_LANG ''

 

# Colors: black or enything else

#SetEnv SKIN 'black'

SetEnv SCIR_SKIN 'noblack'

 

# Default nav style

SetEnv SCIR_NAVY '01'

 

# NavBar position (LEFT,RIGHT or NONE)

SetEnv SCIR_NAVYSIDE 'RIGHT'

 

# Default empty

SetEnv SCIR_PREFIX ''

SetEnv SCIR_TITLE ''

 

# Error document (xxx = 400, 403, 404, 500 etc)

ErrorDocument xxx /error.html

3.3 Навигация

Файлы описания навигации (меню со ссылками на страницы и разделы сайта) - общие для всех стилей и расположены в каталоге html/.styles. Имена файлов имеют формат

nav-$SCIR_NAVY.shtml$SCIR_LANG, где
$SCIR_NAVY
номер варианта навигации (например: 01, 02...)
$SCIR_LANG
обозначение языка (пусто для языка по умолчанию, .en для английской версии и т. п.)
Начальные значения переменных задаются в корневом .htaccess, файлы описания навигации подключаются в описании стилей директивой вида

<!-# include virtual="/.styles/nav-$SCIR_NAVY.shtml$SCIR_LANG" ->
Примеры файлов описания навигации

bar-01.shtml
верхняя горизонтальная полоса меню
nav-01.shtml
боковое меню
part2-01.shtml
динамически подключаемое подменю

3.4 Стили

/html/style/ - символьная ссылка на каталог текущего стиля сайта (например, html/.styles/default). Каталог описания стиля может содержать каталог для графики (адрес изображений будет /style/i/..) и файлы

top.shtml
верхняя часть html документов
btm.shtml
нижняя часть html документов
vars.shtml
переменные, используемые в стиле (например, цвета)
style.css
файл описания CSS, использующий значения из vars.shtml

3.5 Контент

Оформление контента основано на файле уровня каталога .context.shtml и формате каждого html документа

Формат документов

<!-#set var="SCIR_TITLE" value="Заголовок страницы"

-><!-#include virtual=".context.shtml"

-><!- @SCIR: page2.html,v 1.4 2002/03/31 00:01:51 jean Exp

->

...

Содержимое страницы

...

<!-#include virtual="/style/btm.shtml" ->

Файл .context.shtml используется для уменьшения дублирования кода в html документах и имеет вид:

<!-#set var="SCIR_PREFIX" value="SITE | "

-><!-#include virtual="/style/top.shtml" ->

SCIR_PREFIX
общая для всех документов каталога часть заголовка страницы. Файл index.htm включает файл .context.shtml из каталога верхнего уровня.

4 Ссылки

  1. Web-сервер Apache http://www.apache.org
  2. Описание директив SSI http://httpd.apache.org/docs/howto/ssi.html
  3. Сайт проекта SCIR http://dev.jast.ru/scir
  4. Демо-сайт SCIR http://scir.tb.jast.ru

Версия

Id: skir_ru.lyx,v 1.6 2002/06/10 10:48:18

 $Name: v1-07 $   (c) 2002-2006, Алексей А. Коврижкин
jean@jast.ru