diff --git a/Source/DocMakefile b/Source/DocMakefile
index f24ab3223..81e27f666 100644
--- a/Source/DocMakefile
+++ b/Source/DocMakefile
@@ -244,7 +244,8 @@ GCObject.h \
# directory.
#
Base_AGSDOC_FLAGS = \
- -MakeFrames YES \
+ -MakeFrames NO \
+ -IndexFile Base \
-DocumentationDirectory ../Documentation/Base \
-HeaderDirectory ../Headers/Foundation \
-Declared Foundation \
@@ -253,14 +254,14 @@ Base_AGSDOC_FLAGS = \
-ConstantsTemplate TypesAndConstants \
-FunctionsTemplate Functions \
-MacrosTemplate Functions \
- -StylesheetURL gnustepStyle \
-TypedefsTemplate TypesAndConstants \
-VariablesTemplate TypesAndConstants \
-WordMap '{\
}' -Up Base
BaseAdditions_AGSDOC_FLAGS = \
- -MakeFrames YES \
+ -MakeFrames NO \
+ -IndexFile BaseAdditions \
-DocumentationDirectory ../Documentation/BaseAdditions \
-HeaderDirectory ../Headers/GNUstepBase \
-Declared GNUstepBase \
diff --git a/Tools/AGSHtml.h b/Tools/AGSHtml.h
index b89e276e0..e8d9f9cff 100644
--- a/Tools/AGSHtml.h
+++ b/Tools/AGSHtml.h
@@ -50,6 +50,7 @@
unsigned sssect;
BOOL isContentsDoc;
BOOL ivarsAtEnd;
+ BOOL cssNavigation;
BOOL verbose;
BOOL warn;
}
@@ -61,6 +62,9 @@
- (NSString*) makeLink: (NSString*)r
ofType: (NSString*)t
isRef: (BOOL)f;
+- (NSString*) makeURL: (NSString*)r
+ ofType: (NSString*)t
+ isRef: (BOOL)f;
- (NSString*) makeLink: (NSString*)r
ofType: (NSString*)t
inUnit: (NSString*)u
diff --git a/Tools/AGSHtml.m b/Tools/AGSHtml.m
index 14e94851b..f3294c697 100644
--- a/Tools/AGSHtml.m
+++ b/Tools/AGSHtml.m
@@ -253,6 +253,7 @@ - (id) init
project = RETAIN([defs stringForKey: @"Project"]);
verbose = [defs boolForKey: @"Verbose"];
warn = [defs boolForKey: @"Warn"];
+ cssNavigation = [defs boolForKey: @"MakeFrames"] ? NO : YES;
}
return self;
}
@@ -261,7 +262,7 @@ - (id) init
* Calls -makeLink:ofType:isRef: or -makeLink:ofType:inUnit:isRef: to
* create the first part of an anchor, and fills in the text content
* of the anchor with n (the specified name). Returns an entire anchor
- * string as a result.
+ * string as a result.
* This method is used to create all the anchors in the html output.
*/
- (NSString*) makeAnchor: (NSString*)r
@@ -336,9 +337,9 @@ - (NSString*) makeURL: (NSString*)r
/**
* Make a link for the element r, with the specified type t,
* in a particular unit u. Only the start of
- * the html element is returned (<a ...>).
+ * the html element is returned (<a ...>).
* If the boolean f is YES, then the link is a reference to somewhere,
- * otherwise the link is an anchor for some element being output.
+ * otherwise the link is an anchor for some element being output.
* If there is an error, the method returns nil.
*/
- (NSString*) makeLink: (NSString*)r
@@ -431,12 +432,8 @@ - (NSString*) outputDocument: (GSXMLNode*)node name: (NSString*)file
buf = [NSMutableString stringWithCapacity: 4096];
/* Declaration */
- [buf appendString: @"\n"];
- [buf appendString: @"\n"];
+ [buf appendString: @"\n"];
+ [buf appendString: @"\n"];
[self incIndent];
[self outputNodeList: node to: buf];
@@ -447,6 +444,24 @@ - (NSString*) outputDocument: (GSXMLNode*)node name: (NSString*)file
return buf;
}
+/** Output all the nodes containing xml elements from this one onwards.
+ * Text and entity ref nodes are ignored (to remove whitespace etc
+ * between elements).
+ */
+- (void) outputElemList: (GSXMLNode*)node to: (NSMutableString*)buf
+{
+ while (node != nil)
+ {
+ GSXMLNode *next = [node nextElement];
+
+ if ([node type] == XML_ELEMENT_NODE)
+ {
+ [self outputNode: node to: buf];
+ }
+ node = next;
+ }
+}
+
- (void) outputIndex: (NSString*)type
scope: (NSString*)scope
title: (NSString*)title
@@ -459,7 +474,16 @@ - (void) outputIndex: (NSString*)type
NSArray *a;
unsigned c;
unsigned i;
- BOOL isBareStyle = [@"bare" isEqualToString: style];
+ BOOL isBareStyle = NO;
+
+ if ([@"bare" isEqualToString: style])
+ {
+ isBareStyle = YES;
+ }
+ else if ([@"cssNavigation" isEqualToString: style])
+ {
+ isBareStyle = YES;
+ }
if (globalRefs != nil && [scope isEqual: @"global"] == YES)
{
@@ -496,7 +520,9 @@ - (void) outputIndex: (NSString*)type
/* Put the index in a div with a class identifying its scope and type
* so that CSS can be used to style it.
*/
- [buf appendFormat: @"
\n", scope, type]; + [self incIndent]; if ([type isEqual: @"title"] == YES) { @@ -505,7 +531,9 @@ - (void) outputIndex: (NSString*)type if (!isBareStyle) { [buf appendString: indent]; - [buf appendFormat: @"%@ Index\n", title]; + [buf appendFormat: + @"