[geany/newsletter] d2f4bd: Adding HTML-version

Frank Lanitz git-noreply at xxxxx
Mon May 28 09:05:30 UTC 2012


Branch:      refs/heads/master
Author:      Frank Lanitz <frank at frank.uvena.de>
Committer:   Frank Lanitz <frank at frank.uvena.de>
Date:        Mon, 28 May 2012 09:05:30
Commit:      d2f4bd76493659e8c1177eeb4864fc19965af53f
             https://github.com/geany/newsletter/commit/d2f4bd76493659e8c1177eeb4864fc19965af53f

Log Message:
-----------
Adding HTML-version


Modified Paths:
--------------
    vol_5/newsletter_5.html

Modified: vol_5/newsletter_5.html
441 files changed, 441 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,441 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="generator" content="Docutils 0.8.1: http://docutils.sourceforge.net/" />
+<title>Geany Newsletter #5</title>
+<style type="text/css">
+
+html { font-family: sans-serif; }
+
+
+body
+{
+	font-family: sans-serif;
+	width: 80%;
+	margin-left: auto; margin-right: auto;
+	margin-top: 2%;
+}
+
+
+h1 { font-size: 1.4em }
+h2 { font-size: 1.3em }
+h3 { font-size: 1.2em }
+h4 { font-size: 1.1em }
+h5 { font-size: 1.0em }
+h6 { font-size: 0.9em }
+
+
+a:link, a:visited
+{
+	color: #9e8100;
+	text-decoration: none;
+}
+
+a:hover
+{
+	color: #a40000;
+	text-decoration: underline;
+}
+
+
+img { border-width: 0; }
+
+
+hr
+{
+	border-style: solid;
+	border-color: #babdb6;
+}
+
+
+table
+{
+	margin-top: 20px;
+}
+
+table, th, td
+{
+	border-style:1px solid;
+	border-color: #babdb6;
+}
+
+
+div.document
+{
+	width: 80%;
+	margin-left: auto; margin-right: auto;
+}
+
+
+div#header
+{
+	line-height: 48px;
+}
+
+
+div#contents, div#navigation
+{
+	width: 30%; float: left;
+	margin-bottom: 10px; margin-right: 1em;
+	padding: 1.5em;
+	background-color: #F2F2F3;
+	font-size: 10pt;
+	position: static;
+	border-radius: 20px;
+	-moz-border-radius: 20px;
+	-webkit-border-radius: 20px;
+	overflow: hidden;
+}
+
+div#contents ul, div#navigation ul
+{
+	list-style-type: none;
+	list-style-position: outside;
+	margin-bottom: 0.2em;
+	padding-left: 0.8em;
+}
+
+div#contents ul li, div#navigation ul li
+{
+	margin-top: 0.4em;
+}
+
+div#navigation h1
+{
+	font-size: 1em;
+}
+
+
+div#navigation hr
+{
+	width: 100%;
+	margin: 0; padding: 0;
+}
+
+div#navigation ul li
+{
+	margin-bottom: 4px;
+}
+
+
+div#navigation a
+{
+	display: block;
+	text-decoration: none;
+}
+
+div.section, div#content
+{
+	overflow: auto;
+}
+
+code, pre.literal-block
+{
+	display: block;
+	padding-left: 4px;
+	margin-left: 25px; margin-top: 5px;
+	font-family: monospace;
+	background-color: #eeeeef;
+	border-left-width: 2px; border-right-width: 0;
+	border-top-width: 0; border-bottom-width: 0;
+	border-style: solid; border-color: #babdb6;
+	overflow-x: auto;
+}
+
+
+/*
+ * This is for the pages with a content section. The heading of the content
+ * generated from rst2html looks like this:
+ * <p class="topic-title first">
+ *		Contents
+ *	</p>
+ * So we format it as general h3 headers look like in the browser (tested with
+ * Midori, Firefox and Opera, all work fine).
+ * FIXME: ideally the mentioned code block should be a h3 header instead
+ */
+p.topic-title
+{
+	font-size: 1.17em;
+	font-weight: bold;
+	margin: 1em 0px;
+}
+
+
+div#footer
+{
+	clear: both;
+	text-align: center;
+	font-size: smaller;
+	margin-top: 3em;
+}
+
+</style>
+</head>
+<body>
+<div class="document" id="geany-newsletter-5">
+<h1 class="title">Geany Newsletter #5</h1>
+
+<div class="contents topic" id="contents">
+<p class="topic-title first">Contents</p>
+<ul class="simple">
+<li><a class="reference internal" href="#about-geany" id="id3">About Geany</a></li>
+<li><a class="reference internal" href="#new-translations-and-updates" id="id4">New translations and updates</a></li>
+<li><a class="reference internal" href="#wiki-available" id="id5">Wiki available</a></li>
+<li><a class="reference internal" href="#c-plugins-supported" id="id6">C++ plugins supported</a></li>
+<li><a class="reference internal" href="#plugins" id="id7">Plugins</a><ul>
+<li><a class="reference internal" href="#new-plugins" id="id8">New Plugins</a><ul>
+<li><a class="reference internal" href="#geanypyflakes" id="id9">GeanyPyflakes</a></li>
+<li><a class="reference internal" href="#geniuspaste" id="id10">GeniusPaste</a></li>
+</ul>
+</li>
+<li><a class="reference internal" href="#geanypg" id="id11">GeanyPG</a></li>
+</ul>
+</li>
+<li><a class="reference internal" href="#geany-local" id="id12">Geany local</a><ul>
+<li><a class="reference internal" href="#geany-at-chemnitzer-linuxtage-2012-march-17th-18th" id="id13">Geany at Chemnitzer Linuxtage 2012 (March 17th, 18th)</a></li>
+</ul>
+</li>
+<li><a class="reference internal" href="#geany-packages-for-fedora" id="id14">Geany Packages for Fedora</a></li>
+<li><a class="reference internal" href="#id1" id="id15">About Geany</a></li>
+<li><a class="reference internal" href="#about-this-newsletter" id="id16">About this newsletter</a></li>
+</ul>
+</div>
+<div class="section" id="about-geany">
+<h1><a class="toc-backref" href="#contents">About Geany</a></h1>
+<p>Geany is a small and lightweight Integrated Development Environment.
+It was developed to provide a small and fast IDE, which has only a
+few dependencies from other packages. Another goal was to be as
+independent as possible from a special Desktop Environment like KDE
+or GNOME - Geany only requires the GTK2 runtime libraries.</p>
+<p>More information about Geany can be found at
+<a class="reference external" href="http://www.geany.org/">geany.org</a>.</p>
+</div>
+<div class="section" id="new-translations-and-updates">
+<h1><a class="toc-backref" href="#contents">New translations and updates</a></h1>
+<p>Since our last newsletter a number of translations has been updated
+or newly added to Geany. New translations are:</p>
+<ul class="simple">
+<li>Arabian</li>
+<li>Indonesian</li>
+<li>Lithuanian</li>
+<li>Mongolian (back in 2011)</li>
+</ul>
+<p>But also translations like German, Kazakh, Hungarian, Italian,
+Traditional Chinese and Swedish translations have been updated
+during the last roughly four month.</p>
+</div>
+<div class="section" id="wiki-available">
+<h1><a class="toc-backref" href="#contents">Wiki available</a></h1>
+<p>We set up a wiki for additional documentation and resources related
+to Geany at <a class="reference external" href="http://wiki.geany.org">http://wiki.geany.org</a>. Anyone can contribute to the wiki
+simply by registering and then logging in.</p>
+<p>In the wiki you can find configuration snippets and tips, snippets for
+various programming languages and many additional tags files to enhance
+Geany's autocompletion features.</p>
+<p>Everybody is welcome to add additional useful content to the wiki.</p>
+</div>
+<div class="section" id="c-plugins-supported">
+<h1><a class="toc-backref" href="#contents">C++ plugins supported</a></h1>
+<p>Geany's public plugin API headers have been updated to support
+inclusion into C++ code. Most of the changes involve adding <cite>extern
+"C" {...}</cite> blocks around the public headers' code (by way of GLIB's
+<cite>G_BEGIN_DECLS</cite> and <cite>G_END_DECLS</cite> macros) to make them easier to
+include, so the C++ code doesn't need to do this.</p>
+<p>You can now write plugins in C++ and they will be loadable by Geany
+at run-time. Of course using Geany's API will still involve using C
+in your code, but the rest of your plugin can use whatever C++
+features you want. You can even use gtkmm [1] in your plugin if you
+want.</p>
+<p>Any of the symbols Geany looks up at run-time must not have their
+names mangled by the compiler. To avoid this, put that code inside
+an <cite>extern "C"</cite> block.</p>
+<p>Here's an example of Geany's Hello World plugin from the Plugin
+HowTo [2] ported to C++:</p>
+<pre class="literal-block">
+#include <geanyplugin.h>
+
+class HelloWorld
+{
+        private:
+                gchar *hello_message;
+                GtkWidget *main_menu_item;
+
+        public:
+                HelloWorld(const gchar *message);
+                ~HelloWorld();
+                void SayHelloWorld();
+};
+
+static HelloWorld *hello;
+
+extern "C"
+{
+        GeanyPlugin     *geany_plugin;
+        GeanyData       *geany_data;
+        GeanyFunctions  *geany_functions;
+
+        PLUGIN_VERSION_CHECK(211)
+        PLUGIN_SET_INFO("HelloWorld C++",
+                                        "Just another tool to say hello world, this time in C++",
+                                        "1.0", "John Doe <john.doe@example.org>");
+
+        void plugin_init(GeanyData *data)
+        {
+                hello = new HelloWorld("Hello C++ World");
+        }
+
+        void plugin_cleanup(void)
+        {
+                delete hello;
+        }
+
+        static void on_menu_item_clicked(GtkMenuItem *item, gpointer user_data)
+        {
+                hello->SayHelloWorld();
+        }
+}
+
+HelloWorld::HelloWorld(const gchar *message)
+{
+        hello_message = g_strdup(message);
+        main_menu_item = gtk_menu_item_new_with_mnemonic("Hello World");
+        gtk_widget_show(main_menu_item);
+        gtk_container_add(GTK_CONTAINER(geany->main_widgets->tools_menu), main_menu_item);
+        g_signal_connect(main_menu_item, "activate", G_CALLBACK(on_menu_item_clicked), NULL);
+}
+
+HelloWorld::~HelloWorld()
+{
+        g_free(hello_message);
+        gtk_widget_destroy(main_menu_item);
+}
+
+void HelloWorld::SayHelloWorld()
+{
+        dialogs_show_msgbox(GTK_MESSAGE_INFO, "%s", hello_message);
+}
+</pre>
+<p>It's important to note that the dynamic library loading mechanism
+that loads plugins is C functionality and does not know about C++
+constructors. This means that global and static objects in the
+plugin will <em>not</em> have their constructors called when the plugin is
+loaded. Use dynamically created objects as show in the above example.</p>
+<p>These changes will be available in the next Geany release but you
+can start using them right away in your C++ plugins if you Build
+Geany From Git [3].</p>
+<ol class="arabic simple">
+<li><a class="reference external" href="http://developer.gnome.org/gtkmm-tutorial/2.24/sec-basics-gobj-and-wrap.html.en">http://developer.gnome.org/gtkmm-tutorial/2.24/sec-basics-gobj-and-wrap.html.en</a></li>
+<li><a class="reference external" href="http://www.geany.org/manual/reference/howto.html">http://www.geany.org/manual/reference/howto.html</a></li>
+<li><a class="reference external" href="http://www.geany.org/Download/Git">http://www.geany.org/Download/Git</a></li>
+</ol>
+</div>
+<div class="section" id="plugins">
+<h1><a class="toc-backref" href="#contents">Plugins</a></h1>
+<p>Notes from the plugin section.</p>
+<div class="section" id="new-plugins">
+<h2><a class="toc-backref" href="#contents">New Plugins</a></h2>
+<div class="section" id="geanypyflakes">
+<h3><a class="toc-backref" href="#contents">GeanyPyflakes</a></h3>
+<p>Pyflakes is a command line tool that statically analyzes python
+program and detects two kinds of errors: unused imports and
+undefined symbols. geany-pyflakes runs pyflakes in the background
+and parses its output. Afterwards puts markers on lines with errors
+and adds the output to the panel at the bottom of editor (the one
+with console, todo, etc.). Geany-pyflakes is available at its project
+pages at <a class="reference external" href="http://code.google.com/p/geany-pyflakes/">http://code.google.com/p/geany-pyflakes/</a></p>
+<p>Another way to check your Python code is described inside the wiki at
+<a class="reference external" href="http://wiki.geany.org/howtos/check_python_code">http://wiki.geany.org/howtos/check_python_code</a></p>
+</div>
+<div class="section" id="geniuspaste">
+<h3><a class="toc-backref" href="#contents">GeniusPaste</a></h3>
+<p>GeniusPaste is a plugin which is adding the possibility to paste
+your code from Geany into different pastebins. It supports this
+services:</p>
+<blockquote>
+<ul class="simple">
+<li>codepad.org</li>
+<li>pastebin.com</li>
+<li>pastebin.geany.org</li>
+<li>dpaste.de</li>
+<li>sprunge.us</li>
+</ul>
+</blockquote>
+<p>During the paste process GeniusPaste detects automatically the
+syntax of your code and paste it with syntax highlighting enabled.
+Once this is done it is also able to redirect you to the pasted code
+opening a new browser tab.</p>
+</div>
+</div>
+<div class="section" id="geanypg">
+<h2><a class="toc-backref" href="#contents">GeanyPG</a></h2>
+<p>GeanyPG is a plugin that allows the user to encrypt, decrypt text
+and verify signatures with GnuPG from inside Geany. It's created by
+Hans Alves and is part of the geany-plugins project.</p>
+<p>After the plugin has been installed successfully, it can be loaded
+from inside Geany's plugin manager which will add a new menu item
+into the Tools menu offering functions of the plugin.</p>
+<p>To decrypt or encrypt, just select the interesting parts and choose
+the function you wish -- If none text has been selected, the whole
+document will be processed. In case you like to verify a signature
+obviously you will have to select the whole block.</p>
+<p>When encrypting a message you can choose to sign at the same time.
+If a passphrase is needed, the GPGME library will decide how the
+user is prompted. Usually this will use gpg-agent. If gpg-agent is
+disabled, pinentry with one of its frontends will be used.</p>
+</div>
+</div>
+<div class="section" id="geany-local">
+<h1><a class="toc-backref" href="#contents">Geany local</a></h1>
+<div class="section" id="geany-at-chemnitzer-linuxtage-2012-march-17th-18th">
+<h2><a class="toc-backref" href="#contents">Geany at Chemnitzer Linuxtage 2012 (March 17th, 18th)</a></h2>
+<p>As last year, Geany had a booth a Chemnitzer Linuxtage 2012 in
+German city Chemnitz. Our booth was again located next to the guys
+of Xfce as well as next (that was different to last year) to 2
+lecture rooms. Even though the event wasn't as much crowded as last
+year, a lot of people were passing by asking some question or just
+saying hello. So Enrico and Frank had a lot of questions to answer
+and a lot of feedback to respond to.</p>
+</div>
+</div>
+<div class="section" id="geany-packages-for-fedora">
+<h1><a class="toc-backref" href="#contents">Geany Packages for Fedora</a></h1>
+<p>There are new packages unofficially available for Fedora. One is
+containing the Geany Themes Matthew maintains at GitHub [1], the
+other one provides the tags files listed in the Geany Wiki [2]. The
+packages are not yet in Fedoras official repositories but available
+at Dominic's Fedora People space [3]. Note the geany-themes package
+is intended to work with current Git versions of Geany only. A
+x86_64 package from the current Git master as well as an SRPM for
+rebuilding is also available at [3].</p>
+<p>The geany-tags package is split into subpackages containing the tags
+for each programming language. Currently these are: geany-tags-c,
+geany-tags-php and geany-tags-python. They can be installed
+independently from each other, of course.</p>
+<p>Contact Dominic if you have suggestions for improvements.</p>
+<ol class="arabic simple">
+<li><a class="reference external" href="http://codebrainz.github.com/geany-themes/">http://codebrainz.github.com/geany-themes/</a></li>
+<li><a class="reference external" href="http://wiki.geany.org/tags/start">http://wiki.geany.org/tags/start</a></li>
+<li><a class="reference external" href="http://dmaphy.fedorapeople.org/">http://dmaphy.fedorapeople.org/</a></li>
+</ol>
+</div>
+<div class="section" id="id1">
+<h1><a class="toc-backref" href="#contents">About Geany</a></h1>
+<p>Geany is a small and lightweight Integrated Development Environment.
+It was developed to provide a small and fast IDE, which has only a
+few dependencies from other packages. Another goal was to be as
+independent as possible from a special Desktop Environment like KDE
+or GNOME - Geany only requires the GTK2 runtime libraries.</p>
+<p>More information about Geany can be found at
+<a class="reference external" href="http://www.geany.org/">geany.org</a>.</p>
+</div>
+<div class="section" id="about-this-newsletter">
+<h1><a class="toc-backref" href="#contents">About this newsletter</a></h1>
+<p>This newsletter has been created in cooperation by people from Geany's
+international community. Contributors to this newsletter and the
+infrastructure behind it, ordered by alphabet:</p>
+</div>
+</div>
+</body>
+</html>


@@ Diff output truncated at 100000 characters. @@


--------------
This E-Mail was brought to you by github_commit_mail.py (Source: TBD).



More information about the Newsletter-Commits mailing list