diff --git a/attribute.dd b/attribute.dd
index 94f7b425f1..9764fb77c9 100644
--- a/attribute.dd
+++ b/attribute.dd
@@ -129,7 +129,7 @@ extern (Windows):
$(LINK2 http://en.wikipedia.org/wiki/X86_calling_conventions, stdcall) convention.)
$(P Note that a lone $(D extern) declaration is used as a
- $(LINK2 declaration.html#extern, storage class).)
+ $(DDSUBLINK declaration, extern, storage class).)
$(H4 C++ $(LNAME2 namespace, Namespaces))
@@ -504,11 +504,11 @@ $(H3 $(LNAME2 disable, $(D @disable) Attribute))
}
---
- $(P $(LINK2 struct.html#Struct-Constructor, Disabling struct no-arg constructor)
+ $(P $(DDSUBLINK struct, Struct-Constructor, Disabling struct no-arg constructor)
disallows default construction of the struct.
)
- $(P $(LINK2 struct.html#StructPostblit, Disabling struct postblit)
+ $(P $(DDSUBLINK struct, StructPostblit, Disabling struct postblit)
makes the struct not copyable.
)
@@ -554,19 +554,19 @@ $(H3 $(LNAME2 nogc, $(D @nogc) Attribute))
$(H3 $(LNAME2 property, $(D @property) Attribute))
- $(P See $(LINK2 function.html#property-functions, Property Functions).)
+ $(P See $(DDSUBLINK function, property-functions, Property Functions).)
$(H3 $(LNAME2 nothrow, $(D nothrow) Attribute))
- $(P See $(LINK2 function.html#nothrow-functions, Nothrow Functions).)
+ $(P See $(DDSUBLINK function, nothrow-functions, Nothrow Functions).)
$(H3 $(LNAME2 pure, $(D pure) Attribute))
- $(P See $(LINK2 function.html#pure-functions, Pure Functions).)
+ $(P See $(DDSUBLINK function, pure-functions, Pure Functions).)
$(H3 $(LNAME2 ref, $(D ref) Attribute))
- $(P See $(LINK2 function.html#ref-functions, Ref Functions).)
+ $(P See $(DDSUBLINK function, ref-functions, Ref Functions).)
$(H3 $(LNAME2 override, $(D override) Attribute))
diff --git a/class.dd b/class.dd
index 71b3ffdb20..a1fcdd5824 100644
--- a/class.dd
+++ b/class.dd
@@ -913,7 +913,7 @@ new(1,2) Foo(a); // calls new(Foo.sizeof,1,2)
)
$(P See also
- $(DPLLINK memory.html#newdelete, Explicit Class Instance Allocation).
+ $(DDLINK1 memory, newdelete, Explicit Class Instance Allocation).
)
$(H3 $(LNAME2 deallocators, Class Deallocators))
@@ -969,7 +969,7 @@ delete f;
)
$(P See also
- $(DPLLINK memory.html#newdelete, Explicit Class Instance Allocation).
+ $(DDSUBLINK memory, newdelete, Explicit Class Instance Allocation).
)
$(H3 $(LEGACY_LNAME2 AliasThis, alias-this, Alias This))
diff --git a/cpp0x.dd b/cpp0x.dd
index aadc14528b..70cb38bf3a 100644
--- a/cpp0x.dd
+++ b/cpp0x.dd
@@ -107,7 +107,7 @@ $(SECTION3 $(LNAME2 move-semantics, Extending Move Semantics To *this (Revision
$(SECTION3 $(LNAME2 static-assert, static_assert),
$(P $(LINK2 $(NDOCS)2004/n1720.html, N1720):
- $(LINK2 version.html#StaticAssert, static assert) is
+ $(DDSUBLINK version, StaticAssert, static assert) is
part of D.
)
@@ -117,7 +117,7 @@ $(SECTION3 $(LNAME2 template-aliases, Template aliases for C++),
$(P $(LINK2 $(NDOCS)2007/n2258.pdf, N2258):
Both $(LINK2 template.html, templates and template instantiations)
- can be $(LINK2 declaration.html#alias, aliased):
+ can be $(DDSUBLINK declaration, alias, aliased):
)
---
struct S(T) { T int; }
@@ -145,7 +145,7 @@ $(SECTION3 $(LNAME2 extern-template, Extern template),
$(SECTION3 $(LNAME2 variadic-templates, Variadic Templates),
$(P $(LINK2 $(NDOCS)2007/n2242.pdf, N2242):
- D's $(LINK2 template.html#variadic-templates, variadic templates).
+ D's $(DDSUBLINK template, variadic-templates, variadic templates).
)
)
@@ -160,7 +160,7 @@ $(SECTION3 $(LNAME2 variadic-template-templates, Extending Variadic Template Tem
$(SECTION3 $(LNAME2 nullptr, A name for the null pointer: nullptr),
$(P $(LINK2 $(NDOCS)2007/n2431.pdf, N2431):
- D has the $(LINK2 expression.html#null, null) equivalent.
+ D has the $(DDSUBLINK expression, null, null) equivalent.
)
)
@@ -200,7 +200,7 @@ $(SECTION3 $(LNAME2 extended-friends, Extended friend Declarations),
$(P $(LINK2 $(NDOCS)2005/n1791.pdf, N1791):
All code in a module has
- $(LINK2 attribute.html#ProtectionAttribute, access)
+ $(DDSUBLINK attribute, ProtectionAttribute, access)
to private members
of any struct or class declared in that module that is in
scope.
@@ -215,7 +215,7 @@ $(SECTION3 $(LNAME2 extended-friends, Extended friend Declarations),
$(SECTION3 $(LNAME2 constant-expressions, Generalized Constant Expressions),
$(P $(LINK2 $(NDOCS)2007/n2235.pdf, N2235):
- D has $(LINK2 function.html#interpretation, compile time function execution)
+ D has $(DDSUBLINK function, interpretation, compile time function execution)
(CTFE). CTFE is much more flexible, as functions to be evaluated
at compile time:
)
@@ -251,9 +251,9 @@ $(SECTION3 $(LNAME2 c99-preprocessor, Synchronizing the C++ preprocessor with C9
$(SECTION3 $(LNAME2 alignment, Adding Alignment Support to the C++ Programming Language),
$(P $(LINK2 $(NDOCS)2007/n2341.pdf, N2341):
- D has the $(LINK2 attribute.html#align, align)
+ D has the $(DDSUBLINK attribute, align, align)
attribute to specify the alignment
- of declarations, and the $(LINK2 property.html#alignof, .alignof)
+ of declarations, and the $(DDSUBLINK property, alignof, .alignof)
property to
determine the alignment size of an expression or type.
)
@@ -303,7 +303,7 @@ $(SECTION3 $(LNAME2 delegating-ctors, Delegating Constructors),
$(P $(LINK2 $(NDOCS)2006/n1986.pdf, N1986):
D has
- $(LINK2 class.html#delegating-constructors, delegating constructors).
+ $(DDSUBLINK class, delegating-constructors, delegating constructors).
)
)
@@ -321,7 +321,7 @@ $(SECTION3 $(LNAME2 char16_t, New Character Types in C++),
C++0x adds new character types char16_t and char32_t,
which are equivalent to D's $(LINK2 type.html, wchar and dchar types).
The u and U character literal prefixes are equivalent to the
- D $(LINK2 lex.html#StringLiteral, w and d postfixes).
+ D $(DDSUBLINK lex, StringLiteral, w and d postfixes).
)
)
@@ -339,7 +339,7 @@ $(SECTION3 $(LNAME2 right-angle-brackets, Right Angle Brackets),
$(SECTION3 $(LNAME2 type-deduction, Deducing the type of variable from its initializer expression),
$(P $(LINK2 $(NDOCS)2006/n1984.pdf, N1984):
- D has $(LINK2 declaration.html#AutoDeclaration, type inference)
+ D has $(DDSUBLINK declaration, AutoDeclaration, type inference)
from initializers.
)
@@ -348,7 +348,7 @@ $(SECTION3 $(LNAME2 type-deduction, Deducing the type of variable from its initi
$(SECTION3 $(LNAME2 auto-declarations, The Syntax of auto Declarations),
$(P $(LINK2 $(NDOCS)2008/n2546.html, N2546):
- D $(LINK2 attribute.html#auto, auto declarations)
+ D $(DDSUBLINK attribute, auto, auto declarations)
do not have syntactic issues.
)
@@ -372,7 +372,7 @@ $(SECTION3 $(LNAME2 lambda, (monomorphic) Lambda expressions and closures for C+
$(P $(LINK2 $(NDOCS)2008/n2550.pdf, N2550):
D has $(GLINK2 expression, FunctionLiteral)s (lambda expressions) and
- $(LINK2 function.html#closures, closures).
+ $(DDSUBLINK function, closures, closures).
)
)
@@ -401,7 +401,7 @@ $(SECTION3 $(LNAME2 concurrency, Sequencing and the concurrency memory model),
$(SECTION3 $(LNAME2 raw-strings, Raw String Literals),
$(P $(LINK2 $(NDOCS)2007/n2442.html, N2442):
- D has $(LINK2 lex.html#StringLiteral, wysiwyg and delimited strings),
+ D has $(DDSUBLINK lex, StringLiteral, wysiwyg and delimited strings),
and all strings are Unicode.
)
@@ -411,7 +411,7 @@ $(SECTION3 $(LNAME2 pod, PODs unstrung),
$(P $(LINK2 $(NDOCS)2007/n2294.html, N2294):
All D $(LINK2 struct.html, structs) are
- $(LINK2 glossary.html#pod, POD (Plain Old Data)).
+ $(DDSUBLINK glossary, pod, POD (Plain Old Data)).
D $(LINK2 class.html, classes) are reference, polymorphic types.
)
@@ -427,7 +427,7 @@ $(SECTION3 $(LNAME2 exceptions, Propagating exceptions when joining threads),
$(SECTION3 $(LNAME2 decltype, Decltype),
$(P $(LINK2 $(NDOCS)2007/n2343.pdf, N2343):
- The equivalent D construct is $(LINK2 declaration.html#typeof, typeof).
+ The equivalent D construct is $(DDSUBLINK declaration, typeof, typeof).
)
)
@@ -435,7 +435,7 @@ $(SECTION3 $(LNAME2 decltype, Decltype),
$(SECTION3 $(LNAME2 sizeof, Extending sizeof),
$(P $(LINK2 $(NDOCS)2007/n2253.html, N2253):
- Using $(LINK2 property.html#sizeof, sizeof) without a $(I this) object:
+ Using $(DDSUBLINK property sizeof, sizeof) without a $(I this) object:
---
struct S
{
@@ -459,7 +459,7 @@ void test()
$(SECTION3 $(LNAME2 utf8-literals, UTF-8 Literals),
$(P $(LINK2 $(NDOCS)2007/n2442.html, N2442):
- $(LINK2 lex.html#StringLiteral, Char string literals)
+ $(DDSUBLINK lex, StringLiteral, Char string literals)
are in UTF-8 format.
)
@@ -469,7 +469,7 @@ $(SECTION3 $(LNAME2 ucs-in-literals, Universal Character Names in Literals),
$(P $(LINK2 $(NDOCS)2007/n2170.html, N2170):
All Unicode characters are allowed in
- $(LINK2 lex.html#StringLiteral, string literals).
+ $(DDSUBLINK lex, StringLiteral, string literals).
Surrogate pair halves are not allowed unless hex literal notation
is used.
)
@@ -478,8 +478,8 @@ $(SECTION3 $(LNAME2 ucs-in-literals, Universal Character Names in Literals),
$(SECTION3 $(LNAME2 defaulted, Defaulted and Deleted Functions),
- $(P $(LINK2 $(NDOCS)2007/n2326.html#delete, N2326):
- D alows individual functions to be marked as $(LINK2 attribute.html#disable, disabled).
+ $(P $(DDSUBLINK $(NDOCS)2007/n2326, delete, N2326):
+ D alows individual functions to be marked as $(DDSUBLINK attribute, disable, disabled).
)
)
@@ -533,9 +533,9 @@ $(SECTION3 $(LNAME2 initializer-lists, Initializer lists),
$(P $(LINK2 $(NDOCS)2008/n2531.pdf, N2531):
D has
- $(LINK2 struct.html#StructLiteral, struct literals),
- $(LINK2 expression.html#ArrayLiteral, array literals),
- and $(LINK2 expression.html#AssocArrayLiteral, associative array literals).
+ $(DDSUBLINK struct, StructLiteral, struct literals),
+ $(DDSUBLINK expression, ArrayLiteral, array literals),
+ and $(DDSUBLINK expression, AssocArrayLiteral, associative array literals).
)
)
@@ -555,7 +555,7 @@ $(SECTION3 $(LNAME2 member-initializers, Member Initializers),
$(P $(LINK2 $(NDOCS)2007/n2426.htm, N2426):
D has
- $(LINK2 class.html#class-default-initializer, member initializers),
+ $(DDSUBLINK class, class-default-initializer, member initializers),
which are called $(I default initializers).
)
@@ -671,9 +671,8 @@ $(SECTION3 $(LNAME2 for-loop, Proposal for new for-loop),
$(P $(LINK2 $(NDOCS)2007/n2394.html, N2394):
This is equivalent to the D
- $(LINK2 statement.html#ForeachRangeStatement, $(I ForeachRangeStatement)).
+ $(DDSUBLINK statement, ForeachRangeStatement, $(I ForeachRangeStatement)).
)
-
)
$(SECTION3 $(LNAME2 general-attributes, General Attributes for C++),
diff --git a/css/cssmenu.css.dd b/css/cssmenu.css.dd
new file mode 100644
index 0000000000..43a910b69d
--- /dev/null
+++ b/css/cssmenu.css.dd
@@ -0,0 +1,183 @@
+Ddoc
+
+/*Adapted from http://cssmenumaker.com/menu/modern-jquery-accordion-menu
+*/
+@import url(http://fonts.googleapis.com/css?family=Ubuntu:300,400,500,700);
+
+@import url(http://fonts.googleapis.com/css?family=Open+Sans:400,600,300);
+@charset "UTF-8";
+/* Base Styles */
+#cssmenu,
+#cssmenu ul,
+#cssmenu li,
+#cssmenu a {
+ margin: 0;
+ padding: 0;
+ border: 0;
+ list-style: none;
+ font-weight: normal;
+ text-decoration: none;
+ line-height: 1;
+ font-family: 'Open Sans', sans-serif;
+ font-size: 14px;
+ position: relative;
+}
+#cssmenu {
+/* width: 250px;*/
+ border-bottom: 4px solid $(bottom_border);
+ -webkit-border-radius: 3px;
+ -moz-border-radius: 3px;
+ border-radius: 3px;
+}
+#cssmenu a {
+ line-height: 1.3;
+}
+#cssmenu > ul > li:first-child {
+ background: $(top_bg);
+ background: -moz-linear-gradient($(top_bg) 0%, $(top_bg2) 100%);
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, $(top_bg)), color-stop(100%, $(top_bg2)));
+ background: -webkit-linear-gradient($(top_bg) 0%, $(top_bg2) 100%);
+ background: linear-gradient($(top_bg) 0%, $(top_bg2) 100%);
+ border: 1px solid $(top_bg2);
+ -webkit-border-radius: 3px 3px 0 0;
+ -moz-border-radius: 3px 3px 0 0;
+ border-radius: 3px 3px 0 0;
+}
+#cssmenu > ul > li:first-child > a {
+ padding: 15px 10px;
+ background: url(../images/pattern.png) top left repeat;
+ border: none;
+ border-top: 1px solid $(top_border);
+ -webkit-border-radius: 3px 3px 0 0;
+ -moz-border-radius: 3px 3px 0 0;
+ border-radius: 3px 3px 0 0;
+ font-family: 'Ubuntu', sans-serif;
+ text-align: center;
+ font-size: 18px;
+ font-weight: 300;
+ text-shadow: 0 -1px 1px $(menu_first_shadow);
+}
+#cssmenu > ul > li:first-child > a > span {
+ padding: 0;
+}
+#cssmenu > ul > li:first-child:hover {
+ background: $(top_bg);
+ background: -moz-linear-gradient($(top_bg) 0%, $(top_bg2) 100%);
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, $(top_bg)), color-stop(100%, $(top_bg2)));
+ background: -webkit-linear-gradient($(top_bg) 0%, $(top_bg2) 100%);
+ background: linear-gradient($(top_bg) 0%, $(top_bg2) 100%);
+}
+#cssmenu > ul > li {
+ background: $(menu_bg);
+ background: -moz-linear-gradient($(menu_bg) 0%, $(menu_bg2) 100%);
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, $(menu_bg)), color-stop(100%, $(menu_bg2)));
+ background: -webkit-linear-gradient($(menu_bg) 0%, $(menu_bg2) 100%);
+ background: linear-gradient($(menu_bg) 0%, $(menu_bg2) 100%);
+}
+#cssmenu > ul > li:hover {
+ background: $(menu_bg_hover);
+ background: -moz-linear-gradient($(menu_bg_hover) 0%, $(menu_bg_hover2) 100%);
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, $(menu_bg_hover)), color-stop(100%, $(menu_bg_hover2)));
+ background: -webkit-linear-gradient($(menu_bg_hover) 0%, $(menu_bg_hover2) 100%);
+ background: linear-gradient($(menu_bg_hover) 0%, $(menu_bg_hover2) 100%);
+}
+#cssmenu > ul > li > a {
+ font-size: 14px;
+ display: block;
+ background: url(../images/pattern.png) top left repeat;
+ color: $(menu_a);
+ border: 1px solid $(menu_a_border);
+ border-top: none;
+ text-shadow: 0 -1px 1px $(menu_a_shadow);
+}
+#cssmenu > ul > li > a > span {
+ display: block;
+ padding: 12px 10px;
+ -webkit-border-radius: 4px;
+ -moz-border-radius: 4px;
+ border-radius: 4px;
+}
+#cssmenu > ul > li > a:hover {
+ text-decoration: none;
+}
+#cssmenu > ul > li.active {
+ border-bottom: none;
+}
+#cssmenu > ul > li.has-sub > a span {
+ background: url(../images/icon_plus.png) 96% center no-repeat;
+}
+#cssmenu > ul > li.has-sub.active > a span {
+ background: url(../images/icon_minus.png) 96% center no-repeat;
+}
+/* Sub menu */
+#cssmenu ul ul {
+ display: none;
+ background: $(submenu_bg);
+ border-right: 1px solid $(submenu_border);
+ border-left: 1px solid $(submenu_border);
+}
+#cssmenu ul ul li {
+ padding: 0;
+ border-bottom: 1px solid $(bottom_submenu_li);
+ border-top: none;
+ background: $(submenu_bg_li);
+ background: -moz-linear-gradient($(submenu_bg_li) 0%, $(submenu_bg_li2) 100%);
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, $(submenu_bg_li)), color-stop(100%, $(submenu_bg_li2)));
+ background: -webkit-linear-gradient($(submenu_bg_li) 0%, $(submenu_bg_li2) 100%);
+ background: linear-gradient($(submenu_bg_li) 0%, $(submenu_bg_li2) 100%);
+}
+#cssmenu ul ul li:last-child {
+ border-bottom: none;
+}
+#cssmenu ul ul a {
+ padding: 10px 10px 10px 25px;
+ display: block;
+ color: $(submenu_a);
+ font-size: 12px;
+ font-weight: normal;
+}
+#cssmenu ul ul a:before {
+ content: "ยป";
+ position: absolute;
+ left: 10px;
+ color: $(submenu_highlight);
+}
+#cssmenu ul ul a:hover {
+ color: $(submenu_highlight);
+}
+
+Macros:
+
+DDOC=$(BODY)
+DDOC_COMMENT=/*$0*/
+ESCAPES=/ />/>/ /&/&/
+DDOC_UNDEFINED_MACRO=/* UNDEFINED MACRO $1 */
+_=
+
+martian_red=#632E29
+martian_red_light=#893A28
+
+bottom_border=#656659
+bottom_submenu_li=#d4d4d4
+top_bg=#66665e
+top_bg2=#45463d
+top_border=#818176
+_=
+
+menu_a=#ffffff
+menu_a_border=$(martian_red_light)
+menu_a_shadow=#751d0c
+menu_bg=$(martian_red)
+menu_bg2=$(menu_bg)
+menu_bg_hover=$(martian_red_light)
+menu_bg_hover2=$(menu_bg_hover)
+menu_first_shadow=#000000
+_=
+
+submenu_highlight=#e94f31
+submenu_a=#676767
+submenu_bg=#fff
+submenu_bg_li=#f7f7f7
+submenu_bg_li2=#ececec
+submenu_border=#a2a194
+_=
diff --git a/ddoc.dd b/ddoc.dd
index c87ac3c7e0..dc238a699e 100644
--- a/ddoc.dd
+++ b/ddoc.dd
@@ -658,7 +658,7 @@ $(P
$(OL
$(LI Predefined macros.)
$(LI Definitions from file specified by $(DPLLINK dmd-windows.html, sc.ini)'s
- or $(DPLLINK dmd-linux.html#dmd_conf, dmd.conf) DDOCFILE setting.)
+ or $(DDSUBLINK dmd-linux, dmd_conf, dmd.conf) DDOCFILE setting.)
$(LI Definitions from *.ddoc files specified on the command line.)
$(LI Runtime definitions generated by Ddoc.)
$(LI Definitions from any Macros: sections.)
diff --git a/declaration.dd b/declaration.dd
index de8556ddb7..f494d056e5 100644
--- a/declaration.dd
+++ b/declaration.dd
@@ -475,7 +475,7 @@ $(H3 $(LNAME2 extern, Extern Declarations))
variable declarations in C files.
$(P An $(D extern) declaration can optionally be followed by an
- $(D extern) $(LINK2 attribute.html#linkage, linkage attribute).
+ $(D extern) $(LINK2 attribute.html$(HASH)linkage, linkage attribute).
If there is no linkage attribute it defaults to $(D extern(D)):)
---------------
@@ -558,7 +558,7 @@ $(GNAME Typeof):
typeof(this) r; // error, no enclosing struct or class
--------------------
- $(P If the expression is a $(LINK2 function.html#property-functions,
+ $(P If the expression is a $(DDSUBLINK function, property-functions,
Property Function), $(D typeof) gives its return type.
)
diff --git a/dlang.org.ddoc b/dlang.org.ddoc
index 3b50960c86..a04912af0c 100644
--- a/dlang.org.ddoc
+++ b/dlang.org.ddoc
@@ -134,6 +134,8 @@ _=
MDASH=$(T nobr, — )
METACODE=$(SPANC metacode, $0)
+MENU =
$+
+MENU_W_SUBMENU = $0
META_KEYWORDS=D programming language
META_DESCRIPTION=D Programming Language
MODDEFFILE=$(TC pre, moddeffile notranslate, $0)
@@ -194,6 +196,9 @@ SECTION2=$(H2 $1)$+
SECTION3=$(H3 $1)$+
SECTION4=$(H4 $1)$+
SECTION5=$(H5 $1)$+
+SUBMENU=
+SUBMENU2=$2$(SUBMENU3 $+)
+SUBMENU3=$(SUBMENU2 $+)
_=
TABLE_10=$(TABLE2 $1,$+)
diff --git a/doc.ddoc b/doc.ddoc
index 571248dfdc..af58ef7760 100644
--- a/doc.ddoc
+++ b/doc.ddoc
@@ -14,11 +14,13 @@ $(T title, $(TITLE) - D Programming Language)
+
$(SCRIPTLOAD https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js)
-$(SCRIPTLOAD /js/codemirror-compressed.js)
-$(SCRIPTLOAD /js/run-main-website.js)
-$(SCRIPTLOAD /js/run.js)
+$(SCRIPTLOAD js/codemirror-compressed.js)
+$(SCRIPTLOAD js/run-main-website.js)
+$(SCRIPTLOAD js/run.js)
+$(SCRIPTLOAD js/cssmenu.js)
$(SCRIPT
function bodyLoad()
{
@@ -83,40 +85,45 @@ $(TRANSLATIONS)
_=
NAVIGATION=
-$(NAVBLOCK_HEADER $(TOCHEADERL index.html, D Programming Language, D $(LATEST)),
- $(TOCENTRYTH download.html, Download a D compiler, $(SPANC emph,Download), $(CATEGORY_DOWNLOAD $(SUBNAV_DOWNLOAD)))
- $(TOCENTRYTH overview.html, D language overview, Overview, $(CATEGORY_OVERVIEW $(SUBNAV_OVERVIEW)))
- $(TOCENTRYTH comparison.html, D feature list, Features, $(CATEGORY_FEATURES $(SUBNAV_FEATURES)))
- $(TOCENTRYT changelog.html, History of changes to D, Change Log)
- $(TOCENTRYT bugstats.php, D issue and bug tracking system, Bug Tracker)
- $(TOCENTRYTH faq.html, Frequently Asked Questions, FAQ, $(CATEGORY_FAQ $(SUBNAV_FAQ)))
- $(TOCENTRYH appendices.html, Appendices, $(CATEGORY_APPENDICES $(SUBNAV_APPENDICES)))
- $(TOCENTRYT acknowledgements.html, Thank-you to these people who have helped with D, Acknowledgments)
- $(TOCENTRYT sitemap.html, Documents on this site$(COMMA) indexed alphabetically, Sitemap)
- $(TOCENTRYT http://digitalmars.com/d/1.0/index.html, D Programming Language 1.0, D1 Home)
-)
-$(NAVBLOCK_HEADER $(TOCHEADER Documentation),
- $(TOCENTRY http://ddili.org/ders/d.en/index.html, Online Book (free))
- $(TOCENTRYT http://wiki.dlang.org/Books, D Programming Language Books, More Books)
-
- $(TOCENTRYH language-reference.html, Language Reference, $(CATEGORY_SPEC $(SUBNAV_SPEC)))
- $(TOCENTRY phobos/index.html, Library Reference)
- $(TOCENTRY library/index.html, 3Preview new Layout)
-
- $(TOCENTRYTH howtos.html, Helps for using D, How-tos, )
- $(TOCENTRYH articles.html, Articles, $(CATEGORY_ARTICLES $(SUBNAV_ARTICLES)))
-)
-$(NAVBLOCK_HEADER $(TOCHEADER $(LINK2 $(VISUALD), Visual D)),
-)
-$(NAVBLOCK_HEADER $(TOCHEADER Community),
- $(TOCENTRYT http://forum.dlang.org/, User forums, Forums)
- $(TOCENTRYT http://github.com/D-Programming-Language, D on github, GitHub)
- $(TOCENTRYT http://wiki.dlang.org, Wiki for the D Programming Language, Wiki)
- $(TOCENTRYT http://wiki.dlang.org/Review_Queue, Queue of current and upcoming standard library additions, Review Queue)
- $(TOCENTRYT http://code.dlang.org, Third party packages written in D, Third Party Packages)
- $(TOCENTRYT http://twitter.com/#search?q=%23d_lang, #d_lang on twitter.com, Twitter)
- $(TOCENTRYT http://digitalmars.com/d/dlinks.html, External D related links, Links)
-)
+$(DIVID cssmenu, $(UL
+ $(MENU index.html, D $(LATEST))
+ $(MENU download.html, Download)
+ $(MENU http://code.dlang.org, Get D libraries)
+ $(MENU_W_SUBMENU Documentation)
+ $(SUBMENU
+ http://ddili.org/ders/d.en/index.html, Online Book (free),
+ http://wiki.dlang.org/Books, More Books,
+ language-reference.html, Language Reference,
+ phobos/index.html, Library Reference,
+ library/index.html, $(NBSP)NEW Library Reference Preview,
+ howtos.html, How-tos,
+ articles.html, Articles,
+ wc.html, Example: wc,
+ warnings.html, Warnings,
+ builtin.html, Builtin Rationale,
+ ctod.html, C to D,
+ cpptod.html, C++ to D,
+ pretod.html, C Preprocessor vs D
+ )
+ $(MENU_W_SUBMENU Community)
+ $(SUBMENU
+ http://forum.dlang.org, Forums,
+ http://github.com/D-Programming-Language, D on GitHub,
+ http://wiki.dlang.org, Wiki,
+ http://wiki.dlang.org/Review_Queue, Review Queue,
+ http://code.dlang.org, Third Party Packages,
+ http://twitter.com/#search?q=%23d_lang, Twitter,
+ http://digitalmars.com/d/dlinks.html, More Links
+ )
+ $(MENU $(VISUALD), Visual D)
+ $(MENU changelog.html, Change Log)
+ $(MENU bugstats.php, Bug Tracker)
+ $(MENU faq.html, FAQ)
+ $(MENU comparison.html, Feature Overview)
+ $(MENU acknowledgements.html, Acknowledgments)
+ $(MENU appendices.html, Appendices)
+ $(MENU sitemap.html, Sitemap)
+))
_=
SUBNAV_OVERVIEW=
@@ -246,8 +253,8 @@ $(DIVID navigation, $1)
$(DIVCID hyphenate, content, $(PAGE_TOOLS) $(H1 $(TITLE)) $3)
_=
-NAVBLOCK = $(DIVC navblock, $(UL $0))
-NAVBLOCK_HEADER = $(DIVC navblock, $1 $(UL $(ARGS $+)))
+NAVBLOCK = $(DIV , $(UL $0))
+NAVBLOCK_HEADER = $(DIVID cssmenu, $(UL $(ARGS $+)))
_=
SFINAE=$(GLOSSARY sfinae, $(ACRONYM SFINAE, Substitution Failure Is Not An Error))
diff --git a/expression.dd b/expression.dd
index 02a8152ec0..1b6ba604ca 100644
--- a/expression.dd
+++ b/expression.dd
@@ -766,7 +766,7 @@ $(GNAME ArgumentList):
$(P If there is a $(D new $(LPAREN)) $(GLINK ArgumentList) $(D $(RPAREN)),
then
those arguments are passed to the class or struct specific
- $(LINK2 class.html#allocators, allocator function) after the size argument.
+ $(DDSUBLINK class, allocators, allocator function) after the size argument.
)
$(P If a $(I NewExpression) is used as an initializer for
diff --git a/function.dd b/function.dd
index 2931111fc9..8cdb461af1 100644
--- a/function.dd
+++ b/function.dd
@@ -2094,7 +2094,7 @@ $(H3 $(LNAME2 function-safety, Function Safety))
$(P $(I Safe functions) are functions that are statically checked
to exhibit no possibility of
- $(DPLLINK glossary.html#undefined_behavior, $(I undefined behavior)).
+ $(DDSUBLINK glossary, undefined_behavior, $(I undefined behavior)).
Undefined behavior is often used as a vector for malicious
attacks.
)
diff --git a/garbage.dd b/garbage.dd
index 417c5e28a6..627e78ab8f 100644
--- a/garbage.dd
+++ b/garbage.dd
@@ -383,10 +383,10 @@ $(H2 D Operations That Involve the Garbage Collector)
$(H2 References)
$(UL
- $(LI $(LINK2 http://en.wikipedia.org/wiki/Garbage_collection_%28computer_science%29, Wikipedia))
+ $(LI $(LINK2 http://en.wikipedia.org/wiki/Garbage_collection_$(PERCENT)28computer_science$(PERCENT)29, Wikipedia))
$(LI $(LINK2 http://www.iecc.com/gclist/GC-faq.html, GC FAQ))
$(LI $(LINK2 ftp://ftp.cs.utexas.edu/pub/garbage/gcsurvey.ps, Uniprocessor Garbage Collector Techniques))
- $(LI $(AMAZONLINK 0471941484, Garbage Collection : Algorithms for Automatic Dynamic Memory Management))
+ $(LI $(AMAZONLINK 0471941484, Garbage Collection: Algorithms for Automatic Dynamic Memory Management))
)
)
diff --git a/images/icon_minus.png b/images/icon_minus.png
new file mode 100755
index 0000000000..bfaee2fc31
Binary files /dev/null and b/images/icon_minus.png differ
diff --git a/images/icon_plus.png b/images/icon_plus.png
new file mode 100755
index 0000000000..6534a499b9
Binary files /dev/null and b/images/icon_plus.png differ
diff --git a/images/pattern.png b/images/pattern.png
new file mode 100755
index 0000000000..c7e815ddca
Binary files /dev/null and b/images/pattern.png differ
diff --git a/intro.dd b/intro.dd
index 216106c3fe..23aa845ece 100644
--- a/intro.dd
+++ b/intro.dd
@@ -73,5 +73,5 @@ $(OL
Macros:
TITLE=Introduction
WIKI=SpecIntro
- CATEGORY_SPEC=$0
+ CATEGORY_SPEC=$0
diff --git a/js/cssmenu.js b/js/cssmenu.js
new file mode 100755
index 0000000000..de183a6dbe
--- /dev/null
+++ b/js/cssmenu.js
@@ -0,0 +1,25 @@
+( function( $ ) {
+$( document ).ready(function() {
+var menu_ul = $('#cssmenu > ul > li > ul');
+menu_ul.hide();
+
+$('#cssmenu > ul > li > a').click(function() {
+ $('#cssmenu li').removeClass('active');
+ $(this).closest('li').addClass('active');
+ var checkElement = $(this).next();
+ if((checkElement.is('ul')) && (checkElement.is(':visible'))) {
+ $(this).closest('li').removeClass('active');
+ checkElement.slideUp('normal');
+ }
+ if((checkElement.is('ul')) && (!checkElement.is(':visible'))) {
+ $('#cssmenu ul ul:visible').slideUp('normal');
+ checkElement.slideDown('normal');
+ }
+ if($(this).closest('li').find('ul').children().length == 0) {
+ return true;
+ } else {
+ return false;
+ }
+});
+});
+} )( jQuery );
diff --git a/latex.ddoc b/latex.ddoc
index f3d641e11c..ac08fde241 100644
--- a/latex.ddoc
+++ b/latex.ddoc
@@ -67,7 +67,7 @@ DDOC_COMMENT=% $0
DDOC_KEYWORD=$0
DDOC_UNDEFINED_MACRO = $(DDOC_COMMENT UNDEFINED MACRO: $1)
DDOCCODE=$(D_CODE $0)
-DDSUBLINK=$(LINK2 $1.html#$2, $3)
+DDSUBLINK=$(LINK2 $1.html$(HASH)$2, $3)
_=
DL=\begin{description}
@@ -129,6 +129,8 @@ LEGACY_LNAME2=$(LNAME2 $+)
LI=\item $0
LINK=\url{$0}
LINK2=\hyperlink{$1}{$+}
+_=TODO: revise this
+LINK2=$+
_=
LIST=\begin{itemize}
@@ -138,6 +140,8 @@ _=
LIX=\item{$1} $(LIX $+)
LLINK2=\hyperlink{$1}{$+}
+_=TODO: revise this
+LLINK2=$+
LNAME2=\hyperref[$1]{$+}
_=
diff --git a/memory-safe-d.dd b/memory-safe-d.dd
index dc5b028cdc..d04eb90db7 100644
--- a/memory-safe-d.dd
+++ b/memory-safe-d.dd
@@ -23,8 +23,7 @@ $(H3 Usage)
$(P Memory safety can be enabled on a per-function basis using
the $(DDSUBLINK function, safe-functions, $(D @safe) attribute).
This can be inferred when the compiler has the function body
- available. The $(DDSUBLINK function, trusted-functions, $(D
- @trusted) attribute) can be used when a function has a safe
+ available. The $(DDSUBLINK function, trusted-functions, `@trusted` attribute) can be used when a function has a safe
interface, but uses unsafe code internally. These functions can
be called from $(D @safe) code.
)
diff --git a/operatoroverloading.dd b/operatoroverloading.dd
index 1978938a52..06f498262c 100644
--- a/operatoroverloading.dd
+++ b/operatoroverloading.dd
@@ -372,7 +372,7 @@ $(OL
---
$(P Alternatively, you can declare a single templated $(D opEquals)
- function with an $(LINK2 template.html#auto-ref-parameters, auto ref)
+ function with an $(DDSUBLINK template, auto-ref-parameters, auto ref)
parameter:)
---
struct S
@@ -460,8 +460,8 @@ $(H2 $(LEGACY_LNAME2 FunctionCall, function-call, Function Call Operator Overloa
)
$(P Note that merely declaring $(D opCall) automatically disables
- $(LINK2 struct.html#StructLiteral, struct literal) syntax.
- To avoid the limitation, you need to also declare a $(LINK2 struct.html#Struct-Constructor,
+ $(DDSUBLINK struct, StructLiteral, struct literal) syntax.
+ To avoid the limitation, you need to also declare a $(DDSUBLINK struct, Struct-Constructor,
constructor) so that it takes priority over $(D opCall) in $(D Type(...)) syntax.
)
diff --git a/posix.mak b/posix.mak
index 6493429f63..dd1018fa54 100644
--- a/posix.mak
+++ b/posix.mak
@@ -101,22 +101,23 @@ endif
DDOC=macros.ddoc html.ddoc dlang.org.ddoc doc.ddoc ${LATEST}.ddoc $(NODATETIME)
-IMAGES=favicon.ico $(addprefix images/, apple_logo.png c1.gif \
-centos_logo.png cpp1.gif d002.ico d3.png d4.gif d5.gif \
-debian_logo.png dlogo.png dmlogo.gif dmlogo-smaller.gif download.png \
-fedora_logo.png freebsd_logo.png github-ribbon.png gradient-green.jpg \
-gradient-red.jpg globe.gif opensuse_logo.png pen.gif search-left.gif \
-search-bg.gif search-button.gif tdpl.jpg ubuntu_logo.png \
-windows_logo.png) $(addprefix images/ddox/, alias.png class.png \
-enum.png enummember.png function.png inherited.png interface.png \
-module.png package.png private.png property.png protected.png \
-struct.png template.png tree-item-closed.png tree-item-open.png \
-variable.png)
-
-JAVASCRIPT=$(addprefix js/, codemirror-compressed.js listanchors.js run.js \
-run-main-website.js ddox.js)
-
-STYLES=css/style.css css/print.css css/codemirror.css css/ddox.css
+IMAGES=favicon.ico $(addprefix images/, \
+ d002.ico \
+ $(addsuffix .png, apple_logo centos_logo d3 debian_logo dlogo download \
+ fedora_logo freebsd_logo opensuse_logo ubuntu_logo windows_logo \
+ icon_minus icon_plus pattern github-ribbon \
+ $(addprefix ddox/, alias class enum enummember function \
+ inherited interface module package private property protected \
+ struct template tree-item-closed tree-item-open variable)) \
+ $(addsuffix .gif, c1 cpp1 d4 d5 dmlogo dmlogo-smaller globe \
+ pen search-left search-bg search-button) \
+ $(addsuffix .jpg, gradient-green gradient-red tdpl))
+
+JAVASCRIPT=$(addsuffix .js, $(addprefix js/, \
+ codemirror-compressed cssmenu ddox listanchors run run-main-website))
+
+STYLES=$(addsuffix .css, $(addprefix css/, \
+ style print codemirror ddox cssmenu))
PRETTIFY=prettify/prettify.css prettify/prettify.js
@@ -173,6 +174,9 @@ else
cp $< $@
endif
+$(DOC_OUTPUT_DIR)/%.css : %.css.dd $(DMD)
+ $(DMD) -c -o- -Df$@ $<
+
$(DOC_OUTPUT_DIR)/% : %
@mkdir -p $(dir $@)
cp $< $@
diff --git a/property.dd b/property.dd
index e1921f1256..aad5f42d1e 100644
--- a/property.dd
+++ b/property.dd
@@ -230,8 +230,7 @@ $(SECTION3 $(LNAME2 classinfo, .classinfo) Property,
$(P $(CODE .classinfo) provides information about the dynamic type
of a class object.
- It returns a reference to type $(DPLLINK
- phobos/object.html#TypeInfo_Class, $(D object.TypeInfo_Class)).
+ It returns a reference to type $(DDLINK phobos/object, TypeInfo_Class, $(D object.TypeInfo_Class)).
)
$(P $(CODE .classinfo) applied to an interface gives the information for
diff --git a/struct.dd b/struct.dd
index 2079c2c007..5d435141e4 100644
--- a/struct.dd
+++ b/struct.dd
@@ -268,7 +268,7 @@ $(H3 $(LEGACY_LNAME2 StructLiteral, struct-literal, Struct Literals))
$(P Struct literals are syntactically like function calls.
If a struct has a member function named $(CODE opCall), then
struct literals for that struct are not possible. See also
- $(LINK2 operatoroverloading.html#FunctionCall, opCall operator overloading)
+ $(DDSUBLINK operatoroverloading, FunctionCall, opCall operator overloading)
for the issue workaround.
It is an error if there are more arguments than fields of
the struct.
diff --git a/traits.dd b/traits.dd
index 25e9522288..6404987e42 100644
--- a/traits.dd
+++ b/traits.dd
@@ -176,16 +176,16 @@ $(H2 $(GNAME isFinalClass))
$(H2 $(GNAME isPOD))
$(P Takes one argument, which must be a type. It returns
- $(D true) if the type is a $(LINK2 glossary.html#pod, POD) type, otherwise $(D false).)
+ $(D true) if the type is a $(DDSUBLINK glossary, pod, POD) type, otherwise $(D false).)
$(H2 $(GNAME isNested))
$(P Takes one argument.
It returns $(D true) if the argument is a nested type which internally
stores a context pointer, otherwise it returns $(D false).
- Nested types can be $(LINK2 class.html#nested, classes),
- $(LINK2 struct.html#nested, structs), and
- $(LINK2 function.html#variadicnested, functions).)
+ Nested types can be $(DDSUBLINK class, nested, classes),
+ $(DDSUBLINK struct, nested, structs), and
+ $(DDSUBLINK function, variadicnested, functions).)
$(H2 $(GNAME isVirtualFunction))
diff --git a/unittest.dd b/unittest.dd
index bedd29b342..4578261097 100644
--- a/unittest.dd
+++ b/unittest.dd
@@ -28,7 +28,7 @@ unittest
following it.
)
- $(P A compiler switch, such as $(DPLLINK dmd-windows.html#switches, $(B -unittest))
+ $(P A compiler switch, such as $(DDSUBLINK dmd-windows, switches, $(B -unittest))
for $(B dmd), will
cause the unittest test code to be compiled and incorporated into
the resulting executable. The unittest code gets run after
diff --git a/version.dd b/version.dd
index cc4cb4f0b5..ddf8c9312b 100644
--- a/version.dd
+++ b/version.dd
@@ -288,19 +288,19 @@ $(H3 $(LEGACY_LNAME2 PredefinedVersions, predefined-versions, Predefined Version
$(TROW $(ARGS $(D Alpha_HardFloat)) , $(ARGS The Alpha hard float ABI))
$(TROW $(ARGS $(D LittleEndian)) , $(ARGS Byte order, least significant first))
$(TROW $(ARGS $(D BigEndian)) , $(ARGS Byte order, most significant first))
- $(TROW $(ARGS $(D D_Coverage)) , $(ARGS $(DPLLINK code_coverage.html, Code coverage analysis) instrumentation (command line $(DPLLINK dmd-windows.html#switches, switch) $(D -cov)) is being generated))
- $(TROW $(ARGS $(D D_Ddoc)) , $(ARGS $(DDLINK ddoc, Embedded Documentation, Ddoc) documentation (command line $(DPLLINK dmd-windows.html#switches, switch) $(D -D)) is being generated))
+ $(TROW $(ARGS $(D D_Coverage)) , $(ARGS $(DPLLINK code_coverage.html, Code coverage analysis) instrumentation (command line $(DDSUBLINK dmd-windows, switches, switch) $(D -cov)) is being generated))
+ $(TROW $(ARGS $(D D_Ddoc)) , $(ARGS $(DDLINK ddoc, Embedded Documentation, Ddoc) documentation (command line $(DDSUBLINK dmd-windows, switches, switch) $(D -D)) is being generated))
$(TROW $(ARGS $(D D_InlineAsm_X86)) , $(ARGS $(DDLINK iasm, Inline Assembler, Inline assembler) for X86 is implemented))
$(TROW $(ARGS $(D D_InlineAsm_X86_64)) , $(ARGS $(DDLINK iasm, Inline Assembler, Inline assembler) for X86-64 is implemented))
- $(TROW $(ARGS $(D D_LP64)) , $(ARGS $(B Pointers) are 64 bits (command line $(DPLLINK dmd-windows.html#switches, switch) $(D -m64)). (Do not confuse this with C's LP64 model)))
+ $(TROW $(ARGS $(D D_LP64)) , $(ARGS $(B Pointers) are 64 bits (command line $(DDSUBLINK dmd-windows, switches, switch) $(D -m64)). (Do not confuse this with C's LP64 model)))
$(TROW $(ARGS $(D D_X32)) , $(ARGS Pointers are 32 bits, but words are still 64 bits (x32 ABI) (This can be defined in parallel to $(D X86_64))))
$(TROW $(ARGS $(D D_HardFloat)) , $(ARGS The target hardware has a floating point unit))
$(TROW $(ARGS $(D D_SoftFloat)) , $(ARGS The target hardware does not have a floating point unit))
- $(TROW $(ARGS $(D D_PIC)) , $(ARGS Position Independent Code (command line $(DPLLINK dmd-windows.html#switches, switch) $(D -fPIC)) is being generated))
+ $(TROW $(ARGS $(D D_PIC)) , $(ARGS Position Independent Code (command line $(DDSUBLINK dmd-windows, switches, switch) $(D -fPIC)) is being generated))
$(TROW $(ARGS $(D D_SIMD)) , $(ARGS $(DDLINK simd, simd, Vector extensions) (via $(D __simd)) are supported))
$(TROW $(ARGS $(D D_Version2)) , $(ARGS This is a D version 2 compiler))
- $(TROW $(ARGS $(D D_NoBoundsChecks)) , $(ARGS Array bounds checks are disabled (command line $(DPLLINK dmd-windows.html#switches, switch) $(D -noboundscheck))))
- $(TROW $(ARGS $(D unittest)) , $(ARGS $(DDLINK unittest, Unit Tests, Unit tests) are enabled (command line $(DPLLINK dmd-windows.html#switches, switch) $(D -unittest))))
+ $(TROW $(ARGS $(D D_NoBoundsChecks)) , $(ARGS Array bounds checks are disabled (command line $(DDSUBLINK dmd-windows, switches, switch) $(D -noboundscheck))))
+ $(TROW $(ARGS $(D unittest)) , $(ARGS $(DDLINK unittest, Unit Tests, Unit tests) are enabled (command line $(DDSUBLINK dmd-windows, switches, switch) $(D -unittest))))
$(TROW $(ARGS $(D assert)) , $(ARGS Checks are being emitted for assert expressions))
$(TROW $(ARGS $(D none)) , $(ARGS Never defined; used to just disable a section of code))
$(TROW $(ARGS $(D all)) , $(ARGS Always defined; used as the opposite of $(D none)))