Commits

Dmitri Lebedev committed 3ddb726

updated home wiki, added Russian page

Comments (0)

Files changed (2)

+**[[Home|In English]]**
+
+= Пакет быстрой разработки на фреймворке Джанго =
+
+Перед вами шаблон проекта для быстрого создания и скоростной разработки сайтов
+на Джанге. В нём — все известные мне инструменты, позволяющие быстро
+программировать, отлаживать и следить за качеством кода.
+
+Просто добавьте в buildout.cfg пакет, который хотите использовать в проекте, и
+ваш коллега, работающий с этим же проектом на другой машине, получит его
+автоматически, запустив скрипт buildout. Не нужно сравнивать настройки ваших
+систем, ни пакеты Питона, ни использовать virtualenv.
+
+В этой конфигурации у вас сразу есть
+
+* улучшенная консоль Джанго
+* средства отладки (PuDB, Werkzeug, Панель Отладки Джанго)
+* быстрая разметка для шаблонов (HAML, SASS)
+* средства контроля кода (pyflakes, pep8)
+* разные полезные пакеты (reversion, tastypie, [[https://bitbucket.org/offline/django-annoying/wiki/Home|annoying]])
+
+
+Первоначальная версия пакета появилась благодаря работе моих коллег:
+
+* Kevin Tran, ведущий разработчик проекта [[http://obnob.com/|Obnob]]
+* [[http://aatiis.me/|Аттила Олах]]
+
+== Установка ==
+
+Склонируйте проект:
+
+{{{#!bash
+    hg clone https://hg.bitbucket.org/siberiano/fastdev-django
+}}}    
+Если проект будет жить самостоятельно, удалите связь с репозиторием fastdev:
+{{{#!bash
+    rm yourproject/.hg/hgrc
+}}}
+Если вы хотите участовать в проекте fastdjango, не делайте этого.
+
+== Использование ==
+{{{#!bash
+    make run
+}}}
+Изменили конфигурацию buildout.cfg, и нужно пересобрать проект? Обновили
+переводы в locale? Просто запустите {{{make run}}}. Команда {{{make
+shell_plus}}} тоже умная и может пересобрать проект, если зависимости в
+buildout.cfg изменились.
+
+Подробности о принципах работы make — на странице
+[[Makefile and Less Keyboard Banging in Shell]] в Вики.
+
+**Важно**: вместо {{{manage.py [команда]}}} используйте {{{./bin/django
+[команда]}}}. Этот скрипт собирается при помощи buildout. bin/django подключает
+пакеты окружения проекта.
+
+== Требования ==
+
+* Python 2.5+
+* Ruby 1.8+ (для Sass)
+* SQLite 3 или другая база данных
+
+Все остальные пакеты собираются автоматически скриптом buildout.
+
+== Пакеты ==
+
+=== bootstrap.py ===
+
+Устанавливает скрипт zc.buildout.
+
+=== IPython и django-extensions ===
+
+Улучшенная консоль Питона с автозавершением кода и макросами. Пакет extensions
+добавляет в Джанго команду {{{shell_plus}}}, которая автоматически загружает модели
+и запускает IPython.
+
+{{{#!bash
+    $ make shell_plus
+}}}
+
+=== PuDB ===
+
+Среда отладки Питона, выглядящая как старые добрые QBasic или программы
+Борланда 80-х годов.
+
+Чтобы использовать его, вставьте такую строку в месте, откуда нужно отлаживать:
+
+{{{#!bash
+    import pudb; pudb.set_trace()
+}}}
+
+=== django-debug-toolbar ===
+
+Панель отладки, которая вствляется прямо в страницу. Справа вверху в странице
+появится кнопка, открывающая панель. В панели вы увидите статистику генерации
+страницы, список использованных шаблонов и их контексты.
+
+=== HamlPy ===
+
+Лаконичная разметка, которая превращается в HTML. С файлами HAML намного проще
+работать и программисту, и верстальщику. HamlPy — это реализация HAML на Питоне,
+в которой есть также и вариант разметки Джанго:
+
+{{{#!haml
+    - extends 'base.html'
+    - load i18n
+    - block body
+        %h1
+            - trans 'Привет'
+        .items_effects
+            %ul.items
+                - for item in menu
+                    %li.item
+                        %a{'href': "{% url item.get_absolute_url %}",
+                            'title': "{{ item.title }}"}= item.name
+                        %br
+                        = item.description
+
+        .footer
+            - trans 'Пока'
+}}}
+
+=== Django Compressor и Sass ===
+
+Compressor — модуль для сжатия на лету CSS и ЯваСкрипта из страниц. Здесь он
+пока используется только для преобразования таблиц на языке SASS в корректную
+разметку CSS. Использование:
+
+Шаблон (на языке Haml):
+{{{#!haml
+    - compress css
+        %link{'href': '{{ STATIC_URL }}css/screen.sass',
+              'rel': 'stylesheet', 'type': 'text/sass',
+              'media': 'screen,projection'}
+    - endcompress
+    ...
+}}}
+Стиль на SASS, {{{screen.sass}}}:
+
+{{{#!sass
+    @mixin border-radius ($radii)
+        -webkit-border-radius: $radii
+        -moz-border-radius: $radii
+        -ms-border-radius: $radii
+        -o-border-radius: $radii
+        border-radius: $radii
+
+
+    .button
+        background: #88f
+        +border-radius(1.5em)  // здесь будет несколько правил под разные
+                               // броузер
+}}}
+
+**Не включено**: чтобы ускорить загрузку страницы, compressor может разобрать
+теги {{{script}}} в странице, открыть файлы скриптов, уплотнить их и сжать в один
+файл.
+
+=== Webfaction ===
+
+Чтобы запустить ваш проект на хостинге Webfaction, нужно сделать специальный
+скрипт WSGI. Запустите команду
+
+{{{#!bash
+    make webfaction
+}}}
+
+в корне проекта появится файл {{{<имя проекта>.wsgi}}} (имя проекта задаётся в
+buildout.cfg). Изменили пакеты в buildout.cfg? Просто запустите снова
+{{{make webfaction}}}.
+**[[Home.ru|На русском]]**
+
 == Contents ==
 
 * **[[Useful Shell Commands]]**
 * **[[Makefile and Less Keyboard Banging in Shell]]**
 
-== Welcome ==
+= Fast Development Setup for Django =
 
-Welcome to your wiki! This is the default page we've installed for your convenience. Go ahead and edit it.
+This project is a template for fast creation and development of Django websites.
+It contains all the tools that I know that allow fast coding, debugging and
+quality control.
 
-=== Wiki features ===
+When you add packages to buildout.cfg to be used in your project, any
+collaborator will get them just by running buildout script. No need to compare
+packages setups and versions, no need to use virtualenv.
 
-This wiki uses the [[http://www.wikicreole.org/|Creole]] syntax, and is fully compatible with the 1.0 specification.
+With this setup, right away you have
 
-The wiki itself is actually a mercurial repository, which means you can clone it, edit it locally/offline, add images or any other file type, and push it back to us. It will be live immediately.
+* extensions and a better shell
+* debugging tools (PuDB, Werkzeug, Debug Toolbar)
+* fast templating tools (HAML, SASS)
+* code quality tools (pyflakes, pep8)
+* useful packages (reversion, tastypie,
+[[https://bitbucket.org/offline/django-annoying/wiki/Home|annoying]])
 
-Go ahead and try:
+
+Credits for the initial contents of this package go to:
+
+* Kevin Tran, the lead developer of [[http://obnob.com/|Obnob]]
+* [[http://aatiis.me/|Attila Olah]]
+
+== Installation ==
+
+Clone the project:
+
+{{{#!bash
+    hg clone https://hg.bitbucket.org/siberiano/fastdev-django yourproject
+}}}
+
+If you want to develop your own project, disconnect it from my repo:
+
+{{{#!bash
+    rm yourproject/.hg/hgrc
+}}}
+
+If you want to contribute to fastdev, then don't.
+
+== Usage ==
 
 {{{
-$ hg clone https://bitbucket.org/siberiano/fastdev-django/wiki
+#!bash
+    cd yourproject
+    make run
 }}}
 
-Wiki pages are normal files, with the .wiki extension. You can edit them locally, as well as creating new ones.
+Changed packages in buildout.cfg? Updated django.po in locales? Just stop the
+server and do {{{make run}}} again. The {{{make shell_plus}}} command is also
+smart and can re-build bin/django should you change the dependencies in
+buildout.cfg.
 
-=== Syntax highlighting ===
+Read **"[[Makefile and Less Keyboard Banging in Shell]]"** for more information.
 
-You can also highlight snippets of text, we use the excellent [[http://www.pygments.org/|Pygments]] library.
+**Important**: in this environment, use {{{bin/django}}} instead of
+{{{manage.py}}}. It's a script, assembled by buildout, that connects the project
+environment packages.
 
-Here's an example of some Python code:
+== Requirements ==
 
-{{{
-#!python
+* Python 2.5+
+* Ruby 1.8+ (for Sass)
+* SQLite 3 or any database of choice
 
-def wiki_rocks(text):
-    formatter = lambda t: "funky"+t
-    return formatter(text)
+All the other packages are bundled in the buildout script.
+
+== Packages ==
+
+=== bootstrap.py ===
+
+Installs zc.buildout script.
+
+=== IPython and django-extensions ===
+
+A better Python shell with code completion and scripting. The extensions package
+adds {{{shell_plus}}} command that runs IPython. There's a shortcut for it:
+
+{{{#!bash
+    make shell_plus
 }}}
 
-You can check out the source of this page to see how that's done, and make sure to bookmark [[http://pygments.org/docs/lexers/|the vast library of Pygment lexers]], we accept the 'short name' or the 'mimetype' of anything in there.
+=== PuDB ===
 
-Have fun!
+A debugging environment for Python, which looks like the good old QBasic or
+Borland IDEs from the '80-s.
+
+To use it, add this line in the code where you need to debug:
+
+{{{#!bash
+    import pudb; pudb.set_trace()
+}}}
+
+=== django-debug-toolbar ===
+
+A toolbar that is embed into pages that shows you the list of rendered templates
+and their contexts. Enable its middleware and see a clickable label on the right
+in pages.
+
+
+=== HamlPy ===
+
+An elegant markup language that transforms into HTML. HamlPy implements HAML and
+a similar notation for Django template language:
+
+{{{#!haml
+    - extends 'base.html'
+    - load i18n
+    - block body
+        %h1
+            - trans 'Hello'
+        .items_effects
+            %ul.items
+                - for item in menu
+                    %li.item
+                        %a{'href': "{% url item.get_absolute_url %}",
+                            'title': "{{ item.title }}"}= item.name
+                        %br
+                        = item.description
+
+        .footer
+            - trans 'See you'
+ }}}
+
+=== Django Compressor and Sass ===
+
+Compressor can be used to transform and compress CSS and JS on the fly. Here it
+is used to convert SASS stylesheets in valid CSS. Usage (Haml notation):
+
+Template:
+
+{{{#!sass
+    - compress css
+        %link{'href': '{{ STATIC_URL }}css/screen.sass',
+              'rel': 'stylesheet', 'type': 'text/sass',
+              'media': 'screen,projection'}
+    - endcompress
+}}}
+
+Sass stylesheet {{{screen.sass}}}:
+
+{{{#!sass
+    @mixin border-radius ($radii)
+        -webkit-border-radius: $radii
+        -moz-border-radius: $radii
+        -ms-border-radius: $radii
+        -o-border-radius: $radii
+        border-radius: $radii
+
+
+    .button
+        background: #88f
+        +border-radius(1.5em)  // will expand in rules for all vendors
+}}}
+
+A //not included// feature: it can parse {{{script}}} tags in the page, open the
+JS files, minify them and pack into one single file.
+
+=== Webfaction ===
+
+To make a WSGI script for Webfaction hosting, run
+
+{{{#!bash
+    make webfaction
+}}}
+In the project root the {{{<project name>.wsgi}}} script will be created.
+(Project name is set in buildout.cfg.)
+
+Updated packages in buildout.cfg? Just do {{{make webfaction}}} again. Make will
+see that Django has to be re-installed with Buildout.