valadoc r7 - in trunk/src: doclets/devhelp/doclet doclets/devhelp/linkhelper doclets/html/doclet doclets/valadoc.org/doclet libvaladoc valadoc
- From: flobrosch svn gnome org
- To: svn-commits-list gnome org
- Subject: valadoc r7 - in trunk/src: doclets/devhelp/doclet doclets/devhelp/linkhelper doclets/html/doclet doclets/valadoc.org/doclet libvaladoc valadoc
- Date: Fri, 31 Oct 2008 01:40:34 +0000 (UTC)
Author: flobrosch
Date: Fri Oct 31 01:40:34 2008
New Revision: 7
URL: http://svn.gnome.org/viewvc/valadoc?rev=7&view=rev
Log:
- devhelp-doclet: cleanups, new output structure
- valadoc.org-doclet: cleanups
- html-doclet: cleanups
Modified:
trunk/src/doclets/devhelp/doclet/Makefile.am
trunk/src/doclets/devhelp/doclet/template.vala
trunk/src/doclets/devhelp/linkhelper/Makefile.am
trunk/src/doclets/devhelp/linkhelper/helper.vala
trunk/src/doclets/html/doclet/template.vala
trunk/src/doclets/valadoc.org/doclet/template.vala
trunk/src/libvaladoc/doctree.vala
trunk/src/libvaladoc/settings.vala
trunk/src/valadoc/valadoc.vala
Modified: trunk/src/doclets/devhelp/doclet/Makefile.am
==============================================================================
--- trunk/src/doclets/devhelp/doclet/Makefile.am (original)
+++ trunk/src/doclets/devhelp/doclet/Makefile.am Fri Oct 31 01:40:34 2008
@@ -18,7 +18,7 @@
-docletdir = $(libdir)/valadoc/plugins/valadoc.org/
+docletdir = $(libdir)/valadoc/plugins/devhelp/
doclet_LTLIBRARIES = libdoclet.la
Modified: trunk/src/doclets/devhelp/doclet/template.vala
==============================================================================
--- trunk/src/doclets/devhelp/doclet/template.vala (original)
+++ trunk/src/doclets/devhelp/doclet/template.vala Fri Oct 31 01:40:34 2008
@@ -26,26 +26,6 @@
-
-private string get_full_name ( Basic element ) {
- if ( element.name == null )
- return "";
-
- GLib.StringBuilder str = new GLib.StringBuilder ( "" );
-
- for ( var pos = element; pos != null ; pos = pos.parent ) {
- str.prepend ( pos.name );
- if ( pos.parent is File || pos.parent.name == null )
- return str.str;
- else
- str.prepend_unichar ( '.' );
- }
- return str.str;
-}
-
-
-
-
public class Valadoc.LangletIndex : Valadoc.Langlet, Valadoc.LinkHelper {
public Valadoc.Settings settings {
construct set;
@@ -78,7 +58,7 @@
return ;
}
- string typename = get_full_name ( datatype );
+ string typename = datatype.full_name ( );
if ( datatype.parent.name == null && (datatype is Class || datatype is Struct) ) {
if ( this.is_basic_type ( typename ) ) {
string link = this.get_link( datatype );
@@ -167,30 +147,6 @@
this.write_nested_type_referene ( type_reference, file );
file.putc ( ' ' );
-
- /*
- if ( type_reference.is_weak ) {
- file.printf ( "<font class=\"%s\">weak</font> ", css_keyword );
- }
-
- this.write_type_name ( type_reference.data_type, file );
-
- if ( type_reference.is_array ) {
- string str = string.nfill ( type_reference.array_rank-1, ',');
- file.printf ( "[%s]", str );
- }
-
- if ( type_reference.pass_ownership ) {
- file.putc ( '#' );
- }
-
- if ( type_reference.is_nullable ) {
- file.putc ( '?' );
- }
-
- string str = string.nfill ( type_reference.pointer_rank, '*' );
- file.puts ( str );
- */
}
private void write_formal_parameter ( FormalParameter param, GLib.FileStream file ) {
@@ -516,52 +472,54 @@
+public enum KeywordType {
+ NAMESPACE = 0,
+ CLASS = 1,
+ DELEGATE = 2,
+ INTERFACE = 3,
+ ERRORDOMAIN = 4,
+
+ CONSTANT = 5,
+ ENUM = 6,
+ FUNCTION = 7,
+ MACRO = 8,
+ PROPERTY = 9,
+ SIGNAL = 10,
+ STRUCT = 11,
+ TYPEDEF = 12,
+ UNION = 13,
+ VARIABLE = 14,
+ UNSET = 15
+}
-
-
-
-public class Valadoc.HtmlDoclet : Valadoc.Doclet, Valadoc.LinkHelper {
- private Valadoc.LangletIndex langlet;
-
- private string current_path = null;
- private bool is_vapi = false;
-
-
-
- // xml:
- private Xml.Doc devhelp = null;
+public class DevhelpFormat : Object {
+ private Xml.Doc* devhelp = null;
private Xml.Node* functions = null;
private Xml.Node* chapters = null;
private Xml.Node* current = null;
- private void devhelp_add_chapter_start () {
- }
-
- private void devhelp_add_chapter () {
+ ~DevhelpFormat ( ) {
+ delete this.devhelp;
}
- private void devhelp_add_chapter_end () {
+ public void save_file ( string path ) {
+ Xml.Doc.save_format_file ( path, this.devhelp, 1 );
}
+ construct {
+ this.devhelp = new Xml.Doc ( "1.0" );
+ Xml.Node* root = new Xml.Node ( null, "book" ); // may cause an crash! string#
+ this.devhelp->set_root_element( root );
+ root->new_prop ( "xmlns", "http://www.devhelp.net/book" );
+ root->new_prop ( "title", "GLib Reference Manual" ); // >>> Change the title!
+ root->new_prop ( "link", "index.html" );
+ root->new_prop ( "author", "" );
+ root->new_prop ( "name", "glib" ); // >>> name
+ root->new_prop ( "version", "2" ); // >>> version
- private enum KeywordType {
- NAMESPACE = 0,
- CLASS = 1,
- DELEGATE = 2,
- INTERFACE = 3,
- ERRORDOMAIN = 4,
-
- CONSTANT = 5,
- ENUM = 6,
- FUNCTION = 7,
- MACRO = 8,
- PROPERTY = 9,
- SIGNAL = 10,
- STRUCT = 11,
- TYPEDEF = 12,
- UNION = 13,
- VARIABLE = 14,
- UNSET = 15
+ this.current = root->new_child ( null, "chapters" );
+ this.functions = root->new_child ( null, "functions" );
+ this.chapters = this.current;
}
private const string[] keyword_type_strings = {
@@ -583,38 +541,111 @@
""
};
- private void devhelp_add_keyword ( KeywordType type, string name, string link ) {
+ private Xml.Node* find_child_node ( Xml.Node* element, string name ) {
+ for ( Xml.Node* pos = element->children; pos != null ; pos = pos->next ) {
+ if ( name == pos->get_prop ( name ) ) {
+ return pos;
+ }
+ }
+
+ return null;
+ }
+
+ private Xml.Node* get_node ( string full_name ) {
+ Xml.Node* cur = this.functions;
+ string[] path = full_name.split ( "." );
+
+ for ( int i = 0; path[i] != null ; i++ ) {
+ cur = this.find_child_node ( cur, path[i] );
+ if ( cur == null ) {
+ return null;
+ }
+ }
+
+ return null;
+ }
+
+ public void devhelp_add_chapter_start ( string name, string link ) {
+ this.current = this.current->new_child ( null, "sub" );
+ this.current->new_prop ( "name", name );
+ this.current->new_prop ( "link", link );
+ }
+
+ public void devhelp_add_chapter_end () {
+ this.current = this.current->parent;
+ }
+
+ public void devhelp_add_chapter ( string name, string link ) {
+ this.devhelp_add_chapter_start ( name, link );
+ this.devhelp_add_chapter_end ();
+ }
+
+ public void devhelp_add_keyword ( KeywordType type, string name, string link ) {
Xml.Node* keyword = this.functions->new_child ( null, "keyword" );
keyword->new_prop ( "type", keyword_type_strings[(int)type] );
keyword->new_prop ( "name", name );
keyword->new_prop ( "link", link );
}
+}
- private string get_full_path ( Basic element ) {
- if ( element.name == null )
- return "";
+public class Valadoc.HtmlDoclet : Valadoc.Doclet, Valadoc.LinkHelper {
+ private Valadoc.LangletIndex langlet;
- GLib.StringBuilder str = new GLib.StringBuilder ( "" );
+ private DevhelpFormat devhelp;
- for ( var pos = element; pos != null ; pos = pos.parent ) {
- if ( pos is File )
- break;
+ private const string css_style_body = "site_body";
+ private const string css_site_header = "site_header";
+ private string package_dir_name = "";
- str.prepend_unichar ( '/' );
+ private void write_file_header_template ( GLib.FileStream file, string title ) {
+ file.puts ( "<html>\n" );
+ file.puts ( "\t<head>\n" );
+ file.puts ( "\t\t<title>Vala Binding Reference</title>\n" );
+ file.printf ( "\t\t<link href=\"../style.css\" rel=\"stylesheet\" type=\"text/css\" />\n" );
+ file.puts ( "\t</head>\n" );
+ file.puts ( "\t<body>\n\n" );
- if ( pos.name == null )
- str.prepend ( "0" );
- else
- str.prepend ( pos.name );
- }
+ file.printf ( "\t<div class=\"%s\">\n", this.css_site_header );
+ file.printf ( "\t\t%s Reference Manual\n", title );
+ file.puts ( "\t</div>\n\n" );
+
+ file.printf ( "\t\t<div class=\"%s\">\n", this.css_style_body );
+ }
+
+ private void write_file_footer ( GLib.FileStream file ) {
+ file.puts ( "\t</div>\n" );
+
+ file.puts ( "\t<div style= \"clear: left\">\n" );
+ file.puts ( "\t\t<br />\n" );
+ file.puts ( "\t\t<div class=\"site_foother\">\n" );
+ file.puts ( "\t\t\tcreated by <a href=\"http://www.valadoc.org\">valadoc</a>\n" );
+ file.puts ( "\t\t</div>\n" );
+ file.puts ( "\t</div>\n" );
+ file.puts ( "\t</body>\n" );
+ file.puts ( "</html>" );
+ }
+
+ private string get_path ( Valadoc.Basic element ) {
+ return element.full_name () + ".html";
+ }
- string file_path = get_file_name ( element );
- string package_name = get_package_name ( file_path ) + "/";
+ private string get_real_path ( Valadoc.Basic element ) {
+ return this.settings.get_real_path ( ) + "/" + this.package_dir_name + "/" + element.full_name () + ".html";
+ }
- str.prepend ( package_name );
- str.append_unichar ( '/' );
- return str.str;
+ private string get_img_path ( Valadoc.Basic element ) {
+ return "img/" + element.full_name () + ".png";
+ }
+
+ private string get_img_real_path ( Valadoc.Basic element ) {
+ return this.settings.get_real_path ( ) + "/" + this.package_dir_name + "/" + "img/" + element.full_name () + ".png";
+ }
+
+ ~HtmlDoclet ( ) {
+ this.devhelp.save_file ( this.settings.get_real_path () + "/" + vala_file_package_name + "/" + vala_file_package_name + ".devhelp2" );
+
+// this.devhelp.save_file ( this.settings.get_real_path () + "/devhelp2.xml" );
}
public Valadoc.Settings settings {
@@ -626,60 +657,60 @@
this.settings = settings;
var rt = DirUtils.create ( this.settings.path, 0777 );
- this.langlet = new Valadoc.LangletIndex ( settings );
+ rt = DirUtils.create ( this.settings.path + settings.package_name, 0777 );
- this.devhelp = new Xml.Doc ( "1.0" );
- this.devhelp.encoding = "utf-8";
- this.devhelp.standalone = 0;
-
-
- Xml.Node* root = new Xml.Node ( null, "book" ); // may cause an crash; string#
- this.devhelp.set_root_element( root );
- root->new_prop ( "xmlns", "http://www.devhelp.net/book" );
- root->new_prop ( "title", "GLib Reference Manual" ); // >>> Change the title!
- root->new_prop ( "link", "index.html" );
- root->new_prop ( "author", "" );
- root->new_prop ( "name", "glib" ); // >>> name
- root->new_prop ( "version", "2" ); // >>> version
-
- this.current = root->new_child ( null, "chapters" );
- this.functions = root->new_child ( null, "functions" );
- this.chapters = this.current;
+ this.langlet = new Valadoc.LangletIndex ( settings );
+ this.devhelp = new DevhelpFormat ();
}
private void write_image_block ( GLib.FileStream file, DataType element ) {
- string realimgpath = this.current_path + "tree.png";
- string imgpath = "docs/" + get_full_path ( element ) + "tree.png";
+ string rpath = this.get_img_real_path ( element );
+ string path = this.get_img_path ( element );
if ( element is Class ) {
- Diagrams.write_class_diagram ( (Class)element, realimgpath );
+ Diagrams.write_class_diagram ( (Class)element, rpath );
}
else if ( element is Interface ) {
- Diagrams.write_interface_diagram ( (Interface)element, realimgpath );
+ Diagrams.write_interface_diagram ( (Interface)element, rpath );
}
else if ( element is Struct ) {
- Diagrams.write_struct_diagram ( (Struct)element, realimgpath );
+ Diagrams.write_struct_diagram ( (Struct)element, rpath );
}
file.printf ( "<h2 cass=\"%s\">Object Hierarchy:</h2>\n", css_title );
- file.printf ( "<img cass=\"%s\" src=\"%s\"/>\n", css_diagram, imgpath );
+ file.printf ( "<img cass=\"%s\" src=\"%s\"/>\n", css_diagram, path );
}
+ private string vala_file_package_name;
+ private bool visited_non_package = false;
+
public override void visit_file ( File file ) {
- string package_name = this.get_package_name ( file.name );
- this.is_vapi = file.name.has_suffix (".vapi");
+ string pkg_name = get_package_name ( file.name );
+ string path = this.settings.get_real_path () + pkg_name + "/";
+ this.package_dir_name = pkg_name;
- string new_path = this.settings.path + package_name + "/";
- bool dir_exists = FileUtils.test ( new_path, FileTest.EXISTS);
+ if ( file.is_package == true ) {
+ var rt = DirUtils.create ( path, 0777 );
+ rt = DirUtils.create ( path + "img/", 0777 );
+ DevhelpFormat tmp = this.devhelp;
- if ( !dir_exists ) {
- var rt = DirUtils.create ( new_path, 0777 );
- }
+ this.devhelp = new DevhelpFormat ();
+ file.visit_namespaces ( this );
+
+ this.devhelp.save_file ( path + pkg_name + ".devhelp2" );
+ this.devhelp = tmp;
+ }
+ else {
+ if ( !visited_non_package ) {
+ this.vala_file_package_name = pkg_name;
+ var rt = DirUtils.create ( path, 0777 );
+ rt = DirUtils.create ( path + "img/", 0777 );
+ }
- this.current_path = new_path;
- file.visit_namespaces ( this );
- this.current_path = null;
+ file.visit_namespaces ( this );
+ this.visited_non_package = true;
+ }
}
public void write_namespace_content ( GLib.FileStream file, Namespace ns ) {
@@ -690,27 +721,20 @@
}
public override void visit_namespace ( Namespace ns ) {
- string old_path = this.current_path;
+ string rpath = this.get_real_path ( ns );
+ string path = this.get_path ( ns );
- if ( ns.name == null ) {
- string tmp = this.current_path + "0/";
- this.current_path = tmp;
- }
- else {
- string tmp = this.current_path + ns.name + "/";
- this.current_path = tmp;
- }
-
- bool dir_exists = FileUtils.test ( this.current_path, FileTest.EXISTS);
- if ( !dir_exists ) {
- var rt = DirUtils.create ( this.current_path, 0777 );
+ bool file_exists = FileUtils.test ( rpath, FileTest.EXISTS);
+ if ( !file_exists ) {
+ this.devhelp.devhelp_add_keyword ( KeywordType.NAMESPACE, ns.name, path );
- GLib.FileStream file = GLib.FileStream.open ( this.current_path + "index.html", "w" );
+ GLib.FileStream file = GLib.FileStream.open ( rpath, "w" );
+ this.write_file_header_template ( file, ns.full_name() );
this.write_namespace_content ( file, ns );
+ this.write_file_footer ( file );
file = null;
}
-
// file:
ns.visit_namespaces ( this );
ns.visit_enums ( this );
@@ -722,8 +746,6 @@
ns.visit_constants ( this );
ns.visit_fields ( this );
ns.visit_methods ( this );
-
- this.current_path = old_path;
}
private void write_child_classes ( GLib.FileStream file, ClassHandler clh ) {
@@ -885,7 +907,7 @@
}
public void write_interface_content ( GLib.FileStream file, Interface iface ) {
- string full_name = get_full_name ( iface );
+ string full_name = iface.full_name ( );
file.printf ( "<h1 class=\"%s\">%s:</h1>\n", css_title, full_name );
file.printf ( "<hr class=\"%s\" />\n", css_headline_hr );
@@ -907,9 +929,11 @@
}
public override void visit_interface ( Interface iface ) {
- string old_path = this.current_path;
- this.current_path += iface.name + "/";
- var rt = DirUtils.create ( this.current_path, 0777 );
+ string rpath = this.get_real_path ( iface );
+ string path = this.get_path ( iface );
+
+
+ this.devhelp.devhelp_add_chapter_start ( iface.name, path );
iface.visit_properties ( this );
iface.visit_delegates ( this );
@@ -920,15 +944,19 @@
iface.visit_structs ( this );
iface.visit_classes ( this );
- GLib.FileStream file = GLib.FileStream.open ( this.current_path + "index.html", "w");
+ this.devhelp.devhelp_add_chapter_end ( );
+
+ this.devhelp.devhelp_add_keyword ( KeywordType.INTERFACE, iface.name, path );
+
+ GLib.FileStream file = GLib.FileStream.open ( rpath, "w");
+ this.write_file_header_template ( file, iface.full_name() );
this.write_interface_content ( file, iface );
+ this.write_file_footer ( file );
file = null;
-
- this.current_path = old_path;
}
public void write_class_content ( GLib.FileStream file, Class cl ) {
- string full_name = get_full_name ( cl );
+ string full_name = cl.full_name ( );
file.printf ( "<h1 class=\"%s\">%s:</h1>\n", css_title, full_name );
file.printf ( "<hr class=\"%s\" />\n", css_headline_hr );
@@ -956,9 +984,12 @@
}
public override void visit_class ( Class cl ) {
- string old_path = this.current_path;
- this.current_path += cl.name + "/";
- var rt = DirUtils.create ( this.current_path, 0777 );
+ string rpath = this.get_real_path ( cl );
+ string path = this.get_path ( cl );
+
+
+ this.devhelp.devhelp_add_keyword ( KeywordType.CLASS, cl.name, path );
+ this.devhelp.devhelp_add_chapter_start ( cl.name, path );
cl.visit_enums ( this );
cl.visit_classes ( this );
@@ -971,15 +1002,18 @@
cl.visit_properties ( this );
cl.visit_signals ( this );
- GLib.FileStream file = GLib.FileStream.open ( this.current_path + "index.html", "w");
+ this.devhelp.devhelp_add_chapter_end ( );
+
+
+ GLib.FileStream file = GLib.FileStream.open ( rpath, "w");
+ this.write_file_header_template ( file, cl.full_name() );
this.write_class_content ( file, cl );
+ this.write_file_footer ( file );
file = null;
-
- this.current_path = old_path;
}
public void write_struct_content ( GLib.FileStream file, Struct stru ) {
- string full_name = get_full_name ( stru );
+ string full_name = stru.full_name ( );
file.printf ( "<h1 class=\"%s\">%s:</h1>\n", css_title, full_name );
file.printf ( "<hr class=\"%s\" />\n", css_headline_hr );
@@ -1001,24 +1035,30 @@
}
public override void visit_struct ( Struct stru ) {
- string old_path = this.current_path;
- this.current_path += stru.name + "/";
- var rt = DirUtils.create ( this.current_path, 0777 );
-
+ string rpath = this.get_real_path ( stru );
+ string path = this.get_path ( stru );
+
+
+ this.devhelp.devhelp_add_keyword ( KeywordType.STRUCT, stru.name, path );
+ this.devhelp.devhelp_add_chapter_start ( stru.name, path );
+
stru.visit_constants ( this );
stru.visit_fields ( this );
stru.visit_construction_methods ( this );
stru.visit_methods ( this );
- GLib.FileStream file = GLib.FileStream.open ( this.current_path + "index.html", "w");
+ this.devhelp.devhelp_add_chapter_end ( );
+
+
+ GLib.FileStream file = GLib.FileStream.open ( rpath, "w");
+ this.write_file_header_template ( file, stru.full_name() );
this.write_struct_content ( file, stru );
+ this.write_file_footer ( file );
file = null;
-
- this.current_path = old_path;
}
public void write_error_domain_content ( GLib.FileStream file, ErrorDomain errdom ) {
- string full_name = get_full_name ( errdom );
+ string full_name = errdom.full_name ( );
file.printf ( "<h1 class=\"%s\">%s:</h1>\n", css_title, full_name );
file.printf ( "<hr class=\"%s\" />\n", css_headline_hr );
file.printf ( "<h2 class=\"%s\">Description:</h2>\n", css_title );
@@ -1031,21 +1071,23 @@
}
public override void visit_error_domain ( ErrorDomain errdom ) {
- string old_path = this.current_path;
- this.current_path += errdom.name + "/";
- var rt = DirUtils.create ( this.current_path, 0777 );
+ string rpath = this.get_real_path ( errdom );
+ string path = this.get_path ( errdom );
errdom.visit_methods ( this );
- GLib.FileStream file = GLib.FileStream.open ( this.current_path + "index.html", "w");
+ this.devhelp.devhelp_add_keyword ( KeywordType.ERRORDOMAIN, errdom.name, path );
+ this.devhelp.devhelp_add_chapter ( errdom.name, path );
+
+ GLib.FileStream file = GLib.FileStream.open ( rpath, "w");
+ this.write_file_header_template ( file, errdom.full_name() );
this.write_error_domain_content ( file, errdom );
+ this.write_file_footer ( file );
file = null;
-
- this.current_path = old_path;
}
public void write_enum_content ( GLib.FileStream file, Enum en ) {
- string full_name = get_full_name ( en );
+ string full_name = en.full_name ( );
file.printf ( "<h1 class=\"%s\">%s:</h1>\n", css_title, full_name );
file.printf ( "<hr class=\"%s\" />\n", css_headline_hr );
file.printf ( "<h2 class=\"%s\">Description:</h2>\n", css_title );
@@ -1058,22 +1100,23 @@
}
public override void visit_enum ( Enum en ) {
- string old_path = this.current_path;
- this.current_path += en.name + "/";
- var rt = DirUtils.create ( this.current_path, 0777 );
+ string rpath = this.get_real_path ( en );
+ string path = this.get_path ( en );
en.visit_enum_values ( this );
en.visit_methods ( this );
- GLib.FileStream file = GLib.FileStream.open ( this.current_path + "index.html", "w");
+ this.devhelp.devhelp_add_keyword ( KeywordType.ENUM, en.name, path );
+ this.devhelp.devhelp_add_chapter ( en.name, path );
+
+ GLib.FileStream file = GLib.FileStream.open ( rpath, "w");
this.write_enum_content ( file, en );
+ this.write_file_footer ( file );
file = null;
-
- this.current_path = old_path;
}
public void write_property_content ( GLib.FileStream file, Property prop ) {
- string full_name = get_full_name ( prop );
+ string full_name = prop.full_name ( );
file.printf ( "<h1 class=\"%s\">%s:</h1>\n", css_title, full_name );
file.printf ( "<hr class=\"%s\" />\n", css_headline_hr );
file.printf ( "<h2 class=\"%s\">Description:</h2>\n", css_title );
@@ -1105,16 +1148,21 @@
}
public override void visit_property ( Property prop ) {
- string path = this.current_path + prop.name + "/";
- var rt = DirUtils.create ( path, 0777 );
+ string rpath = this.get_real_path ( prop );
+ string path = this.get_path ( prop );
- GLib.FileStream file = GLib.FileStream.open ( path + "index.html", "w");
+ this.devhelp.devhelp_add_keyword ( KeywordType.PROPERTY, prop.name, path );
+ this.devhelp.devhelp_add_chapter ( prop.name, path );
+
+ GLib.FileStream file = GLib.FileStream.open ( rpath, "w");
+ this.write_file_header_template ( file, prop.full_name() );
this.write_property_content ( file, prop );
+ this.write_file_footer ( file );
file = null;
}
public void write_constant_content ( GLib.FileStream file, Constant constant, ConstantHandler parent ) {
- string full_name = get_full_name ( constant );
+ string full_name = constant.full_name ( );
file.printf ( "<h1 class=\"%s\">%s:</h1>\n", css_title, full_name );
file.printf ( "<hr class=\"%s\" />\n", css_headline_hr );
file.printf ( "<h2 class=\"%s\">Description:</h2>\n", css_title );
@@ -1129,16 +1177,21 @@
}
public override void visit_constant ( Constant constant, ConstantHandler parent ) {
- string path = this.current_path + constant.name + "/";
- var rt = DirUtils.create ( path, 0777 );
+ string rpath = this.get_real_path ( constant );
+ string path = this.get_path ( constant );
+
+ this.devhelp.devhelp_add_keyword ( KeywordType.VARIABLE, constant.name, path );
+ this.devhelp.devhelp_add_chapter ( constant.name, path );
- GLib.FileStream file = GLib.FileStream.open ( path + "index.html", "w");
+ GLib.FileStream file = GLib.FileStream.open ( rpath, "w");
+ this.write_file_header_template ( file, constant.full_name() );
this.write_constant_content ( file, constant, parent );
+ this.write_file_footer ( file );
file = null;
}
public void write_field_content ( GLib.FileStream file, Field field, FieldHandler parent ) {
- string full_name = get_full_name ( field );
+ string full_name = field.full_name ( );
file.printf ( "<h1 class=\"%s\">%s:</h1>\n", css_title, full_name );
file.printf ( "<hr class=\"%s\" />\n", css_headline_hr );
file.printf ( "<h2 class=\"%s\">Description:</h2>\n", css_title );
@@ -1153,11 +1206,16 @@
}
public override void visit_field ( Field field, FieldHandler parent ) {
- string path = this.current_path + field.name + "/";
- var rt = DirUtils.create ( path, 0777 );
+ string rpath = this.get_real_path ( field );
+ string path = this.get_path ( field );
- GLib.FileStream file = GLib.FileStream.open ( path + "index.html", "w");
+ this.devhelp.devhelp_add_keyword ( KeywordType.VARIABLE, field.name, path );
+ this.devhelp.devhelp_add_chapter ( field.name, path );
+
+ GLib.FileStream file = GLib.FileStream.open ( rpath, "w");
+ this.write_file_header_template ( file, field.full_name() );
this.write_field_content ( file, field, parent );
+ this.write_file_footer ( file );
file = null;
}
@@ -1168,7 +1226,7 @@
}
public void write_delegate_content ( GLib.FileStream file, Delegate del ) {
- string full_name = get_full_name ( del );
+ string full_name = del.full_name ( );
file.printf ( "<h1 class=\"%s\">%s:</h1>\n", css_title, full_name );
file.printf ( "<hr class=\"%s\" />\n", css_headline_hr );
file.printf ( "<h2 class=\"%s\">Description:</h2>\n", css_title );
@@ -1183,16 +1241,21 @@
}
public override void visit_delegate ( Delegate del ) {
- string path = this.current_path + del.name + "/";
- var rt = DirUtils.create ( path, 0777 );
+ string rpath = this.get_real_path ( del );
+ string path = this.get_path ( del );
+
+ this.devhelp.devhelp_add_keyword ( KeywordType.DELEGATE, del.name, path );
+ this.devhelp.devhelp_add_chapter ( del.name, path );
- GLib.FileStream file = GLib.FileStream.open ( path + "index.html", "w");
+ GLib.FileStream file = GLib.FileStream.open ( rpath, "w");
+ this.write_file_header_template ( file, del.full_name() );
this.write_delegate_content ( file, del );
+ this.write_file_footer ( file );
file = null;
}
public void write_signal_content ( GLib.FileStream file, Signal sig ) {
- string full_name = get_full_name ( sig );
+ string full_name = sig.full_name ( );
file.printf ( "<h1 class=\"%s\">%s:</h1>\n", css_title, full_name );
file.printf ( "<hr class=\"%s\" />\n", css_headline_hr );
file.printf ( "<h2 class=\"%s\">Description:</h2>\n", css_title );
@@ -1203,16 +1266,21 @@
}
public override void visit_signal ( Signal sig ) {
- string path = this.current_path + sig.name + "/";
- var rt = DirUtils.create ( path, 0777 );
+ string rpath = this.get_real_path ( sig );
+ string path = this.get_path ( sig );
- GLib.FileStream file = GLib.FileStream.open ( path + "index.html", "w");
+ this.devhelp.devhelp_add_keyword ( KeywordType.SIGNAL, sig.name, path );
+ this.devhelp.devhelp_add_chapter ( sig.name, path );
+
+ GLib.FileStream file = GLib.FileStream.open ( rpath, "w");
+ this.write_file_header_template ( file, sig.full_name() );
write_signal_content ( file, sig );
+ this.write_file_footer ( file );
file = null;
}
public void write_method_content ( GLib.FileStream file, Method m , Valadoc.MethodHandler parent ) {
- string full_name = get_full_name ( m );
+ string full_name = m.full_name ( );
file.printf ( "<h1 class=\"%s\">%s:</h1>\n", css_title, full_name );
file.printf ( "<hr class=\"%s\" />\n", css_headline_hr );
file.printf ( "<h2 class=\"%s\">Description:</h2>\n", css_title );
@@ -1227,12 +1295,16 @@
}
public override void visit_method ( Method m, Valadoc.MethodHandler parent ) {
- string path = this.current_path + m.name + "/";
- string full_name = get_full_name ( m );
- var rt = DirUtils.create ( path, 0777 );
+ string rpath = this.get_real_path ( m );
+ string path = this.get_path ( m );
+
+ this.devhelp.devhelp_add_keyword ( KeywordType.FUNCTION, m.name, path );
+ this.devhelp.devhelp_add_chapter ( m.name, path );
- GLib.FileStream file = GLib.FileStream.open ( path + "index.html", "w");
+ GLib.FileStream file = GLib.FileStream.open ( rpath, "w");
+ this.write_file_header_template ( file, m.full_name() );
this.write_method_content ( file, m, parent );
+ this.write_file_footer ( file );
file = null;
}
}
Modified: trunk/src/doclets/devhelp/linkhelper/Makefile.am
==============================================================================
--- trunk/src/doclets/devhelp/linkhelper/Makefile.am (original)
+++ trunk/src/doclets/devhelp/linkhelper/Makefile.am Fri Oct 31 01:40:34 2008
@@ -16,7 +16,7 @@
-htmlhelperdir = $(libdir)/valadoc/plugins/valadoc.org/
+htmlhelperdir = $(libdir)/valadoc/plugins/devhelp/
htmlhelper_LTLIBRARIES = libhtmlhelper.la
Modified: trunk/src/doclets/devhelp/linkhelper/helper.vala
==============================================================================
--- trunk/src/doclets/devhelp/linkhelper/helper.vala (original)
+++ trunk/src/doclets/devhelp/linkhelper/helper.vala Fri Oct 31 01:40:34 2008
@@ -131,38 +131,7 @@
}
protected string? get_link ( Valadoc.Basic tag ) {
-// if ( !this.settings.to_doc( tag.file_name ) )
-// return null;
-
- GLib.StringBuilder str = new GLib.StringBuilder ( "" );
- Valadoc.Basic pos = tag;
-
- if ( tag is Valadoc.File == false ) {
- if ( tag is Valadoc.EnumValue || tag is Valadoc.ErrorCode ) {
- str.append_unichar ( '#' );
- str.append ( tag.name );
- pos = pos.parent;
- }
-
- while ( pos != null ) {
- if ( pos.name == null )
- str.prepend ( "0" );
- else
- str.prepend ( pos.name );
-
- str.prepend ( "::" );
-
- if ( pos.parent is Valadoc.File )
- break;
-
- pos = pos.parent;
- }
- }
- string filename = this.get_file_name ( tag );
- string package_name = this.get_package_name ( filename );
- str.prepend ( package_name );
- str.prepend ( "?path=" );
- return str.str;
+ return "../" + this.get_package_name ( tag.file.name ) + "/" + tag.full_name () + ".html";
}
}
Modified: trunk/src/doclets/html/doclet/template.vala
==============================================================================
--- trunk/src/doclets/html/doclet/template.vala (original)
+++ trunk/src/doclets/html/doclet/template.vala Fri Oct 31 01:40:34 2008
@@ -25,17 +25,6 @@
-public enum WriterState {
- KEY,
- STANDARD,
- NULL
-}
-
-
-
-
-
-
public class Valadoc.LangletIndex : Valadoc.Langlet, Valadoc.LinkHelper {
@@ -297,7 +286,6 @@
file.puts ( "<" ); // <
-
foreach ( TypeParameter param in lst ) {
param.write ( this, file );
if ( lst.size > i )
Modified: trunk/src/doclets/valadoc.org/doclet/template.vala
==============================================================================
--- trunk/src/doclets/valadoc.org/doclet/template.vala (original)
+++ trunk/src/doclets/valadoc.org/doclet/template.vala Fri Oct 31 01:40:34 2008
@@ -22,30 +22,6 @@
using Gee;
-public enum WriterState {
- KEY,
- STANDARD,
- NULL
-}
-
-
-
-
-private string get_full_name ( Basic element ) {
- if ( element.name == null )
- return "";
-
- GLib.StringBuilder str = new GLib.StringBuilder ( "" );
-
- for ( var pos = element; pos != null ; pos = pos.parent ) {
- str.prepend ( pos.name );
- if ( pos.parent is File || pos.parent.name == null )
- return str.str;
- else
- str.prepend_unichar ( '.' );
- }
- return str.str;
-}
@@ -82,7 +58,7 @@
return ;
}
- string typename = get_full_name ( datatype );
+ string typename = datatype.full_name ();
if ( datatype.parent.name == null && (datatype is Class || datatype is Struct) ) {
if ( this.is_basic_type ( typename ) ) {
string link = this.get_link( datatype );
@@ -1478,7 +1454,7 @@
}
public void write_interface_content ( GLib.FileStream file, Interface iface ) {
- string full_name = get_full_name ( iface );
+ string full_name = iface.full_name ();
file.printf ( "<h1 class=\"%s\">%s:</h1>\n", css_title, full_name );
file.printf ( "<hr class=\"%s\" />\n", css_headline_hr );
@@ -1529,7 +1505,7 @@
}
public void write_class_content ( GLib.FileStream file, Class cl ) {
- string full_name = get_full_name ( cl );
+ string full_name = cl.full_name ( );
file.printf ( "<h1 class=\"%s\">%s:</h1>\n", css_title, full_name );
file.printf ( "<hr class=\"%s\" />\n", css_headline_hr );
@@ -1588,7 +1564,7 @@
}
public void write_struct_content ( GLib.FileStream file, Struct stru ) {
- string full_name = get_full_name ( stru );
+ string full_name = stru.full_name ();
file.printf ( "<h1 class=\"%s\">%s:</h1>\n", css_title, full_name );
file.printf ( "<hr class=\"%s\" />\n", css_headline_hr );
@@ -1635,7 +1611,7 @@
}
public void write_error_domain_content ( GLib.FileStream file, ErrorDomain errdom ) {
- string full_name = get_full_name ( errdom );
+ string full_name = errdom.full_name ();
file.printf ( "<h1 class=\"%s\">%s:</h1>\n", css_title, full_name );
file.printf ( "<hr class=\"%s\" />\n", css_headline_hr );
file.printf ( "<h2 class=\"%s\">Description:</h2>\n", css_title );
@@ -1670,7 +1646,7 @@
}
public void write_enum_content ( GLib.FileStream file, Enum en ) {
- string full_name = get_full_name ( en );
+ string full_name = en.full_name ();
file.printf ( "<h1 class=\"%s\">%s:</h1>\n", css_title, full_name );
file.printf ( "<hr class=\"%s\" />\n", css_headline_hr );
file.printf ( "<h2 class=\"%s\">Description:</h2>\n", css_title );
@@ -1706,7 +1682,7 @@
}
public void write_property_content ( GLib.FileStream file, Property prop ) {
- string full_name = get_full_name ( prop );
+ string full_name = prop.full_name ();
file.printf ( "<h1 class=\"%s\">%s:</h1>\n", css_title, full_name );
file.printf ( "<hr class=\"%s\" />\n", css_headline_hr );
file.printf ( "<h2 class=\"%s\">Description:</h2>\n", css_title );
@@ -1760,7 +1736,7 @@
}
public void write_constant_content ( GLib.FileStream file, Constant constant, ConstantHandler parent ) {
- string full_name = get_full_name ( constant );
+ string full_name = constant.full_name ();
file.printf ( "<h1 class=\"%s\">%s:</h1>\n", css_title, full_name );
file.printf ( "<hr class=\"%s\" />\n", css_headline_hr );
file.printf ( "<h2 class=\"%s\">Description:</h2>\n", css_title );
@@ -1790,7 +1766,7 @@
}
public void write_field_content ( GLib.FileStream file, Field field, FieldHandler parent ) {
- string full_name = get_full_name ( field );
+ string full_name = field.full_name ();
file.printf ( "<h1 class=\"%s\">%s:</h1>\n", css_title, full_name );
file.printf ( "<hr class=\"%s\" />\n", css_headline_hr );
file.printf ( "<h2 class=\"%s\">Description:</h2>\n", css_title );
@@ -1841,7 +1817,7 @@
}
public void write_delegate_content ( GLib.FileStream file, Delegate del ) {
- string full_name = get_full_name ( del );
+ string full_name = del.full_name ();
file.printf ( "<h1 class=\"%s\">%s:</h1>\n", css_title, full_name );
file.printf ( "<hr class=\"%s\" />\n", css_headline_hr );
file.printf ( "<h2 class=\"%s\">Description:</h2>\n", css_title );
@@ -1875,7 +1851,7 @@
}
public void write_signal_content ( GLib.FileStream file, Signal sig ) {
- string full_name = get_full_name ( sig );
+ string full_name = sig.full_name ();
file.printf ( "<h1 class=\"%s\">%s:</h1>\n", css_title, full_name );
file.printf ( "<hr class=\"%s\" />\n", css_headline_hr );
file.printf ( "<h2 class=\"%s\">Description:</h2>\n", css_title );
@@ -1908,7 +1884,7 @@
}
public void write_method_content ( GLib.FileStream file, Method m , Valadoc.MethodHandler parent ) {
- string full_name = get_full_name ( m );
+ string full_name = m.full_name ();
file.printf ( "<h1 class=\"%s\">%s:</h1>\n", css_title, full_name );
file.printf ( "<hr class=\"%s\" />\n", css_headline_hr );
file.printf ( "<h2 class=\"%s\">Description:</h2>\n", css_title );
@@ -1924,7 +1900,7 @@
public override void visit_method ( Method m, Valadoc.MethodHandler parent ) {
string path = this.current_path + m.name + "/";
- string full_name = get_full_name ( m );
+ string full_name = m.full_name ();
var rt = DirUtils.create ( path, 0777 );
if ( this.is_vapi || m.parent is Namespace == false ) {
Modified: trunk/src/libvaladoc/doctree.vala
==============================================================================
--- trunk/src/libvaladoc/doctree.vala (original)
+++ trunk/src/libvaladoc/doctree.vala Fri Oct 31 01:40:34 2008
@@ -23,6 +23,69 @@
using Gee;
+//ported from glibc
+
+namespace Valadoc {
+ public string realpath (string name) {
+ string rpath;
+
+ if (name.get_char () != '/') {
+ // relative path
+ rpath = Environment.get_current_dir ();
+ }
+ else {
+ rpath = "/";
+ }
+
+ weak string start;
+ weak string end;
+
+ for (start = end = name; start.get_char () != 0; start = end) {
+ // skip sequence of multiple path-separators
+ while (start.get_char () == '/') {
+ start = start.next_char ();
+ }
+
+ // find end of path component
+ long len = 0;
+ for (end = start; end.get_char () != 0 && end.get_char () != '/'; end = end.next_char ()) {
+ len++;
+ }
+
+ if (len == 0) {
+ break;
+ }
+ else if (len == 1 && start.get_char () == '.') {
+ // do nothing
+ }
+ else if (len == 2 && start.has_prefix ("..")) {
+ // back up to previous component, ignore if at root already
+ if (rpath.len () > 1) {
+ do {
+ rpath = rpath.substring (0, rpath.len () - 1);
+ }
+ while (!rpath.has_suffix ("/"));
+ }
+ }
+ else {
+ if (!rpath.has_suffix ("/")) {
+ rpath += "/";
+ }
+
+ rpath += start.substring (0, len);
+ }
+ }
+
+ if (rpath.len () > 1 && rpath.has_suffix ("/")) {
+ rpath = rpath.substring (0, rpath.len () - 1);
+ }
+
+ return rpath;
+ }
+}
+
+
+
// private
public Valadoc.Class glib_error = null;
@@ -4109,6 +4172,12 @@
private get;
}
+ public bool is_package {
+ get {
+ return this.vfile.external_package;
+ }
+ }
+
public File ( Valadoc.Settings settings, Vala.SourceFile vfile, Tree head ) {
this.settings = settings;
this.vfile = vfile;
Modified: trunk/src/libvaladoc/settings.vala
==============================================================================
--- trunk/src/libvaladoc/settings.vala (original)
+++ trunk/src/libvaladoc/settings.vala Fri Oct 31 01:40:34 2008
@@ -22,6 +22,7 @@
public class Valadoc.Settings : Object {
public Gee.ArrayList<string> files;
+ private string rpath;
public string path = "documentation/";
public string package_name = null;
public bool _private = false;
@@ -29,6 +30,19 @@
public bool with_deps = false;
public bool add_inherited = false;
+ public string get_real_path () {
+ if ( rpath == null ) {
+ string path = realpath ( this.path );
+
+ if ( path.has_suffix ( "/" ) )
+ this.rpath = path;
+ else
+ this.rpath = path + "/";
+ }
+
+ return this.rpath;
+ }
+
public bool application {
get {
foreach ( string path in this.files ) {
Modified: trunk/src/valadoc/valadoc.vala
==============================================================================
--- trunk/src/valadoc/valadoc.vala (original)
+++ trunk/src/valadoc/valadoc.vala Fri Oct 31 01:40:34 2008
@@ -27,6 +27,8 @@
+
+
public class ValaDoc : Object {
private static string basedir;
private static string directory;
@@ -187,66 +189,6 @@
}
}
-
- //ported from glibc
- private static string realpath (string name) {
- string rpath;
-
- if (name.get_char () != '/') {
- // relative path
- rpath = Environment.get_current_dir ();
- }
- else {
- rpath = "/";
- }
-
- weak string start;
- weak string end;
-
- for (start = end = name; start.get_char () != 0; start = end) {
- // skip sequence of multiple path-separators
- while (start.get_char () == '/') {
- start = start.next_char ();
- }
-
- // find end of path component
- long len = 0;
- for (end = start; end.get_char () != 0 && end.get_char () != '/'; end = end.next_char ()) {
- len++;
- }
-
- if (len == 0) {
- break;
- }
- else if (len == 1 && start.get_char () == '.') {
- // do nothing
- }
- else if (len == 2 && start.has_prefix ("..")) {
- // back up to previous component, ignore if at root already
- if (rpath.len () > 1) {
- do {
- rpath = rpath.substring (0, rpath.len () - 1);
- }
- while (!rpath.has_suffix ("/"));
- }
- }
- else {
- if (!rpath.has_suffix ("/")) {
- rpath += "/";
- }
-
- rpath += start.substring (0, len);
- }
- }
-
- if (rpath.len () > 1 && rpath.has_suffix ("/")) {
- rpath = rpath.substring (0, rpath.len () - 1);
- }
-
- return rpath;
- }
-
-
private Gee.ArrayList<string> sort_sources ( ) {
var to_doc = new Gee.ArrayList<string>();
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]