[valadoc] valadoc.org: switch to static content
- From: Florian Brosch <flobrosch src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [valadoc] valadoc.org: switch to static content
- Date: Wed, 10 Feb 2010 01:14:20 +0000 (UTC)
commit d335559fd8ed8388ec7ef20180fdcf61f6e32233
Author: Florian Brosch <flo brosch gmail com>
Date: Mon Feb 8 23:11:16 2010 +0100
valadoc.org: switch to static content
src/doclets/valadoc.org/Makefile.am | 2 +-
src/doclets/valadoc.org/doclet.vala | 540 +++++++++--------------------
src/doclets/valadoc.org/htmlrenderer.vala | 43 +++
src/doclets/valadoc.org/wikirenderer.vala | 212 -----------
4 files changed, 215 insertions(+), 582 deletions(-)
---
diff --git a/src/doclets/valadoc.org/Makefile.am b/src/doclets/valadoc.org/Makefile.am
index 2973838..e9006d2 100755
--- a/src/doclets/valadoc.org/Makefile.am
+++ b/src/doclets/valadoc.org/Makefile.am
@@ -2,8 +2,8 @@
libdoclet_VALASOURCES = \
+ htmlrenderer.vala \
doclet.vala \
- wikirenderer.vala \
$(NULL)
diff --git a/src/doclets/valadoc.org/doclet.vala b/src/doclets/valadoc.org/doclet.vala
index 1ec23b4..c1dc37c 100755
--- a/src/doclets/valadoc.org/doclet.vala
+++ b/src/doclets/valadoc.org/doclet.vala
@@ -20,459 +20,261 @@
* Florian Brosch <flo brosch gmail com>
*/
-using Valadoc.Diagrams;
-using Valadoc.Content;
-using Valadoc.Html;
+using Valadoc;
using Valadoc.Api;
+using Valadoc.Html;
using Gee;
+
namespace Valadoc.ValadocOrg {
public string? get_html_link (Settings settings, Documentation element, Documentation? pos) {
- if (element is Api.Node) {
- return Path.build_filename("/"+((Api.Node)element).package.name, ((Api.Node)element).full_name () + ".html");
+ if (element is Visitable) {
+ if (((Visitable)element).is_visitor_accessible (settings) == false) {
+ return null;
+ }
}
- return null;
- }
-}
-public class Valadoc.ValadocOrg.Doclet : BasicDoclet {
- private WikiRenderer _wikirenderer;
- private FileStream file;
- private bool run;
-
- private void write_documentation (Api.Node element) {
- if(element.documentation == null) {
- return;
+ if (element is Api.Node) {
+ if (((Api.Node)element).package.is_visitor_accessible (settings) == false) {
+ return null;
+ }
}
- string path = Path.build_filename (this.settings.path, element.package.name, "documentation", element.full_name ());
- FileStream file = FileStream.open (path, "w");
- if (file == null) {
- this.run = false;
- return;
+ if ( pos == null || ((pos!=null)?(pos is WikiPage)? ((WikiPage)pos).name=="index.valadoc": false : false) ) {
+ if (element is Package) {
+ return Path.build_filename(((Package)element).name, "index.htm");
+ } else if ( element is Api.Node ) {
+ return Path.build_filename("..", ((Api.Node)element).package.name, ((Api.Node)element).full_name()+".html");
+ } else if (element is WikiPage) {
+ if (pos == element) {
+ return "#";
+ }
+ else {
+ string wikiname = ((WikiPage)element).name;
+ wikiname = wikiname.ndup (wikiname.len()-8);
+ wikiname = wikiname.replace ("/", ".") + ".html";
+ return Path.build_filename ("content", wikiname);
+ }
+ }
}
-
- _wikirenderer.set_container (element);
- _wikirenderer.set_filestream (file);
- _wikirenderer.render (element.documentation);
+ else if (pos is Api.Node) {
+ if (element is Package) {
+ return Path.build_filename("..", ((Package)element).name, "index.htm");
+ } else if (element is Api.Node) {
+ return Path.build_filename("..", ((Api.Node)element).package.name, ((Api.Node)element).full_name()+".html");
+ } else if ( element is WikiPage ) {
+ string wikiname = ((WikiPage)element).name;
+ wikiname = wikiname.ndup (wikiname.len()-8);
+ wikiname = wikiname.replace ("/", ".")+".html";
+ if ( wikiname == "index.html" ) {
+ return Path.build_filename ("..", wikiname);
+ } else {
+ return Path.build_filename ("..", "content", wikiname);
+ }
+ }
+ }
+ else if ( pos is WikiPage ) {
+ if ( element is Package ) {
+ return Path.build_filename ("..", ((Package)element).name, "index.htm");
+ } else if (element is Api.Node) {
+ return Path.build_filename ("..", ((Api.Node)element).package.name, ((Api.Node)element).full_name()+".html");
+ } else if (element is WikiPage) {
+ string wikiname = ((WikiPage) element).name;
+ wikiname = wikiname.ndup ( wikiname.len ()-8 );
+ wikiname = wikiname.replace ("/", ".")+".html";
+
+ if (wikiname == "index.html") {
+ return Path.build_filename ("..", wikiname);
+ } else {
+ return wikiname;
+ }
+ }
+ }
+ return null;
}
+}
- public override void process (Settings settings, Api.Tree tree) {
- this.settings = settings;
- this.run = true;
- //writer
- _wikirenderer = new ValadocOrg.WikiRenderer ();
- _renderer = new HtmlRenderer (this);
+public class Valadoc.ValadocOrg.Doclet : Valadoc.Html.BasicDoclet {
+ private const string css_path_wiki = "../../wiki-style.css";
+ private const string css_path = "../reference-style.css";
+ private ArrayList<Api.Node> nodes = new ArrayList<Api.Node> ();
+ private string package_dir_name = ""; // remove
+ private Api.Tree tree;
- DirUtils.create (this.settings.path, 0777);
- Gee.Collection<Package> packages = tree.get_package_list ();
- foreach ( Package pkg in packages ) {
- pkg.accept (this);
- }
+ construct {
+ _renderer = new ValadocOrg.HtmlRenderer (this);
}
- private string get_image_path (Api.Node element) {
- return Path.build_filename (this.settings.path, element.package.name, element.package.name, element.full_name () + ".png");
+ private string get_path (Api.Node element) {
+ return element.full_name () + ".html";
}
- private void write_insert_into_valadoc_element_str (string name, string pkgname, string fullname) {
- string fullname2 = (pkgname == fullname)? pkgname : pkgname+"/"+fullname;
- this.file.printf ("INSERT INTO `ValadocApiElement` (`name`, `fullname`) VALUES ('%s', '%s');\n", name, fullname2);
+ private string get_real_path (Api.Node element, string file_extension) {
+ return GLib.Path.build_filename (this.settings.path, this.package_dir_name, element.full_name () + file_extension);
}
- private void write_insert_into_valadoc_element (Api.Node element) {
- string name = element.name;
- string fullname;
+ public override void process (Settings settings, Api.Tree tree) {
+ this.settings = settings;
+ this.tree = tree;
- if (name == null) {
- name = element.package.name;
- fullname = name;
- }
- else {
- fullname = element.full_name();
- }
+ DirUtils.create (this.settings.path, 0777);
- this.write_insert_into_valadoc_element_str(name, element.package.name, fullname);
+ write_wiki_pages (tree, css_path_wiki, Path.build_filename (this.settings.path, this.settings.pkg_name, "content"));
+ tree.accept (this);
}
- private void write_insert_into_valadoc_package (Package pkg) {
- this.file.printf ("INSERT INTO `ValadocPackage` (`id`) VALUES ((SELECT `id` FROM `ValadocApiElement` WHERE `fullname`='%s' LIMIT 1));\n", pkg.name);
+ public override void visit_tree (Api.Tree tree) {
+ tree.accept_children (this);
}
+ public override void visit_package (Package package) {
+ string pkg_name = package.name;
+ string path = GLib.Path.build_filename (this.settings.path, pkg_name);
+ string imgpath = GLib.Path.build_filename (path, "img");
- private void write_insert_into_code_element (Api.Node element) {
- string fullname = element.full_name ();
- string pkgname = element.package.name;
- string parentnodepkgname;
- string parentnodename;
+ var rt = DirUtils.create (path, 0777);
+ rt = DirUtils.create (imgpath, 0777);
- Api.Item parent = element.parent;
- if (parent is Api.Node) {
- parentnodepkgname = ((Api.Node)parent).package.name;
- parentnodename = ((Api.Node)parent).full_name();
- if (parentnodename == null) {
- parentnodename = parentnodepkgname;
- }
- }
- else {
- parentnodepkgname = ((Package)parent).name;
- parentnodename = parentnodepkgname;
- }
- string parentnodetypepath = (parentnodepkgname == parentnodename)? parentnodepkgname : parentnodepkgname+"/"+parentnodename;
- string typepath = pkgname+"/"+fullname;
- this.file.printf ("INSERT INTO `ValadocCodeElement` (`id`, `parent`, `valaapi`) VALUES ((SELECT `id` FROM `ValadocApiElement` WHERE BINARY `fullname`='%s' LIMIT 1), (SELECT `id` FROM `ValadocApiElement` WHERE BINARY `fullname`='%s' LIMIT 1), '", typepath, parentnodetypepath);
- var writer = new Html.MarkupWriter (file, false);
- writer.set_wrap (false);
- _renderer.set_writer (writer);
- _renderer.set_container (element);
- _renderer.render (element.signature);
- this.file.puts ("');\n");
- }
-
- public override void visit_package (Package pkg) {
- string path = Path.build_filename(this.settings.path, pkg.name);
- if (GLib.DirUtils.create (path, 0777) == -1) {
- this.run = false;
- return;
- }
-
- if (GLib.DirUtils.create (Path.build_filename(path, pkg.name), 0777) == -1) {
- this.run = false;
- return;
- }
-
- if (GLib.DirUtils.create (Path.build_filename(path, "documentation"), 0777) == -1) {
- this.run = false;
- return;
- }
+ this.package_dir_name = pkg_name;
- string fpath = Path.build_filename(path, "dump.sql");
- this.file = FileStream.open (fpath , "w");
- if (this.file == null) {
- this.run = false;
- return;
- }
- this.write_insert_into_valadoc_element_str (pkg.name, pkg.name, pkg.name);
- if (this.run == false) {
- return;
- }
+ // content area:
+ string filepath = GLib.Path.build_filename (path, "index.content.tpl");
- this.write_insert_into_valadoc_package (pkg);
- if (this.run == false) {
- return;
+ WikiPage wikipage = null;
+ if (this.settings.pkg_name == package.name && this.tree.wikitree != null) {
+ wikipage = this.tree.wikitree.search ("index.valadoc");
}
- pkg.accept_all_children (this);
- }
+ GLib.FileStream file = GLib.FileStream.open (filepath, "w");
+ writer = new Html.MarkupWriter (file, false);
+ _renderer.set_writer (writer);
+ write_package_content (package, package, wikipage);
+ file = null;
- public override void visit_namespace (Namespace ns) {
- if (ns.name != null) {
- this.write_insert_into_valadoc_element (ns);
- if (this.run == false) {
- return;
- }
- this.write_insert_into_code_element (ns);
- if (this.run == false) {
- return;
- }
- }
+ // navigation:
+ filepath = GLib.Path.build_filename (path, "index.navi.tpl");
+ file = GLib.FileStream.open (filepath, "w");
+ writer = new Html.MarkupWriter (file, false);
+ _renderer.set_writer (writer);
+ write_navi_package (package);
+ file = null;
- ns.accept_all_children (this);
- this.file.printf ("INSERT INTO `ValadocNamespaces` (`id`) VALUES ((SELECT `id` FROM `ValadocApiElement` WHERE BINARY `fullname`='%s' LIMIT 1));\n", this.get_type_path(ns));
- this.write_documentation (ns);
+ package.accept_all_children (this);
}
- public override void visit_interface ( Interface iface ) {
- write_interface_diagram (iface, this.get_image_path (iface));
+ private void process_compound_node (Api.Node node) {
+ if (node.name != null) {
+ // content area:
+ string rpath = this.get_real_path (node, ".content.tpl");
+ GLib.FileStream file = GLib.FileStream.open (rpath, "w");
+ writer = new Html.MarkupWriter (file, false);
+ _renderer.set_writer (writer);
+ write_symbol_content (node, "/doc/glib-2.0/img/");
+ file = null;
- this.write_insert_into_valadoc_element (iface);
- if (this.run == false) {
- return;
- }
- this.write_insert_into_code_element (iface);
- if (this.run == false) {
- return;
+ // navigation:
+ rpath = this.get_real_path (node, ".navi.tpl");
+ file = GLib.FileStream.open (rpath, "w");
+ writer = new Html.MarkupWriter (file, false);
+ _renderer.set_writer (writer);
+ write_navi_symbol (node);
+ file = null;
}
- iface.accept_all_children (this);
-
- this.file.printf ("INSERT INTO `ValadocInterfaces` (`id`) VALUES ((SELECT `id` FROM `ValadocApiElement` WHERE BINARY `fullname`='%s' LIMIT 1));\n", this.get_type_path(iface));
- this.write_documentation (iface);
+ node.accept_all_children (this);
}
- public override void visit_class ( Class cl ) {
- write_class_diagram (cl, this.get_image_path (cl));
-
- this.write_insert_into_valadoc_element (cl);
- if (this.run == false) {
- return;
- }
+ private void process_node (Api.Node node) {
+ // content area:
+ string rpath = this.get_real_path (node, ".content.tpl");
+ GLib.FileStream file = GLib.FileStream.open (rpath, "w");
+ writer = new Html.MarkupWriter (file, false);
+ _renderer.set_writer (writer);
+ write_symbol_content (node, "/doc/glib-2.0/img/");
+ file = null;
- this.write_insert_into_code_element (cl);
- if (this.run == false) {
- return;
- }
- cl.accept_all_children (this);
+ // navigation:
+ rpath = this.get_real_path (node, ".navi.tpl");
+ file = GLib.FileStream.open (rpath, "w");
+ writer = new Html.MarkupWriter (file, false);
+ _renderer.set_writer (writer);
+ write_navi_symbol (node);
+ file = null;
- string modifier;
- if (cl.is_abstract) {
- modifier = "ABSTRACT";
- }
- else {
- modifier = "NORMAL";
- }
- this.file.printf ("INSERT INTO `ValadocClasses` (`id`, `modifier`) VALUES ((SELECT `id` FROM `ValadocApiElement` WHERE BINARY `fullname`='%s' LIMIT 1),'%s');\n", this.get_type_path(cl), modifier);
- this.write_documentation (cl);
+ node.accept_all_children (this);
}
- public override void visit_struct (Struct stru) {
- write_struct_diagram (stru, this.get_image_path (stru));
-
- this.write_insert_into_valadoc_element (stru);
- if (this.run == false) {
- return;
- }
-
- this.write_insert_into_code_element (stru);
- if (this.run == false) {
- return;
- }
-
- stru.accept_all_children (this);
-
- this.file.printf ("INSERT INTO `ValadocStructs` (`id`) VALUES ((SELECT `id` FROM `ValadocApiElement` WHERE BINARY `fullname`='%s' LIMIT 1));\n", this.get_type_path(stru));
- this.write_documentation (stru);
+ public override void visit_namespace (Api.Namespace item) {
+ process_compound_node (item);
}
- public override void visit_error_domain ( ErrorDomain errdom ) {
- this.write_insert_into_valadoc_element (errdom);
- if (this.run == false) {
- return;
- }
-
- this.write_insert_into_code_element (errdom);
- if (this.run == false) {
- return;
- }
-
- errdom.accept_all_children (this);
-
- this.file.printf ("INSERT INTO `ValadocErrordomains` (`id`) VALUES ((SELECT `id` FROM `ValadocApiElement` WHERE BINARY `fullname`='%s' LIMIT 1));\n", this.get_type_path(errdom));
- this.write_documentation (errdom);
+ public override void visit_interface (Api.Interface item) {
+ process_compound_node (item);
}
- public override void visit_enum ( Enum en ) {
- this.write_insert_into_valadoc_element (en);
- if (this.run == false) {
- return;
- }
-
- this.write_insert_into_code_element (en);
- if (this.run == false) {
- return;
- }
-
- en.accept_all_children (this);
-
- this.file.printf ("INSERT INTO `ValadocEnum` (`id`) VALUES ((SELECT `id` FROM `ValadocApiElement` WHERE BINARY `fullname`='%s' LIMIT 1));\n", this.get_type_path(en));
- this.write_documentation (en);
+ public override void visit_class (Api.Class item) {
+ process_compound_node (item);
}
- public override void visit_property ( Property prop ) {
- this.write_insert_into_valadoc_element (prop);
- if (this.run == false) {
- return;
- }
-
- this.write_insert_into_code_element (prop);
- if (this.run == false) {
- return;
- }
-
- string modifier;
- if (prop.is_virtual) {
- modifier = "VIRTUAL";
- }
- else if (prop.is_abstract) {
- modifier = "ABSTRACT";
- }
- //else if (prop.is_static) {
- // modifier = "STATIC";
- //}
- else {
- modifier = "NORMAL";
- }
-
- this.file.printf ("INSERT INTO `ValadocProperties` (`id`, `modifier`) VALUES ((SELECT `id` FROM `ValadocApiElement` WHERE BINARY `fullname`='%s' LIMIT 1), '%s');\n", this.get_type_path(prop), modifier);
- this.write_documentation (prop);
+ public override void visit_struct (Api.Struct item) {
+ process_compound_node (item);
}
- public override void visit_constant (Constant constant) {
- this.write_insert_into_valadoc_element (constant);
- if (this.run == false) {
- return;
- }
-
- this.write_insert_into_code_element (constant);
- if (this.run == false) {
- return;
- }
-
- this.file.printf ("INSERT INTO `ValadocConstants` (`id`) VALUES ((SELECT `id` FROM `ValadocApiElement` WHERE BINARY `fullname`='%s' LIMIT 1));\n", this.get_type_path(constant));
- this.write_documentation (constant);
+ public override void visit_error_domain (Api.ErrorDomain item) {
+ process_node (item);
}
- public override void visit_field (Field field) {
- this.write_insert_into_valadoc_element (field);
- if (this.run == false) {
- return;
- }
-
- this.write_insert_into_code_element (field);
- if (this.run == false) {
- return;
- }
-
- string modifier;
- if (field.is_static) {
- modifier = "STATIC";
- }
- else {
- modifier = "NORMAL";
- }
-
- this.file.printf ("INSERT INTO `ValadocFields` (`id`, `modifier`) VALUES ((SELECT `id` FROM `ValadocApiElement` WHERE BINARY `fullname`='%s' LIMIT 1), '%s');\n", this.get_type_path(field), modifier);
- this.write_documentation (field);
+ public override void visit_enum (Api.Enum item) {
+ process_node (item);
}
- public override void visit_error_code ( ErrorCode errcode ) {
- this.write_insert_into_valadoc_element (errcode);
- if (this.run == false) {
- return;
- }
-
- this.write_insert_into_code_element (errcode);
- if (this.run == false) {
- return;
- }
-
- this.file.printf ("INSERT INTO `ValadocErrorcodes` (`id`) VALUES ((SELECT `id` FROM `ValadocApiElement` WHERE BINARY `fullname`='%s' LIMIT 1));\n" , this.get_type_path(errcode));
- this.write_documentation (errcode);
+ public override void visit_property (Api.Property item) {
+ process_node (item);
}
- public override void visit_enum_value (Api.EnumValue enval) {
- this.write_insert_into_valadoc_element (enval);
- if (this.run == false) {
- return;
- }
-
- this.write_insert_into_code_element (enval);
- if (this.run == false) {
- return;
- }
-
- this.file.printf ("INSERT INTO `ValadocEnumvalues` (`id`) VALUES ((SELECT `id` FROM `ValadocApiElement` WHERE BINARY `fullname`='%s' LIMIT 1));\n", this.get_type_path(enval));
- this.write_documentation (enval);
+ public override void visit_constant (Api.Constant item) {
+ process_node (item);
}
- public override void visit_delegate ( Delegate del ) {
- this.write_insert_into_valadoc_element (del);
- if (this.run == false) {
- return;
- }
-
- this.write_insert_into_code_element (del);
- if (this.run == false) {
- return;
- }
-
- string modifier;
- if (del.is_static) {
- modifier = "STATIC";
- }
- else {
- modifier = "NORMAL";
- }
-
- this.file.printf ("INSERT INTO `ValadocDelegates` (`id`, `modifier`) VALUES ((SELECT `id` FROM `ValadocApiElement` WHERE BINARY`fullname`='%s' LIMIT 1), '%s');\n", this.get_type_path(del), modifier);
- this.write_documentation (del);
+ public override void visit_field (Api.Field item) {
+ process_node (item);
}
- public override void visit_signal (Api.Signal sig) {
- this.write_insert_into_valadoc_element (sig);
- if (this.run == false) {
- return;
- }
-
- this.write_insert_into_code_element (sig);
- if (this.run == false) {
- return;
- }
-
- this.file.printf ("INSERT INTO `ValadocSignals` (`id`) VALUES ((SELECT `id` FROM `ValadocApiElement` WHERE BINARY `fullname`='%s' LIMIT 1));\n", this.get_type_path(sig));
- this.write_documentation (sig);
+ public override void visit_error_code (Api.ErrorCode item) {
+ process_node (item);
}
- public override void visit_method (Method m) {
- this.write_insert_into_valadoc_element (m);
- if (this.run == false) {
- return;
- }
-
- this.write_insert_into_code_element (m);
- if (this.run == false) {
- return;
- }
-
-
- if (m.is_constructor) {
- this.file.printf ("INSERT INTO `ValadocConstructors` (`id`) VALUES ((SELECT `id` FROM `ValadocApiElement` WHERE `fullname`='%s' LIMIT 1));\n", this.get_type_path(m));
- }
- else {
- string modifier;
- if (m.is_abstract) {
- modifier = "ABSTRACT";
- }
- else if (m.is_static) {
- modifier = "STATIC";
- }
- else if (m.is_virtual) {
- modifier = "VIRTUAL";
- }
- else {
- modifier = "NORMAL";
- }
+ public override void visit_enum_value (Api.EnumValue item) {
+ process_node (item);
+ }
- this.file.printf("INSERT INTO `ValadocMethods` (`id`, `modifier`)VALUES ((SELECT `id` FROM `ValadocApiElement` WHERE BINARY `fullname`='%s' LIMIT 1), '%s');\n", this.get_type_path(m), modifier);
- }
- this.write_documentation (m);
+ public override void visit_delegate (Api.Delegate item) {
+ process_node (item);
}
- private string get_type_path (Api.Node element) {
- if(element.name == null) {
- return element.package.name;
- }
+ public override void visit_signal (Api.Signal item) {
+ process_node (item);
+ }
- return element.package.name+"/"+element.full_name();
+ public override void visit_method (Api.Method item) {
+ process_node (item);
}
}
-
-
[ModuleInit]
-public Type register_plugin ( ) {
+public Type register_plugin () {
Valadoc.Html.get_html_link_imp = Valadoc.ValadocOrg.get_html_link;
return typeof (Valadoc.ValadocOrg.Doclet);
}
diff --git a/src/doclets/valadoc.org/htmlrenderer.vala b/src/doclets/valadoc.org/htmlrenderer.vala
new file mode 100755
index 0000000..31741c2
--- /dev/null
+++ b/src/doclets/valadoc.org/htmlrenderer.vala
@@ -0,0 +1,43 @@
+/* htmlrenderer.vala
+ *
+ * Copyright (C) 2008-2009 Florian Brosch, Didier Villevalois
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * Author:
+ * Didier 'Ptitjes Villevalois <ptitjes free fr>
+ */
+
+using GLib;
+using Valadoc.Content;
+using Valadoc.Html;
+
+public class Valadoc.ValadocOrg.HtmlRenderer : Html.HtmlRenderer {
+ public HtmlRenderer (BasicDoclet doclet) {
+ base (doclet);
+ }
+
+ public override void visit_embedded (Embedded element) {
+ var caption = element.caption;
+
+ var absolute_path = Path.build_filename (_doclet.settings.path, element.package.name, "img", Path.get_basename (element.url));
+ var relative_path = Path.build_filename ("/doc", element.package.name, "img", Path.get_basename (element.url));
+
+ copy_file (element.url, absolute_path);
+
+ writer.image (relative_path, (caption == null || caption == "") ? "" : caption);
+ }
+}
+
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]