website diff ru/devel/forge.php @ rev 1279

Small russification: index.php, mailing-list.php, search.php, support.php; CSS: make dl-buttons not overlapped
author Aleksej Bobylev <al.bobylev@gmail.com>
date Mon Aug 31 01:32:12 2015 +0300 (2015-08-31)
parents 3dbcace639e6
children d9b6af00fb5b
line diff
     1.1 --- a/ru/devel/forge.php	Mon Aug 24 16:15:38 2015 +0200
     1.2 +++ b/ru/devel/forge.php	Mon Aug 31 01:32:12 2015 +0300
     1.3 @@ -17,85 +17,113 @@
     1.4  ?>
     1.5  
     1.6  <!-- Content -->
     1.7 -<div id="content">
     1.8 +<section id="content">
     1.9  
    1.10 -<h2>Совместное управление</h2>
    1.11 +<h2>
    1.12 +Совместное управление
    1.13 +</h2>
    1.14  
    1.15  <ul>
    1.16 -	<li><a href="#kiss">KISS и соответствие стандартам</a></li>
    1.17 -	<li><a href="#tank">Сборочный хост и дом</a></li>
    1.18 -	<li><a href="#repos">Репозитории Mercurial</a></li>
    1.19 -	<li><a href="#gui">GUI в GTK и CGI/web</a></li>
    1.20 -	<li><a href="#iconv">Реализация iconv()</a></li>
    1.21 -	<li><a href="#pkgs">Сборка пакетов SliTaz</a></li>
    1.22 -	<li><a href="#website">Управление сайтом</a></li>
    1.23 +<li>
    1.24 +<a href="#kiss">KISS и соответствие стандартам</a>
    1.25 +</li>
    1.26 +<li>
    1.27 +<a href="#tank">Сборочный хост и дом</a>
    1.28 +</li>
    1.29 +<li>
    1.30 +<a href="#repos">Репозитории Mercurial</a>
    1.31 +</li>
    1.32 +<li>
    1.33 +<a href="#gui">GUI в GTK и CGI/web</a>
    1.34 +</li>
    1.35 +<li>
    1.36 +<a href="#iconv">Реализация iconv()</a>
    1.37 +</li>
    1.38 +<li>
    1.39 +<a href="#pkgs">Сборка пакетов SliTaz</a>
    1.40 +</li>
    1.41 +<li>
    1.42 +<a href="#website">Управление сайтом</a>
    1.43 +</li>
    1.44  </ul>
    1.45  
    1.46  
    1.47 -<h2 id="kiss">KISS и соответствие стандартам</h2>
    1.48 +<h2 id="kiss">
    1.49 +KISS и соответствие стандартам
    1.50 +</h2>
    1.51  
    1.52 -<p>Что означает <a target="_blank"
    1.53 -	href="http://ru.wikipedia.org/wiki/KISS_%28%D0%BF%D1%80%D0%B8%D0%BD%D1%86%D0%B8%D0%BF%29">KISS</a>?
    1.54 -	Будьте проще: следуйте лучшим стандартам, тщательно планируйте и пишите
    1.55 -	качественную документацию, делайте систему стабильной и надежной, сохраняйте
    1.56 -	<em>rootfs</em> на LiveCD настолько лёгким, чтобы дистрибутив мог
    1.57 -	запускаться на компьютерах со 128 МБ оперативки. В дистрибутиве возможно
    1.58 -	использование GTK+2, Dialog, SHell-скриптов и средств разработки PHP. Идея
    1.59 -	заключается в том, чтобы не дублировать существующее, и думать о малом…</p>
    1.60 +<p>
    1.61 +Что означает <a target="_blank" href="http://ru.wikipedia.org/wiki/KISS_%28%D0%BF%D1%80%D0%B8%D0%BD%D1%86%D0%B8%D0%BF%29">KISS</a>?
    1.62 +Будьте проще: следуйте лучшим стандартам, тщательно планируйте и пишите качественную документацию, делайте систему стабильной и надежной, сохраняйте <em>rootfs</em> на LiveCD настолько лёгким, чтобы дистрибутив мог запускаться на компьютерах со 128 МБ оперативки.
    1.63 +В дистрибутиве возможно использование GTK+2, Dialog, SHell-скриптов и средств разработки PHP.
    1.64 +Идея заключается в том, чтобы не дублировать существующее, и думать о малом…
    1.65 +</p>
    1.66  
    1.67  
    1.68 -<h2 id="tank">Tank — сборочный хост и дом</h2>
    1.69 +<h2 id="tank">
    1.70 +Tank — сборочный хост и домашние папки
    1.71 +</h2>
    1.72  
    1.73 -<p>Участники проекта могут получить аккаунт на сервере Tank с безопасным
    1.74 -	доступом, дисковым пространством, общим каталогом и всеми средствами
    1.75 -	разработки. Разработчики могут компилировать пакеты, а мэйнтейнеры зеркала
    1.76 -	могут осуществлять синхронизацию. На сервере Tank также находятся домены
    1.77 -	веб-загрузки, сборочного бота и SliTaz Pro:
    1.78 -	<a href="http://tank.slitaz.org/">tank.slitaz.org</a>.</p>
    1.79 -<p>Инструкции по использованию сборочного хоста описаны в Cookbook:
    1.80 -	<a href="http://doc.slitaz.org/en:cookbook:buildhost">SliTaz Build Host
    1.81 -	(Tank)</a>.</p>
    1.82 +<p>
    1.83 +Участники проекта могут получить аккаунт на сервере Tank с безопасным доступом, дисковым пространством, общим каталогом и всеми средствами разработки.
    1.84 +Разработчики могут компилировать пакеты, а мэйнтейнеры зеркала могут осуществлять синхронизацию.
    1.85 +На сервере Tank также находятся домены веб-загрузки, сборочного бота и SliTaz Pro: <a href="http://tank.slitaz.org/">tank.slitaz.org</a>.
    1.86 +</p>
    1.87 +<p>
    1.88 +Инструкции по использованию сборочного хоста описаны в Cookbook: <a href="http://doc.slitaz.org/en:cookbook:buildhost">SliTaz Build Host (Tank)</a>.
    1.89 +</p>
    1.90  
    1.91  
    1.92 -<h2 id="repos">Репозитории Mercurial</h2>
    1.93 +<h2 id="repos">
    1.94 +Репозитории Mercurial
    1.95 +</h2>
    1.96  
    1.97 -<p>Репозитории SliTaz Mercurial (Hg) можно просматривать и клонировать без
    1.98 -	ограничений, используя адрес
    1.99 -	<a href="http://hg.slitaz.org/">http://hg.slitaz.org/</a>. Те, у кого есть
   1.100 -	доступ на запись, могут напрямую использовать адрес
   1.101 -	<tt>repos.slitaz.org</tt>, требующий аутентификации. Mercurial работает на
   1.102 -	Python; его можно установить командой
   1.103 -	<code>tazpkg get-install mercurial</code></p>
   1.104 +<p>
   1.105 +Репозитории SliTaz Mercurial (Hg) можно просматривать и клонировать без ограничений, используя адрес <a href="http://hg.slitaz.org/">http://hg.slitaz.org/</a>.
   1.106 +Те, у кого есть доступ на запись, могут напрямую использовать адрес <tt>repos.slitaz.org</tt>, требующий аутентификации.
   1.107 +Mercurial работает на Python; его можно установить командой <code>tazpkg get-install mercurial</code>
   1.108 +</p>
   1.109  
   1.110  
   1.111  <h3>~/.hgrc</h3>
   1.112  
   1.113 -<p>Перед тем, как отправить ваш первый коммит на сервер, внесите в файл
   1.114 -	конфигурации Hg ваше имя, фамилию и адрес электронной почты. Запомните, Hg
   1.115 -	не будет работать, если вы root. Пример персонального файла ~/.hgrc:</p>
   1.116 +<p>
   1.117 +Перед тем, как отправить ваш первый коммит на сервер, внесите в файл конфигурации Hg ваше имя, фамилию и адрес электронной почты.
   1.118 +Запомните, Hg не будет работать, если вы root.
   1.119 +Пример персонального файла ~/.hgrc:
   1.120 +</p>
   1.121  
   1.122  <pre class="script">
   1.123  [ui]
   1.124 -username = Ivan Ivanov &lt;ivanov@mail.org&gt;
   1.125 +username = Ivan Ivanov &lt;ivanov@example.com&gt;
   1.126  </pre>
   1.127  
   1.128  
   1.129 -<h4>Клонировать → изменить → зафиксировать изменения → отправить</h4>
   1.130 +<h4>
   1.131 +Клонировать → изменить → зафиксировать изменения → отправить
   1.132 +</h4>
   1.133  
   1.134 -<p>Клонировать репозиторий, к примеру, wok:</p>
   1.135 +<p>
   1.136 +Клонировать репозиторий, к примеру, wok:
   1.137 +</p>
   1.138  
   1.139 -<pre>$ hg clone http://repos.slitaz.org/wok</pre>
   1.140 +<pre>
   1.141 +$ hg clone http://repos.slitaz.org/wok
   1.142 +</pre>
   1.143  
   1.144 -<p>Перейдите в папку wok; вы должны находиться в репозитории, чтобы иметь
   1.145 -	возможность использовать команды 'hg'. Чтобы проверить все журналы, или
   1.146 -	просто последний журнал:</p>
   1.147 +<p>
   1.148 +Перейдите в папку wok; вы должны находиться в репозитории, чтобы иметь возможность использовать команды 'hg'.
   1.149 +Чтобы проверить все журналы, или просто последний журнал:
   1.150 +</p>
   1.151  
   1.152  <pre>
   1.153  $ hg log
   1.154  $ hg head
   1.155  </pre>
   1.156  
   1.157 -<p>Добавьте или измените один или несколько файлов и зафиксируйте коммит:</p>
   1.158 +<p>
   1.159 +Добавьте или измените один или несколько файлов и зафиксируйте коммит:
   1.160 +</p>
   1.161  
   1.162  <pre>
   1.163  $ hg add
   1.164 @@ -104,74 +132,88 @@
   1.165  $ hg log
   1.166  </pre>
   1.167  
   1.168 -<p>Обратите внимание, что вы можете использовать команду <code>rollback</code>
   1.169 -	для отмены последней операции. Перед отправкой изменений на сервер
   1.170 -	(<em>push</em> — «протолкнуть» изменения на сервер) возьмите за правило
   1.171 -	принимать текущие изменения с сервера (при их наличии):</p>
   1.172 +<p>
   1.173 +Обратите внимание, что вы можете использовать команду <code>rollback</code> для отмены последней операции.
   1.174 +Перед отправкой изменений на сервер (<em>push</em> — «протолкнуть» изменения на сервер) возьмите за правило принимать текущие изменения с сервера (при их наличии):
   1.175 +</p>
   1.176  
   1.177  <pre>
   1.178  $ hg pull
   1.179  $ hg push
   1.180  </pre>
   1.181  
   1.182 -<p>Готово, теперь ваши изменения, код или исправления находятся на сервере.</p>
   1.183 +<p>
   1.184 +Готово, теперь ваши изменения, код или исправления находятся на сервере.
   1.185 +</p>
   1.186  
   1.187  
   1.188 -<h4>Обновление локального wok</h4>
   1.189 +<h4>
   1.190 +Обновление локального wok
   1.191 +</h4>
   1.192  
   1.193 -<p>Для того, чтобы обновить ваш wok скомандуйте (<em>pull</em> — «втянуть»
   1.194 -	изменения с сервера):</p>
   1.195 +<p>
   1.196 +Для того, чтобы обновить ваш wok скомандуйте (<em>pull</em> — «втянуть» изменения с сервера):
   1.197 +</p>
   1.198  
   1.199 -<pre>$ hg pull -u</pre>
   1.200 +<pre>
   1.201 +$ hg pull -u
   1.202 +</pre>
   1.203  
   1.204  
   1.205 -<h4>Полезные команды</h4>
   1.206 +<h4>
   1.207 +Полезные команды
   1.208 +</h4>
   1.209  
   1.210 -<p>Могут быть использованы следующие команды Hg:</p>
   1.211 +<p>
   1.212 +Могут быть использованы следующие команды Hg:
   1.213 +</p>
   1.214  
   1.215  <ul>
   1.216 -	<li><code>hg help</code> — показать полный список команд.</li>
   1.217 -	<li><code>hg rollback</code> — отменить последнее действие (commit, pull,
   1.218 -		push).</li>
   1.219 -	<li><code>hg log пакет</code> — показать журнал для пакета.</li>
   1.220 -	<li><code>hg head</code> — показать последний журнал.</li>
   1.221 +<li>
   1.222 +<code>hg help</code> — показать полный список команд.
   1.223 +</li>
   1.224 +<li>
   1.225 +<code>hg rollback</code> — отменить последнее действие (commit, pull, push).
   1.226 +</li>
   1.227 +<li>
   1.228 +<code>hg log пакет</code> — показать журнал для пакета.
   1.229 +</li>
   1.230 +<li>
   1.231 +<code>hg head</code> — показать последний журнал.
   1.232 +</li>
   1.233  </ul>
   1.234  
   1.235 -<p>В сети можно найти немало статей и учебников по Hg на русском языке. Мне,
   1.236 -	например, понравился цикл переводных статей Джоэля Спольски: <a
   1.237 -	href="http://habrahabr.ru/post/108658/" target="_blank">Hg Init: Часть 2.
   1.238 -	Основы Mercurial</a>. Самое основное, действительно, можно рассказать за
   1.239 -	минуту, но иногда могут возникнуть ситуации, когда вам понадобится помощь.
   1.240 -	Прочитайте и обязательно закрепите полученные данные на практике, прежде
   1.241 -	чем работать с репозитариями SliTaz.</p>
   1.242 +<p>
   1.243 +В сети можно найти немало статей и учебников по Hg на русском языке.
   1.244 +Мне, например, понравился цикл переводных статей Джоэля Спольски: <a href="http://habrahabr.ru/post/108658/" target="_blank">Hg Init: Часть 2. Основы Mercurial</a>.
   1.245 +Самое основное, действительно, можно рассказать за минуту, но иногда могут возникнуть ситуации, когда вам понадобится помощь.
   1.246 +Прочитайте и обязательно закрепите полученные данные на практике, прежде чем работать с репозитариями SliTaz.
   1.247 +</p>
   1.248  
   1.249  
   1.250 -<h2 id="gui">GUI — на C/GTK, Yad, Vala/Genie и CGI/web</h2>
   1.251 +<h2 id="gui">
   1.252 +GUI — на C/GTK, Yad, Vala/Genie и CGI/web
   1.253 +</h2>
   1.254  
   1.255 -<p>Существует много способов создания пользовательского интерфейса в мире
   1.256 -	открытого исходного кода. С самого начала проекта и до 3.0 мы, в основном,
   1.257 -	использовали утилиту под названием GtkDialog. Она позволяет нам создавать
   1.258 -	очень красивый и сложный интерфейс в GTK с помощью скриптового языка,
   1.259 -	который можно просто запустить без необходимости компиляции. Но, GtkDialog
   1.260 -	перестал развиваться, в нём не хватает многих новых возможностей GTK.
   1.261 -	Поэтому мы перешли на Yad для простых графических диалогов. А все диалоги
   1.262 -	администрирования, пакетного менеджера и утилит настройки используют
   1.263 -	TazPanel, веб-интерфейс которой написан на xHTML 5 и CSS 3.</p>
   1.264 -<p>Yad очень прост, он не позволяет создавать сложные интерфейсы, даже если нам
   1.265 -	нужны только 2 или 3 пункта с метками и несколько кнопок, поэтому придётся
   1.266 -	искать другое решение. Преимущество скриптового языка в том, что его
   1.267 -	не нужно компилировть, диалоги можно писать в режиме реального времени
   1.268 -	(но он производит медленные приложения). Написание утилит на C сложно и
   1.269 -	доступно не каждому, в то время как SHell-скрипты проще для понимания.
   1.270 -	Поэтому сейчас наш руководящий принцип — сохранить и продолжать
   1.271 -	совершенствовать наши утилиты командной строки, а также обеспечить их
   1.272 -	графическим интерфейсом на GTK или CGI/web.</p>
   1.273 -<p>Многие новые языки, такие как Genie, Vala и GTKaml, используют GTK. Но,
   1.274 -	имейте в виду, что они не так популярны, как C и GTK, и не факт, что их
   1.275 -	проще освоить и использовать (для выполнения действий в простых приложениях
   1.276 -	можно использовать скрипты оболочки). Вы можете использовать Vala, но,
   1.277 -	посмотрите на чистый код GTK, создающий одно окно, для этого нужно всего
   1.278 -	14 строк:</p>
   1.279 +<p>
   1.280 +Существует много способов создания пользовательского интерфейса в мире открытого исходного кода.
   1.281 +С самого начала проекта и до 3.0 мы, в основном, использовали утилиту под названием GtkDialog.
   1.282 +Она позволяет нам создавать очень красивый и сложный интерфейс в GTK с помощью скриптового языка, который можно просто запустить без необходимости компиляции.
   1.283 +Но GtkDialog перестал развиваться, в нём не хватает многих новых возможностей GTK.
   1.284 +Поэтому мы перешли на Yad для простых графических диалогов.
   1.285 +А все диалоги администрирования, пакетного менеджера и утилит настройки используют TazPanel, веб-интерфейс которой написан на xHTML 5 и CSS 3.
   1.286 +</p>
   1.287 +<p>
   1.288 +Yad очень прост, он не позволяет создавать сложные интерфейсы, даже если нам нужны только 2 или 3 пункта с метками и несколько кнопок, поэтому придётся искать другое решение.
   1.289 +Преимущество скриптового языка в том, что его не нужно компилировть, диалоги можно писать в режиме реального времени (но он производит медленные приложения).
   1.290 +Написание утилит на C сложно и доступно не каждому, в то время как скрипты оболочки проще для понимания.
   1.291 +Поэтому сейчас наш руководящий принцип — сохранить и продолжать совершенствовать наши утилиты командной строки, а также обеспечить их графическим интерфейсом на GTK или CGI/веб.
   1.292 +</p>
   1.293 +<p>
   1.294 +Многие новые языки, такие как Genie, Vala и GTKaml, используют GTK.
   1.295 +Но имейте в виду, что они не так популярны, как C и GTK, и не факт, что их проще освоить и использовать (для выполнения действий в простых приложениях можно использовать скрипты оболочки).
   1.296 +Вы можете использовать Vala, но посмотрите на чистый код GTK, создающий одно окно, для этого нужно всего 14 строк:
   1.297 +</p>
   1.298  
   1.299  <pre>
   1.300  #include &lt;gtk/gtk.h&gt;
   1.301 @@ -191,101 +233,110 @@
   1.302  }
   1.303  </pre>
   1.304  
   1.305 -<p>Если вы не уверены в том, какой язык использовать, обсудите его в рассылке.
   1.306 -	Если вам нужен только небольшой функционал GUI, посмотрите на tazbox
   1.307 -	в репозитории slitaz-tools, в нём есть крошечные утилиты для рабочего
   1.308 -	стола, такие как окно выхода из системы. Первый подпроект SliTaz,
   1.309 -	написанный на чистом GTK, — это TazWeb. Вы можете разобраться с ним, чтобы
   1.310 -	узнать способы использования system() для добавления системных команд
   1.311 -	в интерфейс. Например, TazWeb использует Wget для загрузки и Sed для
   1.312 -	добавления закладок.</p>
   1.313 -<p>Скрипты Yad должны следовать руководящим принципам TazYad: <a
   1.314 -	href="http://hg.slitaz.org/slitaz-dev-tools/raw-file/tip/tazyad/README">README</a>
   1.315 -	и <a
   1.316 -	href="http://hg.slitaz.org/slitaz-dev-tools/raw-file/tip/tazyad/tazyad">пример кода</a>.</p>
   1.317 +<p>
   1.318 +Если вы не уверены в том, какой язык использовать, обсудите его в рассылке.
   1.319 +Если вам нужен только небольшой функционал GUI, посмотрите на tazbox в репозитории slitaz-tools, в нём есть крошечные утилиты для рабочего стола, такие как окно выхода из системы.
   1.320 +Первый подпроект SliTaz, написанный на чистом GTK, — это TazWeb.
   1.321 +Вы можете разобраться с ним, чтобы узнать способы использования system() для добавления системных команд в интерфейс.
   1.322 +Например, TazWeb использует Wget для загрузки и Sed для добавления закладок.
   1.323 +</p>
   1.324 +<p>
   1.325 +Скрипты Yad должны следовать руководящим принципам TazYad:
   1.326 +<a href="http://hg.slitaz.org/slitaz-dev-tools/raw-file/tip/tazyad/README">README</a>
   1.327    1.328 +<a href="http://hg.slitaz.org/slitaz-dev-tools/raw-file/tip/tazyad/tazyad">пример кода</a>.
   1.329 +</p>
   1.330  
   1.331  
   1.332 -<h2 id="iconv">Реализация iconv()</h2>
   1.333 +<h2 id="iconv">
   1.334 +Реализация iconv()
   1.335 +</h2>
   1.336  
   1.337 -<p>SliTaz использует iconv(), предоставленный GNU glibc — любые пакеты,
   1.338 -	предлагающие <code>libiconv</code>, должны использовать библиотеку,
   1.339 -	содержащуюся в <code>glibc-locale</code>. Поэтому в SliTaz больше не входит
   1.340 -	пакет libiconv (1,2 МБ).</p>
   1.341 +<p>
   1.342 +SliTaz использует iconv(), предоставленный GNU glibc — любые пакеты, предлагающие <code>libiconv</code>, должны использовать библиотеку, содержащуюся в <code>glibc-locale</code>.
   1.343 +Поэтому в SliTaz больше не входит пакет libiconv (1,2 МБ).
   1.344 +</p>
   1.345  
   1.346  
   1.347 -<h2 id="pkgs">Сборка пакетов SliTaz</h2>
   1.348 +<h2 id="pkgs">
   1.349 +Сборка пакетов SliTaz
   1.350 +</h2>
   1.351  
   1.352 -<p>Официальная сборка осуществляется с помощью Cookutils. Программа, а также
   1.353 -	документация о том, как использовать cook и <a
   1.354 -	href="http://hg.slitaz.org/cookutils/raw-file/tip/doc/cookutils.en.html"
   1.355 -	>создавать пакеты SliTaz</a> для пакетного менеджера TazPKG, установлена
   1.356 -	на каждой системе SliTaz.</p>
   1.357 -<p>Пакеты tazpkg в SliTaz создаются автоматически при помощи <a
   1.358 -	href="http://cook.slitaz.org/">Cooker</a> («повар») из пакета Cookutils,
   1.359 -	а также рецепта из wok. В Cookbook описан формат <a
   1.360 -	href="http://doc.slitaz.org/en:cookbook:receipt">рецептов</a>. Прежде,
   1.361 -	чем начать, необходимо прочитать документацию о Cook и рецептах.</p>
   1.362 -<p>Что касается выбора пакета, идея состоит в том, чтобы предложить пакет по
   1.363 -	задаче или функциональности, т.е. выбрать самое легкое приложение
   1.364 -	в какой-либо области, которое не дублирует уже имеющихся функций других
   1.365 -	пакетов. Обратите внимание, что текущие пакеты могут быть изменены; если
   1.366 -	вы найдете альтернативу, которая легче, или с более широкими возможностями,
   1.367 -	или более <em>привлекательная</em> за счет нескольких дополнительных КБ,
   1.368 -	вы можете предложить ее другим в рассылке. Особое внимание необходимо
   1.369 -	уделить пакетам для LiveCD, они должны быть очищены, лишены необязательных
   1.370 -	зависимостей и опций компилятора. Обычно, кандидаты пакетов для основного
   1.371 -	LiveCD обсуждаются в рассылке.</p>
   1.372 -<p>Прежде чем вы приступите к компиляции и созданию пакетов для SliTaz,
   1.373 -	убедитесь, что их еще нет в <a
   1.374 -	href="http://download.tuxfamily.org/slitaz/packages/undigest/"
   1.375 -	>неофициальном</a> wok, который находится на основном зеркале SliTaz.
   1.376 -	Не забывайте, что участники рассылки могут помочь вам и о том, что
   1.377 -	документация по <a href="http://doc.slitaz.org/en:cookbook:wok">wok и
   1.378 -	утилитам</a> написана, чтобы помочь вам начать работу.</p>
   1.379 +<p>
   1.380 +Официальная сборка осуществляется с помощью Cookutils.
   1.381 +Программа, а также документация о том, как использовать cook и <a href="http://hg.slitaz.org/cookutils/raw-file/tip/doc/cookutils.en.html">создавать пакеты SliTaz</a> для пакетного менеджера TazPKG, установлена на каждой системе SliTaz.
   1.382 +</p>
   1.383 +<p>
   1.384 +Пакеты tazpkg в SliTaz создаются автоматически при помощи <a href="http://cook.slitaz.org/">Cooker</a> («повар») из пакета Cookutils, а также рецепта из wok.
   1.385 +В Cookbook описан формат <a href="http://doc.slitaz.org/en:cookbook:receipt">рецептов</a>.
   1.386 +Прежде, чем начать, необходимо прочитать документацию о Cook и рецептах.
   1.387 +</p>
   1.388 +<p>
   1.389 +Что касается выбора пакета, идея состоит в том, чтобы предложить пакет по задаче или функциональности, т.е. выбрать самое легкое приложение в какой-либо области, которое не дублирует уже имеющихся функций других пакетов.
   1.390 +Обратите внимание, что текущие пакеты могут быть изменены; если вы найдете альтернативу, которая легче, или с более широкими возможностями, или более <em>привлекательная</em> за счет нескольких дополнительных килобайт, вы можете предложить ее другим в рассылке.
   1.391 +Особое внимание необходимо уделить пакетам для LiveCD, они должны быть очищены, лишены необязательных зависимостей и опций компилятора.
   1.392 +Обычно, кандидаты пакетов для основного LiveCD обсуждаются в рассылке.
   1.393 +</p>
   1.394 +<p>
   1.395 +Прежде чем вы приступите к компиляции и созданию пакетов для SliTaz, убедитесь, что их еще нет в <a href="http://download.tuxfamily.org/slitaz/packages/undigest/">неофициальном</a> wok, который находится на основном зеркале SliTaz.
   1.396 +Не забывайте, что участники рассылки могут помочь вам и о том, что документация по <a href="http://doc.slitaz.org/en:cookbook:wok">wok и утилитам</a> написана, чтобы помочь вам начать работу.
   1.397 +</p>
   1.398  
   1.399  
   1.400 -<h3 id="pkgs-naming">Именование пакетов</h3>
   1.401 +<h3 id="pkgs-naming">
   1.402 +Именование пакетов
   1.403 +</h3>
   1.404  
   1.405 -<p>В большинстве случаев пакет называется так же, как его исходник,
   1.406 -	за исключением модулей Python, Perl, PHP, Ruby и Lua. Например, пакет,
   1.407 -	содержащий шаблон Kid для системы, написанной на Python и XML называется
   1.408 -	<code>python-kid</code>.</p>
   1.409 +<p>
   1.410 +В большинстве случаев пакет называется так же, как его исходник, за исключением модулей Python, Perl, PHP, Ruby и Lua.
   1.411 +Например, пакет, содержащий шаблон Kid для системы, написанной на Python и XML называется <code>python-kid</code>.
   1.412 +</p>
   1.413  
   1.414  
   1.415 -<h2 id="website">Управление сайтом</h2>
   1.416 +<h2 id="website">
   1.417 +Управление сайтом
   1.418 +</h2>
   1.419  
   1.420 -<p>Управление сайтом осуществляется через репозиторий Mercurial, он может
   1.421 -	быть клонирован командой:</p>
   1.422 +<p>
   1.423 +Управление сайтом осуществляется через репозиторий Mercurial, он может быть клонирован командой:
   1.424 +</p>
   1.425  
   1.426 -<pre>$ hg clone http://hg.slitaz.org/website</pre>
   1.427 +<pre>
   1.428 +$ hg clone http://hg.slitaz.org/website
   1.429 +</pre>
   1.430  
   1.431 -<p>Или, если у вас есть соответствующие права:</p>
   1.432 +<p>
   1.433 +Или, если у вас есть соответствующие права:
   1.434 +</p>
   1.435  
   1.436 -<pre>$ hg clone http://repos.slitaz.org/website</pre>
   1.437 +<pre>
   1.438 +$ hg clone http://repos.slitaz.org/website
   1.439 +</pre>
   1.440  
   1.441  
   1.442 -<h3>Стиль написания xHTML</h3>
   1.443 +<h3>
   1.444 +Стиль написания xHTML
   1.445 +</h3>
   1.446  
   1.447 -<p>Страницы и различные <em>книги</em> написаны на xHTML 1.0 Transitional.
   1.448 -	Заголовок 1-го уровня используется только один раз (вверху страницы),
   1.449 -	заголовок 2-го уровня — это название документа, а уровни 3 и 4 используются
   1.450 -	для подзаголовков. Если используется маркированный список со ссылками на
   1.451 -	подразделы страницы, то он помещается вверху, сразу после заголовка 2-го
   1.452 -	уровня. Абзацы текста окружаются тегами <code>&lt;p&gt;…&lt;/p&gt;</code>.
   1.453 -	Для отступов мы используем не пробелы, а табуляцию — она помогает понять
   1.454 -	структуру страницы и экономит вес, занимаемый страницей (в байтах).
   1.455 -	Для того, чтобы поместить внутри абзаца код, как, например, имя команды,
   1.456 -	предпочтительно использовать <code>&lt;code&gt;</code>. Для отображения
   1.457 -	команд и демонстрации использования терминала в веб-странице используется
   1.458 -	<code>&lt;pre&gt;</code> для отображения заранее отформатированного
   1.459 -	текста. Пример:</p>
   1.460 +<p>
   1.461 +Страницы и различные <em>книги</em> написаны на xHTML 1.0 Transitional.
   1.462 +Заголовок 1-го уровня используется только один раз (вверху страницы), заголовок 2-го уровня — это название документа, а уровни 3 и 4 используются для подзаголовков.
   1.463 +Если используется маркированный список со ссылками на подразделы страницы, то он помещается вверху, сразу после заголовка 2-го уровня.
   1.464 +Абзацы текста окружаются тегами <code>&lt;p&gt;…&lt;/p&gt;</code>.
   1.465 +Для отступов мы используем не пробелы, а табуляцию — она помогает понять структуру страницы и экономит вес, занимаемый страницей (в байтах).
   1.466 +Для того, чтобы поместить внутри абзаца код, как, например, имя команды, предпочтительно использовать <code>&lt;code&gt;</code>.
   1.467 +Для отображения команд и демонстрации использования терминала в веб-странице используется <code>&lt;pre&gt;</code> для отображения заранее отформатированного текста.
   1.468 +Пример:
   1.469 +</p>
   1.470  
   1.471 -<pre>$ команда</pre>
   1.472 +<pre>
   1.473 +$ команда
   1.474 +</pre>
   1.475  
   1.476 -<p>Для отображения текста, который можно скопировать и вставить, например,
   1.477 -	скриптов, фрагментов кода, примеров конфигурационных файлов и т.д. — мы
   1.478 -	также используем <code>&lt;pre&gt;</code>, но с CSS-классом под названием
   1.479 -	"script". Пример:</p>
   1.480 +<p>
   1.481 +Для отображения текста, который можно скопировать и вставить, например, скриптов, фрагментов кода, примеров конфигурационных файлов и т.д. — мы также используем <code>&lt;pre&gt;</code>, но с CSS-классом под названием «script».
   1.482 +Пример:
   1.483 +</p>
   1.484  
   1.485  <pre class="script">
   1.486  &lt;pre class="script"&gt;
   1.487 @@ -295,30 +346,36 @@
   1.488  &lt;/pre&gt;
   1.489  </pre>
   1.490  
   1.491 -<p><em>Выделенные</em> слова помещаются в тег <code>&lt;em&gt;</code>, а
   1.492 -	внутренние ссылки являются относительными. Не забудьте проверить
   1.493 -	соответствие кода стандартам при помощи онлайнового <em>валидатора</em>
   1.494 -	от W3C.</p>
   1.495 +<p>
   1.496 +<em>Выделенные</em> слова помещаются в тег <code>&lt;em&gt;</code>, а внутренние ссылки являются относительными.
   1.497 +Не забудьте проверить соответствие кода стандартам при помощи онлайнового <em>валидатора</em> от W3C.
   1.498 +</p>
   1.499  
   1.500  
   1.501 -<h2 id="diff">Diff и patch</h2>
   1.502 +<h2 id="diff">
   1.503 +Diff и patch
   1.504 +</h2>
   1.505  
   1.506 -<p>Утилиты командной строки <code>diff</code> и <code>patch</code>
   1.507 -	соответственно создают и применяют специальные файлы (<em>«патчи»</em>),
   1.508 -	в которых содержатся различия между двумя файлами. Эта техника часто
   1.509 -	используется для совместной работы — она позволяет легко увидеть изменения,
   1.510 -	внесенные в исходный файл. Чтобы создать файл <code>diff</code>, который
   1.511 -	предназначен для чтения людьми в простом текстовом редакторе, используйте
   1.512 -	параметр <code>-u</code>:</p>
   1.513 +<p>
   1.514 +Утилиты командной строки <code>diff</code> и <code>patch</code> соответственно создают и применяют специальные файлы (<em>«патчи»</em>), в которых содержатся различия между двумя файлами.
   1.515 +Эта техника часто используется для совместной работы — она позволяет легко увидеть изменения, внесенные в исходный файл.
   1.516 +Чтобы создать файл <code>diff</code>, который предназначен для чтения людьми в простом текстовом редакторе, используйте параметр <code>-u</code>:
   1.517 +</p>
   1.518  
   1.519 -<pre>$ diff -u файл.оригинал файл.измененный &gt; файл.diff</pre>
   1.520 +<pre>
   1.521 +$ diff -u файл.оригинал файл.измененный &gt; файл.diff
   1.522 +</pre>
   1.523  
   1.524 -<p>Применить патч:</p>
   1.525 +<p>
   1.526 +Применить патч:
   1.527 +</p>
   1.528  
   1.529 -<pre>$ patch файл.оригинал файл.diff</pre>
   1.530 +<pre>
   1.531 +$ patch файл.оригинал файл.diff
   1.532 +</pre>
   1.533  
   1.534  <!-- End of content -->
   1.535 -</div>
   1.536 +</section>
   1.537  
   1.538  <?php include("../../lib/html/footer.ru.html"); ?>
   1.539