====== Use Geany for Django projects ====== The following ideas may help you to better work on Django ([[http://djangoproject.com|www.djangoproject.com]]) projects with Geany. ===== Better syntax highlighting for Django templates ===== You can configure Geany to highlight variables and template tags in Django templates. This helps a lot to differentiate between normal HTML code and Django template code in the template files. By default, highlighting of Django template tags is disabled because it may cause glitches with other special sorts of HTML code and not everyone is using the Django template language. To enable that special highlight, you need to adjust the HTML filetype definition file. Either create or edit the file /home//.config/geany/filedefs/filetypes.html and add the following few lines (or just adjust the [lexer_properties] section if it already exists):((Django template tags highlighting tip by http://www.drhevans.com/blog/posts/261-enabling-django-template-syntax-highlighting-in-geany/)) [lexer_properties] lexer.html.django=1 More information about this file, its format and the path, e.g. on Windows, can be found in detail in the [[http://www.geany.org/manual/current/index.html#configuration-files |Geany manual, section Configuration Files]]. ==== Fine-tune styling ==== You can adjust the styling to some extend using the following settings which should be placed in the [styling] section of filetypes.html: * html_asp * python_identifier * python_default Explanation: {% load pages_tags i18n %} ''{%'' and ''%}'' will be styled with //html_asp//, ''load'', ''pages_tags'' and ''i18n'' will be styled with //python_identifier// and the spaces between with //python_default//. Example: [styling] # foreground;background;bold;italic or named_style,bold,italic html_asp=#ff0000 python_identifier=keyword_1,italic python_default=default The example above makes ''{%'' and ''%}'' styled in red (#ff0000) and the words in between will be styled with the named-style //keyword_1// (which is by default dark blue) and renders it in italic. For more information about configuring styles, please check the manual [[http://www.geany.org/manual/current/index.html#filetype-configuration|Geany manual, section Filetype configuration]]. ===== Useful Django snippets ===== Tomasz Karbownicki ((Django snippets by http://karbownicki.com/2008/05/07/snippety-w-geany/)) created some useful snippets for the filetypes Python and HTML to assist you working on Django code and templates. For convenience, the relevant parts are copied below to easily be inserted into your Geany snippet configuration file. To do so, just open the configuration file in Geany by using Tools -> Configuration Files -> snippets.conf and either paste the contents below completely or extend the already existing sections Python and HTML. [Python] # Django models # by Tomasz Karbownicki mclass=class %cursor%(models.Model):\n\t'''%cursor%'''\n\n\tdef __unicode__(self):\n\t\treturn self.XXXXX\n\n\tdef get_absolute_url(self):\n\t\treturn "/XXXXX/%s/" % self.slug\n\n\tclass Meta:\n\t\tverbose_name = "%cursor%"\n\t\tverbose_name_plural = "%cursor%" mchar=%cursor% = models.CharField(max_length=50, verbose_name=u'%cursor%') mint=%cursor% = models.IntegerField(verbose_name=u'%cursor%') mtext=%cursor% = models.TextField(verbose_name=u'%cursor%') mkey=%cursor% = models.ForeignKey(%cursor%, verbose_name=u'%cursor%') mimage=%cursor% = models.ImageField(upload_to='', verbose_name=u'%cursor%') mbool=%cursor% = models.BooleanField(verbose_name=u'%cursor%') mdate=%cursor% = models.DateField(verbose_name=u'%cursor%', help_text='Format daty: 2009-04-28') memail=%cursor% = models.EmailField(verbose_name=u'%cursor%') murl=%cursor% = models.URLField(verbose_name=u'%cursor%') mslug=%cursor% = models.SlugField(verbose_name=u'%cursor%', unique=True) [HTML] # Django templates if={% if %cursor% %}\n\t\n{% endif %} for={% for sth in %cursor% %}\n\t%cursor%\n{% endfor %} dv={{ %cursor% }} db={% %cursor% %} dbl={% block %cursor% %}\n\t%cursor%\n{% endblock %} trans={% trans "%cursor%" %} com={# %cursor% #} comm={% comment%} ecomm={% endcomment%} More snippets for Python, HTML and many other languages can be found in this wiki, see [[snippets/start]]. More information about snippets in Geany can be found in detail in the [[http://www.geany.org/manual/current/index.html#user-definable-snippets |Geany manual, section Snippets]]. ===== Tags ===== Tags for django (version 1.4.1) can be found [[http://wiki.geany.org/_media/tags/django1.4.1.py.tags|here]]. For information on using tag files, see the [[http://www.geany.org/manual/current/index.html#tags|Tags section]] of the [[http://www.geany.org/manual/current/index.html|Geany User Manual]]. ===== Live Preview in Geany ===== Using the great //Web helper// plugin (from the [[http://plugins.geany.org|Geany-Plugins]] package) you can view and test your site directly in Geany without switching to an external browser. Simply enable the //Web helper// plugin in Geany's plugin manager dialog, open it preferences dialog and enable the option "Browser auto reload" (to automatically reload the page when you save a file in Geany). Then you will get a new tab "Web preview" in the left message window (or whereever you configured the plugin to show up) and you can enter any weg page address, e.g. those of your currently edited Django project. Below is a screenshot demonstrating the plugin: the opened web page on the left, the template code on the right and in the terminal window at the bottom, Django's runserver command is running: {{ :howtos:geany_webhelper_django.png?550 |}} This way you can edit your Django and template code in Geany as usual and have it automatically shown as web page in the //Web helper// plugin without the need of switching to an external browser, and the Django debug server can also be ran in Geany, using the embedded terminal. ===== Twig/Symfony2 Support ===== If you want to add detection/highlighting of [[http://en.wikipedia.org/wiki/Twig_%28template_engine%29|Twig/Symfony2]] files (based on Django's templates) when opening in Geany, add ''*.html.twig'' to the ''HTML'' key in the ''filetype_extensions.conf'' file. For more information on ''filetype_extensions.conf'', see the [[http://www.geany.org/manual/dev/index.html#filetype-extensions|Filetype extensions section]] of the [[http://www.geany.org/manual/current/index.html|Geany User Manual]]. {{tag>howto python django twig symfony2 snippets}}