<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Codeline &#187; Django</title>
	<atom:link href="http://codeline.richmd.ru/category/django/feed/" rel="self" type="application/rss+xml" />
	<link>http://codeline.richmd.ru</link>
	<description>Веб созидание</description>
	<lastBuildDate>Thu, 22 Apr 2010 09:01:21 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>CSS Шаблоны</title>
		<link></link>
		<comments>http://codeline.richmd.ru/2009/06/css-template/#comments</comments>
		<pubDate>Thu, 18 Jun 2009 13:25:43 +0000</pubDate>
		<dc:creator>Павел Антонов</dc:creator>
				<category><![CDATA[Django]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[css]]></category>

		<guid isPermaLink="false">http://codeline.richmd.ru/?p=120</guid>
		<description><![CDATA[Популярная в последнее время тема CSS шаблонов. Уж если вставать на рельсы автоматизации процесса веб-разработки, то автоматизировать все и вся. В том числе и CSS.

Если уж заговорили про &#171;рельсы&#187;, то первым пусть будет претендент написанный на Ruby: LESS. Шаблонизатор использует синтаксис CSS, расширяя его вложенностью и переменными:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#header &#123;
  color: red;
  a &#123;
  [...]]]></description>
			<content:encoded><![CDATA[<p>Популярная в последнее время тема CSS шаблонов. Уж если вставать на рельсы автоматизации процесса веб-разработки, то автоматизировать все и вся. В том числе и CSS.<br />
<span id="more-120"></span></p>
<p>Если уж заговорили про &laquo;рельсы&raquo;, то первым пусть будет претендент написанный на Ruby: <a href="http://lesscss.org/">LESS</a>. Шаблонизатор использует синтаксис CSS, расширяя его вложенностью и переменными:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #cc00cc;">#header</span> <span style="color: #00AA00;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">red</span><span style="color: #00AA00;">;</span>
  a <span style="color: #00AA00;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">font-weight</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">bold</span><span style="color: #00AA00;">;</span>
    <span style="color: #000000; font-weight: bold;">text-decoration</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">none</span><span style="color: #00AA00;">;</span>
  <span style="color: #00AA00;">&#125;</span>
<span style="color: #00AA00;">&#125;</span>
&nbsp;
<span style="color: #a1a100;">@a_border: 1px;</span>
&nbsp;
<span style="color: #cc00cc;">#header</span> <span style="color: #00AA00;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">border-top</span><span style="color: #00AA00;">:</span> <span style="color: #a1a100;">@a_border;</span>
  <span style="color: #000000; font-weight: bold;">border-left</span><span style="color: #00AA00;">:</span> <span style="color: #a1a100;">@a_border + 1;</span>
  <span style="color: #000000; font-weight: bold;">border-right</span><span style="color: #00AA00;">:</span> <span style="color: #a1a100;">@a_border + 3;</span>
  <span style="color: #000000; font-weight: bold;">border-bottom</span><span style="color: #00AA00;">:</span> <span style="color: #a1a100;">@a_border * 5;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>Что получится, я думаю объяснять не нужно, все абсолютно прозрачно. Смущает несколько название. С учетом того что разработчики предлагают компилятор для коммандной строки, можно и с коммандой (less) перепутать. Еще один странный момент &#8211; включение классов:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.rounded_corners</span> <span style="color: #00AA00;">&#123;</span>
  -moz-border-radius<span style="color: #00AA00;">:</span> <span style="color: #933;">8px</span><span style="color: #00AA00;">;</span>
  -webkit-border-radius<span style="color: #00AA00;">:</span> <span style="color: #933;">8px</span><span style="color: #00AA00;">;</span>
  border-radius<span style="color: #00AA00;">:</span> <span style="color: #933;">8px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
&nbsp;
<span style="color: #cc00cc;">#header</span> <span style="color: #00AA00;">&#123;</span>
  .rounded_corners<span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
&nbsp;
<span style="color: #cc00cc;">#footer</span> <span style="color: #00AA00;">&#123;</span>
  .rounded_corners<span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>По данному коду будет сгенерировано следующие:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #cc00cc;">#header</span> <span style="color: #00AA00;">&#123;</span>
  -moz-border-radius<span style="color: #00AA00;">:</span> <span style="color: #933;">8px</span><span style="color: #00AA00;">;</span>
  -webkit-border-radius<span style="color: #00AA00;">:</span> <span style="color: #933;">8px</span><span style="color: #00AA00;">;</span>
  border-radius<span style="color: #00AA00;">:</span> <span style="color: #933;">8px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
&nbsp;
<span style="color: #cc00cc;">#footer</span> <span style="color: #00AA00;">&#123;</span>
  -moz-border-radius<span style="color: #00AA00;">:</span> <span style="color: #933;">8px</span><span style="color: #00AA00;">;</span>
  -webkit-border-radius<span style="color: #00AA00;">:</span> <span style="color: #933;">8px</span><span style="color: #00AA00;">;</span>
  border-radius<span style="color: #00AA00;">:</span> <span style="color: #933;">8px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>Что выглядит странно. Ну хорошо &#8211; включили код класса, но почему класс-то из результатов пропал? Странно.</p>
<p><a href="http://sandbox.pocoo.org/clevercss/">CleverCSS</a> написан на Python что не может не радовать, но разработчики решили принести синтаксис Python в CSS &#8211; что настораживает. Одно дело когда ты работаешь с расширенным синтаксисом CSS, и совсем уже другое, когда надо изучать/применять некий чужеродный синтаксис:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
</pre></td><td class="code"><pre class="python" style="font-family:monospace;">ul<span style="color: #808080; font-style: italic;">#comments, ol#comments:</span>
  margin: <span style="color: #ff4500;">0</span>
  padding: <span style="color: #ff4500;">0</span>
&nbsp;
  li:
    padding: 0.4em
    margin: 0.8em <span style="color: #ff4500;">0</span> 0.8em
&nbsp;
    h3:
      font-size: 1.2em
    p:
      padding: 0.3em
    p.<span style="color: black;">meta</span>:
      text-align: right
      color: <span style="color: #808080; font-style: italic;">#ddd</span></pre></td></tr></table></div>

<p>Данный код будет соответствовать CSS-коду:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
</pre></td><td class="code"><pre class="css" style="font-family:monospace;">ul<span style="color: #cc00cc;">#comments</span><span style="color: #00AA00;">,</span>
ol<span style="color: #cc00cc;">#comments</span> <span style="color: #00AA00;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
&nbsp;
ul<span style="color: #cc00cc;">#comments</span> li<span style="color: #00AA00;">,</span>
ol<span style="color: #cc00cc;">#comments</span> li <span style="color: #00AA00;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span> <span style="color: #933;">0.4em</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span> <span style="color: #933;">0.8em</span> 0 <span style="color: #933;">0.8em</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
&nbsp;
ul<span style="color: #cc00cc;">#comments</span> li h3<span style="color: #00AA00;">,</span>
ol<span style="color: #cc00cc;">#comments</span> li h3 <span style="color: #00AA00;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">font-size</span><span style="color: #00AA00;">:</span> <span style="color: #933;">1.2em</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
&nbsp;
ul<span style="color: #cc00cc;">#comments</span> li p<span style="color: #00AA00;">,</span>
ol<span style="color: #cc00cc;">#comments</span> li p <span style="color: #00AA00;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span> <span style="color: #933;">0.3em</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
&nbsp;
ul<span style="color: #cc00cc;">#comments</span> li p.meta<span style="color: #00AA00;">,</span>
ol<span style="color: #cc00cc;">#comments</span> li p<span style="color: #6666ff;">.meta</span> <span style="color: #00AA00;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">text-align</span><span style="color: #00AA00;">:</span> <span style="color: #000000; font-weight: bold;">right</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#dddddd</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>Возможности схожи с тем что умеет <a href="http://lesscss.org/">LESS</a>: вложенность, переменные и операции. Вложенность можно применять и к наборам атрибутов:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="python" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">#main p:</span>
  font-<span style="color: #66cc66;">&gt;</span>
    family: Verdana, sans-serif
    size: 1.1em
    style: italic</pre></td></tr></table></div>

<p>При вычислении может приводить величины. Например, складывать cm и mm. Все это приятно, но на мой взгляд ценность представляет только вложенность и переменные/вычислений. Остальное уже не очень обязательно.</p>
<p>С одной стороны CSS-шаблоны это здорово. Но если посмотреть на цикл разработки, верстка выполняется на момент когда еще нет никаких систем (cms/шаблонных движков). А использовать верстальщику компилятор CSS, по-моему, будет 5-м колесом в телеге. Переводить после верстальщика CSS в CSS-шаблон, для использования в системе, то же мало оправдано.</p>
<p>Поскольку я никогда не применял CSS-Шаблоны в своей практике, может кто-нибудь прокомментировать полезность подобных механизмов? </p>
]]></content:encoded>
			<wfw:commentRss>http://codeline.richmd.ru/2009/06/css-template/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Расширения для Firebug</title>
		<link></link>
		<comments>http://codeline.richmd.ru/2009/06/%d1%80%d0%b0%d1%81%d1%88%d0%b8%d1%80%d0%b5%d0%bd%d0%b8%d1%8f-%d0%b4%d0%bb%d1%8f-firebug/#comments</comments>
		<pubDate>Wed, 10 Jun 2009 21:37:36 +0000</pubDate>
		<dc:creator>Павел Антонов</dc:creator>
				<category><![CDATA[Django]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[firebug]]></category>
		<category><![CDATA[firelogger]]></category>

		<guid isPermaLink="false">http://codeline.richmd.ru/?p=116</guid>
		<description><![CDATA[WebResourcesDepot опубликовал список необходимых расширений для Firebug. В списке как широко известные всем YSlow, FirePHP и новый Page Speed, так и много новых и мало известных расширений. От себя добавил бы FireLogger  &#8211; аналог FirePHP для Python. Есть middleware для Django.
Кстати, в комментариях к статье есть тоже полезные расширения. Например, Widerbug &#8211; для пользователей [...]]]></description>
			<content:encoded><![CDATA[<p>WebResourcesDepot опубликовал <a href="http://www.webresourcesdepot.com/13-must-have-add-ons-to-strengthen-firebug/">список необходимых расширений для Firebug</a>. В списке как широко известные всем YSlow, FirePHP и новый Page Speed, так и много новых и мало известных расширений. От себя добавил бы <a href="https://addons.mozilla.org/en-US/firefox/addon/11090">FireLogger</a>  &#8211; аналог FirePHP для Python. Есть middleware для Django.</p>
<p>Кстати, в комментариях к статье есть тоже полезные расширения. Например, Widerbug &#8211; для пользователей широких мониторов.</p>
]]></content:encoded>
			<wfw:commentRss>http://codeline.richmd.ru/2009/06/%d1%80%d0%b0%d1%81%d1%88%d0%b8%d1%80%d0%b5%d0%bd%d0%b8%d1%8f-%d0%b4%d0%bb%d1%8f-firebug/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>30 статей о Django</title>
		<link></link>
		<comments>http://codeline.richmd.ru/2006/07/30-%d1%81%d1%82%d0%b0%d1%82%d0%b5%d0%b9-%d0%be-django/#comments</comments>
		<pubDate>Thu, 20 Jul 2006 20:47:26 +0000</pubDate>
		<dc:creator>Павел Антонов</dc:creator>
				<category><![CDATA[Django]]></category>

		<guid isPermaLink="false">http://codeline.richmd.ru/?p=6</guid>
		<description><![CDATA[

Are you generic?
Sending E-Mails via Templates
Django admin for your PHP app?
Hacking FreeComment
the difference between ‘blank’ and ‘null’
Using Django’s TemplateTags
A Django website that took (a lot) more than 20 minutes
Forms With Multiple Inline Objects
Extending Generic Views
Template context processors
Custom SQL In Django
How Django processes a request
Write better template tags
Extending the User model
Django’s Undocumented contenttype app
Django, gzip and [...]]]></description>
			<content:encoded><![CDATA[<p><span id="more-6"></span></p>
<ol>
<li><a href="http://www.wilsonminer.com/posts/2006/may/10/are-you-generic/">Are you generic?</a></li>
<li><a href="http://www.rossp.org/blog/2006/jul/11/sending-e-mails-templates/">Sending E-Mails via Templates</a></li>
<li><a href="http://www2.jeffcroft.com/2006/jul/14/django-admin-your-php-app/">Django admin for your PHP app?</a></li>
<li><a href="http://www.b-list.org/weblog/2006/07/16/django-tips-hacking-freecomment">Hacking FreeComment</a></li>
<li><a href="http://www.b-list.org/weblog/2006/06/28/django-tips-difference-between-blank-and-null">the difference between ‘blank’ and ‘null’</a></li>
<li><a href="http://www.rossp.org/blog/2006/jun/23/building-blog-django-4/">Using Django’s TemplateTags</a></li>
<li><a href="http://lukeplant.me.uk/blog.php?id=1107301641">A Django website that took (a lot) more than 20 minutes</a></li>
<li><a href="http://www.pointy-stick.com/blog/2006/07/03/django-tips-forms-multiple-inline-objects/">Forms With Multiple Inline Objects</a></li>
<li><a href="http://www.pointy-stick.com/blog/2006/06/29/django-tips-extending-generic-views/">Extending Generic Views</a></li>
<li><a href="http://www.b-list.org/weblog/2006/06/14/django-tips-template-context-processors">Template context processors</a></li>
<li><a href="http://www.pointy-stick.com/blog/2006/06/14/custom-sql-django/">Custom SQL In Django</a></li>
<li><a href="http://www.b-list.org/weblog/2006/06/13/how-django-processes-request">How Django processes a request</a></li>
<li><a href="http://www.b-list.org/weblog/2006/06/07/django-tips-write-better-template-tags">Write better template tags</a></li>
<li><a href="http://www.b-list.org/weblog/2006/06/06/django-tips-extending-user-model">Extending the User model</a></li>
<li><a href="http://feh.holsman.net/articles/2006/06/03/django-contenttype">Django’s Undocumented contenttype app</a></li>
<li><a href="http://www.b-list.org/weblog/2006/05/21/django-gzip-and-wsgi">Django, gzip and WSGI</a></li>
<li><a href="http://www2.jeffcroft.com/2006/may/02/django-non-programmers/">Django for non-programmers</a></li>
<li><a href="http://www2.jeffcroft.com/2006/feb/25/django-templates-the-power-of-inheritance/">Django Templates: The Power of Inheritance</a></li>
<li><a href="http://www2.jeffcroft.com/2006/feb/21/django-templates-an-introduction/">Django Templates: An Introduction</a></li>
<li><a href="http://www2.jeffcroft.com/2006/may/11/django-dreamhost/">Setting up Django on Dreamhost</a></li>
<li><a href="http://thinkhole.org/wp/2006/04/03/django-on-windows-howto/">Django on Windows HOWTO</a></li>
<li><a href="http://lukeplant.me.uk/blog.php?id=1107301634">Django Admin Hack &#8211; Fields varying with user permissions</a></li>
<li><a href="http://www.carcosa.net/jason/blog/computing/django/gotchas-2006-04-19">Some django gotchas</a></li>
<li><a href="http://rfc1437.de/page/django-templates-are-not-limited/">Django Templates are not limited</a></li>
<li><a href="http://www-128.ibm.com/developerworks/linux/library/l-django/index.html">Develop for the Web with Django and Python</a></li>
<li><a href="http://code.djangoproject.com/wiki/AJAXWidgetComboBox">An AJAX ComboBox Widget for Django</a></li>
<li><a href="http://code.djangoproject.com/wiki/UsingFreeComment">Using Django’s Free Comments</a></li>
<li><a href="http://grindhaug.org/?p=157">MochiKit and Django</a></li>
<li><a href="http://www.oreillynet.com/onlamp/blog/2006/06/django_rss_made_stupidly_simpl.html">RSS made stupidly simple</a></li>
<li><a href="http://toolmantim.com/article/2006/5/31/installing_django_on_osx">Installing Django on OSX</a></li>
</ol>
<p>Взято с <a target="_blank" title="Top 30 Django Tutorials and Articles" href="http://blixtra.org/blog/2006/07/17/top-30-django-tutorials-and-articles/">Top 30 Django Tutorials and Articles</a></p>
]]></content:encoded>
			<wfw:commentRss>http://codeline.richmd.ru/2006/07/30-%d1%81%d1%82%d0%b0%d1%82%d0%b5%d0%b9-%d0%be-django/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
