[valadoc] - new taglet init function



commit 799b4818815ba7cf0b4e6c862ed2ad21b22611d5
Author: Florian Brosch <flo brosch gmail com>
Date:   Fri Sep 18 20:48:43 2009 +0200

    - new taglet init function

 configure.in                                       |   46 --
 src/doclets/htmlhelpers/taglets/Makefile.am        |  101 ++-
 .../taglet.vala => htmlhelpers/taglets/bold.vala}  |   10 +-
 src/doclets/htmlhelpers/taglets/bold/taglet.vala   |   57 --
 .../taglets/center.vala}                           |   11 +-
 src/doclets/htmlhelpers/taglets/center/taglet.vala |   57 --
 .../taglets/constant.vala}                         |    8 +-
 .../{constants/taglet.vala => constants.vala}      |    0
 .../taglets/headline.vala}                         |    9 +-
 .../htmlhelpers/taglets/headline/taglet.vala       |   49 --
 src/doclets/htmlhelpers/taglets/image.vala         |  113 +++
 src/doclets/htmlhelpers/taglets/image/taglet.vala  |  120 ---
 .../taglets/italic.vala}                           |   11 +-
 src/doclets/htmlhelpers/taglets/italic/taglet.vala |   56 --
 .../taglet.vala => htmlhelpers/taglets/link.vala}  |   25 +-
 src/doclets/htmlhelpers/taglets/link/taglet.vala   |   64 --
 .../taglet.vala => htmlhelpers/taglets/list.vala}  |   20 +-
 src/doclets/htmlhelpers/taglets/list/taglet.vala   |   60 --
 .../taglets/listelement.vala}                      |   13 +-
 .../htmlhelpers/taglets/listelement/taglet.vala    |   58 --
 .../taglets/notification.vala}                     |   12 +-
 .../htmlhelpers/taglets/notification/Makefile.am   |   56 --
 .../htmlhelpers/taglets/notification/taglet.vala   |   58 --
 .../taglets/paragraph.vala}                        |   14 +-
 .../htmlhelpers/taglets/paragraph/taglet.vala      |   57 --
 src/doclets/htmlhelpers/taglets/parameter.vala     |  136 ++++
 .../htmlhelpers/taglets/parameter/taglet.vala      |  145 ----
 .../htmlhelpers/taglets/registerfunction.vala      |   51 ++
 .../taglets/return.vala}                           |   31 +-
 src/doclets/htmlhelpers/taglets/return/taglet.vala |   72 --
 .../taglet.vala => htmlhelpers/taglets/right.vala} |   11 +-
 src/doclets/htmlhelpers/taglets/right/taglet.vala  |   57 --
 src/doclets/htmlhelpers/taglets/see.vala           |   86 ++
 src/doclets/htmlhelpers/taglets/see/taglet.vala    |   97 ---
 src/doclets/htmlhelpers/taglets/since.vala         |   69 ++
 src/doclets/htmlhelpers/taglets/since/taglet.vala  |   78 --
 .../taglets/source.vala}                           |   30 +-
 src/doclets/htmlhelpers/taglets/source/taglet.vala |   61 --
 .../taglets/string.vala}                           |   47 +-
 src/doclets/htmlhelpers/taglets/string/taglet.vala |   76 --
 .../taglet.vala => htmlhelpers/taglets/table.vala} |   33 +-
 src/doclets/htmlhelpers/taglets/table/taglet.vala  |   61 --
 src/doclets/htmlhelpers/taglets/tablecell.vala     |   87 ++
 .../htmlhelpers/taglets/tablecell/taglet.vala      |   95 ---
 src/doclets/htmlhelpers/taglets/throws.vala        |  139 ++++
 src/doclets/htmlhelpers/taglets/throws/taglet.vala |  149 ----
 src/doclets/htmlhelpers/taglets/typelink.vala      |   60 ++
 .../htmlhelpers/taglets/typelink/taglet.vala       |   69 --
 .../taglets/underline.vala}                        |   11 +-
 .../htmlhelpers/taglets/underline/taglet.vala      |   58 --
 src/doclets/valadoc.org/doclet/Makefile.am         |    2 -
 src/doclets/valadoc.org/taglets/Makefile.am        |   98 ++-
 .../taglets/{bold/taglet.vala => bold.vala}        |    7 +-
 .../taglets/{center/taglet.vala => center.vala}    |    7 +-
 .../{constants/taglet.vala => constant.vala}       |    7 +-
 .../{headline/taglet.vala => headline.vala}        |    6 +-
 .../taglets/{image/taglet.vala => image.vala}      |    8 +-
 .../taglets/{italic/taglet.vala => italic.vala}    |    6 +-
 .../taglets/{link/taglet.vala => link.vala}        |    6 +-
 .../taglets/{list/taglet.vala => list.vala}        |    8 +-
 .../{listelement/taglet.vala => listelement.vala}  |    7 +-
 .../taglet.vala => notification.vala}              |    8 +-
 .../{paragraph/taglet.vala => nparagraph.vala}     |    0
 .../taglets/{italic/taglet.vala => paragraph.vala} |   15 +-
 src/doclets/valadoc.org/taglets/parameter.vala     |  130 +++
 .../valadoc.org/taglets/registerfunction.vala      |   51 ++
 .../taglets/{italic/taglet.vala => return.vala}    |   29 +-
 .../taglets/{italic/taglet.vala => right.vala}     |   11 +-
 src/doclets/valadoc.org/taglets/see.vala           |   72 ++
 .../taglets/{link/taglet.vala => since.vala}       |   59 +-
 .../taglets/{headline/taglet.vala => source.vala}  |   29 +-
 .../taglets/{constants/taglet.vala => string.vala} |   14 +-
 .../taglets/{center/taglet.vala => table.vala}     |   30 +-
 src/doclets/valadoc.org/taglets/tablecell.vala     |   88 ++
 src/doclets/valadoc.org/taglets/throws.vala        |  129 +++
 .../taglets/{bold/taglet.vala => typelink.vala}    |   37 +-
 .../taglets/{italic/taglet.vala => underline.vala} |   11 +-
 src/libvaladoc/documentation/moduleloader.vala     |   86 +--
 src/libvaladoc/valadoc-1.0.vapi                    |  842 ++++++++++++++++++++
 src/vapi/valadoc-1.2.0.deps                        |    2 -
 80 files changed, 2474 insertions(+), 2225 deletions(-)
---
diff --git a/configure.in b/configure.in
index 0117dad..fc1e867 100644
--- a/configure.in
+++ b/configure.in
@@ -66,57 +66,11 @@ AC_CONFIG_FILES([Makefile
                  src/doclets/htmlhelpers/languages/Makefile
                  src/doclets/htmlhelpers/doclet/Makefile
                  src/doclets/htmlhelpers/taglets/Makefile
-                 src/doclets/htmlhelpers/taglets/see/Makefile
-                 src/doclets/htmlhelpers/taglets/link/Makefile
-                 src/doclets/htmlhelpers/taglets/constants/Makefile
-                 src/doclets/htmlhelpers/taglets/list/Makefile
-                 src/doclets/htmlhelpers/taglets/bold/Makefile
-                 src/doclets/htmlhelpers/taglets/since/Makefile
-                 src/doclets/htmlhelpers/taglets/table/Makefile
-                 src/doclets/htmlhelpers/taglets/right/Makefile
-                 src/doclets/htmlhelpers/taglets/image/Makefile
-                 src/doclets/htmlhelpers/taglets/paragraph/Makefile
-                 src/doclets/htmlhelpers/taglets/throws/Makefile
-                 src/doclets/htmlhelpers/taglets/string/Makefile
-                 src/doclets/htmlhelpers/taglets/center/Makefile
-                 src/doclets/htmlhelpers/taglets/italic/Makefile
-                 src/doclets/htmlhelpers/taglets/return/Makefile
-                 src/doclets/htmlhelpers/taglets/source/Makefile
-                 src/doclets/htmlhelpers/taglets/headline/Makefile
-                 src/doclets/htmlhelpers/taglets/typelink/Makefile
-                 src/doclets/htmlhelpers/taglets/underline/Makefile
-                 src/doclets/htmlhelpers/taglets/parameter/Makefile
-                 src/doclets/htmlhelpers/taglets/tablecell/Makefile
-                 src/doclets/htmlhelpers/taglets/listelement/Makefile
-                 src/doclets/htmlhelpers/taglets/notification/Makefile
                  src/doclets/htm/Makefile
                  src/doclets/htm/doclet/Makefile
                  src/doclets/valadoc.org/Makefile
                  src/doclets/valadoc.org/doclet/Makefile
                  src/doclets/valadoc.org/taglets/Makefile
-                 src/doclets/valadoc.org/taglets/see/Makefile
-                 src/doclets/valadoc.org/taglets/paragraph/Makefile
-                 src/doclets/valadoc.org/taglets/link/Makefile
-                 src/doclets/valadoc.org/taglets/constants/Makefile
-                 src/doclets/valadoc.org/taglets/list/Makefile
-                 src/doclets/valadoc.org/taglets/bold/Makefile
-                 src/doclets/valadoc.org/taglets/since/Makefile
-                 src/doclets/valadoc.org/taglets/table/Makefile
-                 src/doclets/valadoc.org/taglets/right/Makefile
-                 src/doclets/valadoc.org/taglets/image/Makefile
-                 src/doclets/valadoc.org/taglets/throws/Makefile
-                 src/doclets/valadoc.org/taglets/string/Makefile
-                 src/doclets/valadoc.org/taglets/center/Makefile
-                 src/doclets/valadoc.org/taglets/italic/Makefile
-                 src/doclets/valadoc.org/taglets/return/Makefile
-                 src/doclets/valadoc.org/taglets/source/Makefile
-                 src/doclets/valadoc.org/taglets/headline/Makefile
-                 src/doclets/valadoc.org/taglets/typelink/Makefile
-                 src/doclets/valadoc.org/taglets/underline/Makefile
-                 src/doclets/valadoc.org/taglets/parameter/Makefile
-                 src/doclets/valadoc.org/taglets/tablecell/Makefile
-                 src/doclets/valadoc.org/taglets/listelement/Makefile
-                 src/doclets/valadoc.org/taglets/notification/Makefile
                  src/doclets/devhelp/Makefile
                  src/doclets/devhelp/doclet/Makefile
                  src/valadoc/Makefile])
diff --git a/src/doclets/htmlhelpers/taglets/Makefile.am b/src/doclets/htmlhelpers/taglets/Makefile.am
old mode 100644
new mode 100755
index 8181abd..1c84cfa
--- a/src/doclets/htmlhelpers/taglets/Makefile.am
+++ b/src/doclets/htmlhelpers/taglets/Makefile.am
@@ -1,28 +1,81 @@
 NULL =
 
 
-SUBDIRS =        \
-	bold         \
-	center       \
-	constants    \
-	headline     \
-	image        \
-	italic       \
-	link         \
-	list         \
-	listelement  \
-	notification \
-	paragraph    \
-	parameter    \
-	return       \
-	right        \
-	see          \
-	since        \
-	source       \
-	string       \
-	table        \
-	tablecell    \
-	throws       \
-	typelink     \
-	underline    \
+AM_CFLAGS =  -g \
+	-I ../../../libvaladoc/ \
+	-I ../doclet/ \
+	$(GLIB_CFLAGS) \
+	$(LIBVALA_CFLAGS) \
+	$(LIBGDKPIXBUF_CFLAGS) \
 	$(NULL)
+
+
+BUILT_SOURCES = libbasictaglets.vala.stamp
+
+
+basictagletsdir = $(libdir)/valadoc/plugins/htmlhelpers/taglets/
+
+
+basictaglets_LTLIBRARIES = \
+	libbasictaglets.la \
+	$(NULL)
+
+
+libbasictaglets_la_VALASOURCES = \
+	bold.vala \
+	center.vala \
+	constant.vala \
+	headline.vala \
+	image.vala \
+	italic.vala \
+	link.vala \
+	list.vala \
+	listelement.vala \
+	notification.vala \
+	paragraph.vala \
+	parameter.vala \
+	return.vala \
+	right.vala \
+	see.vala \
+	since.vala \
+	source.vala \
+	string.vala \
+	table.vala \
+	tablecell.vala \
+	throws.vala \
+	typelink.vala \
+	underline.vala \
+	registerfunction.vala \
+	$(NULL)
+
+
+libbasictaglets_la_SOURCES =                \
+	libbasictaglets.vala.stamp              \
+	$(libbasictaglets_la_VALASOURCES:.vala=.c) \
+	$(NULL)
+
+
+libbasictaglets.vala.stamp: $(libbasictaglets_la_VALASOURCES)
+	$(VALAC) -C --vapidir ../../../vapi --pkg valadoc-1.0 --vapidir ../doclet/ --pkg libhtmlhelpers-1.0 --basedir . --pkg gdk-pixbuf-2.0 $^
+	touch $@
+
+
+libbasictaglets_la_LDFLAGS = -module -avoid-version
+
+
+libbasictaglets_la_LIBADD =           \
+	../../../libvaladoc/libvaladoc.la \
+	$(LIBGVC_LIBS)                    \
+	$(LIBVALA_LIBS)                   \
+	$(GLIB_LIBS)                      \
+	$(LIBGDKPIXBUFLIBS_) \
+	$(NULL)
+
+
+EXTRA_DIST = $(libbasictaglets_la_VALASOURCES)  libbasictaglets.vala.stamp 
+
+
+MAINTAINERCLEANFILES =                            \
+	$(libbasictaglets_la_VALASOURCES:.vala=.c) \
+	$(NULL)
+
diff --git a/src/doclets/valadoc.org/taglets/bold/taglet.vala b/src/doclets/htmlhelpers/taglets/bold.vala
similarity index 82%
copy from src/doclets/valadoc.org/taglets/bold/taglet.vala
copy to src/doclets/htmlhelpers/taglets/bold.vala
index 9658bca..1aa13a4 100755
--- a/src/doclets/valadoc.org/taglets/bold/taglet.vala
+++ b/src/doclets/htmlhelpers/taglets/bold.vala
@@ -22,7 +22,7 @@ using GLib;
 using Gee;
 
 
-public class Valadoc.ValdocOrg.BoldDocElement : Valadoc.BoldDocElement {
+public class Valadoc.Html.BoldDocElement : Valadoc.BoldDocElement {
 	private Gee.ArrayList<DocElement> content;
 
 	public override bool parse ( Gee.ArrayList<DocElement> content ) {
@@ -35,21 +35,17 @@ public class Valadoc.ValdocOrg.BoldDocElement : Valadoc.BoldDocElement {
 		int _max = this.content.size;
 		int _index = 0;
 
-		file.printf ( "++" );
+		file.printf ( "<b>" );
 
 		foreach ( DocElement element in this.content ) {
 			element.write ( res, _max, _index );
 			_index++;
 		}
 
-		file.printf ( "++" );
+		file.printf ( "</b>" );
 		return true;
 	}
 }
 
 
-[ModuleInit]
-public GLib.Type register_plugin ( Gee.HashMap<string, Type> taglets ) {
-	return typeof ( Valadoc.ValdocOrg.BoldDocElement );
-}
 
diff --git a/src/doclets/valadoc.org/taglets/bold/taglet.vala b/src/doclets/htmlhelpers/taglets/center.vala
similarity index 82%
copy from src/doclets/valadoc.org/taglets/bold/taglet.vala
copy to src/doclets/htmlhelpers/taglets/center.vala
index 9658bca..36204c4 100755
--- a/src/doclets/valadoc.org/taglets/bold/taglet.vala
+++ b/src/doclets/htmlhelpers/taglets/center.vala
@@ -22,7 +22,7 @@ using GLib;
 using Gee;
 
 
-public class Valadoc.ValdocOrg.BoldDocElement : Valadoc.BoldDocElement {
+public class Valadoc.Html.CenterDocElement : Valadoc.CenterDocElement {
 	private Gee.ArrayList<DocElement> content;
 
 	public override bool parse ( Gee.ArrayList<DocElement> content ) {
@@ -35,21 +35,16 @@ public class Valadoc.ValdocOrg.BoldDocElement : Valadoc.BoldDocElement {
 		int _max = this.content.size;
 		int _index = 0;
 
-		file.printf ( "++" );
+		file.printf ( "<div align=\"center\">" );
 
 		foreach ( DocElement element in this.content ) {
 			element.write ( res, _max, _index );
 			_index++;
 		}
 
-		file.printf ( "++" );
+		file.printf ( "</div>" );
 		return true;
 	}
 }
 
 
-[ModuleInit]
-public GLib.Type register_plugin ( Gee.HashMap<string, Type> taglets ) {
-	return typeof ( Valadoc.ValdocOrg.BoldDocElement );
-}
-
diff --git a/src/doclets/valadoc.org/taglets/constants/taglet.vala b/src/doclets/htmlhelpers/taglets/constant.vala
similarity index 86%
copy from src/doclets/valadoc.org/taglets/constants/taglet.vala
copy to src/doclets/htmlhelpers/taglets/constant.vala
index 0e2fa62..85ba9d6 100755
--- a/src/doclets/valadoc.org/taglets/constants/taglet.vala
+++ b/src/doclets/htmlhelpers/taglets/constant.vala
@@ -32,14 +32,8 @@ public class Valadoc.Html.CodeConstantDocElement : Valadoc.CodeConstantDocElemen
 
 	public override bool write (void* res, int max, int index) {
 		weak GLib.FileStream file = (GLib.FileStream)res;
-		file.puts (this.constant);
+		file.printf ("<font class=\"%s\">%s</font>", css_content_literal, this.constant);
 		return true;
 	}
 }
 
-
-[ModuleInit]
-public GLib.Type register_plugin (Gee.HashMap<string, Type> taglets) {
-	return typeof (Valadoc.Html.CodeConstantDocElement);
-}
-
diff --git a/src/doclets/htmlhelpers/taglets/constants/taglet.vala b/src/doclets/htmlhelpers/taglets/constants.vala
similarity index 100%
rename from src/doclets/htmlhelpers/taglets/constants/taglet.vala
rename to src/doclets/htmlhelpers/taglets/constants.vala
diff --git a/src/doclets/valadoc.org/taglets/headline/taglet.vala b/src/doclets/htmlhelpers/taglets/headline.vala
similarity index 78%
copy from src/doclets/valadoc.org/taglets/headline/taglet.vala
copy to src/doclets/htmlhelpers/taglets/headline.vala
index d646a54..117d522 100755
--- a/src/doclets/valadoc.org/taglets/headline/taglet.vala
+++ b/src/doclets/htmlhelpers/taglets/headline.vala
@@ -22,7 +22,7 @@ using GLib;
 using Gee;
 
 
-public class Valadoc.ValdocOrg.HeadlineDocElement : Valadoc.HeadlineDocElement {
+public class Valadoc.Html.HeadlineDocElement : Valadoc.HeadlineDocElement {
 	private string title;
 	private int lvl;
 
@@ -34,14 +34,9 @@ public class Valadoc.ValdocOrg.HeadlineDocElement : Valadoc.HeadlineDocElement {
 
 	public override bool write (void* res, int max, int index) {
 		weak GLib.FileStream file = (GLib.FileStream)res;
-		file.printf ("\n\n%s %s\n", string.nfill (this.lvl+1, '='), this.title);
+		file.printf ("\n\n<h%d>%s</h%d>\n", this.lvl, this.title, this.lvl);
 		return true;
 	}
 }
 
 
-[ModuleInit]
-public GLib.Type register_plugin (Gee.HashMap<string, Type> taglets) {
-	return typeof (Valadoc.ValdocOrg.HeadlineDocElement);
-}
-
diff --git a/src/doclets/htmlhelpers/taglets/image.vala b/src/doclets/htmlhelpers/taglets/image.vala
new file mode 100755
index 0000000..46ec129
--- /dev/null
+++ b/src/doclets/htmlhelpers/taglets/image.vala
@@ -0,0 +1,113 @@
+/*
+ * Valadoc - a documentation tool for vala.
+ * Copyright (C) 2008 Florian Brosch
+ * 
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ */
+
+
+using GLib;
+using Gee;
+using Gdk;
+
+
+public class Valadoc.Html.ImageDocElement : Valadoc.ImageDocElement {
+	private static uint counter = 0;
+
+	private string htmlpath;
+	private string npath;
+	private string path;
+	private string alt;
+
+	public override bool parse ( Settings settings, Documentation pos, owned string path, owned string alt ) {
+		if ( GLib.FileUtils.test ( path, GLib.FileTest.EXISTS | GLib.FileTest.IS_REGULAR ) == false ) {
+			return false;
+		}
+
+		weak string? dotpos = path.rchr ( -1, '.' ); 
+		string filename = "img0%u%s".printf(this.counter++, dotpos.ndup(dotpos.size()));
+
+		this.path = realpath ( path );
+
+		if ( pos == null || (pos is WikiPage)? ((WikiPage)pos).name=="index.valadoc": false ) {
+			this.htmlpath = Path.build_filename("content", "img", filename);
+			this.npath = Path.build_filename(settings.path, this.htmlpath);
+			this.alt = alt;
+		}
+		else if ( pos is DocumentedElement ) {
+			this.htmlpath = Path.build_filename("img", filename);
+			this.npath = Path.build_filename(settings.path, ((DocumentedElement)pos).package.name, this.htmlpath);
+			this.alt = alt;
+		}
+		else {
+			this.htmlpath = Path.build_filename("img", filename);
+			this.npath = Path.build_filename(settings.path, "content", this.htmlpath);
+			this.alt = alt;
+		}
+		return true;
+	}
+
+	private string? create_thumb (string filename, string destinationpath) {
+		int height;
+		int width;
+
+		weak PixbufFormat format = Pixbuf.get_file_info (filename, out width, out height);
+		if ( width == 0 || height == 0 ) {
+			return null;
+		}
+
+		if ( width > 700 ) {
+			try {
+				Pixbuf img = new Pixbuf.from_file (filename);
+
+				int dest_height = (height*700)/width;
+				int dest_width = 700;
+
+
+				if (dest_height == 0) {
+					dest_height++;
+				}
+
+				Pixbuf dest = new Pixbuf (img.get_colorspace(), img.get_has_alpha(), img.get_bits_per_sample(), dest_width, dest_height);
+				img.scale (dest, 0, 0, dest_width, dest_height, 0, 0, (double)dest_width/img.get_width(), (double)dest_height/img.get_height(), Gdk.InterpType.BILINEAR);
+
+				string newfilename = GLib.Path.build_filename(destinationpath, "tmb_"+Path.get_basename (filename));
+				dest.save (newfilename, format.get_name());
+				return newfilename;
+			}
+			catch (Error err) {
+				return null;
+			}
+		}
+
+		return filename;
+	}
+
+	public override bool write ( void* res, int max, int index ) {
+		bool tmp = copy_file ( this.path, this.npath );
+		if ( tmp == false )
+			return false;
+
+		string thumbpath = create_thumb (this.npath, Path.get_dirname(this.npath));
+		if ( thumbpath == null ) {
+			return false;
+		}
+
+		((GLib.FileStream)res).printf ( "<a href=\"%s\"><img src=\"%s\" alt=\"%s\" /></a>", this.htmlpath, thumbpath, this.alt );
+		return true;
+	}
+}
+
+
diff --git a/src/doclets/valadoc.org/taglets/bold/taglet.vala b/src/doclets/htmlhelpers/taglets/italic.vala
similarity index 82%
copy from src/doclets/valadoc.org/taglets/bold/taglet.vala
copy to src/doclets/htmlhelpers/taglets/italic.vala
index 9658bca..a100318 100755
--- a/src/doclets/valadoc.org/taglets/bold/taglet.vala
+++ b/src/doclets/htmlhelpers/taglets/italic.vala
@@ -22,7 +22,7 @@ using GLib;
 using Gee;
 
 
-public class Valadoc.ValdocOrg.BoldDocElement : Valadoc.BoldDocElement {
+public class Valadoc.Html.ItalicDocElement : Valadoc.ItalicDocElement {
 	private Gee.ArrayList<DocElement> content;
 
 	public override bool parse ( Gee.ArrayList<DocElement> content ) {
@@ -35,21 +35,16 @@ public class Valadoc.ValdocOrg.BoldDocElement : Valadoc.BoldDocElement {
 		int _max = this.content.size;
 		int _index = 0;
 
-		file.printf ( "++" );
+		file.printf ( "<i>" );
 
 		foreach ( DocElement element in this.content ) {
 			element.write ( res, _max, _index );
 			_index++;
 		}
 
-		file.printf ( "++" );
+		file.printf ( "</i>" );
 		return true;
 	}
 }
 
 
-[ModuleInit]
-public GLib.Type register_plugin ( Gee.HashMap<string, Type> taglets ) {
-	return typeof ( Valadoc.ValdocOrg.BoldDocElement );
-}
-
diff --git a/src/doclets/valadoc.org/taglets/link/taglet.vala b/src/doclets/htmlhelpers/taglets/link.vala
similarity index 63%
copy from src/doclets/valadoc.org/taglets/link/taglet.vala
copy to src/doclets/htmlhelpers/taglets/link.vala
index bd975d4..e19811b 100755
--- a/src/doclets/valadoc.org/taglets/link/taglet.vala
+++ b/src/doclets/htmlhelpers/taglets/link.vala
@@ -22,11 +22,11 @@ using GLib;
 using Gee;
 
 
-public class Valadoc.ValdocOrg.LinkDocElement : Valadoc.LinkDocElement {
-	private string desc;
-	private string path;
+public class Valadoc.Html.LinkDocElement : Valadoc.LinkDocElement {
+	protected string desc;
+	protected string path;
 
-	public override bool parse (Settings settings, Tree tree, Documentation pos, owned string path, owned string desc) {
+	public override bool parse ( Settings settings, Tree tree, Documentation pos, owned string path, owned string desc ) {
 		if ( path.has_suffix(".valadoc")&&path.has_prefix("/") ) {
 			if ( tree.wikitree == null ) {
 				return false;
@@ -37,26 +37,21 @@ public class Valadoc.ValdocOrg.LinkDocElement : Valadoc.LinkDocElement {
 				return false;
 			}
 
-			this.path = settings.pkg_name+"/"+path.substring (0, path.len()-8);
-			this.desc = desc;
+			this.path = get_html_link(settings, wikipage, pos);
+			this.desc = (owned)desc;
 			return true;
 		}
 
-		this.path = path;
-		this.desc = desc;
+		this.path = (owned)path;
+		this.desc = (owned)desc;
 		return true;
 	}
 
-	public override bool write (void* res, int max, int index) {
+	public override bool write ( void* res, int max, int index ) {
 		weak GLib.FileStream file = (GLib.FileStream)res;
-		file.printf ("[[%s|%s]]", this.path, (this.desc==null||this.desc=="")? this.path: this.desc);
+		file.printf ("<a href=\"%s\">%s</a>", this.path, (this.desc==null||this.desc=="")? this.path: this.desc );
 		return true;
 	}
 }
 
 
-[ModuleInit]
-public GLib.Type register_plugin (Gee.HashMap<string, Type> taglets) {
-	return typeof (Valadoc.ValdocOrg.LinkDocElement);
-}
-
diff --git a/src/doclets/valadoc.org/taglets/list/taglet.vala b/src/doclets/htmlhelpers/taglets/list.vala
similarity index 69%
copy from src/doclets/valadoc.org/taglets/list/taglet.vala
copy to src/doclets/htmlhelpers/taglets/list.vala
index 260e483..e543782 100755
--- a/src/doclets/valadoc.org/taglets/list/taglet.vala
+++ b/src/doclets/htmlhelpers/taglets/list.vala
@@ -22,35 +22,31 @@ using GLib;
 using Gee;
 
 
-
-public class Valadoc.ValdocOrg.ListDocElement : Valadoc.ListDocElement {
+public class Valadoc.Html.ListDocElement : Valadoc.ListDocElement {
 	private Gee.ArrayList<ListEntryDocElement> entries;
 	private ListType type;
 
-	public override bool parse (ListType type, Gee.ArrayList<ListEntryDocElement> entries) {
+	public override bool parse ( ListType type, Gee.ArrayList<ListEntryDocElement> entries ) {
 		this.entries = entries;
 		this.type = type;
 		return true;
 	}
 
-	public override bool write (void* res, int max, int index) {
+	public override bool write ( void* res, int max, int index ) {
 		weak GLib.FileStream file = (GLib.FileStream)res;
 		int _max = this.entries.size;
 		int _index = 0;
 
-		foreach (ListEntryDocElement entry in this.entries) {
-			entry.write (res, _max, _index);
+		file.printf ( (this.type == ListType.UNSORTED)? "<ul>\n" : "<ol>\n" );
+
+		foreach ( ListEntryDocElement entry in this.entries ) {
+			entry.write ( res, _max, _index );
 			_index++;
 		}
 
+		file.printf ( (this.type == ListType.UNSORTED)? "</ul>\n" : "</ol>\n" );
 		return true;
 	}
 }
 
 
-[ModuleInit]
-public GLib.Type register_plugin (Gee.HashMap<string, Type> taglets) {
-	return typeof (Valadoc.ValdocOrg.ListDocElement);
-}
-
-
diff --git a/src/doclets/valadoc.org/taglets/bold/taglet.vala b/src/doclets/htmlhelpers/taglets/listelement.vala
similarity index 78%
copy from src/doclets/valadoc.org/taglets/bold/taglet.vala
copy to src/doclets/htmlhelpers/taglets/listelement.vala
index 9658bca..8b44ff8 100755
--- a/src/doclets/valadoc.org/taglets/bold/taglet.vala
+++ b/src/doclets/htmlhelpers/taglets/listelement.vala
@@ -22,10 +22,10 @@ using GLib;
 using Gee;
 
 
-public class Valadoc.ValdocOrg.BoldDocElement : Valadoc.BoldDocElement {
+public class Valadoc.Html.ListEntryDocElement : Valadoc.ListEntryDocElement {
 	private Gee.ArrayList<DocElement> content;
 
-	public override bool parse ( Gee.ArrayList<DocElement> content ) {
+	public override bool parse ( ListType type, long lvl, Gee.ArrayList<DocElement> content ) {
 		this.content = content;
 		return true;
 	}
@@ -35,21 +35,16 @@ public class Valadoc.ValdocOrg.BoldDocElement : Valadoc.BoldDocElement {
 		int _max = this.content.size;
 		int _index = 0;
 
-		file.printf ( "++" );
+		file.printf ( "\t<li>" );
 
 		foreach ( DocElement element in this.content ) {
 			element.write ( res, _max, _index );
 			_index++;
 		}
 
-		file.printf ( "++" );
+		file.printf ( "</li>\n" );
 		return true;
 	}
 }
 
 
-[ModuleInit]
-public GLib.Type register_plugin ( Gee.HashMap<string, Type> taglets ) {
-	return typeof ( Valadoc.ValdocOrg.BoldDocElement );
-}
-
diff --git a/src/doclets/valadoc.org/taglets/bold/taglet.vala b/src/doclets/htmlhelpers/taglets/notification.vala
similarity index 82%
copy from src/doclets/valadoc.org/taglets/bold/taglet.vala
copy to src/doclets/htmlhelpers/taglets/notification.vala
index 9658bca..b70679c 100755
--- a/src/doclets/valadoc.org/taglets/bold/taglet.vala
+++ b/src/doclets/htmlhelpers/taglets/notification.vala
@@ -17,12 +17,11 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
 
-
 using GLib;
 using Gee;
 
 
-public class Valadoc.ValdocOrg.BoldDocElement : Valadoc.BoldDocElement {
+public class Valadoc.Html.NotificationDocElement : Valadoc.NotificationDocElement {
 	private Gee.ArrayList<DocElement> content;
 
 	public override bool parse ( Gee.ArrayList<DocElement> content ) {
@@ -35,21 +34,16 @@ public class Valadoc.ValdocOrg.BoldDocElement : Valadoc.BoldDocElement {
 		int _max = this.content.size;
 		int _index = 0;
 
-		file.printf ( "++" );
+		file.printf ( "\n<div class=\"%s\">\n", css_notification_area );
 
 		foreach ( DocElement element in this.content ) {
 			element.write ( res, _max, _index );
 			_index++;
 		}
 
-		file.printf ( "++" );
+		file.printf ( "\n</div>\n" );
 		return true;
 	}
 }
 
 
-[ModuleInit]
-public GLib.Type register_plugin ( Gee.HashMap<string, Type> taglets ) {
-	return typeof ( Valadoc.ValdocOrg.BoldDocElement );
-}
-
diff --git a/src/doclets/valadoc.org/taglets/italic/taglet.vala b/src/doclets/htmlhelpers/taglets/paragraph.vala
similarity index 75%
copy from src/doclets/valadoc.org/taglets/italic/taglet.vala
copy to src/doclets/htmlhelpers/taglets/paragraph.vala
index 2f84b4f..42981a3 100755
--- a/src/doclets/valadoc.org/taglets/italic/taglet.vala
+++ b/src/doclets/htmlhelpers/taglets/paragraph.vala
@@ -22,10 +22,10 @@ using GLib;
 using Gee;
 
 
-public class Valadoc.ValdocOrg.ItalicDocElement : Valadoc.ItalicDocElement {
-	private Gee.ArrayList<DocElement> content;
+public class Valadoc.Html.ParagraphDocElement : Valadoc.ParagraphDocElement {
+	private ArrayList<DocElement> content;
 
-	public override bool parse (Gee.ArrayList<DocElement> content) {
+	public override bool parse (ArrayList<DocElement> content) {
 		this.content = content;
 		return true;
 	}
@@ -35,20 +35,16 @@ public class Valadoc.ValdocOrg.ItalicDocElement : Valadoc.ItalicDocElement {
 		int _max = this.content.size;
 		int _index = 0;
 
-		file.printf ("//");
+		file.printf ("<p>");
 
 		foreach (DocElement element in this.content) {
 			element.write (res, _max, _index);
 			_index++;
 		}
 
-		file.printf ("//");
+		file.printf ("</p>");
 		return true;
 	}
 }
 
 
-[ModuleInit]
-public GLib.Type register_plugin ( Gee.HashMap<string, Type> taglets ) {
-	return typeof (Valadoc.ValdocOrg.ItalicDocElement);
-}
diff --git a/src/doclets/htmlhelpers/taglets/parameter.vala b/src/doclets/htmlhelpers/taglets/parameter.vala
new file mode 100755
index 0000000..5464fdc
--- /dev/null
+++ b/src/doclets/htmlhelpers/taglets/parameter.vala
@@ -0,0 +1,136 @@
+/*
+ * Valadoc - a documentation tool for vala.
+ * Copyright (C) 2008 Florian Brosch
+ * 
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ */
+
+
+using GLib;
+using Gee;
+
+
+public class Valadoc.Html.ParameterTaglet : Valadoc.MainTaglet {
+	public override int order { get { return 100; } }
+	private Gee.Collection<DocElement> content;
+	private string paramname;
+
+	private static bool check_parameter_name ( Valadoc.ParameterListHandler me, string name ) {
+		if ( name == "" )
+			return false;
+
+		foreach ( Valadoc.FormalParameter param in me.get_parameter_list ( ) ) {
+			if ( param.name == name )
+				return true;
+		}
+		return false;
+	}
+
+	public override bool write ( void* ptr, int max, int index ) {
+		weak GLib.FileStream file = (GLib.FileStream)ptr;
+
+		file.printf ( "\t<tr>\n" );
+		file.printf ( "\t\t<td class=\"%s\">%s:</td>\n", css_parameter_table_name, this.paramname );
+		file.printf ( "\t\t<td class=\"%s\">\n", css_parameter_table_text );
+		file.puts ( "\t\t\t" );
+
+		int _max = this.content.size;
+		int _index = 0;
+
+		foreach ( DocElement tag in this.content ) {
+			tag.write ( ptr, _max, _index );
+			_index++;
+		}
+
+		file.puts ( "\n" );
+		file.printf ( "\t\t</td>\n" );
+		file.printf ( "\t</tr>\n" );
+		return true;
+	}
+
+	public override bool write_block_start ( void* ptr ) {
+		weak GLib.FileStream file = (GLib.FileStream)ptr;
+		file.printf ( "<h2 class=\"%s\">Parameters:</h2>\n", css_title );
+		file.printf ( "<table class=\"%s\">\n", css_parameter_table );
+		return true;
+	}
+
+	public override bool write_block_end ( void* ptr ) {
+		weak GLib.FileStream file = (GLib.FileStream)ptr;
+		file.printf ( "</table>\n" );
+		return true;
+	}
+
+	public override bool parse ( Settings settings, Tree tree, DocumentedElement me, Gee.Collection<DocElement> content, ref ErrorLevel errlvl, out string errmsg ) {
+		if ( me is Valadoc.ParameterListHandler == false ) {
+			errmsg = "Tag @param cannot be used in this context";
+			errlvl = ErrorLevel.ERROR;
+			return false;
+		}
+
+		if ( content.size == 0 ) {
+			errmsg = "Parameter name was expected";
+			errlvl = ErrorLevel.ERROR;
+			return false;
+		}
+
+		Gee.ArrayList<DocElement> contentlst = new Gee.ArrayList<DocElement> ();
+		foreach ( DocElement element in content ) {
+			contentlst.add ( element );
+		}
+
+		DocElement tag = contentlst.get( 0 );
+		if ( tag is StringTaglet == false ) {
+			errmsg = "Parameter name was expected";
+			errlvl = ErrorLevel.ERROR;
+			return false;
+		}
+
+		string str = ((StringTaglet)tag).content;
+		weak string lposa =  str.chr (-1, '\n');
+		weak string lposb =  str.chr (-1, ' ');
+		weak string lpos;
+
+		long lposaoffset = (lposa == null)? long.MAX : str.pointer_to_offset ( lposa );
+		long lposboffset = (lposb == null)? long.MAX : str.pointer_to_offset ( lposb );
+
+		if ( lposaoffset < lposboffset )
+			lpos = lposa;
+		else
+			lpos = lposb;
+
+		if ( lpos == null ) {
+			this.paramname = str.strip ();
+			((StringTaglet)tag).content = "";
+		}
+		else {
+			int namepos = (int)str.pointer_to_offset ( lpos );
+			this.paramname = str.ndup ( namepos ).strip ();
+			((StringTaglet)tag).content = lpos.ndup ( lpos.size () ).chomp ();
+		}
+
+		bool tmp = this.check_parameter_name ( (Valadoc.ParameterListHandler)me, this.paramname );
+		if ( tmp == false ) {
+			errmsg = "Parameter is not available";
+			errlvl = ErrorLevel.ERROR;
+			return false;
+		}
+
+		this.content = contentlst;
+		return true;
+	}
+}
+
+
diff --git a/src/doclets/htmlhelpers/taglets/registerfunction.vala b/src/doclets/htmlhelpers/taglets/registerfunction.vala
new file mode 100644
index 0000000..ab7da07
--- /dev/null
+++ b/src/doclets/htmlhelpers/taglets/registerfunction.vala
@@ -0,0 +1,51 @@
+/*
+ * Valadoc - a documentation tool for vala.
+ * Copyright (C) 2008 Florian Brosch
+ * 
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ */
+
+using Valadoc;
+
+
+[ModuleInit]
+public void register_plugin (ModuleLoader loader) {
+	loader.underline = typeof (Valadoc.Html.UnderlinedDocElement);
+	loader.table_cell = typeof (Valadoc.Html.TableCellDocElement);
+	loader.table = typeof (Valadoc.Html.TableDocElement);
+	loader.string = typeof (Valadoc.Html.StringTaglet);
+	loader.source = typeof (Valadoc.Html.SourceCodeDocElement);
+	loader.right = typeof (Valadoc.Html.RightAlignedDocElement);
+	loader.paragraph = typeof (Valadoc.Html.ParagraphDocElement);
+	loader.notification = typeof (Valadoc.Html.NotificationDocElement);
+	loader.list_element = typeof (Valadoc.Html.ListEntryDocElement);
+	loader.list = typeof (Valadoc.Html.ListDocElement);
+	loader.link = typeof (Valadoc.Html.LinkDocElement);
+	loader.italic = typeof (Valadoc.Html.ItalicDocElement);
+	loader.image = typeof (Valadoc.Html.ImageDocElement);
+	loader.headline = typeof (Valadoc.Html.HeadlineDocElement);
+	loader.source_inline = typeof (Valadoc.Html.CodeConstantDocElement);
+	loader.center = typeof (Valadoc.Html.CenterDocElement);
+	loader.bold = typeof (Valadoc.Html.BoldDocElement);
+
+	loader.taglets.set ("see", typeof (Valadoc.Html.SeeTaglet));
+	loader.taglets.set ("since", typeof (Valadoc.Html.SinceTaglet));
+	loader.taglets.set ("link", typeof (Valadoc.Html.TypeLinkInlineTaglet));
+	loader.taglets.set ("throws", typeof (Valadoc.Html.ExceptionTaglet));
+	loader.taglets.set ("return", typeof (Valadoc.Html.ReturnTaglet));
+	loader.taglets.set ("param", typeof (Valadoc.Html.ParameterTaglet));
+}
+
+
diff --git a/src/doclets/valadoc.org/taglets/notification/taglet.vala b/src/doclets/htmlhelpers/taglets/return.vala
similarity index 61%
copy from src/doclets/valadoc.org/taglets/notification/taglet.vala
copy to src/doclets/htmlhelpers/taglets/return.vala
index ea1dfba..5fb6409 100755
--- a/src/doclets/valadoc.org/taglets/notification/taglet.vala
+++ b/src/doclets/htmlhelpers/taglets/return.vala
@@ -17,41 +17,46 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
 
+
 using GLib;
 using Gee;
 
 
+public class Valadoc.Html.ReturnTaglet : Valadoc.MainTaglet {
+	public override int order { get { return 300; } }
+	private Gee.Collection<DocElement> content;
 
-public class Valadoc.ValdocOrg.NotificationDocElement : Valadoc.NotificationDocElement {
-	private Gee.ArrayList<DocElement> content;
 
-	public override bool parse ( Gee.ArrayList<DocElement> content ) {
+	public override bool parse ( Settings settings, Tree tree, DocumentedElement me, Gee.Collection<DocElement> content, ref ErrorLevel errlvl, out string errmsg ) {
+		if ( !(me is Valadoc.Method || me is Valadoc.Signal || me is Valadoc.Delegate) ) {
+			errmsg = "Tag @return cannot be used in this context";
+			errlvl = ErrorLevel.ERROR;
+			return false;
+		}
 		this.content = content;
 		return true;
 	}
 
 	public override bool write ( void* res, int max, int index ) {
-		weak GLib.FileStream file = (GLib.FileStream)res;
 		int _max = this.content.size;
 		int _index = 0;
 
-		file.printf ( "\n[[warning:\n");
-
 		foreach ( DocElement element in this.content ) {
 			element.write ( res, _max, _index );
 			_index++;
 		}
-
-		file.printf ( "\n]]\n" );
 		return true;
 	}
-}
 
+	public override bool write_block_start ( void* res ) {
+		weak GLib.FileStream file = (GLib.FileStream)res;
+		file.printf ( "<h2 class=\"%s\">Returns:</h2>\n", css_title );
+		return true;
+	}
 
-[ModuleInit]
-public GLib.Type register_plugin ( Gee.HashMap<string, Type> taglets ) {
-	return typeof (Valadoc.ValdocOrg.NotificationDocElement);
+	public override bool write_block_end ( void* res ) {
+		return true;
+	}
 }
 
 
-
diff --git a/src/doclets/valadoc.org/taglets/bold/taglet.vala b/src/doclets/htmlhelpers/taglets/right.vala
similarity index 82%
copy from src/doclets/valadoc.org/taglets/bold/taglet.vala
copy to src/doclets/htmlhelpers/taglets/right.vala
index 9658bca..5a536f7 100755
--- a/src/doclets/valadoc.org/taglets/bold/taglet.vala
+++ b/src/doclets/htmlhelpers/taglets/right.vala
@@ -22,7 +22,7 @@ using GLib;
 using Gee;
 
 
-public class Valadoc.ValdocOrg.BoldDocElement : Valadoc.BoldDocElement {
+public class Valadoc.Html.RightAlignedDocElement : Valadoc.RightAlignedDocElement {
 	private Gee.ArrayList<DocElement> content;
 
 	public override bool parse ( Gee.ArrayList<DocElement> content ) {
@@ -35,21 +35,16 @@ public class Valadoc.ValdocOrg.BoldDocElement : Valadoc.BoldDocElement {
 		int _max = this.content.size;
 		int _index = 0;
 
-		file.printf ( "++" );
+		file.printf ( "<div align=\"right\">" );
 
 		foreach ( DocElement element in this.content ) {
 			element.write ( res, _max, _index );
 			_index++;
 		}
 
-		file.printf ( "++" );
+		file.printf ( "</div>" );
 		return true;
 	}
 }
 
 
-[ModuleInit]
-public GLib.Type register_plugin ( Gee.HashMap<string, Type> taglets ) {
-	return typeof ( Valadoc.ValdocOrg.BoldDocElement );
-}
-
diff --git a/src/doclets/htmlhelpers/taglets/see.vala b/src/doclets/htmlhelpers/taglets/see.vala
new file mode 100755
index 0000000..2a68e31
--- /dev/null
+++ b/src/doclets/htmlhelpers/taglets/see.vala
@@ -0,0 +1,86 @@
+/*
+ * Valadoc - a documentation tool for vala.
+ * Copyright (C) 2008 Florian Brosch
+ * 
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ */
+
+
+using Valadoc;
+using GLib;
+using Gee;
+
+
+public class Valadoc.Html.SeeTaglet : MainTaglet {
+	public override int order { get { return 400; } }
+	private string name;
+	private string link;
+	private string css;
+
+	protected override bool write_block_start ( void* res ) {
+		weak GLib.FileStream file = (GLib.FileStream)res;
+		file.printf ( "<h2 class=\"%s\">See:</h2>\n", css_title );
+		return true;
+	}
+
+	protected override bool write_block_end ( void* res ) {
+		return true;
+	}
+
+	protected override bool write ( void* res, int max, int index ) {
+		if ( this.link == null ) {
+			((GLib.FileStream)res).printf ( "<span class=\"%s\">%s</span>", this.css, this.name );
+		}
+		else {
+			((GLib.FileStream)res).printf ( "<a class=\"%s\" href=\"%s\">%s</a>", this.css, this.link, this.name );
+		}
+
+		if ( max != index+1 ) {
+			((GLib.FileStream)res).printf ( ", " );
+		}
+		return true;
+	}
+
+	public override bool parse ( Settings settings, Tree tree, DocumentedElement me, Gee.Collection<DocElement> content, ref ErrorLevel errlvl, out string errmsg ) {
+		if ( content.size != 1 ) {
+			errmsg = "Type name was expected";
+			errlvl = ErrorLevel.ERROR;
+			return false;
+		}
+
+		Gee.Iterator<DocElement> it = content.iterator ();
+		it.next ();
+
+		DocElement element = it.get ();
+		if ( element is StringTaglet == false ) {
+			errmsg = "Type name was expected";
+			errlvl = ErrorLevel.ERROR;
+			return false;
+		}
+
+		Valadoc.DocumentedElement? node = tree.search_symbol_str ( me, ((StringTaglet)element).content.strip ( ) );
+		if ( node == null ) {
+			errmsg = "Linked type is not available";
+			errlvl = ErrorLevel.ERROR;
+			return false;
+		}
+
+		this.name = node.full_name ( );
+		this.css = get_html_content_link_css_class ( node );
+		this.link = get_html_link ( settings, node, me );
+		return true;
+	}
+}
+
diff --git a/src/doclets/htmlhelpers/taglets/since.vala b/src/doclets/htmlhelpers/taglets/since.vala
new file mode 100755
index 0000000..5d497ca
--- /dev/null
+++ b/src/doclets/htmlhelpers/taglets/since.vala
@@ -0,0 +1,69 @@
+/*
+ * Valadoc - a documentation tool for vala.
+ * Copyright (C) 2008 Florian Brosch
+ * 
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ */
+
+
+using GLib;
+using Gee;
+
+
+public class Valadoc.Html.SinceTaglet : Valadoc.MainTaglet {
+	public override int order { get { return 400; } }
+	private StringTaglet content;
+
+	public override bool write_block_start ( void* ptr ) {
+		weak GLib.FileStream file = (GLib.FileStream)ptr;
+		file.printf ( "<h2 class=\"%s\">Since:</h2>\n", css_title );
+		return true;
+	}
+
+	public override bool write_block_end ( void* res ) {
+		return true;
+	}
+
+	public override bool write ( void* res, int max, int index ) {
+		((GLib.FileStream)res).printf ( "%s", this.content.content );
+		if ( max != index+1 )
+			((GLib.FileStream)res).puts ( ", " );
+
+		return true;
+	}
+
+	public override bool parse ( Settings settings, Tree tree, DocumentedElement me, Gee.Collection<DocElement> content, ref ErrorLevel errlvl, out string errmsg ) {
+		if ( content.size != 1 ) {
+			errmsg = "Version name was expected";
+			errlvl = ErrorLevel.ERROR;
+			return false;
+		}
+
+		Gee.Iterator<DocElement> it = content.iterator ();
+		it.next ();
+
+		DocElement element = it.get ();
+		if ( element is StringTaglet == false ) {
+			errmsg = "Version name was expected";
+			errlvl = ErrorLevel.ERROR;
+			return false;
+		}
+
+		this.content = (StringTaglet)element;
+		return true;
+	}
+}
+
+
diff --git a/src/doclets/valadoc.org/taglets/headline/taglet.vala b/src/doclets/htmlhelpers/taglets/source.vala
similarity index 64%
copy from src/doclets/valadoc.org/taglets/headline/taglet.vala
copy to src/doclets/htmlhelpers/taglets/source.vala
index d646a54..03632f7 100755
--- a/src/doclets/valadoc.org/taglets/headline/taglet.vala
+++ b/src/doclets/htmlhelpers/taglets/source.vala
@@ -22,26 +22,32 @@ using GLib;
 using Gee;
 
 
-public class Valadoc.ValdocOrg.HeadlineDocElement : Valadoc.HeadlineDocElement {
-	private string title;
-	private int lvl;
-
-	public override bool parse (string title, int lvl) {
-		this.title = title;
-		this.lvl = lvl;
+public class Valadoc.Html.SourceCodeDocElement : Valadoc.SourceCodeDocElement {
+	private Language lang;
+	private int srclines;
+	private string src;
+
+	public override bool parse (string src, Language lang) {
+		this.src = src;
+		this.lang = lang;
+		this.srclines=0;
+
+		for (weak string str=this.src; str.get_char()!='\0'; str=str.next_char()) {
+			if (str.get_char () == '\n') {
+				this.srclines++;
+			}
+		}
 		return true;
 	}
 
 	public override bool write (void* res, int max, int index) {
 		weak GLib.FileStream file = (GLib.FileStream)res;
-		file.printf ("\n\n%s %s\n", string.nfill (this.lvl+1, '='), this.title);
+		file.printf ("\n\n\t<pre class=\"%s\">", css_source_sample);
+		file.puts (src);
+		file.puts ("</pre>\n\n");
 		return true;
 	}
 }
 
 
-[ModuleInit]
-public GLib.Type register_plugin (Gee.HashMap<string, Type> taglets) {
-	return typeof (Valadoc.ValdocOrg.HeadlineDocElement);
-}
 
diff --git a/src/doclets/valadoc.org/taglets/bold/taglet.vala b/src/doclets/htmlhelpers/taglets/string.vala
similarity index 55%
copy from src/doclets/valadoc.org/taglets/bold/taglet.vala
copy to src/doclets/htmlhelpers/taglets/string.vala
index 9658bca..762223c 100755
--- a/src/doclets/valadoc.org/taglets/bold/taglet.vala
+++ b/src/doclets/htmlhelpers/taglets/string.vala
@@ -22,34 +22,45 @@ using GLib;
 using Gee;
 
 
-public class Valadoc.ValdocOrg.BoldDocElement : Valadoc.BoldDocElement {
-	private Gee.ArrayList<DocElement> content;
-
-	public override bool parse ( Gee.ArrayList<DocElement> content ) {
+public class Valadoc.Html.StringTaglet : Valadoc.StringTaglet {
+	public override bool parse ( string content ) {
 		this.content = content;
 		return true;
 	}
 
 	public override bool write ( void* res, int max, int index ) {
 		weak GLib.FileStream file = (GLib.FileStream)res;
-		int _max = this.content.size;
-		int _index = 0;
-
-		file.printf ( "++" );
+		unichar chr = content[0];
+		long lpos = 0;
+		int i = 0;
 
-		foreach ( DocElement element in this.content ) {
-			element.write ( res, _max, _index );
-			_index++;
+		for ( i = 0; chr != '\0' ; i++, chr = content[i] ) {
+			switch ( chr ) {
+			case '\n':
+				file.puts ( content.substring (lpos, i-lpos) ); 
+				file.puts ( "<br />" );
+				lpos = i+1;
+				break;
+			case '<':
+				file.puts ( content.substring (lpos, i-lpos) ); 
+				file.puts ( "&lt;" );
+				lpos = i+1;
+				break;
+			case '>':
+				file.puts ( content.substring (lpos, i-lpos) ); 
+				file.puts ( "&gt;" );
+				lpos = i+1;
+				break;
+			case '&':
+				file.puts ( content.substring (lpos, i-lpos) ); 
+				file.puts ( "&amp;" );
+				lpos = i+1;
+				break;
+			}
 		}
-
-		file.printf ( "++" );
+		file.puts ( content.substring (lpos, i-lpos) ); 
 		return true;
 	}
 }
 
 
-[ModuleInit]
-public GLib.Type register_plugin ( Gee.HashMap<string, Type> taglets ) {
-	return typeof ( Valadoc.ValdocOrg.BoldDocElement );
-}
-
diff --git a/src/doclets/valadoc.org/taglets/bold/taglet.vala b/src/doclets/htmlhelpers/taglets/table.vala
similarity index 60%
copy from src/doclets/valadoc.org/taglets/bold/taglet.vala
copy to src/doclets/htmlhelpers/taglets/table.vala
index 9658bca..eeea920 100755
--- a/src/doclets/valadoc.org/taglets/bold/taglet.vala
+++ b/src/doclets/htmlhelpers/taglets/table.vala
@@ -22,34 +22,33 @@ using GLib;
 using Gee;
 
 
-public class Valadoc.ValdocOrg.BoldDocElement : Valadoc.BoldDocElement {
-	private Gee.ArrayList<DocElement> content;
+public class Valadoc.Html.TableDocElement : Valadoc.TableDocElement {
+	private Gee.ArrayList<Gee.ArrayList<TableCellDocElement>> cells;
 
-	public override bool parse ( Gee.ArrayList<DocElement> content ) {
-		this.content = content;
-		return true;
+	public override void parse ( Gee.ArrayList<Gee.ArrayList<TableCellDocElement>> cells ) {
+		this.cells = cells;
 	}
 
 	public override bool write ( void* res, int max, int index ) {
 		weak GLib.FileStream file = (GLib.FileStream)res;
-		int _max = this.content.size;
-		int _index = 0;
 
-		file.printf ( "++" );
+		file.printf ( "<table border=\"1\" class=\"%s\">\n", css_wiki_table );
+		foreach ( Gee.ArrayList<TableCellDocElement> row in this.cells ) {
+			int _max = row.size;
+			int _index = 0;
 
-		foreach ( DocElement element in this.content ) {
-			element.write ( res, _max, _index );
-			_index++;
-		}
+			file.puts ( "\t<tr>\n" );
+			foreach ( TableCellDocElement cell in row ) {
+				cell.write ( res, _max, _index );
+				_index++;
+			}
+			file.puts ( "\t</tr>\n" );
 
-		file.printf ( "++" );
+		}
+		file.puts ( "</table>\n" );
 		return true;
 	}
 }
 
 
-[ModuleInit]
-public GLib.Type register_plugin ( Gee.HashMap<string, Type> taglets ) {
-	return typeof ( Valadoc.ValdocOrg.BoldDocElement );
-}
 
diff --git a/src/doclets/htmlhelpers/taglets/tablecell.vala b/src/doclets/htmlhelpers/taglets/tablecell.vala
new file mode 100755
index 0000000..adf0938
--- /dev/null
+++ b/src/doclets/htmlhelpers/taglets/tablecell.vala
@@ -0,0 +1,87 @@
+/*
+ * Valadoc - a documentation tool for vala.
+ * Copyright (C) 2008 Florian Brosch
+ * 
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ */
+
+using GLib;
+using Gee;
+
+
+public class Valadoc.Html.TableCellDocElement : Valadoc.TableCellDocElement {
+	private Gee.ArrayList<DocElement> content;
+	private TextVerticalPosition hpos;
+	private TextPosition pos;
+	private int dcells;
+	private int cells;
+
+	public override void parse ( TextPosition pos, TextVerticalPosition hpos, int cells, int dcells, Gee.ArrayList<DocElement> content ) {
+		this.content = content;
+		this.dcells = dcells;
+		this.cells = cells;
+		this.hpos = hpos;
+		this.pos = pos;
+	}
+
+	public override bool write ( void* res, int max, int index ) {
+		weak GLib.FileStream file = (GLib.FileStream)res;
+		int _max = this.content.size;
+		int _index = 0;
+
+		GLib.StringBuilder td = new GLib.StringBuilder ( "\t\t<td" );
+		if ( this.cells != 1 ) {
+			td.append ( " colspan=\"" );
+			td.append ( this.cells.to_string() );
+			td.append_unichar ( '\"' );
+		}
+
+		if ( this.dcells != 1 ) {
+			td.append ( " rowspan=\"" );
+			td.append ( this.dcells.to_string() );
+			td.append_unichar ( '\"' );
+		}
+
+		switch ( this.pos ) {
+		case TextPosition.CENTER:
+			td.append ( " align=\"center\"" );
+			break;
+		case TextPosition.RIGHT:
+			td.append ( " align=\"right\"" );
+			break;
+		}
+
+		switch ( this.hpos ) {
+		case TextVerticalPosition.TOP:
+			td.append ( " valign=\"top\"" );
+			break;
+		case TextVerticalPosition.BOTTOM:
+			td.append ( " valign=\"bottom\"" );
+			break;
+		}
+
+		td.append_unichar ( '>' );
+
+		file.puts ( td.str );
+		foreach ( DocElement cell in this.content ) {
+			cell.write ( res, _max, _index );
+			_index++;
+		}
+		file.puts ( "</td>\n" );
+		return true;
+	}
+}
+
+
diff --git a/src/doclets/htmlhelpers/taglets/throws.vala b/src/doclets/htmlhelpers/taglets/throws.vala
new file mode 100755
index 0000000..a8e4120
--- /dev/null
+++ b/src/doclets/htmlhelpers/taglets/throws.vala
@@ -0,0 +1,139 @@
+/*
+ * Valadoc - a documentation tool for vala.
+ * Copyright (C) 2008 Florian Brosch
+ * 
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ */
+
+
+using GLib;
+using Gee;
+
+
+public class Valadoc.Html.ExceptionTaglet : Valadoc.MainTaglet {
+	public override int order { get { return 200; } }
+	private Gee.ArrayList<DocElement> content;
+	private string paramname;
+
+	public override bool parse ( Settings settings, Tree tree, DocumentedElement me, Gee.Collection<DocElement> content, ref ErrorLevel errlvl, out string errmsg ) {
+		if ( me is Valadoc.ExceptionHandler == false ) {
+			errmsg = "Tag @throws cannot be used in this context";
+			errlvl = ErrorLevel.ERROR;
+			return false;
+		}
+
+		if ( content.size == 0 ) {
+			errmsg = "Exception name was expected";
+			errlvl = ErrorLevel.ERROR;
+			return false;
+		}
+
+
+		Gee.ArrayList<DocElement> contentlst = new Gee.ArrayList<DocElement> ();
+		foreach ( DocElement element in content ) {
+			contentlst.add ( element );
+		}
+
+		DocElement tag = contentlst.get( 0 );
+		if ( tag is StringTaglet == false ) {
+			errmsg = "Exception name was expected";
+			errlvl = ErrorLevel.ERROR;
+			return false;
+		}
+
+		string str = ((StringTaglet)tag).content;
+		weak string lposa =  str.chr (-1, '\n');
+		weak string lposb =  str.chr (-1, ' ');
+		weak string lpos;
+
+		long lposaoffset = (lposa == null)? long.MAX : str.pointer_to_offset ( lposa );
+		long lposboffset = (lposb == null)? long.MAX : str.pointer_to_offset ( lposb );
+
+		if ( lposaoffset < lposboffset ) {
+			lpos = lposa;
+		}
+		else {
+			lpos = lposb;
+		}
+
+		if ( lpos == null ) {
+			this.paramname = str.strip ();
+			((StringTaglet)tag).content = "";
+		}
+		else {
+			int namepos = (int)str.pointer_to_offset ( lpos );
+			this.paramname = str.ndup ( namepos ).strip ();
+			((StringTaglet)tag).content = lpos.ndup ( lpos.size () ).chomp ();
+		}
+
+		bool tmp = this.check_exception_parameter_name ( (Valadoc.ExceptionHandler)me, this.paramname );
+		if ( tmp == false ) {
+			errmsg = "Exception name was expected";
+			errlvl = ErrorLevel.ERROR;
+			return false;
+		}
+
+		this.content = contentlst;
+		return true;
+	}
+
+	private bool check_exception_parameter_name ( Valadoc.ExceptionHandler me, string paramname ) {
+		string paramname2 = "."+paramname;
+
+		foreach ( DocumentedElement param in me.get_error_domains() ) {
+			if ( param.name == paramname || param.full_name() == paramname || param.full_name().has_suffix(paramname2) ) {
+				return true;
+			}
+		}
+		return false;
+	}
+
+	public override bool write ( void* ptr, int max, int index ) {
+		weak GLib.FileStream file = (GLib.FileStream)ptr;
+
+		file.printf ( "\t<tr>\n" );
+		file.printf ( "\t\t<td class=\"%s\">%s:</td>\n", css_parameter_table_name, this.paramname );
+		file.printf ( "\t\t<td class=\"%s\">\n", css_parameter_table_text );
+		file.puts ( "\t\t\t" );
+
+		int _max = this.content.size;
+		int _index = 0;
+
+		foreach ( DocElement element in this.content ) {
+			element.write ( ptr, _max, _index );
+			_index++;
+		}
+
+		file.puts ( "\n" );
+		file.printf ( "\t\t</td>\n" );
+		file.printf ( "\t</tr>\n" );
+		return true;
+	}
+
+	public override bool write_block_start ( void* ptr ) {
+		weak GLib.FileStream file = (GLib.FileStream)ptr;
+		file.printf ( "<h2 class=\"%s\">Exceptions:</h2>\n", css_title );
+		file.printf ( "<table class=\"%s\">\n", css_exception_table );
+		return true;
+	}
+
+	public override bool write_block_end ( void* ptr ) {
+		weak GLib.FileStream file = (GLib.FileStream)ptr;
+		file.printf ( "</table>\n" );
+		return true;
+	}
+}
+
+
diff --git a/src/doclets/htmlhelpers/taglets/typelink.vala b/src/doclets/htmlhelpers/taglets/typelink.vala
new file mode 100755
index 0000000..32cf5d1
--- /dev/null
+++ b/src/doclets/htmlhelpers/taglets/typelink.vala
@@ -0,0 +1,60 @@
+/*
+ * Valadoc - a documentation tool for vala.
+ * Copyright (C) 2008 Florian Brosch
+ * 
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ */
+
+
+using GLib;
+using Gee;
+
+
+public class Valadoc.Html.TypeLinkInlineTaglet : Valadoc.InlineTaglet {
+	private string? link = null;
+	private string? name = null;
+	private string? css = null;
+
+	protected override string to_string ( ) {
+		return this.name;
+	}
+
+	protected override bool write ( void* res, int max, int index ) {
+		if ( this.link == null ) {
+			((GLib.FileStream)res).printf ( "<span class=\"%s\">%s</span>", this.css, this.name );
+		}
+		else {
+			((GLib.FileStream)res).printf ( "<a class=\"%s\" href=\"%s\">%s</a>", this.css, this.link, this.name );
+		}
+
+		return true;
+	}
+
+	protected override bool parse ( Settings settings, Tree tree, Documentation self, string content, ref ErrorLevel errlvl, out string? errmsg ) {
+		Valadoc.DocumentedElement? element = tree.search_symbol_str ( (self is DocumentedElement)? (DocumentedElement)self : null, content.strip() );
+		if ( element == null ) {
+			errmsg = "Linked type is not available";
+			errlvl = ErrorLevel.ERROR;
+			return false;
+		}
+
+		this.name = element.full_name ();
+		this.css = get_html_content_link_css_class ( element );
+		this.link = get_html_link ( settings, element, self );
+		return true;
+	}
+}
+
+
diff --git a/src/doclets/valadoc.org/taglets/bold/taglet.vala b/src/doclets/htmlhelpers/taglets/underline.vala
similarity index 82%
copy from src/doclets/valadoc.org/taglets/bold/taglet.vala
copy to src/doclets/htmlhelpers/taglets/underline.vala
index 9658bca..755159d 100755
--- a/src/doclets/valadoc.org/taglets/bold/taglet.vala
+++ b/src/doclets/htmlhelpers/taglets/underline.vala
@@ -22,7 +22,7 @@ using GLib;
 using Gee;
 
 
-public class Valadoc.ValdocOrg.BoldDocElement : Valadoc.BoldDocElement {
+public class Valadoc.Html.UnderlinedDocElement : Valadoc.UnderlinedDocElement {
 	private Gee.ArrayList<DocElement> content;
 
 	public override bool parse ( Gee.ArrayList<DocElement> content ) {
@@ -35,21 +35,16 @@ public class Valadoc.ValdocOrg.BoldDocElement : Valadoc.BoldDocElement {
 		int _max = this.content.size;
 		int _index = 0;
 
-		file.printf ( "++" );
+		file.printf ( "<u>" );
 
 		foreach ( DocElement element in this.content ) {
 			element.write ( res, _max, _index );
 			_index++;
 		}
 
-		file.printf ( "++" );
+		file.printf ( "</u>" );
 		return true;
 	}
 }
 
 
-[ModuleInit]
-public GLib.Type register_plugin ( Gee.HashMap<string, Type> taglets ) {
-	return typeof ( Valadoc.ValdocOrg.BoldDocElement );
-}
-
diff --git a/src/doclets/valadoc.org/doclet/Makefile.am b/src/doclets/valadoc.org/doclet/Makefile.am
index d4afe91..97ca56c 100755
--- a/src/doclets/valadoc.org/doclet/Makefile.am
+++ b/src/doclets/valadoc.org/doclet/Makefile.am
@@ -33,14 +33,12 @@ libdoclet_la_SOURCES =                \
 AM_CFLAGS =  -g                    \
 	-I ../../../libvaladoc/        \
 	-I ../../htmlhelpers/languages \
-	`mysql_config --cflags`        \
 	$(GLIB_CFLAGS)                 \
 	$(LIBVALA_CFLAGS)              \
 	$(NULL)
 
 
 libdoclet_la_LDFLAGS = -module -avoid-version \
-	`mysql_config --libs`                     \
 	$(NULL)
 
 
diff --git a/src/doclets/valadoc.org/taglets/Makefile.am b/src/doclets/valadoc.org/taglets/Makefile.am
index f7b55dd..bb9e83f 100755
--- a/src/doclets/valadoc.org/taglets/Makefile.am
+++ b/src/doclets/valadoc.org/taglets/Makefile.am
@@ -1,28 +1,78 @@
 NULL =
 
 
-SUBDIRS =        \
-	typelink     \
-	tablecell    \
-	center       \
-	constants    \
-	image        \
-	italic       \
-	bold         \
-	right        \
-	see          \
-	table        \
-	throws       \
-	string       \
-	list         \
-	return       \
-	source       \
-	paragraph    \
-	parameter    \
-	listelement  \
-	notification \
-	underline    \
-	since        \
-	link         \
-	headline     \
+AM_CFLAGS =  -g \
+	-I ../../../libvaladoc/ \
+	$(GLIB_CFLAGS) \
+	$(LIBVALA_CFLAGS) \
 	$(NULL)
+
+
+BUILT_SOURCES = libbasictaglets.vala.stamp
+
+
+basictagletsdir = $(libdir)/valadoc/plugins/valadoc.org/taglets/
+
+
+basictaglets_LTLIBRARIES = \
+	libbasictaglets.la \
+	$(NULL)
+
+
+libbasictaglets_la_VALASOURCES = \
+	bold.vala \
+	center.vala \
+	constant.vala \
+	headline.vala \
+	image.vala \
+	italic.vala \
+	link.vala \
+	list.vala \
+	listelement.vala \
+	notification.vala \
+	paragraph.vala \
+	parameter.vala \
+	return.vala \
+	right.vala \
+	see.vala \
+	since.vala \
+	source.vala \
+	string.vala \
+	table.vala \
+	tablecell.vala \
+	throws.vala \
+	typelink.vala \
+	underline.vala \
+	registerfunction.vala \
+	$(NULL)
+
+
+libbasictaglets_la_SOURCES =                \
+	libbasictaglets.vala.stamp              \
+	$(libbasictaglets_la_VALASOURCES:.vala=.c) \
+	$(NULL)
+
+
+libbasictaglets.vala.stamp: $(libbasictaglets_la_VALASOURCES)
+	$(VALAC) -C --vapidir ../../../vapi --pkg valadoc-1.0 --basedir . $^
+	touch $@
+
+
+libbasictaglets_la_LDFLAGS = -module -avoid-version
+
+
+libbasictaglets_la_LIBADD =           \
+	../../../libvaladoc/libvaladoc.la \
+	$(LIBGVC_LIBS)                    \
+	$(LIBVALA_LIBS)                   \
+	$(GLIB_LIBS)                      \
+	$(NULL)
+
+
+EXTRA_DIST = $(libbasictaglets_la_VALASOURCES)  libbasictaglets.vala.stamp 
+
+
+MAINTAINERCLEANFILES =                            \
+	$(libbasictaglets_la_VALASOURCES:.vala=.c) \
+	$(NULL)
+
diff --git a/src/doclets/valadoc.org/taglets/bold/taglet.vala b/src/doclets/valadoc.org/taglets/bold.vala
similarity index 85%
copy from src/doclets/valadoc.org/taglets/bold/taglet.vala
copy to src/doclets/valadoc.org/taglets/bold.vala
index 9658bca..8320fdf 100755
--- a/src/doclets/valadoc.org/taglets/bold/taglet.vala
+++ b/src/doclets/valadoc.org/taglets/bold.vala
@@ -22,7 +22,7 @@ using GLib;
 using Gee;
 
 
-public class Valadoc.ValdocOrg.BoldDocElement : Valadoc.BoldDocElement {
+public class Valadoc.ValadocOrg.BoldDocElement : Valadoc.BoldDocElement {
 	private Gee.ArrayList<DocElement> content;
 
 	public override bool parse ( Gee.ArrayList<DocElement> content ) {
@@ -48,8 +48,3 @@ public class Valadoc.ValdocOrg.BoldDocElement : Valadoc.BoldDocElement {
 }
 
 
-[ModuleInit]
-public GLib.Type register_plugin ( Gee.HashMap<string, Type> taglets ) {
-	return typeof ( Valadoc.ValdocOrg.BoldDocElement );
-}
-
diff --git a/src/doclets/valadoc.org/taglets/center/taglet.vala b/src/doclets/valadoc.org/taglets/center.vala
similarity index 85%
copy from src/doclets/valadoc.org/taglets/center/taglet.vala
copy to src/doclets/valadoc.org/taglets/center.vala
index 355def1..1bc3d79 100755
--- a/src/doclets/valadoc.org/taglets/center/taglet.vala
+++ b/src/doclets/valadoc.org/taglets/center.vala
@@ -22,7 +22,7 @@ using GLib;
 using Gee;
 
 
-public class Valadoc.ValdocOrg.CenterDocElement : Valadoc.CenterDocElement {
+public class Valadoc.ValadocOrg.CenterDocElement : Valadoc.CenterDocElement {
 	private Gee.ArrayList<DocElement> content;
 
 	public override bool parse (Gee.ArrayList<DocElement> content) {
@@ -48,8 +48,3 @@ public class Valadoc.ValdocOrg.CenterDocElement : Valadoc.CenterDocElement {
 }
 
 
-[ModuleInit]
-public GLib.Type register_plugin (Gee.HashMap<string, Type> taglets) {
-	return typeof (Valadoc.ValdocOrg.CenterDocElement);
-}
-
diff --git a/src/doclets/valadoc.org/taglets/constants/taglet.vala b/src/doclets/valadoc.org/taglets/constant.vala
similarity index 82%
copy from src/doclets/valadoc.org/taglets/constants/taglet.vala
copy to src/doclets/valadoc.org/taglets/constant.vala
index 0e2fa62..f756d03 100755
--- a/src/doclets/valadoc.org/taglets/constants/taglet.vala
+++ b/src/doclets/valadoc.org/taglets/constant.vala
@@ -22,7 +22,7 @@ using GLib;
 using Gee;
 
 
-public class Valadoc.Html.CodeConstantDocElement : Valadoc.CodeConstantDocElement {
+public class Valadoc.ValadocOrg.CodeConstantDocElement : Valadoc.CodeConstantDocElement {
 	private string constant;
 
 	public override bool parse (string constant) {
@@ -38,8 +38,3 @@ public class Valadoc.Html.CodeConstantDocElement : Valadoc.CodeConstantDocElemen
 }
 
 
-[ModuleInit]
-public GLib.Type register_plugin (Gee.HashMap<string, Type> taglets) {
-	return typeof (Valadoc.Html.CodeConstantDocElement);
-}
-
diff --git a/src/doclets/valadoc.org/taglets/headline/taglet.vala b/src/doclets/valadoc.org/taglets/headline.vala
similarity index 84%
copy from src/doclets/valadoc.org/taglets/headline/taglet.vala
copy to src/doclets/valadoc.org/taglets/headline.vala
index d646a54..77506a9 100755
--- a/src/doclets/valadoc.org/taglets/headline/taglet.vala
+++ b/src/doclets/valadoc.org/taglets/headline.vala
@@ -22,7 +22,7 @@ using GLib;
 using Gee;
 
 
-public class Valadoc.ValdocOrg.HeadlineDocElement : Valadoc.HeadlineDocElement {
+public class Valadoc.ValadocOrg.HeadlineDocElement : Valadoc.HeadlineDocElement {
 	private string title;
 	private int lvl;
 
@@ -40,8 +40,4 @@ public class Valadoc.ValdocOrg.HeadlineDocElement : Valadoc.HeadlineDocElement {
 }
 
 
-[ModuleInit]
-public GLib.Type register_plugin (Gee.HashMap<string, Type> taglets) {
-	return typeof (Valadoc.ValdocOrg.HeadlineDocElement);
-}
 
diff --git a/src/doclets/valadoc.org/taglets/image/taglet.vala b/src/doclets/valadoc.org/taglets/image.vala
similarity index 88%
rename from src/doclets/valadoc.org/taglets/image/taglet.vala
rename to src/doclets/valadoc.org/taglets/image.vala
index 7a62eab..d545605 100755
--- a/src/doclets/valadoc.org/taglets/image/taglet.vala
+++ b/src/doclets/valadoc.org/taglets/image.vala
@@ -20,10 +20,9 @@
 
 using GLib;
 using Gee;
-using Gdk;
 
 
-public class Valadoc.ValdocOrg.ImageDocElement : Valadoc.ImageDocElement {
+public class Valadoc.ValadocOrg.ImageDocElement : Valadoc.ImageDocElement {
 	private string imgpath;
 	private string path;
 	private string alt;
@@ -55,8 +54,3 @@ public class Valadoc.ValdocOrg.ImageDocElement : Valadoc.ImageDocElement {
 }
 
 
-[ModuleInit]
-public GLib.Type register_plugin (Gee.HashMap<string, Type> taglets) {
-	return typeof (Valadoc.ValdocOrg.ImageDocElement);
-}
-
diff --git a/src/doclets/valadoc.org/taglets/italic/taglet.vala b/src/doclets/valadoc.org/taglets/italic.vala
similarity index 85%
copy from src/doclets/valadoc.org/taglets/italic/taglet.vala
copy to src/doclets/valadoc.org/taglets/italic.vala
index 2f84b4f..564a60d 100755
--- a/src/doclets/valadoc.org/taglets/italic/taglet.vala
+++ b/src/doclets/valadoc.org/taglets/italic.vala
@@ -22,7 +22,7 @@ using GLib;
 using Gee;
 
 
-public class Valadoc.ValdocOrg.ItalicDocElement : Valadoc.ItalicDocElement {
+public class Valadoc.ValadocOrg.ItalicDocElement : Valadoc.ItalicDocElement {
 	private Gee.ArrayList<DocElement> content;
 
 	public override bool parse (Gee.ArrayList<DocElement> content) {
@@ -48,7 +48,3 @@ public class Valadoc.ValdocOrg.ItalicDocElement : Valadoc.ItalicDocElement {
 }
 
 
-[ModuleInit]
-public GLib.Type register_plugin ( Gee.HashMap<string, Type> taglets ) {
-	return typeof (Valadoc.ValdocOrg.ItalicDocElement);
-}
diff --git a/src/doclets/valadoc.org/taglets/link/taglet.vala b/src/doclets/valadoc.org/taglets/link.vala
similarity index 88%
copy from src/doclets/valadoc.org/taglets/link/taglet.vala
copy to src/doclets/valadoc.org/taglets/link.vala
index bd975d4..5fc30a6 100755
--- a/src/doclets/valadoc.org/taglets/link/taglet.vala
+++ b/src/doclets/valadoc.org/taglets/link.vala
@@ -22,7 +22,7 @@ using GLib;
 using Gee;
 
 
-public class Valadoc.ValdocOrg.LinkDocElement : Valadoc.LinkDocElement {
+public class Valadoc.ValadocOrg.LinkDocElement : Valadoc.LinkDocElement {
 	private string desc;
 	private string path;
 
@@ -55,8 +55,4 @@ public class Valadoc.ValdocOrg.LinkDocElement : Valadoc.LinkDocElement {
 }
 
 
-[ModuleInit]
-public GLib.Type register_plugin (Gee.HashMap<string, Type> taglets) {
-	return typeof (Valadoc.ValdocOrg.LinkDocElement);
-}
 
diff --git a/src/doclets/valadoc.org/taglets/list/taglet.vala b/src/doclets/valadoc.org/taglets/list.vala
similarity index 86%
rename from src/doclets/valadoc.org/taglets/list/taglet.vala
rename to src/doclets/valadoc.org/taglets/list.vala
index 260e483..88accd6 100755
--- a/src/doclets/valadoc.org/taglets/list/taglet.vala
+++ b/src/doclets/valadoc.org/taglets/list.vala
@@ -23,7 +23,7 @@ using Gee;
 
 
 
-public class Valadoc.ValdocOrg.ListDocElement : Valadoc.ListDocElement {
+public class Valadoc.ValadocOrg.ListDocElement : Valadoc.ListDocElement {
 	private Gee.ArrayList<ListEntryDocElement> entries;
 	private ListType type;
 
@@ -48,9 +48,3 @@ public class Valadoc.ValdocOrg.ListDocElement : Valadoc.ListDocElement {
 }
 
 
-[ModuleInit]
-public GLib.Type register_plugin (Gee.HashMap<string, Type> taglets) {
-	return typeof (Valadoc.ValdocOrg.ListDocElement);
-}
-
-
diff --git a/src/doclets/valadoc.org/taglets/listelement/taglet.vala b/src/doclets/valadoc.org/taglets/listelement.vala
similarity index 86%
rename from src/doclets/valadoc.org/taglets/listelement/taglet.vala
rename to src/doclets/valadoc.org/taglets/listelement.vala
index 34c841d..f8f95f0 100755
--- a/src/doclets/valadoc.org/taglets/listelement/taglet.vala
+++ b/src/doclets/valadoc.org/taglets/listelement.vala
@@ -22,7 +22,7 @@ using GLib;
 using Gee;
 
 
-public class Valadoc.ValdocOrg.ListEntryDocElement : Valadoc.ListEntryDocElement {
+public class Valadoc.ValadocOrg.ListEntryDocElement : Valadoc.ListEntryDocElement {
 	private Gee.ArrayList<DocElement> content;
 	private ListType type;
 	private long lvl;
@@ -52,9 +52,4 @@ public class Valadoc.ValdocOrg.ListEntryDocElement : Valadoc.ListEntryDocElement
 }
 
 
-[ModuleInit]
-public GLib.Type register_plugin (Gee.HashMap<string, Type> taglets) {
-	return typeof (Valadoc.ValdocOrg.ListEntryDocElement);
-}
-
 
diff --git a/src/doclets/valadoc.org/taglets/notification/taglet.vala b/src/doclets/valadoc.org/taglets/notification.vala
similarity index 84%
rename from src/doclets/valadoc.org/taglets/notification/taglet.vala
rename to src/doclets/valadoc.org/taglets/notification.vala
index ea1dfba..1da443f 100755
--- a/src/doclets/valadoc.org/taglets/notification/taglet.vala
+++ b/src/doclets/valadoc.org/taglets/notification.vala
@@ -22,7 +22,7 @@ using Gee;
 
 
 
-public class Valadoc.ValdocOrg.NotificationDocElement : Valadoc.NotificationDocElement {
+public class Valadoc.ValadocOrg.NotificationDocElement : Valadoc.NotificationDocElement {
 	private Gee.ArrayList<DocElement> content;
 
 	public override bool parse ( Gee.ArrayList<DocElement> content ) {
@@ -48,10 +48,4 @@ public class Valadoc.ValdocOrg.NotificationDocElement : Valadoc.NotificationDocE
 }
 
 
-[ModuleInit]
-public GLib.Type register_plugin ( Gee.HashMap<string, Type> taglets ) {
-	return typeof (Valadoc.ValdocOrg.NotificationDocElement);
-}
-
-
 
diff --git a/src/doclets/valadoc.org/taglets/paragraph/taglet.vala b/src/doclets/valadoc.org/taglets/nparagraph.vala
similarity index 100%
rename from src/doclets/valadoc.org/taglets/paragraph/taglet.vala
rename to src/doclets/valadoc.org/taglets/nparagraph.vala
diff --git a/src/doclets/valadoc.org/taglets/italic/taglet.vala b/src/doclets/valadoc.org/taglets/paragraph.vala
similarity index 75%
copy from src/doclets/valadoc.org/taglets/italic/taglet.vala
copy to src/doclets/valadoc.org/taglets/paragraph.vala
index 2f84b4f..92dfb8d 100755
--- a/src/doclets/valadoc.org/taglets/italic/taglet.vala
+++ b/src/doclets/valadoc.org/taglets/paragraph.vala
@@ -22,10 +22,10 @@ using GLib;
 using Gee;
 
 
-public class Valadoc.ValdocOrg.ItalicDocElement : Valadoc.ItalicDocElement {
-	private Gee.ArrayList<DocElement> content;
+public class Valadoc.ValadocOrg.ParagraphDocElement : Valadoc.ParagraphDocElement {
+	private ArrayList<DocElement> content;
 
-	public override bool parse (Gee.ArrayList<DocElement> content) {
+	public override bool parse (ArrayList<DocElement> content) {
 		this.content = content;
 		return true;
 	}
@@ -35,20 +35,15 @@ public class Valadoc.ValdocOrg.ItalicDocElement : Valadoc.ItalicDocElement {
 		int _max = this.content.size;
 		int _index = 0;
 
-		file.printf ("//");
-
 		foreach (DocElement element in this.content) {
 			element.write (res, _max, _index);
 			_index++;
 		}
 
-		file.printf ("//");
+		file.printf ("\n\n");
 		return true;
 	}
 }
 
 
-[ModuleInit]
-public GLib.Type register_plugin ( Gee.HashMap<string, Type> taglets ) {
-	return typeof (Valadoc.ValdocOrg.ItalicDocElement);
-}
+
diff --git a/src/doclets/valadoc.org/taglets/parameter.vala b/src/doclets/valadoc.org/taglets/parameter.vala
new file mode 100755
index 0000000..8a60d70
--- /dev/null
+++ b/src/doclets/valadoc.org/taglets/parameter.vala
@@ -0,0 +1,130 @@
+/*
+ * Valadoc - a documentation tool for vala.
+ * Copyright (C) 2008 Florian Brosch
+ * 
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ */
+
+
+using GLib;
+using Gee;
+
+
+public class Valadoc.ValadocOrg.ParameterTaglet : Valadoc.MainTaglet {
+	public override int order { get { return 100; } }
+	private Gee.Collection<DocElement> content;
+	private string paramname;
+
+	private static bool check_parameter_name (Valadoc.ParameterListHandler me, string name) {
+		if (name == "") {
+			return false;
+		}
+
+		foreach (Valadoc.FormalParameter param in me.get_parameter_list ()) {
+			if (param.name == name) {
+				return true;
+			}
+		}
+		return false;
+	}
+
+	public override bool write (void* ptr, int max, int index) {
+		weak GLib.FileStream file = (GLib.FileStream)ptr;
+
+		file.printf (" @param %s \n", this.paramname);
+
+		int _max = this.content.size;
+		int _index = 0;
+
+		foreach (DocElement tag in this.content) {
+			tag.write ( ptr, _max, _index );
+			_index++;
+		}
+
+		file.puts ( "\n" );
+		return true;
+	}
+
+	public override bool write_block_start (void* ptr) {
+		return true;
+	}
+
+	public override bool write_block_end (void* ptr) {
+		return true;
+	}
+
+	public override bool parse (Settings settings, Tree tree, DocumentedElement me, Gee.Collection<DocElement> content, ref ErrorLevel errlvl, out string errmsg) {
+		if (me is Valadoc.ParameterListHandler == false) {
+			errmsg = "Tag @param cannot be used in this context";
+			errlvl = ErrorLevel.ERROR;
+			return false;
+		}
+
+		if (content.size == 0) {
+			errmsg = "Parameter name was expected";
+			errlvl = ErrorLevel.ERROR;
+			return false;
+		}
+
+		Gee.ArrayList<DocElement> contentlst = new Gee.ArrayList<DocElement> ();
+		foreach (DocElement element in content) {
+			contentlst.add (element);
+		}
+
+		DocElement tag = contentlst.get(0);
+		if (tag is StringTaglet == false) {
+			errmsg = "Parameter name was expected";
+			errlvl = ErrorLevel.ERROR;
+			return false;
+		}
+
+		string str = ((StringTaglet)tag).content;
+		weak string lposa =  str.chr (-1, '\n');
+		weak string lposb =  str.chr (-1, ' ');
+		weak string lpos;
+
+		long lposaoffset = (lposa == null)? long.MAX : str.pointer_to_offset (lposa);
+		long lposboffset = (lposb == null)? long.MAX : str.pointer_to_offset (lposb);
+
+		if (lposaoffset < lposboffset) {
+			lpos = lposa;
+		}
+		else {
+			lpos = lposb;
+		}
+
+		if (lpos == null) {
+			this.paramname = str.strip ();
+			((StringTaglet)tag).content = "";
+		}
+		else {
+			int namepos = (int)str.pointer_to_offset (lpos);
+			this.paramname = str.ndup (namepos).strip ();
+			((StringTaglet)tag).content = lpos.ndup (lpos.size ()).chomp ();
+		}
+
+		bool tmp = this.check_parameter_name ( (Valadoc.ParameterListHandler)me, this.paramname);
+		if ( tmp == false ) {
+			errmsg = "Parameter is not available";
+			errlvl = ErrorLevel.ERROR;
+			return false;
+		}
+
+		this.content = contentlst;
+		return true;
+	}
+}
+
+
diff --git a/src/doclets/valadoc.org/taglets/registerfunction.vala b/src/doclets/valadoc.org/taglets/registerfunction.vala
new file mode 100644
index 0000000..dd58703
--- /dev/null
+++ b/src/doclets/valadoc.org/taglets/registerfunction.vala
@@ -0,0 +1,51 @@
+/*
+ * Valadoc - a documentation tool for vala.
+ * Copyright (C) 2008 Florian Brosch
+ * 
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ */
+
+using Valadoc;
+
+
+[ModuleInit]
+public void register_plugin (ModuleLoader loader) {
+	loader.underline = typeof (Valadoc.ValadocOrg.UnderlinedDocElement);
+	loader.table_cell = typeof (Valadoc.ValadocOrg.TableCellDocElement);
+	loader.table = typeof (Valadoc.ValadocOrg.TableDocElement);
+	loader.string = typeof (Valadoc.ValadocOrg.StringTaglet);
+	loader.source = typeof (Valadoc.ValadocOrg.SourceCodeDocElement);
+	loader.right = typeof (Valadoc.ValadocOrg.RightAlignedDocElement);
+	loader.paragraph = typeof (Valadoc.ValadocOrg.ParagraphDocElement);
+	loader.notification = typeof (Valadoc.ValadocOrg.NotificationDocElement);
+	loader.list_element = typeof (Valadoc.ValadocOrg.ListEntryDocElement);
+	loader.list = typeof (Valadoc.ValadocOrg.ListDocElement);
+	loader.link = typeof (Valadoc.ValadocOrg.LinkDocElement);
+	loader.italic = typeof (Valadoc.ValadocOrg.ItalicDocElement);
+	loader.image = typeof (Valadoc.ValadocOrg.ImageDocElement);
+	loader.headline = typeof (Valadoc.ValadocOrg.HeadlineDocElement);
+	loader.source_inline = typeof (Valadoc.ValadocOrg.CodeConstantDocElement);
+	loader.center = typeof (Valadoc.ValadocOrg.CenterDocElement);
+	loader.bold = typeof (Valadoc.ValadocOrg.BoldDocElement);
+
+	loader.taglets.set ("see", typeof (Valadoc.ValadocOrg.SeeTaglet));
+	loader.taglets.set ("since", typeof (Valadoc.ValadocOrg.SinceTaglet));
+	loader.taglets.set ("link", typeof (Valadoc.ValadocOrg.TypeLinkInlineTaglet));
+	loader.taglets.set ("throws", typeof (Valadoc.ValadocOrg.ExceptionTaglet));
+	loader.taglets.set ("return", typeof (Valadoc.ValadocOrg.ReturnTaglet));
+	loader.taglets.set ("param", typeof (Valadoc.ValadocOrg.ParameterTaglet));
+}
+
+
diff --git a/src/doclets/valadoc.org/taglets/italic/taglet.vala b/src/doclets/valadoc.org/taglets/return.vala
similarity index 61%
copy from src/doclets/valadoc.org/taglets/italic/taglet.vala
copy to src/doclets/valadoc.org/taglets/return.vala
index 2f84b4f..0f0780a 100755
--- a/src/doclets/valadoc.org/taglets/italic/taglet.vala
+++ b/src/doclets/valadoc.org/taglets/return.vala
@@ -22,10 +22,16 @@ using GLib;
 using Gee;
 
 
-public class Valadoc.ValdocOrg.ItalicDocElement : Valadoc.ItalicDocElement {
-	private Gee.ArrayList<DocElement> content;
+public class Valadoc.ValadocOrg.ReturnTaglet : Valadoc.MainTaglet {
+	public override int order { get { return 300; } }
+	private Gee.Collection<DocElement> content;
 
-	public override bool parse (Gee.ArrayList<DocElement> content) {
+	public override bool parse (Settings settings, Tree tree, DocumentedElement me, Gee.Collection<DocElement> content, ref ErrorLevel errlvl, out string errmsg) {
+		if (!(me is Valadoc.Method || me is Valadoc.Signal || me is Valadoc.Delegate)) {
+			errmsg = "Tag @return cannot be used in this context";
+			errlvl = ErrorLevel.ERROR;
+			return false;
+		}
 		this.content = content;
 		return true;
 	}
@@ -35,20 +41,25 @@ public class Valadoc.ValdocOrg.ItalicDocElement : Valadoc.ItalicDocElement {
 		int _max = this.content.size;
 		int _index = 0;
 
-		file.printf ("//");
+		file.printf (" @return ");
 
 		foreach (DocElement element in this.content) {
 			element.write (res, _max, _index);
 			_index++;
 		}
 
-		file.printf ("//");
+		file.printf ("\n");
 		return true;
 	}
-}
 
+	public override bool write_block_start (void* res) {
+		return true;
+	}
 
-[ModuleInit]
-public GLib.Type register_plugin ( Gee.HashMap<string, Type> taglets ) {
-	return typeof (Valadoc.ValdocOrg.ItalicDocElement);
+	public override bool write_block_end (void* res) {
+		return true;
+	}
 }
+
+
+
diff --git a/src/doclets/valadoc.org/taglets/italic/taglet.vala b/src/doclets/valadoc.org/taglets/right.vala
similarity index 82%
copy from src/doclets/valadoc.org/taglets/italic/taglet.vala
copy to src/doclets/valadoc.org/taglets/right.vala
index 2f84b4f..7029ff1 100755
--- a/src/doclets/valadoc.org/taglets/italic/taglet.vala
+++ b/src/doclets/valadoc.org/taglets/right.vala
@@ -22,7 +22,7 @@ using GLib;
 using Gee;
 
 
-public class Valadoc.ValdocOrg.ItalicDocElement : Valadoc.ItalicDocElement {
+public class Valadoc.ValadocOrg.RightAlignedDocElement : Valadoc.RightAlignedDocElement {
 	private Gee.ArrayList<DocElement> content;
 
 	public override bool parse (Gee.ArrayList<DocElement> content) {
@@ -35,20 +35,17 @@ public class Valadoc.ValdocOrg.ItalicDocElement : Valadoc.ItalicDocElement {
 		int _max = this.content.size;
 		int _index = 0;
 
-		file.printf ("//");
+		file.printf ("\n)( ");
 
 		foreach (DocElement element in this.content) {
 			element.write (res, _max, _index);
 			_index++;
 		}
 
-		file.printf ("//");
+		file.printf ("\n");
 		return true;
 	}
 }
 
 
-[ModuleInit]
-public GLib.Type register_plugin ( Gee.HashMap<string, Type> taglets ) {
-	return typeof (Valadoc.ValdocOrg.ItalicDocElement);
-}
+
diff --git a/src/doclets/valadoc.org/taglets/see.vala b/src/doclets/valadoc.org/taglets/see.vala
new file mode 100755
index 0000000..5d83e0a
--- /dev/null
+++ b/src/doclets/valadoc.org/taglets/see.vala
@@ -0,0 +1,72 @@
+/*
+ * Valadoc - a documentation tool for vala.
+ * Copyright (C) 2008 Florian Brosch
+ * 
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ */
+
+
+using Valadoc;
+using GLib;
+using Gee;
+
+
+public class Valadoc.ValadocOrg.SeeTaglet : MainTaglet {
+	public override int order { get { return 400; } }
+	private string typename;
+
+	protected override bool write_block_start (void* res) {
+		return true;
+	}
+
+	protected override bool write_block_end (void* res) {
+		return true;
+	}
+
+	protected override bool write (void* res, int max, int index) {
+		((GLib.FileStream)res).printf (" @see %s\n", this.typename);
+		return true;
+	}
+
+	public override bool parse (Settings settings, Tree tree, DocumentedElement me, Gee.Collection<DocElement> content, ref ErrorLevel errlvl, out string errmsg) {
+		if (content.size != 1) {
+			errmsg = "Type name was expected";
+			errlvl = ErrorLevel.ERROR;
+			return false;
+		}
+
+		Gee.Iterator<DocElement> it = content.iterator ();
+		it.next ();
+
+		DocElement element = it.get ();
+		if (element is StringTaglet == false) {
+			errmsg = "Type name was expected";
+			errlvl = ErrorLevel.ERROR;
+			return false;
+		}
+
+		Valadoc.DocumentedElement? node = tree.search_symbol_str (me, ((StringTaglet)element).content.strip ());
+		if (node == null) {
+			errmsg = "Linked type is not available";
+			errlvl = ErrorLevel.ERROR;
+			return false;
+		}
+
+		this.typename = node.full_name ();
+		return true;
+	}
+}
+
+
diff --git a/src/doclets/valadoc.org/taglets/link/taglet.vala b/src/doclets/valadoc.org/taglets/since.vala
similarity index 52%
rename from src/doclets/valadoc.org/taglets/link/taglet.vala
rename to src/doclets/valadoc.org/taglets/since.vala
index bd975d4..8a55c45 100755
--- a/src/doclets/valadoc.org/taglets/link/taglet.vala
+++ b/src/doclets/valadoc.org/taglets/since.vala
@@ -22,41 +22,46 @@ using GLib;
 using Gee;
 
 
-public class Valadoc.ValdocOrg.LinkDocElement : Valadoc.LinkDocElement {
-	private string desc;
-	private string path;
-
-	public override bool parse (Settings settings, Tree tree, Documentation pos, owned string path, owned string desc) {
-		if ( path.has_suffix(".valadoc")&&path.has_prefix("/") ) {
-			if ( tree.wikitree == null ) {
-				return false;
-			}
-
-			WikiPage? wikipage = tree.wikitree.search(path.offset(1));
-			if ( wikipage == null ) {
-				return false;
-			}
-
-			this.path = settings.pkg_name+"/"+path.substring (0, path.len()-8);
-			this.desc = desc;
-			return true;
-		}
+public class Valadoc.ValadocOrg.SinceTaglet : Valadoc.MainTaglet {
+	public override int order { get { return 400; } }
+	private StringTaglet content;
+
+	public override bool write_block_start (void* ptr) {
+		return true;
+	}
 
-		this.path = path;
-		this.desc = desc;
+	public override bool write_block_end (void* res) {
 		return true;
 	}
 
 	public override bool write (void* res, int max, int index) {
-		weak GLib.FileStream file = (GLib.FileStream)res;
-		file.printf ("[[%s|%s]]", this.path, (this.desc==null||this.desc=="")? this.path: this.desc);
+		if (max != index+1 )
+			((GLib.FileStream)res).printf (" @since %s\n", this.content.content);
+
 		return true;
 	}
-}
 
+	public override bool parse (Settings settings, Tree tree, DocumentedElement me, Gee.Collection<DocElement> content, ref ErrorLevel errlvl, out string errmsg) {
+		if (content.size != 1) {
+			errmsg = "Version name was expected";
+			errlvl = ErrorLevel.ERROR;
+			return false;
+		}
+
+		Gee.Iterator<DocElement> it = content.iterator ();
+		it.next ();
+
+		DocElement element = it.get ();
+		if (element is StringTaglet == false) {
+			errmsg = "Version name was expected";
+			errlvl = ErrorLevel.ERROR;
+			return false;
+		}
 
-[ModuleInit]
-public GLib.Type register_plugin (Gee.HashMap<string, Type> taglets) {
-	return typeof (Valadoc.ValdocOrg.LinkDocElement);
+		this.content = (StringTaglet)element;
+		return true;
+	}
 }
 
+
+
diff --git a/src/doclets/valadoc.org/taglets/headline/taglet.vala b/src/doclets/valadoc.org/taglets/source.vala
similarity index 67%
rename from src/doclets/valadoc.org/taglets/headline/taglet.vala
rename to src/doclets/valadoc.org/taglets/source.vala
index d646a54..98bf2d2 100755
--- a/src/doclets/valadoc.org/taglets/headline/taglet.vala
+++ b/src/doclets/valadoc.org/taglets/source.vala
@@ -22,26 +22,29 @@ using GLib;
 using Gee;
 
 
-public class Valadoc.ValdocOrg.HeadlineDocElement : Valadoc.HeadlineDocElement {
-	private string title;
-	private int lvl;
-
-	public override bool parse (string title, int lvl) {
-		this.title = title;
-		this.lvl = lvl;
+public class Valadoc.ValadocOrg.SourceCodeDocElement : Valadoc.SourceCodeDocElement {
+	private Language lang;
+	private int srclines;
+	private string src;
+
+	public override bool parse (string src, Language lang) {
+		this.src = src;
+		this.lang = lang;
+		this.srclines=0;
+
+		for (weak string str=this.src; str.get_char()!='\0'; str=str.next_char()) {
+			if (str.get_char () == '\n') {
+				this.srclines++;
+			}
+		}
 		return true;
 	}
 
 	public override bool write (void* res, int max, int index) {
 		weak GLib.FileStream file = (GLib.FileStream)res;
-		file.printf ("\n\n%s %s\n", string.nfill (this.lvl+1, '='), this.title);
+		file.printf ("\n{{{\n%s\n}}}\n", src);
 		return true;
 	}
 }
 
 
-[ModuleInit]
-public GLib.Type register_plugin (Gee.HashMap<string, Type> taglets) {
-	return typeof (Valadoc.ValdocOrg.HeadlineDocElement);
-}
-
diff --git a/src/doclets/valadoc.org/taglets/constants/taglet.vala b/src/doclets/valadoc.org/taglets/string.vala
similarity index 72%
rename from src/doclets/valadoc.org/taglets/constants/taglet.vala
rename to src/doclets/valadoc.org/taglets/string.vala
index 0e2fa62..e1ff0c6 100755
--- a/src/doclets/valadoc.org/taglets/constants/taglet.vala
+++ b/src/doclets/valadoc.org/taglets/string.vala
@@ -22,24 +22,18 @@ using GLib;
 using Gee;
 
 
-public class Valadoc.Html.CodeConstantDocElement : Valadoc.CodeConstantDocElement {
-	private string constant;
-
-	public override bool parse (string constant) {
-		this.constant = constant;
+public class Valadoc.ValadocOrg.StringTaglet : Valadoc.StringTaglet {
+	public override bool parse (string content) {
+		this.content = content;
 		return true;
 	}
 
 	public override bool write (void* res, int max, int index) {
 		weak GLib.FileStream file = (GLib.FileStream)res;
-		file.puts (this.constant);
+		file.puts (this.content); 
 		return true;
 	}
 }
 
 
-[ModuleInit]
-public GLib.Type register_plugin (Gee.HashMap<string, Type> taglets) {
-	return typeof (Valadoc.Html.CodeConstantDocElement);
-}
 
diff --git a/src/doclets/valadoc.org/taglets/center/taglet.vala b/src/doclets/valadoc.org/taglets/table.vala
similarity index 64%
rename from src/doclets/valadoc.org/taglets/center/taglet.vala
rename to src/doclets/valadoc.org/taglets/table.vala
index 355def1..b87b4da 100755
--- a/src/doclets/valadoc.org/taglets/center/taglet.vala
+++ b/src/doclets/valadoc.org/taglets/table.vala
@@ -22,24 +22,27 @@ using GLib;
 using Gee;
 
 
-public class Valadoc.ValdocOrg.CenterDocElement : Valadoc.CenterDocElement {
-	private Gee.ArrayList<DocElement> content;
+public class Valadoc.ValadocOrg.TableDocElement : Valadoc.TableDocElement {
+	private Gee.ArrayList<Gee.ArrayList<TableCellDocElement>> cells;
 
-	public override bool parse (Gee.ArrayList<DocElement> content) {
-		this.content = content;
-		return true;
+	public override void parse (Gee.ArrayList<Gee.ArrayList<TableCellDocElement>> cells) {
+		this.cells = cells;
 	}
 
 	public override bool write (void* res, int max, int index) {
 		weak GLib.FileStream file = (GLib.FileStream)res;
-		int _max = this.content.size;
-		int _index = 0;
 
-		file.puts ("\n)( ");
+		file.puts ("\n");
+
+		foreach (Gee.ArrayList<TableCellDocElement> row in this.cells) {
+			int _max = row.size;
+			int _index = 0;
 
-		foreach (DocElement element in this.content) {
-			element.write ( res, _max, _index );
-			_index++;
+			foreach (TableCellDocElement cell in row) {
+				file.puts ("\n ||");
+				cell.write (res, _max, _index );
+				_index++;
+			}
 		}
 
 		file.puts ("\n");
@@ -48,8 +51,3 @@ public class Valadoc.ValdocOrg.CenterDocElement : Valadoc.CenterDocElement {
 }
 
 
-[ModuleInit]
-public GLib.Type register_plugin (Gee.HashMap<string, Type> taglets) {
-	return typeof (Valadoc.ValdocOrg.CenterDocElement);
-}
-
diff --git a/src/doclets/valadoc.org/taglets/tablecell.vala b/src/doclets/valadoc.org/taglets/tablecell.vala
new file mode 100755
index 0000000..8f65409
--- /dev/null
+++ b/src/doclets/valadoc.org/taglets/tablecell.vala
@@ -0,0 +1,88 @@
+/*
+ * Valadoc - a documentation tool for vala.
+ * Copyright (C) 2008 Florian Brosch
+ * 
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ */
+
+using GLib;
+using Gee;
+
+
+public class Valadoc.ValadocOrg.TableCellDocElement : Valadoc.TableCellDocElement {
+	private Gee.ArrayList<DocElement> content;
+	private TextVerticalPosition hpos;
+	private TextPosition pos;
+	private int dcells;
+	private int cells;
+
+	public override void parse (TextPosition pos, TextVerticalPosition hpos, int cells, int dcells, Gee.ArrayList<DocElement> content) {
+		this.content = content;
+		this.dcells = dcells;
+		this.cells = cells;
+		this.hpos = hpos;
+		this.pos = pos;
+	}
+
+	public override bool write (void* res, int max, int index) {
+		weak GLib.FileStream file = (GLib.FileStream)res;
+		int _max = this.content.size;
+		int _index = 0;
+
+		GLib.StringBuilder td = new GLib.StringBuilder ();
+		if (this.cells != 1) {
+			td.append ("|");
+			td.append (this.cells.to_string());
+		}
+
+		if (this.dcells != 1) {
+			td.append ("-");
+			td.append (this.dcells.to_string());
+		}
+
+		switch (this.pos) {
+		case TextPosition.CENTER:
+			td.append (")(");
+			break;
+		case TextPosition.RIGHT:
+			td.append (")) ");
+			break;
+		}
+
+		switch (this.hpos) {
+		case TextVerticalPosition.TOP:
+			td.append ("^");
+			break;
+		case TextVerticalPosition.BOTTOM:
+			td.append ("v");
+			break;
+		}
+
+		if (td.len > 0) {
+			file.printf ("<%s>", td.str);
+		}
+
+		file.printf (" ");
+
+		foreach (DocElement cell in this.content) {
+			cell.write (res, _max, _index );
+			_index++;
+		}
+		file.puts (" || \n" );
+		return true;
+	}
+}
+
+
diff --git a/src/doclets/valadoc.org/taglets/throws.vala b/src/doclets/valadoc.org/taglets/throws.vala
new file mode 100755
index 0000000..ef9f01f
--- /dev/null
+++ b/src/doclets/valadoc.org/taglets/throws.vala
@@ -0,0 +1,129 @@
+/*
+ * Valadoc - a documentation tool for vala.
+ * Copyright (C) 2008 Florian Brosch
+ * 
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ */
+
+
+using GLib;
+using Gee;
+
+
+public class Valadoc.ValadocOrg.ExceptionTaglet : Valadoc.MainTaglet {
+	public override int order { get { return 200; } }
+	private Gee.ArrayList<DocElement> content;
+	private string paramname;
+
+	public override bool parse ( Settings settings, Tree tree, DocumentedElement me, Gee.Collection<DocElement> content, ref ErrorLevel errlvl, out string errmsg ) {
+		if ( me is Valadoc.ExceptionHandler == false ) {
+			errmsg = "Tag @throws cannot be used in this context";
+			errlvl = ErrorLevel.ERROR;
+			return false;
+		}
+
+		if ( content.size == 0 ) {
+			errmsg = "Exception name was expected";
+			errlvl = ErrorLevel.ERROR;
+			return false;
+		}
+
+
+		Gee.ArrayList<DocElement> contentlst = new Gee.ArrayList<DocElement> ();
+		foreach ( DocElement element in content ) {
+			contentlst.add ( element );
+		}
+
+		DocElement tag = contentlst.get( 0 );
+		if ( tag is StringTaglet == false ) {
+			errmsg = "Exception name was expected";
+			errlvl = ErrorLevel.ERROR;
+			return false;
+		}
+
+		string str = ((StringTaglet)tag).content;
+		weak string lposa =  str.chr (-1, '\n');
+		weak string lposb =  str.chr (-1, ' ');
+		weak string lpos;
+
+		long lposaoffset = (lposa == null)? long.MAX : str.pointer_to_offset ( lposa );
+		long lposboffset = (lposb == null)? long.MAX : str.pointer_to_offset ( lposb );
+
+		if ( lposaoffset < lposboffset ) {
+			lpos = lposa;
+		}
+		else {
+			lpos = lposb;
+		}
+
+		if ( lpos == null ) {
+			this.paramname = str.strip ();
+			((StringTaglet)tag).content = "";
+		}
+		else {
+			int namepos = (int)str.pointer_to_offset ( lpos );
+			this.paramname = str.ndup ( namepos ).strip ();
+			((StringTaglet)tag).content = lpos.ndup ( lpos.size () ).chomp ();
+		}
+
+		bool tmp = this.check_exception_parameter_name ( (Valadoc.ExceptionHandler)me, this.paramname );
+		if ( tmp == false ) {
+			errmsg = "Exception name was expected";
+			errlvl = ErrorLevel.ERROR;
+			return false;
+		}
+
+		this.content = contentlst;
+		return true;
+	}
+
+	private bool check_exception_parameter_name ( Valadoc.ExceptionHandler me, string paramname ) {
+		string paramname2 = "."+paramname;
+
+		foreach ( DocumentedElement param in me.get_error_domains() ) {
+			if ( param.name == paramname || param.full_name() == paramname || param.full_name().has_suffix(paramname2) ) {
+				return true;
+			}
+		}
+		return false;
+	}
+
+	public override bool write (void* ptr, int max, int index) {
+		weak GLib.FileStream file = (GLib.FileStream)ptr;
+		file.printf (" @throws %s ", this.paramname);
+
+		int _max = this.content.size;
+		int _index = 0;
+
+		foreach (DocElement element in this.content) {
+			element.write (ptr, _max, _index);
+			_index++;
+		}
+
+		file.puts ( "\n" );
+		return true;
+	}
+
+	public override bool write_block_start (void* ptr) {
+		return true;
+	}
+
+	public override bool write_block_end (void* ptr) {
+		return true;
+	}
+}
+
+
+
diff --git a/src/doclets/valadoc.org/taglets/bold/taglet.vala b/src/doclets/valadoc.org/taglets/typelink.vala
similarity index 52%
rename from src/doclets/valadoc.org/taglets/bold/taglet.vala
rename to src/doclets/valadoc.org/taglets/typelink.vala
index 9658bca..46b2f08 100755
--- a/src/doclets/valadoc.org/taglets/bold/taglet.vala
+++ b/src/doclets/valadoc.org/taglets/typelink.vala
@@ -22,34 +22,29 @@ using GLib;
 using Gee;
 
 
-public class Valadoc.ValdocOrg.BoldDocElement : Valadoc.BoldDocElement {
-	private Gee.ArrayList<DocElement> content;
 
-	public override bool parse ( Gee.ArrayList<DocElement> content ) {
-		this.content = content;
-		return true;
-	}
+public class Valadoc.ValadocOrg.TypeLinkInlineTaglet : Valadoc.InlineTaglet {
+	private string typename = null;
 
-	public override bool write ( void* res, int max, int index ) {
-		weak GLib.FileStream file = (GLib.FileStream)res;
-		int _max = this.content.size;
-		int _index = 0;
+	protected override string to_string () {
+		return this.typename;
+	}
 
-		file.printf ( "++" );
+	protected override bool write (void* res, int max, int index) {
+		((GLib.FileStream)res).printf ("{ link %s}", this.typename);
+		return true;
+	}
 
-		foreach ( DocElement element in this.content ) {
-			element.write ( res, _max, _index );
-			_index++;
+	protected override bool parse (Settings settings, Tree tree, Documentation self, string content, ref ErrorLevel errlvl, out string? errmsg) {
+		Valadoc.DocumentedElement? element = tree.search_symbol_str ( (self is DocumentedElement)? (DocumentedElement)self : null, content.strip() );
+		if (element == null) {
+			errmsg = "Linked type is not available";
+			errlvl = ErrorLevel.ERROR;
+			return false;
 		}
 
-		file.printf ( "++" );
+		this.typename = element.package.name+"/"+element.full_name ();
 		return true;
 	}
 }
 
-
-[ModuleInit]
-public GLib.Type register_plugin ( Gee.HashMap<string, Type> taglets ) {
-	return typeof ( Valadoc.ValdocOrg.BoldDocElement );
-}
-
diff --git a/src/doclets/valadoc.org/taglets/italic/taglet.vala b/src/doclets/valadoc.org/taglets/underline.vala
similarity index 82%
rename from src/doclets/valadoc.org/taglets/italic/taglet.vala
rename to src/doclets/valadoc.org/taglets/underline.vala
index 2f84b4f..f009f9b 100755
--- a/src/doclets/valadoc.org/taglets/italic/taglet.vala
+++ b/src/doclets/valadoc.org/taglets/underline.vala
@@ -22,7 +22,7 @@ using GLib;
 using Gee;
 
 
-public class Valadoc.ValdocOrg.ItalicDocElement : Valadoc.ItalicDocElement {
+public class Valadoc.ValadocOrg.UnderlinedDocElement : Valadoc.UnderlinedDocElement {
 	private Gee.ArrayList<DocElement> content;
 
 	public override bool parse (Gee.ArrayList<DocElement> content) {
@@ -35,20 +35,17 @@ public class Valadoc.ValdocOrg.ItalicDocElement : Valadoc.ItalicDocElement {
 		int _max = this.content.size;
 		int _index = 0;
 
-		file.printf ("//");
+		file.printf ("__");
 
 		foreach (DocElement element in this.content) {
 			element.write (res, _max, _index);
 			_index++;
 		}
 
-		file.printf ("//");
+		file.printf ("__");
 		return true;
 	}
 }
 
 
-[ModuleInit]
-public GLib.Type register_plugin ( Gee.HashMap<string, Type> taglets ) {
-	return typeof (Valadoc.ValdocOrg.ItalicDocElement);
-}
+
diff --git a/src/libvaladoc/documentation/moduleloader.vala b/src/libvaladoc/documentation/moduleloader.vala
index d263549..a78dd00 100755
--- a/src/libvaladoc/documentation/moduleloader.vala
+++ b/src/libvaladoc/documentation/moduleloader.vala
@@ -23,7 +23,7 @@ using Gee;
 
 
 
-public static delegate GLib.Type Valadoc.TagletRegisterFunction ( Gee.HashMap<string, Type> taglets );
+public static delegate  void Valadoc.TagletRegisterFunction (ModuleLoader loader);
 
 
 public class Valadoc.ModuleLoader : Object {
@@ -79,95 +79,41 @@ public class Valadoc.ModuleLoader : Object {
 		return true;
 	}
 
-	private bool load_taglets ( string fulldirpath ) {
+	private bool load_taglets (string fulldirpath) {
 		try {
-			taglets = new Gee.HashMap<string, Type> ( GLib.str_hash, GLib.str_equal );
+			taglets = new Gee.HashMap<string, Type> (GLib.str_hash, GLib.str_equal);
 			Gee.ArrayList<Module*> modules = new Gee.ArrayList<weak Module*> ( );
+
 			string pluginpath = build_filename(fulldirpath, "taglets");
 			size_t modulesuffixlen = Module.SUFFIX.size() + 1;
-			GLib.Dir dir = GLib.Dir.open ( pluginpath );
+
 			void* function;
 
-			for ( weak string entry = dir.read_name(); entry != null ; entry = dir.read_name() ) {
-				if ( !entry.has_suffix( "."+Module.SUFFIX ) )
-					continue ;
+			GLib.Dir dir = GLib.Dir.open (pluginpath);
+
+			for (weak string entry = dir.read_name(); entry != null ; entry = dir.read_name()) {
+				if (!entry.has_suffix("." + Module.SUFFIX))
+					continue;
 
-				string tagletpath = build_filename ( pluginpath, entry );
-				Module* module = Module.open ( tagletpath, ModuleFlags.BIND_LAZY);
+				string tagletpath = build_filename (pluginpath, entry);
+				Module* module = Module.open (tagletpath, ModuleFlags.BIND_LAZY);
 				if (module == null) {
 					taglets = null;
 					return false;
 				}
 
-
-				module->symbol( "register_plugin", out function );
+				module->symbol("register_plugin", out function);
 				Valadoc.TagletRegisterFunction tagletregisterfkt = (Valadoc.TagletRegisterFunction) function;
-				if ( function == null ) {
+				if (function == null) {
 					taglets = null;
 					return false;
 				}
 
-				GLib.Type type = tagletregisterfkt ( taglets );
-
-				string soname = entry.ndup( entry.size() - modulesuffixlen );
-				switch ( soname ) {
-				case "libtagletstring":
-					this.string = type;
-					break;
-				case "libtagletimage":
-					this.image = type;
-					break;
-				case "libtagletcenter":
-					this.center = type;
-					break;
-				case "libtagletright":
-					this.right = type;
-					break;
-				case "libtagletbold":
-					this.bold = type;
-					break;
-				case "libtagletunderline":
-					this.underline = type;
-					break;
-				case "libtagletitalic":
-					this.italic = type;
-					break;
-				case "libtagletsource":
-					this.source = type;
-					break;
-				case "libtagletnotification":
-					this.notification = type;
-					break;
-				case "libtaglettable":
-					this.table = type;
-					break;
-				case "libtaglettablecell":
-					this.table_cell = type;
-					break;
-				case "libtagletlink":
-					this.link = type;
-					break;
-				case "libtagletlist":
-					this.list = type;
-					break;
-				case "libtagletlistelement":
-					this.list_element = type;
-					break;
-				case "libtagletheadline":
-					this.headline = type;
-					break;
-				case "libtagletcodeconstant":
-					this.source_inline = type;
-					break;
-				case "libtagletparagraph":
-					this.source_inline = type;
-					break;
-				}
-				modules.add ( module );
+				tagletregisterfkt (this);
 			}
 			return true;
 		}
-		catch ( FileError err ) {
+		catch (FileError err) {
 			taglets = null;
 			return false;
 		}
diff --git a/src/libvaladoc/valadoc-1.0.vapi b/src/libvaladoc/valadoc-1.0.vapi
new file mode 100644
index 0000000..5f7ef08
--- /dev/null
+++ b/src/libvaladoc/valadoc-1.0.vapi
@@ -0,0 +1,842 @@
+/* valadoc-1.0.vapi generated by valac, do not modify. */
+
+[CCode (cprefix = "Valadoc", lower_case_cprefix = "valadoc_")]
+namespace Valadoc {
+	[CCode (cprefix = "ValadocDiagrams", lower_case_cprefix = "valadoc_diagrams_")]
+	namespace Diagrams {
+		[CCode (cheader_filename = "valadoc-1.0.h")]
+		public static void write_class_diagram (Valadoc.Class cl, string path);
+		[CCode (cheader_filename = "valadoc-1.0.h")]
+		public static void write_interface_diagram (Valadoc.Interface iface, string path);
+		[CCode (cheader_filename = "valadoc-1.0.h")]
+		public static void write_struct_diagram (Valadoc.Struct stru, string path);
+	}
+	[CCode (cprefix = "ValadocHtml", lower_case_cprefix = "valadoc_html_")]
+	namespace Html {
+		[CCode (ref_function = "valadoc_html_attribute_ref", unref_function = "valadoc_html_attribute_unref", cheader_filename = "valadoc-1.0.h")]
+		public class Attribute {
+			public Attribute (string name, string val);
+			public string to_string (string path);
+		}
+		[CCode (cheader_filename = "valadoc-1.0.h")]
+		public abstract class BlockElement : Valadoc.Html.Element {
+			public BlockElement ();
+			public override string to_string (uint depth, string path);
+		}
+		[CCode (cheader_filename = "valadoc-1.0.h")]
+		public class Body : Valadoc.Html.BlockElement {
+			public Body ();
+		}
+		[CCode (cheader_filename = "valadoc-1.0.h")]
+		public class Div : Valadoc.Html.BlockElement {
+			public Div ();
+		}
+		[CCode (ref_function = "valadoc_html_document_ref", unref_function = "valadoc_html_document_unref", cheader_filename = "valadoc-1.0.h")]
+		public class Document {
+			public Document ();
+			public void set_root (Valadoc.Html.Html root);
+			public string to_string (string path);
+		}
+		[CCode (cheader_filename = "valadoc-1.0.h")]
+		public abstract class Element : Valadoc.Html.Entry {
+			protected Gee.ArrayList<Valadoc.Html.Attribute> attributes;
+			protected Gee.ArrayList<Valadoc.Html.Entry> children;
+			protected weak string tag;
+			public Element ();
+			public void add_attribute (Valadoc.Html.Attribute att);
+			public void add_attributes (Gee.Collection<Valadoc.Html.Attribute> attributes);
+			public void add_child (Valadoc.Html.Entry el);
+			public void add_childs (Gee.Collection<Valadoc.Html.Entry> elements);
+			protected string attributes_to_string (string path);
+			protected string children_to_string (uint depth, string path);
+		}
+		[CCode (ref_function = "valadoc_html_entry_ref", unref_function = "valadoc_html_entry_unref", cheader_filename = "valadoc-1.0.h")]
+		public abstract class Entry {
+			public Entry ();
+			public abstract string to_string (uint depth, string path);
+		}
+		[CCode (cheader_filename = "valadoc-1.0.h")]
+		public class Head : Valadoc.Html.BlockElement {
+			public Head ();
+		}
+		[CCode (cheader_filename = "valadoc-1.0.h")]
+		public class Headline : Valadoc.Html.BlockElement {
+			public Headline (int lvl);
+		}
+		[CCode (cheader_filename = "valadoc-1.0.h")]
+		public class Html : Valadoc.Html.BlockElement {
+			public Html ();
+		}
+		[CCode (cheader_filename = "valadoc-1.0.h")]
+		public class HyperLink : Valadoc.Html.InlineElement {
+			public HyperLink (string path, Valadoc.Html.Entry desc);
+			public HyperLink.from_list (string path, Gee.Collection<Valadoc.Html.Entry> descs);
+		}
+		[CCode (cheader_filename = "valadoc-1.0.h")]
+		public class Image : Valadoc.Html.InlineElement {
+			public Image (string path);
+		}
+		[CCode (cheader_filename = "valadoc-1.0.h")]
+		public abstract class InlineElement : Valadoc.Html.Element {
+			public InlineElement ();
+			public override string to_string (uint depth, string path);
+		}
+		[CCode (cheader_filename = "valadoc-1.0.h")]
+		public class Italic : Valadoc.Html.InlineElement {
+			public Italic ();
+		}
+		[CCode (cheader_filename = "valadoc-1.0.h")]
+		public class Link : Valadoc.Html.BlockElement {
+			public Link (string lang, string src, string type);
+		}
+		[CCode (cheader_filename = "valadoc-1.0.h")]
+		public class Script : Valadoc.Html.BlockElement {
+			public Script (string lang, string src, string type);
+		}
+		[CCode (cheader_filename = "valadoc-1.0.h")]
+		public class Span : Valadoc.Html.InlineElement {
+			public Span ();
+			public Span.from_list (Gee.Collection<Valadoc.Html.Entry> list);
+		}
+		[CCode (cheader_filename = "valadoc-1.0.h")]
+		public class String : Valadoc.Html.Entry {
+			public String (string str);
+			public override string to_string (uint depth, string path);
+		}
+		[CCode (cheader_filename = "valadoc-1.0.h")]
+		public class Title : Valadoc.Html.BlockElement {
+			public Title (string title);
+		}
+	}
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public class Array : Valadoc.Basic {
+		public Array (Valadoc.Settings settings, Vala.ArrayType vtyperef, Valadoc.Basic parent, Valadoc.Tree head);
+		public void set_type_references ();
+		public void write (Valadoc.Langlet langlet, void* ptr, Valadoc.DocumentedElement parent);
+		public Valadoc.Basic data_type { get; set; }
+	}
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public abstract class Basic : GLib.Object {
+		public Basic ();
+		public Valadoc.Tree head { get; set; }
+		public Valadoc.Basic parent { get; set; }
+		public Valadoc.Settings settings { get; set; }
+		protected Vala.Symbol vsymbol { get; set; }
+	}
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public abstract class BoldDocElement : Valadoc.HighlightedDocElement {
+		public BoldDocElement ();
+	}
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public abstract class CenterDocElement : Valadoc.ContentPositionDocElement {
+		public CenterDocElement ();
+	}
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public class Class : Valadoc.DocumentedElement, Valadoc.SymbolAccessibility, Valadoc.Visitable, Valadoc.ClassHandler, Valadoc.StructHandler, Valadoc.SignalHandler, Valadoc.MethodHandler, Valadoc.EnumHandler, Valadoc.PropertyHandler, Valadoc.ConstructionMethodHandler, Valadoc.FieldHandler, Valadoc.DelegateHandler, Valadoc.ConstantHandler, Valadoc.TemplateParameterListHandler {
+		public Class (Valadoc.Settings settings, Vala.Class vclass, Valadoc.ClassHandler parent, Valadoc.Tree head);
+		public string? get_cname ();
+		public Gee.Collection<Valadoc.Interface> get_implemented_interface_list ();
+		public void visit (Valadoc.Doclet doclet);
+		public void write (Valadoc.Langlet langlet, void* ptr);
+		protected Valadoc.Class? base_type { get; set; }
+		public bool is_abstract { get; }
+	}
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public abstract class CodeConstantDocElement : Valadoc.DocElement {
+		public CodeConstantDocElement ();
+		public abstract bool parse (string constant);
+	}
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public class Constant : Valadoc.DocumentedElement, Valadoc.SymbolAccessibility, Valadoc.Visitable, Valadoc.ReturnTypeHandler {
+		public Constant (Valadoc.Settings settings, Vala.Constant vconst, Valadoc.ConstantHandler parent, Valadoc.Tree head);
+		public string get_cname ();
+		public bool is_vconstant (Vala.Constant vconst);
+		public void visit (Valadoc.Doclet doclet, Valadoc.ConstantHandler? parent);
+		public void write (Valadoc.Langlet langlet, void* ptr, Valadoc.ConstantHandler parent);
+	}
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public abstract class ContentPositionDocElement : Valadoc.DocElement {
+		public ContentPositionDocElement ();
+		public abstract bool parse (Gee.ArrayList<Valadoc.DocElement> content);
+	}
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public class Delegate : Valadoc.DocumentedElement, Valadoc.SymbolAccessibility, Valadoc.Visitable, Valadoc.ParameterListHandler, Valadoc.ReturnTypeHandler, Valadoc.TemplateParameterListHandler, Valadoc.ExceptionHandler {
+		public Delegate (Valadoc.Settings settings, Vala.Delegate vdelegate, Valadoc.DelegateHandler parent, Valadoc.Tree head);
+		public string? get_cname ();
+		public void visit (Valadoc.Doclet doclet);
+		public void write (Valadoc.Langlet langlet, void* ptr);
+		public bool is_static { get; }
+	}
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public abstract class DocElement : GLib.Object {
+		public DocElement ();
+		public abstract bool write (void* res, int max, int index);
+	}
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public abstract class Doclet : GLib.Object {
+		public Doclet ();
+		public abstract void initialisation (Valadoc.Settings settings, Valadoc.Tree tree);
+		public abstract void visit_class (Valadoc.Class cl);
+		public abstract void visit_constant (Valadoc.Constant constant, Valadoc.ConstantHandler parent);
+		public abstract void visit_delegate (Valadoc.Delegate del);
+		public abstract void visit_enum (Valadoc.Enum en);
+		public abstract void visit_enum_value (Valadoc.EnumValue enval);
+		public abstract void visit_error_code (Valadoc.ErrorCode errcode);
+		public abstract void visit_error_domain (Valadoc.ErrorDomain errdom);
+		public abstract void visit_field (Valadoc.Field field, Valadoc.FieldHandler parent);
+		public abstract void visit_interface (Valadoc.Interface iface);
+		public abstract void visit_method (Valadoc.Method m, Valadoc.MethodHandler parent);
+		public abstract void visit_namespace (Valadoc.Namespace ns);
+		public abstract void visit_package (Valadoc.Package pkg);
+		public abstract void visit_property (Valadoc.Property prop);
+		public abstract void visit_signal (Valadoc.Signal sig);
+		public abstract void visit_struct (Valadoc.Struct stru);
+	}
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public class DocumentationTree : GLib.Object {
+		public DocumentationTree ();
+		public void add_brief (Gee.ArrayList<Valadoc.DocElement> content);
+		public void add_description (Gee.ArrayList<Valadoc.DocElement> content);
+		public void add_taglet (Valadoc.MainTaglet taglet);
+		public void add_taglets (Gee.Collection<Valadoc.MainTaglet> taglets);
+		public Gee.ReadOnlyCollection<Valadoc.DocElement> get_brief ();
+		public Gee.ReadOnlyCollection<Valadoc.DocElement> get_description ();
+		public bool write_brief (void* res);
+		public bool write_content (void* res);
+	}
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public abstract class DocumentedElement : Valadoc.Basic, Valadoc.Documentation {
+		public DocumentedElement ();
+		public string? full_name ();
+		protected void parse_comment_helper (Valadoc.Parser docparser);
+		public Valadoc.DocumentationTree? documentation { get; set; }
+		public int line { get; }
+		public virtual string? name { owned get; }
+		public Valadoc.Namespace? nspace { get; }
+		public Valadoc.Package? package { get; }
+		protected Vala.Comment vcomment { get; set; }
+	}
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public class Enum : Valadoc.DocumentedElement, Valadoc.SymbolAccessibility, Valadoc.Visitable, Valadoc.MethodHandler {
+		public Enum (Valadoc.Settings settings, Vala.Enum venum, Valadoc.EnumHandler parent, Valadoc.Tree head);
+		public string? get_cname ();
+		public Gee.ReadOnlyCollection<Valadoc.EnumValue> get_enum_values ();
+		public void visit (Valadoc.Doclet doclet);
+		public void visit_enum_values (Valadoc.Doclet doclet);
+		public void write (Valadoc.Langlet langlet, void* ptr);
+	}
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public class EnumValue : Valadoc.DocumentedElement {
+		public EnumValue (Valadoc.Settings settings, Vala.EnumValue venval, Valadoc.Enum parent, Valadoc.Tree head);
+		public string get_cname ();
+		public bool is_venumvalue (Vala.EnumValue venval);
+		public void parse_comment (Valadoc.Parser docparser);
+		public void visit (Valadoc.Doclet doclet);
+		public void write (Valadoc.Langlet langlet, void* ptr);
+	}
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public class ErrorCode : Valadoc.DocumentedElement {
+		public ErrorCode (Valadoc.Settings settings, Vala.ErrorCode verrcode, Valadoc.ErrorDomain parent, Valadoc.Tree head);
+		public string get_cname ();
+		public bool is_verrorcode (Vala.ErrorCode verrcode);
+		public void parse_comment (Valadoc.Parser docparser);
+		public void visit (Valadoc.Doclet doclet);
+		public void write (Valadoc.Langlet langlet, void* ptr);
+	}
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public class ErrorDomain : Valadoc.DocumentedElement, Valadoc.SymbolAccessibility, Valadoc.Visitable, Valadoc.MethodHandler {
+		public ErrorDomain (Valadoc.Settings settings, Vala.ErrorDomain verrdom, Valadoc.ErrorDomainHandler parent, Valadoc.Tree head);
+		public string? get_cname ();
+		public Gee.ReadOnlyCollection<Valadoc.ErrorCode> get_error_code_list ();
+		public void visit (Valadoc.Doclet doclet);
+		public void visit_error_codes (Valadoc.Doclet doclet);
+		public void write (Valadoc.Langlet langlet, void* ptr);
+	}
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public class ErrorReporter : GLib.Object {
+		public ErrorReporter ();
+		public void error (string file, long line, long startpos, long endpos, string errline, string msg);
+		public void simple_error (string msg);
+		public void simple_warning (string msg);
+		public void warning (string file, long line, long startpos, long endpos, string errline, string msg);
+		public int errors { get; }
+		public GLib.FileStream stream { get; set; }
+		public Vala.Report? vreporter { get; set; }
+		public int warnings { get; }
+	}
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public class Field : Valadoc.DocumentedElement, Valadoc.SymbolAccessibility, Valadoc.ReturnTypeHandler, Valadoc.Visitable {
+		public Field (Valadoc.Settings settings, Vala.Field vfield, Valadoc.FieldHandler parent, Valadoc.Tree head);
+		public string? get_cname ();
+		public void visit (Valadoc.Doclet doclet, Valadoc.FieldHandler? parent);
+		public void write (Valadoc.Langlet langlet, void* ptr, Valadoc.FieldHandler parent);
+		public bool is_static { get; }
+		public bool is_volatile { get; }
+	}
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public class FormalParameter : Valadoc.Basic, Valadoc.ReturnTypeHandler {
+		public FormalParameter (Valadoc.Settings settings, Vala.FormalParameter vformalparam, Valadoc.Basic parent, Valadoc.Tree head);
+		public void write (Valadoc.Langlet langlet, void* ptr);
+		public bool ellipsis { get; }
+		public bool has_default_value { get; }
+		public bool is_out { get; }
+		public bool is_ref { get; }
+		public string? name { owned get; }
+	}
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public abstract class HeadlineDocElement : Valadoc.DocElement {
+		public HeadlineDocElement ();
+		public abstract bool parse (string title, int lvl);
+	}
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public abstract class HighlightedDocElement : Valadoc.DocElement {
+		public HighlightedDocElement ();
+		public abstract bool parse (Gee.ArrayList<Valadoc.DocElement> content);
+	}
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public abstract class ImageDocElement : Valadoc.DocElement {
+		public ImageDocElement ();
+		public abstract bool parse (Valadoc.Settings settings, Valadoc.Documentation pos, owned string path, owned string alt);
+	}
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public abstract class InlineTaglet : Valadoc.Taglet {
+		public InlineTaglet ();
+		public abstract bool parse (Valadoc.Settings settings, Valadoc.Tree tree, Valadoc.Documentation self, string content, ref Valadoc.ErrorLevel errlvl, out string? errmsg);
+		public abstract string to_string ();
+	}
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public class Interface : Valadoc.DocumentedElement, Valadoc.SymbolAccessibility, Valadoc.Visitable, Valadoc.SignalHandler, Valadoc.PropertyHandler, Valadoc.FieldHandler, Valadoc.TemplateParameterListHandler, Valadoc.MethodHandler, Valadoc.DelegateHandler, Valadoc.EnumHandler, Valadoc.StructHandler, Valadoc.ClassHandler {
+		public Interface (Valadoc.Settings settings, Vala.Interface vinterface, Valadoc.InterfaceHandler parent, Valadoc.Tree head);
+		public string? get_cname ();
+		public Gee.Collection<Valadoc.Interface> get_implemented_interface_list ();
+		public void visit (Valadoc.Doclet doclet);
+		public void write (Valadoc.Langlet langlet, void* ptr);
+		protected Valadoc.Class? base_type { get; set; }
+	}
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public abstract class ItalicDocElement : Valadoc.HighlightedDocElement {
+		public ItalicDocElement ();
+	}
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public abstract class Langlet : GLib.Object {
+		public Langlet ();
+		public abstract void write_array (Valadoc.Array param, void* ptr, Valadoc.DocumentedElement pos);
+		public abstract void write_class (Valadoc.Class cl, void* ptr);
+		public abstract void write_constant (Valadoc.Constant constant, Valadoc.ConstantHandler parent, void* ptr);
+		public abstract void write_delegate (Valadoc.Delegate del, void* ptr);
+		public abstract void write_enum (Valadoc.Enum en, void* ptr);
+		public abstract void write_enum_value (Valadoc.EnumValue enval, void* ptr);
+		public abstract void write_error_code (Valadoc.ErrorCode errcode, void* ptr);
+		public abstract void write_error_domain (Valadoc.ErrorDomain errdom, void* ptr);
+		public abstract void write_field (Valadoc.Field field, Valadoc.FieldHandler pos, void* ptr);
+		public abstract void write_file (Valadoc.Package file, void* ptr);
+		public abstract void write_formal_parameter (Valadoc.FormalParameter param, void* ptr);
+		public abstract void write_inheritance_list (Valadoc.DocumentedElement dtype, void* ptr);
+		public abstract void write_interface (Valadoc.Interface iface, void* ptr);
+		public abstract void write_method (void* ptr, Valadoc.Method m, Valadoc.MethodHandler pos);
+		public abstract void write_namespace (Valadoc.Namespace ns, void* ptr);
+		public abstract void write_parameter_list (Valadoc.ParameterListHandler thandler, void* ptr);
+		public abstract void write_pointer (Valadoc.Pointer param, void* ptr, Valadoc.DocumentedElement pos);
+		public abstract void write_property (Valadoc.Property prop, void* ptr);
+		public abstract void write_property_accessor (Valadoc.PropertyAccessor propac, void* ptr);
+		public abstract void write_signal (Valadoc.Signal sig, void* ptr);
+		public abstract void write_struct (Valadoc.Struct stru, void* ptr);
+		public abstract void write_template_parameters (Valadoc.TemplateParameterListHandler thandler, void* ptr);
+		public abstract void write_type_parameter (Valadoc.TypeParameter param, void* ptr);
+		public abstract void write_type_reference (Valadoc.TypeReference tref, void* ptr);
+	}
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public abstract class LinkDocElement : Valadoc.DocElement {
+		public LinkDocElement ();
+		public abstract bool parse (Valadoc.Settings settings, Valadoc.Tree tree, Valadoc.Documentation pos, owned string link, owned string desc);
+	}
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public abstract class ListDocElement : Valadoc.DocElement {
+		public ListDocElement ();
+		public abstract bool parse (Valadoc.ListType type, Gee.ArrayList<Valadoc.ListEntryDocElement> entries);
+	}
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public abstract class ListEntryDocElement : Valadoc.DocElement {
+		public ListEntryDocElement ();
+		public abstract bool parse (Valadoc.ListType type, long lvl, Gee.ArrayList<Valadoc.DocElement> content);
+	}
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public abstract class MainTaglet : Valadoc.Taglet {
+		public MainTaglet ();
+		protected string? get_data_type (Valadoc.DocumentedElement me);
+		public abstract bool parse (Valadoc.Settings settings, Valadoc.Tree tree, Valadoc.DocumentedElement me, Gee.Collection<Valadoc.DocElement> content, ref Valadoc.ErrorLevel errlvl, out string errmsg);
+		public abstract bool write_block_end (void* res);
+		public abstract bool write_block_start (void* res);
+		public virtual int order { get; }
+	}
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public class Method : Valadoc.DocumentedElement, Valadoc.ParameterListHandler, Valadoc.ExceptionHandler, Valadoc.TemplateParameterListHandler, Valadoc.SymbolAccessibility, Valadoc.ReturnTypeHandler, Valadoc.Visitable {
+		public Method (Valadoc.Settings settings, Vala.Method vmethod, Valadoc.MethodHandler parent, Valadoc.Tree head);
+		public string? get_cname ();
+		public void visit (Valadoc.Doclet doclet, Valadoc.MethodHandler in_type);
+		public void write (Valadoc.Langlet langlet, void* ptr, Valadoc.MethodHandler parent);
+		public Valadoc.Method? base_method { get; set; }
+		public bool is_abstract { get; }
+		public bool is_constructor { get; }
+		public bool is_inline { get; }
+		public bool is_override { get; }
+		public bool is_static { get; }
+		public bool is_virtual { get; }
+		public bool is_yields { get; }
+		public override string? name { owned get; }
+	}
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public class ModuleLoader : GLib.Object {
+		public GLib.Type bold;
+		public GLib.Type center;
+		public Valadoc.Doclet doclet;
+		public GLib.Type headline;
+		public GLib.Type image;
+		public GLib.Type italic;
+		public GLib.Type link;
+		public GLib.Type list;
+		public GLib.Type list_element;
+		public GLib.Type notification;
+		public GLib.Type paragraph;
+		public GLib.Type right;
+		public GLib.Type source;
+		public GLib.Type source_inline;
+		public GLib.Type string;
+		public GLib.Type table;
+		public GLib.Type table_cell;
+		public Gee.HashMap<global::string,GLib.Type> taglets;
+		public GLib.Type underline;
+		public ModuleLoader ();
+		public bool load (global::string path);
+	}
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public class Namespace : Valadoc.DocumentedElement, Valadoc.MethodHandler, Valadoc.FieldHandler, Valadoc.NamespaceHandler, Valadoc.ErrorDomainHandler, Valadoc.EnumHandler, Valadoc.ClassHandler, Valadoc.StructHandler, Valadoc.InterfaceHandler, Valadoc.DelegateHandler, Valadoc.ConstantHandler {
+		public Namespace (Valadoc.Settings settings, Vala.Namespace vnspace, Valadoc.NamespaceHandler parent, Valadoc.Tree head);
+		public void visit (Valadoc.Doclet doclet);
+		public void write (Valadoc.Langlet langlet, void* ptr);
+		public Vala.Namespace vnspace { get; set; }
+	}
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public abstract class NotificationDocElement : Valadoc.DocElement {
+		public NotificationDocElement ();
+		public abstract bool parse (Gee.ArrayList<Valadoc.DocElement> content);
+	}
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public class Package : Valadoc.DocumentedElement, Valadoc.NamespaceHandler {
+		public Package (Valadoc.Settings settings, Vala.SourceFile vfile, Valadoc.Tree head, bool is_package = false);
+		public Gee.ReadOnlyCollection<Valadoc.Package> get_dependency_list ();
+		public Gee.ReadOnlyCollection<Valadoc.Package> get_full_dependency_list ();
+		public bool is_visitor_accessible ();
+		public void visit (Valadoc.Doclet doclet);
+		public Package.with_name (Valadoc.Settings settings, Vala.SourceFile vfile, string name, Valadoc.Tree head, bool is_package = false);
+		public void write (Valadoc.Langlet langlet, void* ptr);
+		public bool is_package { get; set; }
+		public override string? name { owned get; }
+	}
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public abstract class ParagraphDocElement : Valadoc.DocElement {
+		public ParagraphDocElement ();
+		public abstract bool parse (Gee.ArrayList<Valadoc.DocElement> paragraph);
+	}
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public class Parser : GLib.Object {
+		public Parser (Valadoc.Settings settings, Valadoc.ErrorReporter reporter, Valadoc.Tree tree, Valadoc.ModuleLoader modules);
+		public static bool is_documentation (string cmnt);
+		public bool is_inherit_doc (Valadoc.DocumentedElement self);
+		public Valadoc.DocumentationTree? parse (Valadoc.DocumentedElement self);
+		public unowned Valadoc.WikiPage parse_wikipage (Valadoc.WikiPage wikipage);
+	}
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public class Pointer : Valadoc.Basic {
+		public Pointer (Valadoc.Settings settings, Vala.PointerType vtyperef, Valadoc.Basic parent, Valadoc.Tree head);
+		public void set_type_references ();
+		public void write (Valadoc.Langlet langlet, void* ptr, Valadoc.DocumentedElement parent);
+		public Valadoc.Basic data_type { get; set; }
+	}
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public class Property : Valadoc.DocumentedElement, Valadoc.SymbolAccessibility, Valadoc.ReturnTypeHandler, Valadoc.Visitable {
+		public Property (Valadoc.Settings settings, Vala.Property vproperty, Valadoc.PropertyHandler parent, Valadoc.Tree head);
+		public bool equals (Valadoc.Property p);
+		public string? get_cname ();
+		public bool is_vproperty (Vala.Property vprop);
+		public void parse_comment (Valadoc.Parser docparser);
+		public void visit (Valadoc.Doclet doclet);
+		public void write (Valadoc.Langlet langlet, void* ptr);
+		public Valadoc.Property base_property { get; set; }
+		public Valadoc.PropertyAccessor getter { get; set; }
+		public bool is_abstract { get; }
+		public bool is_override { get; }
+		public bool is_virtual { get; }
+		public Valadoc.PropertyAccessor setter { get; set; }
+	}
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public class PropertyAccessor : GLib.Object {
+		public PropertyAccessor (Valadoc.Settings settings, Vala.PropertyAccessor vpropacc, Valadoc.Property parent, Valadoc.Tree head);
+		public void write (Valadoc.Langlet langlet, void* ptr);
+		public Valadoc.Tree head { get; set; }
+		public bool is_construct { get; }
+		public bool is_get { get; }
+		public bool is_internal { get; }
+		public bool is_owned { get; }
+		public bool is_private { get; }
+		public bool is_protected { get; }
+		public bool is_public { get; }
+		public bool is_set { get; }
+		public Valadoc.Property parent { get; set; }
+		public Valadoc.Settings settings { get; set; }
+		public Valadoc.Tree tree { get; set; }
+	}
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public abstract class RightAlignedDocElement : Valadoc.ContentPositionDocElement {
+		public RightAlignedDocElement ();
+	}
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public class Settings : GLib.Object {
+		public bool _internal;
+		public bool _private;
+		public bool _protected;
+		public bool add_inherited;
+		public string? basedir;
+		public string[] defines;
+		public bool deprecated;
+		public string? directory;
+		public bool disable_dbus_transformation;
+		public bool enable_checking;
+		public bool experimental;
+		public bool non_null_experimental;
+		public string path;
+		public string pkg_name;
+		public string pkg_version;
+		public string? profile;
+		public string[] vapi_directories;
+		public bool verbose;
+		public string wiki_directory;
+		public bool with_deps;
+		public Settings ();
+	}
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public class Signal : Valadoc.DocumentedElement, Valadoc.ParameterListHandler, Valadoc.SymbolAccessibility, Valadoc.ReturnTypeHandler, Valadoc.Visitable {
+		public Signal (Valadoc.Settings settings, Vala.Signal vsignal, Valadoc.SignalHandler parent, Valadoc.Tree head);
+		public string? get_cname ();
+		public void visit (Valadoc.Doclet doclet);
+		public void write (Valadoc.Langlet langlet, void* ptr);
+		public bool is_virtual { get; }
+	}
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public abstract class SourceCodeDocElement : Valadoc.DocElement {
+		public SourceCodeDocElement ();
+		public abstract bool parse (string src, Valadoc.Language lang);
+	}
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public abstract class StringTaglet : Valadoc.Taglet {
+		public StringTaglet ();
+		public abstract bool parse (string content);
+		public string content { get; set; }
+	}
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public class Struct : Valadoc.DocumentedElement, Valadoc.SymbolAccessibility, Valadoc.Visitable, Valadoc.MethodHandler, Valadoc.ConstructionMethodHandler, Valadoc.FieldHandler, Valadoc.ConstantHandler, Valadoc.TemplateParameterListHandler {
+		public Struct (Valadoc.Settings settings, Vala.Struct vstruct, Valadoc.StructHandler parent, Valadoc.Tree head);
+		public string? get_cname ();
+		public void visit (Valadoc.Doclet doclet);
+		public void write (Valadoc.Langlet langlet, void* ptr);
+		protected Valadoc.Struct? base_type { get; set; }
+	}
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public abstract class TableCellDocElement : Valadoc.DocElement {
+		public TableCellDocElement ();
+		public abstract void parse (Valadoc.TextPosition pos, Valadoc.TextVerticalPosition hpos, int size, int dsize, Gee.ArrayList<Valadoc.DocElement> content);
+	}
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public abstract class TableDocElement : Valadoc.DocElement {
+		public TableDocElement ();
+		public abstract void parse (Gee.ArrayList<Gee.ArrayList<Valadoc.TableCellDocElement>> cells);
+	}
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public abstract class Taglet : Valadoc.DocElement {
+		public Taglet ();
+	}
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public class Tree : Vala.CodeVisitor {
+		public Tree (Valadoc.ErrorReporter reporter, Valadoc.Settings settings);
+		public void add_depencies (string[] packages);
+		public void add_documented_file (string[] sources);
+		public bool create_tree ();
+		public Gee.ReadOnlyCollection<Valadoc.Package> get_package_list ();
+		public void parse_comments (Valadoc.Parser docparser);
+		public Valadoc.DocumentedElement? search_symbol_str (Valadoc.DocumentedElement? element, string symname);
+		public void visit (Valadoc.Doclet doclet);
+		public override void visit_class (Vala.Class vcl);
+		public override void visit_constant (Vala.Constant vc);
+		public override void visit_delegate (Vala.Delegate vd);
+		public override void visit_enum (Vala.Enum venum);
+		public override void visit_error_domain (Vala.ErrorDomain verrdom);
+		public override void visit_field (Vala.Field vf);
+		public override void visit_interface (Vala.Interface viface);
+		public override void visit_method (Vala.Method vm);
+		public override void visit_namespace (Vala.Namespace vns);
+		public override void visit_struct (Vala.Struct vstru);
+		public Valadoc.WikiPageTree? wikitree { get; set; }
+	}
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public class TypeParameter : Valadoc.Basic, Valadoc.ReturnTypeHandler {
+		public TypeParameter (Valadoc.Settings settings, Vala.TypeParameter vtypeparam, Valadoc.Basic parent, Valadoc.Tree head);
+		public bool is_vtypeparam (Vala.TypeParameter vtypeparam);
+		public void write (Valadoc.Langlet langlet, void* ptr);
+		public string? name { owned get; }
+	}
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public class TypeReference : Valadoc.Basic {
+		public TypeReference (Valadoc.Settings settings, Vala.DataType? vtyperef, Valadoc.Basic parent, Valadoc.Tree head);
+		public Gee.ReadOnlyCollection<Valadoc.TypeReference> get_type_arguments ();
+		public void write (Valadoc.Langlet langlet, void* ptr);
+		public Valadoc.Basic? data_type { get; set; }
+		public bool is_dynamic { get; }
+		public bool is_nullable { get; }
+		public bool is_owned { get; }
+		public bool is_unowned { get; }
+		public bool is_weak { get; }
+		public bool pass_ownership { get; }
+		public string type_name { owned get; }
+	}
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public abstract class UnderlinedDocElement : Valadoc.HighlightedDocElement {
+		public UnderlinedDocElement ();
+	}
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public class WikiPage : GLib.Object, Valadoc.Documentation {
+		public WikiPage (string name, string path);
+		public void add_content (Gee.ArrayList<Valadoc.DocElement> content);
+		public bool parse (Valadoc.Parser docparser);
+		public void read () throws GLib.FileError;
+		public bool write (void* res);
+		public string documentation_str { get; set; }
+		public string name { get; set; }
+		public string path { get; set; }
+	}
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public class WikiPageTree : GLib.Object {
+		public WikiPageTree (Valadoc.ErrorReporter reporter, Valadoc.Settings settings);
+		public void create_tree (Valadoc.Parser docparser) throws GLib.FileError;
+		public Gee.Collection<Valadoc.WikiPage> get_pages ();
+		public Valadoc.WikiPage? search (string name);
+	}
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public interface ClassHandler : Valadoc.Basic {
+		public void add_classes (Gee.Collection<Vala.Class> vclasses);
+		protected Valadoc.Class? find_vclass (Vala.Class vcl);
+		public Gee.ReadOnlyCollection<Valadoc.Class> get_class_list ();
+		protected void parse_class_comments (Valadoc.Parser docparser);
+		protected Valadoc.DocumentedElement? search_class (string[] @params, int pos);
+		protected Valadoc.DocumentedElement? search_class_vala (Gee.ArrayList<Vala.Symbol> @params, int pos);
+		protected void set_class_type_references ();
+		public void visit_classes (Valadoc.Doclet doclet);
+		protected abstract Gee.ArrayList<Valadoc.Class> classes { get; set; }
+	}
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public interface ConstantHandler : Valadoc.Basic {
+		public Gee.ReadOnlyCollection<Valadoc.Constant> get_constant_list ();
+		protected Valadoc.DocumentedElement? search_constant_vala (Gee.ArrayList<Vala.Symbol> @params, int pos);
+		public void visit_constants (Valadoc.Doclet doclet);
+		protected abstract Gee.ArrayList<Valadoc.Constant> constants { get; set; }
+	}
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public interface ConstructionMethodHandler : Valadoc.Basic, Valadoc.MethodHandler {
+		protected void add_construction_method (Vala.CreationMethod vm);
+		protected void add_methods_and_construction_methods (Gee.Collection<Vala.Method> vmethods);
+		public Gee.ReadOnlyCollection<Valadoc.Method> get_construction_method_list ();
+		protected void parse_construction_method_comments (Valadoc.Parser docparser);
+		protected Valadoc.DocumentedElement? search_construction_method (string[] @params, int pos);
+		protected Valadoc.DocumentedElement? search_construction_method_vala (Gee.ArrayList<Vala.Symbol> @params, int pos);
+		protected void set_construction_method_references ();
+		public void visit_construction_methods (Valadoc.Doclet doclet);
+		protected abstract Gee.ArrayList<Valadoc.Method> construction_methods { get; set; }
+	}
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public interface DelegateHandler : Valadoc.Basic {
+		public void add_delegate (Vala.Delegate vdel);
+		public void add_delegates (Gee.Collection<Vala.Delegate> vdels);
+		public Gee.Collection<Valadoc.Delegate> get_delegate_list ();
+		public void parse_delegate_comments (Valadoc.Parser docparser);
+		protected Valadoc.DocumentedElement? search_delegate (string[] @params, int pos);
+		protected Valadoc.DocumentedElement? search_delegate_vala (Gee.ArrayList<Vala.Symbol> @params, int pos);
+		public void set_delegate_type_references ();
+		public void visit_delegates (Valadoc.Doclet doclet);
+		protected abstract Gee.ArrayList<Valadoc.Delegate> delegates { get; set; }
+	}
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public interface Documentation : GLib.Object {
+		public abstract string? get_filename ();
+	}
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public interface EnumHandler : Valadoc.Basic {
+		public void add_enum (Vala.Enum venum);
+		public void add_enums (Gee.Collection<Vala.Enum> venums);
+		public Gee.Collection<Valadoc.Enum> get_enum_list ();
+		protected void parse_enum_comments (Valadoc.Parser docparser);
+		protected Valadoc.DocumentedElement? search_enum (string[] @params, int pos);
+		protected Valadoc.DocumentedElement? search_enum_vala (Gee.ArrayList<Vala.Symbol> @params, int pos);
+		protected void set_enum_type_references ();
+		public void visit_enums (Valadoc.Doclet doclet);
+		protected abstract Gee.ArrayList<Valadoc.Enum> enums { get; set; }
+	}
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public interface ErrorDomainHandler : Valadoc.Basic {
+		public void add_error_domain (Vala.ErrorDomain verrdom);
+		public void add_error_domains (Gee.Collection<Vala.ErrorDomain> verrdoms);
+		public Gee.Collection<Valadoc.ErrorDomain> get_error_domain_list ();
+		protected void parse_errordomain_comments (Valadoc.Parser docparser);
+		protected Valadoc.DocumentedElement? search_error_domain (string[] @params, int pos);
+		protected Valadoc.DocumentedElement? search_error_domain_vala (Gee.ArrayList<Vala.Symbol> @params, int pos);
+		protected void set_errordomain_type_referenes ();
+		public void visit_error_domains (Valadoc.Doclet doclet);
+		protected abstract Gee.ArrayList<Valadoc.ErrorDomain> errdoms { get; set; }
+	}
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public interface ExceptionHandler : Valadoc.Basic {
+		public void add_exception_list (Gee.Collection<Vala.DataType> vexceptions);
+		public Gee.ReadOnlyCollection<Valadoc.DocumentedElement> get_error_domains ();
+		protected abstract Gee.ArrayList<Valadoc.DocumentedElement> err_domains { get; set; }
+	}
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public interface FieldHandler : Valadoc.Basic {
+		public Gee.ReadOnlyCollection<Valadoc.Field> get_field_list ();
+		protected Valadoc.DocumentedElement? search_field_vala (Gee.ArrayList<Vala.Symbol> @params, int pos);
+		public void visit_fields (Valadoc.Doclet doclet);
+		protected abstract Gee.ArrayList<Valadoc.Field> fields { get; set; }
+	}
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public interface InterfaceHandler : Valadoc.Basic {
+		protected void add_interfaces (Gee.Collection<Vala.Interface> vifaces);
+		public Gee.Collection<Valadoc.Interface> get_interface_list ();
+		protected void parse_interface_comments (Valadoc.Parser docparser);
+		protected Valadoc.DocumentedElement? search_interface (string[] @params, int pos);
+		protected Valadoc.DocumentedElement? search_interface_vala (Gee.ArrayList<Vala.Symbol> @params, int pos);
+		protected void set_interface_type_references ();
+		public void visit_interfaces (Valadoc.Doclet doclet);
+		protected abstract Gee.ArrayList<Valadoc.Interface> interfaces { get; set; }
+	}
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public interface MethodHandler : Valadoc.Basic {
+		protected void add_method (Vala.Method vmethod);
+		protected void add_methods (Gee.Collection<Vala.Method> vmethods);
+		public Gee.ReadOnlyCollection<Valadoc.Method> get_method_list ();
+		protected Valadoc.DocumentedElement? search_method_vala (Gee.ArrayList<Vala.Symbol> @params, int pos);
+		public void visit_methods (Valadoc.Doclet doclet);
+		protected abstract Gee.ArrayList<Valadoc.Method> methods { get; set; }
+	}
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public interface NamespaceHandler : Valadoc.Basic {
+		protected Valadoc.Namespace get_namespace (Vala.Symbol node);
+		public Gee.ReadOnlyCollection<Valadoc.Namespace> get_namespace_list ();
+		public void visit_namespaces (Valadoc.Doclet doclet);
+		public abstract Gee.ArrayList<Valadoc.Namespace> namespaces { get; set; }
+	}
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public interface ParameterListHandler : Valadoc.Basic {
+		protected void add_parameter_list (Gee.Collection<Vala.FormalParameter> vparams);
+		public Gee.ReadOnlyCollection<Valadoc.FormalParameter> get_parameter_list ();
+		protected abstract Gee.ArrayList<Valadoc.FormalParameter> param_list { get; set; }
+	}
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public interface PropertyHandler : Valadoc.Basic {
+		protected void add_properties (Gee.Collection<Vala.Property> vproperties);
+		public Gee.ReadOnlyCollection<Valadoc.Property> get_property_list ();
+		protected bool is_overwritten_property (Valadoc.Property prop);
+		protected void parse_property_comments (Valadoc.Parser docparser);
+		protected Valadoc.DocumentedElement? search_property (string[] @params, int pos);
+		protected Valadoc.DocumentedElement? search_property_vala (Gee.ArrayList<Vala.Symbol> @params, int pos);
+		protected void set_property_type_references ();
+		public void visit_properties (Valadoc.Doclet doclet);
+		protected abstract Gee.ArrayList<Valadoc.Property> properties { get; set; }
+	}
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public interface ReturnTypeHandler : Valadoc.Basic {
+		public abstract Valadoc.TypeReference? type_reference { get; set; }
+	}
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public interface SignalHandler : Valadoc.Basic {
+		public Gee.ReadOnlyCollection<Valadoc.Signal> get_signal_list ();
+		protected Valadoc.DocumentedElement? search_signal (string[] @params, int pos);
+		protected Valadoc.DocumentedElement? search_signal_vala (Gee.ArrayList<Vala.Symbol> @params, int pos);
+		public void visit_signals (Valadoc.Doclet doclet);
+		protected abstract Gee.ArrayList<Valadoc.Signal> signals { get; set; }
+	}
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public interface StructHandler : Valadoc.Basic {
+		public void add_struct (Vala.Struct vstru);
+		public void add_structs (Gee.Collection<Vala.Struct> vstructs);
+		public Gee.Collection<Valadoc.Struct> get_struct_list ();
+		protected void parse_struct_comments (Valadoc.Parser docparser);
+		protected Valadoc.DocumentedElement? search_struct (string[] @params, int pos);
+		protected Valadoc.DocumentedElement? search_struct_vala (Gee.ArrayList<Vala.Symbol> @params, int pos);
+		protected void set_struct_type_references ();
+		public void visit_structs (Valadoc.Doclet doclet);
+		protected abstract Gee.ArrayList<Valadoc.Struct> structs { get; set; }
+	}
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public interface SymbolAccessibility : Valadoc.Basic {
+		public bool is_internal { get; }
+		public bool is_private { get; }
+		public bool is_protected { get; }
+		public bool is_public { get; }
+	}
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public interface TemplateParameterListHandler : Valadoc.Basic {
+		public Valadoc.TypeParameter? find_vtemplateparameter (Vala.GenericType vttype);
+		public Gee.ReadOnlyCollection<Valadoc.TypeParameter> get_template_param_list ();
+		protected abstract Gee.ArrayList<Valadoc.TypeParameter> template_param_lst { get; set; }
+	}
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public interface Visitable : Valadoc.Basic, Valadoc.SymbolAccessibility {
+		protected bool is_type_visitor_accessible (Valadoc.Basic element);
+		public bool is_visitor_accessible ();
+	}
+	[CCode (cprefix = "VALADOC_ERROR_LEVEL_", cheader_filename = "valadoc-1.0.h")]
+	public enum ErrorLevel {
+		ASSUMPTION,
+		WARNING,
+		ERROR
+	}
+	[CCode (cprefix = "VALADOC_IMAGE_DOC_ELEMENT_POSITION_", cheader_filename = "valadoc-1.0.h")]
+	public enum ImageDocElementPosition {
+		NEUTRAL,
+		MIDDLE,
+		RIGHT,
+		LEFT
+	}
+	[CCode (cprefix = "VALADOC_LANGUAGE_", cheader_filename = "valadoc-1.0.h")]
+	public enum Language {
+		GENIE,
+		VALA,
+		C
+	}
+	[CCode (cprefix = "VALADOC_LIST_TYPE_", cheader_filename = "valadoc-1.0.h")]
+	public enum ListType {
+		UNSORTED,
+		SORTED
+	}
+	[CCode (cprefix = "VALADOC_TEXT_POSITION_", cheader_filename = "valadoc-1.0.h")]
+	public enum TextPosition {
+		LEFT,
+		RIGHT,
+		CENTER
+	}
+	[CCode (cprefix = "VALADOC_TEXT_VERTICAL_POSITION_", cheader_filename = "valadoc-1.0.h")]
+	public enum TextVerticalPosition {
+		TOP,
+		MIDDLE,
+		BOTTOM
+	}
+	[CCode (cheader_filename = "valadoc-1.0.h", has_target = false)]
+	public delegate GLib.Type DocletRegisterFunction ();
+	[CCode (cheader_filename = "valadoc-1.0.h", has_target = false)]
+	public delegate void TagletRegisterFunction (Valadoc.ModuleLoader loader);
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public static bool copy_directory (string src, string dest);
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public static bool copy_file (string src, string dest);
+	[CCode (cheader_filename = "valadoc-1.0.h")]
+	public static string realpath (string name);
+}
+[CCode (cheader_filename = "valadoc-1.0.h")]
+public static Valadoc.Class glib_error;



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]