diff --git a/articles.dd b/articles.dd deleted file mode 100644 index 35eb1b6fff..0000000000 --- a/articles.dd +++ /dev/null @@ -1,163 +0,0 @@ -Ddoc - -$(D_S Articles, - $(P - More articles can be found on the corresponding - $(LINK2 http://wiki.dlang.org/Articles, wiki page). - ) - - $(DIVC boxes, - $(DIVC row, - $(DIVC item, - $(H4 $(LINK2 $(ROOT_DIR)faq.html, FAQ)) - $(P Frequently answered questions about D.) - ) - $(DIVC item, - $(H4 $(LINK2 $(ROOT_DIR)const-faq.html, const(FAQ))) - $(P Frequently answered questions about D's $(D const) and - $(D immutable).) - ) - ) - $(DIVC row, - $(DIVC item, - $(H4 $(LINK2 $(ROOT_DIR)d-floating-point.html, Floating Point)) - $(P Don Clugston goes into detail about floating point - numbers in D and the pitfalls one may encounter.) - ) - $(DIVC item, - $(H4 $(LINK2 $(ROOT_DIR)warnings.html, Warnings)) - $(P This is about compiler warnings in general, and dmd's - warnings in particular.) - ) - ) - $(DIVC row, - $(DIVC item, - $(H4 $(LINK2 $(ROOT_DIR)rationale.html, Rationale)) - $(P Questions about the reasons for various design decisions for - D often come up. This addresses many of them.) - ) - $(DIVC item, - $(H4 $(LINK2 $(ROOT_DIR)builtin.html, Builtin Rationale)) - $(P D offers several capabilities built in to the core language - that are implemented as libraries in other languages. This - article answers why.) - ) - ) - $(DIVC row, - $(DIVC item, - $(H4 $(LINK2 $(ROOT_DIR)ctod.html, C to D)) - $(P Coming from C? Here are various examples comparing $(I the D - way) to $(I the C way).) - ) - $(DIVC item, - $(H4 $(LINK2 $(ROOT_DIR)cpptod.html, C++ to D)) - $(P Coming from C++? Here are various examples comparing $(I the - D way) to $(I the C++ way).) - ) - ) - $(DIVC row, - $(DIVC item, - $(H4 $(LINK2 $(ROOT_DIR)pretod.html, C Preprocessor vs D)) - $(P D doesn't have a preprocessor. This article shows how to do - in D what would be a task for the preprocessor in C.) - ) - $(DIVC item, - $(H4 $(LINK2 $(ROOT_DIR)code_coverage.html, Code coverage analysis)) - $(P D compilers come with a builtin code coverage analyzer. - This article explains why and how to use it.) - ) - ) - $(DIVC row, - $(DIVC item, - $(H4 $(LINK2 $(ROOT_DIR)exception-safe.html, Exception Safety)) - $(P This article is about exceptions and how RAII and scope - guard statements relate to them.) - ) - $(DIVC item, - $(H4 $(LINK2 $(ROOT_DIR)hijack.html, Hijacking)) - $(P Function hijacking is when old code accidentally calls - a newly added or changed function because it shadows the - intended one. This article is about how D prevents - different kinds of hijacking.) - ) - ) - $(DIVC row, - $(DIVC item, - $(H4 $(LINK2 $(ROOT_DIR)intro-to-datetime.html, Introduction to - std.datetime)) - $(P Jonathan M Davis presents $(D std.datetime) which was added - in version 2.052 (Jul 10, 2011), and compares it to the - superseded $(D std.date).) - ) - $(DIVC item, - $(H4 $(LINK2 $(ROOT_DIR)lazy-evaluation.html, Lazy Evaluation)) - $(P Walter Bright goes into the details of lazy parameters in - D.) - ) - ) - $(DIVC row, - $(DIVC item, - $(H4 $(LINK2 $(ROOT_DIR)migrate-to-shared.html, Migrating to Shared)) - $(P Since version 2.030 (May 11, 2009) D uses thread local - storage (TLS) by default for static and global variables. - The article shows the alternatives to TLS that are available - in D.) - ) - $(DIVC item, - $(H4 $(LINK2 $(ROOT_DIR)mixin.html, Mixins)) - $(P A short article about D's $(D mixin) statement which allows - to insert arbitrary code from a string, and how it compares - to the C preprocessor.) - ) - ) - $(DIVC row, - $(DIVC item, - $(H4 $(LINK2 $(ROOT_DIR)regular-expression.html, Regular Expressions)) - $(P Dmitry Olshansky shows how to use regular expressions in D - with $(D std.regex).) - ) - $(DIVC item, - $(H4 $(LINK2 $(ROOT_DIR)safed.html, SafeD)) - $(P Bartosz Milewski writes about SafeD, the memory-safe - subset of D.) - ) - ) - $(DIVC row, - $(DIVC item, - $(H4 $(LINK2 $(ROOT_DIR)templates-revisited.html, Templates Revisited)) - $(P Walter Bright writes about how D improves upon C++ - templates.) - ) - $(DIVC item, - $(H4 $(LINK2 $(ROOT_DIR)ctarguments.html, Compile-time Argument - Lists)) - $(P A compile-time list is a list of compile-time entities - - types, symbols (names) and expressions (values). This - article shows how to work with them.) - ) - ) - $(DIVC row, - $(DIVC item, - $(H4 $(LINK2 $(ROOT_DIR)variadic-function-templates.html, - Variadic Templates)) - $(P This article is about the D idiom of implementing variadic - functions with variadic templates.) - ) - $(DIVC item, - $(H4 $(LINK2 $(ROOT_DIR)d-array-article.html, D Slices)) - $(P Steven Schveighoffer writes about slices and dynamic arrays - in D. Unfortunately, this article uses slightly different - terminology than the language reference: What the article - calls a $(I slice) is a $(I dynamic array) in the language - reference, and what the article calls a $(I dynamic array) - is not named specifically by the language reference. Still, - the article is a great help in getting a good understanding - of D's array semantics.) - ) - ) - ) -) - -Macros: - TITLE=Articles - SUBNAV=$(SUBNAV_ARTICLES) diff --git a/articles.html b/articles.html new file mode 100644 index 0000000000..abf324bdf5 --- /dev/null +++ b/articles.html @@ -0,0 +1,9 @@ + + + +D Runtime Library + + + + + diff --git a/bugstats.php.dd b/bugstats.php.dd index 9d2d4d348d..23b0d78dfa 100644 --- a/bugstats.php.dd +++ b/bugstats.php.dd @@ -2,21 +2,24 @@ Ddoc $(D_S Bug tracker, -$(P +$(LI We use $(B Bugzilla) to track the issues for the D programming language. - $(BR) - The home of the D issue tracker is: $(B $(LINK http://issues.dlang.org)) + $(P The home of the D issue tracker is: $(B $(LINK http://issues.dlang.org))) ) -$(P - You can browse through the existing bugs for D projects $(LINK2 https://issues.dlang.org/describecomponents.cgi?product=D, $(B here)). +$(LI + You can browse through the existing bugs for D projects $(LINK2 https://issues.dlang.org/describecomponents.cgi?product=D, $(B here).) ) -$(P - If you want to search for a specific bug, you can use the $(LINK2 https://issues.dlang.org/query.cgi?format=specific, $(B search page)). +$(BR) + +$(LI + If you want to search for a specific bug, you can use the $(LINK2 https://issues.dlang.org/query.cgi?format=specific, $(B search page).) ) -$(P +$(BR) + +$(LI And if you want to file a new bug, you can use $(LINK2 https://issues.dlang.org/enter_bug.cgi?product=D, $(B this page)). ) diff --git a/builtin.dd b/builtin.dd index a5cf4c69ea..d4a04498c5 100644 --- a/builtin.dd +++ b/builtin.dd @@ -174,5 +174,4 @@ $(SECTION2 Please Note, Macros: TITLE=D Builtin Rationale WIKI=builtins - SUBNAV=$(SUBNAV_ARTICLES) diff --git a/code_coverage.dd b/code_coverage.dd index db99baecb7..89c2ac7239 100644 --- a/code_coverage.dd +++ b/code_coverage.dd @@ -228,4 +228,3 @@ $(LINK2 https://en.wikipedia.org/wiki/Code_coverage, Wikipedia) Macros: TITLE=Code Coverage Analysis WIKI=Dcover - SUBNAV=$(SUBNAV_ARTICLES) diff --git a/community.dd b/community.dd deleted file mode 100644 index f20306229c..0000000000 --- a/community.dd +++ /dev/null @@ -1,6 +0,0 @@ -Ddoc - -$(D_S Community, $(NAVIGATION_COMMUNITY)) - -Macros: - TITLE=Community diff --git a/comparison.dd b/comparison.dd index c0d042d467..c31ca9e1e9 100644 --- a/comparison.dd +++ b/comparison.dd @@ -108,3 +108,8 @@ $(ITEMIZE Macros: TITLE=Features Overview + NO=No + NO1=No + YES=Yes + YES1=Yes + diff --git a/const-faq.dd b/const-faq.dd index 2abca213fe..97ace4f352 100644 --- a/const-faq.dd +++ b/const-faq.dd @@ -295,4 +295,3 @@ Macros: WIKI=constFAQ ITEMR=$(LI $(RELATIVE_LINK2 $1, $+)) ITEM=
$(H3 $+) - SUBNAV=$(SUBNAV_ARTICLES) diff --git a/cpptod.dd b/cpptod.dd index 6690f71880..8a2b94c017 100644 --- a/cpptod.dd +++ b/cpptod.dd @@ -826,4 +826,3 @@ void test() Macros: TITLE=Programming in D for C++ Programmers WIKI=CPPtoD - SUBNAV=$(SUBNAV_ARTICLES) diff --git a/css/cssmenu.css.dd b/css/cssmenu.css.dd new file mode 100644 index 0000000000..c9fddd762c --- /dev/null +++ b/css/cssmenu.css.dd @@ -0,0 +1,205 @@ +Ddoc + +/*Adapted from http://cssmenumaker.com/menu/modern-jquery-accordion-menu +*/ + +@charset "UTF-8"; +/* Base Styles */ +#cssmenu, +#cssmenu ul, +#cssmenu li, +#cssmenu a, +#cssmenu h7 { + margin: 0; + padding: 0; + border: 0; + list-style: none; + font-weight: normal; + text-decoration: none; + line-height: 1; + font-size: 14px; + position: relative; +} +#cssmenu { +} +#cssmenu a, +#cssmenu h7 { + line-height: 1.3; +} +#cssmenu > ul > li:first-child { + margin-bottom: 1em; +} +#cssmenu > ul > li:first-child > a { + border: none; + font-family: 'Ubuntu', "Lucida Grande", "Helvetica Neue", Roboto, "Segoe UI", Calibri, Arial, sans-serif; + text-align: center; + font-size: 18px; + font-weight: 300; + text-shadow: 0 1px 1px $(menu_first_shadow); + margin-top: -0.65em; /* Pull up by padding-top so that the distance of the text + to #search-box is just #search-box's margin-bottom, but the link is still + clickable above. */ +} +#cssmenu > ul > li:first-child > a > span { + padding: 0; +} +#cssmenu > ul > li:first-child:hover { + background: transparent; +} +#cssmenu > ul > li { +} +#cssmenu > ul > li:hover { + $(GRADIENT $(menu_bg_hover), $(menu_bg_hover2)) +} +#cssmenu > ul > li > a { + font-size: 14px; + display: block; + color: $(menu_a); + text-shadow: 0 1px 1px $(menu_a_shadow); + -moz-transition: background 0.4s; + -webkit-transition: background 0.4s; + transition: background 0.4s; + padding: 0.65em 1em; +} +#cssmenu > ul > li > a > span { + display: block; +} +#cssmenu > ul > li.active:not(.has-sub):not(:first-child) > a { + background-color: $(menu_active_bg); +} +#cssmenu > ul > li.active.has-sub > a { + background-color: $(menu_active_with_sub_bg); +} +#cssmenu > ul > li > a:hover { + text-decoration: none; +} +#cssmenu > ul > li.has-sub > a span { + background: url(../images/icon_plus.svg) 96% center no-repeat; +} +#cssmenu > ul > li.has-sub.active > a span { + background: url(../images/icon_minus.svg) 96% center no-repeat; +} +/* Sub menu */ +#cssmenu ul ul { + background: $(submenu_bg); + border-right: 1px solid $(submenu_border); + border-left: 1px solid $(submenu_border); +} +body.have-javascript #cssmenu ul ul { + display: none; +} +body.have-javascript #cssmenu ul ul ul { + display: block; +} +#cssmenu ul ul li { + padding: 0; + $(GRADIENT $(submenu_bg_li), $(submenu_bg_li2)) +} +#cssmenu ul ul > li.active { + background: $(submenu_bg_li_active); +} +#cssmenu ul ul a, +#cssmenu ul ul h7 { + padding: 10px 10px 10px 25px; + display: block; + color: $(submenu_a); + font-size: 12px; + font-weight: normal; + padding-top: 4px; + padding-bottom: 4px; + word-wrap: break-word; + border-bottom: 1px solid $(bottom_submenu_li); +} +#cssmenu ul ul h7 { + color: $(submenu_h); +} +#cssmenu ul ul a:before, +#cssmenu ul ul h7:before { + content: "»"; + position: absolute; + left: 10px; + color: $(submenu_highlight); +} +#cssmenu ul ul ul { + border: 0; +} +#cssmenu ul ul li.active > a:after { + content: "►"; + position: absolute; + right: 10px; + color: $(submenu_highlight); +} +#cssmenu ul ul a:hover { + color: $(submenu_highlight); +} + +#cssmenu ul ul ul a, +#cssmenu ul ul ul h7 { + padding-left: 40px; +} +#cssmenu ul ul ul a:before, +#cssmenu ul ul ul h7:before { + left: 25px; +} + +#cssmenu ul ul ul ul a, +#cssmenu ul ul ul ul h7 { + padding-left: 55px; +} +#cssmenu ul ul ul ul a:before, +#cssmenu ul ul ul ul h7:before { + left: 40px; +} + +#cssmenu ul ul ul ul ul a, +#cssmenu ul ul ul ul ul h7 { + padding-left: 70px; +} +#cssmenu ul ul ul ul ul a:before, +#cssmenu ul ul ul ul ul h7:before { + left: 55px; +} + +Macros: + +DDOC=$(BODY) +DDOC_COMMENT=/*$0*/ +ESCAPES=//>/ /&/&/ +DDOC_UNDEFINED_MACRO=/* UNDEFINED MACRO $1 */ +_= + +VENDOR= + -webkit-$1: $+; + -moz-$1: $+; + $1: $+; +COLON=: +GRADIENT= + background$(COLON) $1; + background$(COLON) -moz-linear-gradient($1 0%, $2 100%); + background$(COLON) -webkit-gradient(linear, left top, left bottom, color-stop(0%, $1), color-stop(100%, $2)); + background$(COLON) -webkit-linear-gradient($1 0%, $2 100%); + background$(COLON) linear-gradient($1 0%, $2 100%); +_= + +bottom_submenu_li=#d4d4d4 +_= + +menu_a=#ffffff +menu_active_border=#333 +menu_a_shadow=#444 +menu_active_bg=#444 +menu_active_with_sub_bg=#AF2323 +menu_bg_hover=$(menu_active_bg) +menu_bg_hover2=$(menu_bg_hover) +menu_first_shadow=#000000 +_= + +submenu_highlight=$(menu_active_with_sub_bg) +submenu_a=#666 +submenu_h=$(submenu_a) +submenu_bg=#fff +submenu_bg_li=#f7f7f7 +submenu_bg_li2=#ececec +submenu_bg_li_active=#d7b7b7 +submenu_border=#a2a194 +_= diff --git a/css/ddox.css b/css/ddox.css index a70ca1896c..bc2e9e5bcc 100644 --- a/css/ddox.css +++ b/css/ddox.css @@ -1,17 +1,81 @@ -h1 code { font-size: 1em; } +h1 code { font-size: 1em; color: #633; } h1 code a { color: inherit; } +#content p { + margin-top: 0; + margin-bottom: 0.5em; +} + #copyright p { display: inline; } +/*a { + color: #13e; + text-decoration: none; +} + +a:hover { + color: #24f; +}*/ + pre a { text-decoration: none; } pre a:hover { text-decoration: underline; } +code { font-family: "Consolas", "Bitstream Vera Sans Mono", "Andale Mono", "Monaco", "DejaVu Sans Mono", "Lucida Console", "monospace"; font-size: 1.0em; } +code code, pre code, code a code { font-size: inherit; } + +#main-nav { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + display: inline-block; + vertical-align: top; + font-size: 9.5pt; + min-width: 10em; + width: 20%; + padding: 2em 1em; + border-right: 1px solid black; + border-bottom: 1px solid black; + background-color: #eee; +} + +#main-contents { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + display: inline-block; + vertical-align: top; + font-size: 9.5pt; + width: 80%; + padding: 2em; +} + h1 code a { text-decoration: none; color: inherit; - border-bottom: 1px dashed #CCC; + border-bottom: 1px dashed #cbb; +} + +table { + border-collapse: collapse; + border-top: 2px solid black; + border-bottom: 2px solid black; +} + +th { + text-align: left; + border-bottom: 1px solid black; + padding: 1pt; + padding-right: 12pt; +} + +td { + border-top: 1px dashed #ddd; + border-bottom: 1px dashed #ddd; + vertical-align: top; + padding: 1pt; + padding-right: 12pt; } col.caption { @@ -50,36 +114,29 @@ a.inherited:after { content: url(../images/ddox/inherited.png); padding-left: 3p #symbolSearch { width: 112pt; } #symbolSearchResults { - background: #F5F5F5; - border: 1px solid #CCC; - font-size: small; - list-style: none; - margin: 0; - margin-top: 5px; - padding: 0.3em; position: absolute; - right: -1px; - top: 100%; - width: 100%; + left: 158pt; + width: 400pt; + margin: 0; + background-color: white; z-index: 1000; + border: 1px solid black; + list-style: none; + padding: 0; + overflow: hidden; + font-size: 9.5pt; } #symbolSearchResults li { + border: none; background-repeat: no-repeat; background-position: left center; padding-left: 18px; } -#top #symbolSearchResults li a { - color: #B03931; - height: auto; - padding: 0; -} -#symbolSearchResults li a:hover -{ - background: transparent; - color: #742620; - text-decoration: underline; +#symbolSearchResults li a { + border: none; + color: black; } #symbolSearchResults .deprecated a { color: gray; } diff --git a/css/style.css b/css/style.css index dfea5175dc..47d7aa0a43 100644 --- a/css/style.css +++ b/css/style.css @@ -1,562 +1,39 @@ -/* - --- Colors -- - -Greys: - -white -#FCFCFC -#F5F5F5 -#E6E6E6 -#CCC -#ADADAD -#999 -#555 -#333 - main text - -Reds: - -#B03931 - our main red -#742620 - focus/hover - -#D8645E - on dark background -#F47069 - focus/hover on dark background - -#98312A -#943029 - --- Font Sizes -- - -Keep the number of different font sizes low. The different heading levels -(h1, ... h6) get specific sizes. Other than that, try to use 'small' and -'large'. - --- Misc -- - -border-radius: always 4px - -*/ - -@import url(https://fonts.googleapis.com/css?family=Roboto+Slab:300,400|Droid+Sans+Mono|Source+Code+Pro:300,400,500,600,700); - -body, .d_decl .quickindex -{ - font-family: "Roboto Slab", sans-serif; -} - -pre, code, .tt, .d_inlinecode, td.param_id, .CodeMirror pre, .d_decl -{ - font-family: Consolas, "Bitstream Vera Sans Mono", "Andale Mono", Monaco, "DejaVu Sans Mono", "Lucida Console", monospace; -} -pre, .CodeMirror pre -{ - font-size: small; -} - -body -{ - background: white; - color: #333; - font-size: 93.75%; - line-height: 1.4; - margin: 0; - padding: 0; -} - -#top > .helper, -body > .container, -body#Home #content #tools > div, -body#Home #content > .intro > div, -body#Home #content > .more -{ - margin: auto; - max-width: 76em; - padding: 0 1em; -} - -body > .container -{ - position: relative; -} - -/* top nav bar */ - -#top -{ - background: #B03931; - border-bottom: 1px #98312A solid; - position: relative; -} - -#top > .helper > .helper -{ - display: table; - width: 100%; -} - -#top #cssmenu, -#top .search-container -{ - display: table-cell; - vertical-align: middle; -} - -#top .search-container -{ - width: 0; /* shrink to content size */ -} - -#top .logo -{ - display: block; - float: left; - margin-right: 1em; - padding-top: 1px; -} - -#top img#logo -{ - height: 2.5em; - vertical-align: middle; - width: auto; -} - -#top #d-language -{ - display: none; -} - -#top a.hamburger -{ - display: none; -} - -#top a -{ - color: white; - text-decoration: none; -} - -#top a:hover, -#top #cssmenu li.open > a, -#top #cssmenu li.active > a -{ - background: #98312A; -} - -#top .expand-container -{ - position: relative; -} - -/* main menu */ - -#top #cssmenu -{ - width: 100%; /* take all available space */ -} - -/* Hide expandable sections by default in #cssmenu. They have fallback URLs. */ -#top #cssmenu .expand-container > * -{ - display: none; -} -#top #cssmenu .expand-container.open > *, -#top #cssmenu .expand-container > .expand-toggle -{ - display: block; -} - -#top #cssmenu ul -{ - list-style: none; - margin: 0; - padding: 0; -} - -#top #cssmenu a, #top .search-container a -{ - display: block; - height: 1.4em; /* Not sure why, but without this the expandable items would - get half a pixel taller than the others. */ - padding: 0.6em 1em; - position: relative; - white-space: nowrap; -} - -#top #cssmenu > ul > li -{ - float: left; -} - -#top #cssmenu > ul > li > ul -{ - background: #B03931; - border: 1px solid #98312A; - - border-bottom-left-radius: 4px; - border-bottom-right-radius: 4px; - - -moz-box-shadow: 0px 6px 12px rgba(0, 0, 0, 0.176); - -webkit-box-shadow: 0px 6px 12px rgba(0, 0, 0, 0.176); - box-shadow: 0px 6px 12px rgba(0, 0, 0, 0.176); - - position: absolute; - z-index: 5; -} - -#top #cssmenu > ul > li > ul > li > a -{ - font-size: small; - padding-top: 0.3em; - padding-bottom: 0.3em; - padding-right: 2em; -} - -#top #cssmenu > ul > li > ul > li:first-child > a -{ - padding-top: 0.6em; -} - -#top #cssmenu > ul > li > ul > li:last-child > a -{ - padding-bottom: 0.6em; -} - -/* search box */ - -#top .search-container.expand-container .expand-toggle -{ - display: none; -} -#top .search-container.expand-container .expand-toggle::after -{ - content: "\f002 \f0d7"; /* f002 = search; f0d7 = caret down */ - font-family: FontAwesome; -} - -#top .search-container.expand-container .expand-toggle span -{ - display: none; -} - -#top #search-box -{ - display: block; /* Don't hide even though it's in a .expand-container. */ - padding-left: 1em; -} - -div#search-box form, span#search-query, span#search-dropdown, span#search-submit -{ - border: 1px none #CCC; -} - -div#search-box form -{ - background: white; - - border-radius: 4px; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - - border-style: solid; - display: inline-block; - font-size: small; - margin: 0; - vertical-align: middle; - white-space: nowrap; -} - -span#search-query, -span#search-dropdown, span#search-dropdown > .helper, -span#search-submit -{ - display: inline-block; - height: 2em; - line-height: 1.3; - vertical-align: top; -} - -span#search-query -{ - width: 8em; -} - -span#search-query input, span#search-dropdown select, span#search-submit button -{ - background: transparent; - color: #333; - border: none; - font-size: small; - margin: 0; - padding: 0 0.5em; - width: 100%; - height: 100%; - outline: none; -} - -span#search-dropdown > .helper -{ - display: inline-block; - position: relative; - overflow: hidden; - width: 8em; -} - -span#search-dropdown > .helper::after -{ - content: "\f0d7"; /* caret down */ - font-family: FontAwesome; - position: absolute; - width: 1em; - line-height: 1em; - top: 0.5em; - right: 0.2em; -} - -span#search-dropdown select -{ - position: relative; - width: 14em; /* Pushing the native dropdown arrow into invisibility. */ - z-index: 1; - -webkit-appearance: none; -} - -span#search-submit -{ - background: #E6E6E6; - border-left-style: solid; - line-height: 1.2em; - width: 3em; -} - -span#search-submit button -{ - color: #555; -} - -span#search-submit button:active -{ - position: relative; - top: 0.1em; -} - -span#search-submit span /* hide 'go' */ -{ - display: none; -} - -/* subnav */ - -.subnav, .subnav-helper -{ - background: #F5F5F5; - border: 0 solid #CCC; - border-right-width: 1px; - padding-left: 1em; - padding-right: 1em; - width: 15em; -} - -.subnav -{ - float: left; - margin-right: 2em; - padding-bottom: 2em; - position: relative; -} - -.subnav a -{ - text-decoration: none; -} - -.subnav a:hover, .subnav .expand-toggle:hover -{ - text-decoration: underline; -} - -.subnav .smallprint a -{ - text-decoration: underline; -} - -.subnav h2 -{ - border-bottom: 1px solid #CCC; - font-size: 1em; - margin-right: -1em; -} - -/* Hide JS toggle. It's only displayed in the narrow layouts. */ -body.have-javascript .subnav.expand-container > h2.expand-toggle -{ - display: none; -} - -/* Hide links that just duplicate the subnav contents. They're only displayed -in the narrow layouts without JS. */ -.subnav .subnav-duplicate -{ - display: none; -} - -.subnav ul -{ - list-style: none; - margin: 0; - padding-left: 1em; -} -.subnav > ul -{ - padding-left: 0; -} - -.subnav li a -{ - display: block; - position: relative; - white-space: nowrap; -} - -.subnav li.active > a -{ - color: #742620; - text-decoration: underline; -} - -/* hierarchy tree lines */ - -body.std .subnav ul ul ul -{ - border-left: 1px solid #CCC; -} - -body.std .subnav .d_inlinecode -{ - display: block; - font-weight: normal; -} - -body.std .subnav li li > a > span, -body.std .subnav li li > h7 > span -{ - border-left: 1px solid #CCC; -} - -body.std .subnav ul ul li > a > span::before, -body.std .subnav ul ul li > h7 > span::before -{ - border-bottom: 1px solid #CCC; - content: ""; - display: inline-block; - width: 0.5ex; - margin-right: 0.5ex; - - height: 1em; - position: relative; - bottom: 0.5ex; -} - -body.std .subnav ul ul li:last-child > ul -{ - border-left: none; -} - -body.std .subnav ul ul li:last-child > a > span, -body.std .subnav ul ul li:last-child > h7 > span -{ - border-left: none; -} - -body.std .subnav ul ul li:last-child > a > span::before, -body.std .subnav ul ul li:last-child > h7 > span::before -{ - border-left: 1px solid #CCC; -} - -/* Don't show ddox package symbols in the subnav. */ -body.std .subnav a.package -{ - background: none; - padding-left: 0; - font-style: normal; -} - -.subnav-helper -{ - bottom: 0; - content: ""; - position: absolute; - top: 0; -} - -#content -{ - padding-bottom: 2em; - text-align: justify; -} - -/* This is a CSS hack to only target Blink based browsers - Targets Chrome 28 and later and Opera 14 and later -*/ -@media all and (-webkit-min-device-pixel-ratio:0) and (min-resolution: .001dpcm) { - #content - { - /* because Blink based browsers don't support hyphens */ - text-align: left; - } -} - -.subnav + #content -{ - margin-left: 19em; -} - -#content #tools -{ - padding: 0.3em 0 0.6em 0; - text-align: right; - word-spacing: 0.5em; -} - -#content #tools .tip -{ - display: inline-block; - word-spacing: 0; -} - -.expand-container > .expand-toggle::after -{ - content: " \f0d7"; /* caret down */ - font-family: FontAwesome; -} -body.have-javascript .expand-container.open > .expand-toggle::after -{ - content: " \f0d8"; /* caret up */ -} +@import url(https://fonts.googleapis.com/css?family=Inconsolata:400,700); -body.have-javascript .expand-container > * +html { - display: none; + height: 100%; /* of the viewport */ } -/* Not hiding .subnav by default; only in the narrow layouts. */ -body .subnav.expand-container > * +body { - display: block; + padding: 0; + border: 0; + color: black; + background-color: #1f252b; + background-repeat: no-repeat; + font-size: 100%; + font-family: Verdana, "Deja Vu", "Bitstream Vera Sans", sans-serif; + margin: 0 auto; + position: relative; /* So that absolute/fixed positions cling to this. */ + min-height: 100%; } -body.have-javascript .expand-container.open > *, -body.have-javascript .expand-container > .expand-toggle +/* Pseudo-padding. Can't use padding-top, because that's added to height. +Can't use margin-top on children, because it collapses with body's, and +consequently is added to height. */ +body::before { + content: ""; display: block; + height: 1em; } /* show signature download on hover */ span.sig_btn { display: inline-block; + line-height: 2.4em; } span.sig_btn > a:last-child @@ -571,20 +48,16 @@ span.sig_btn:hover > a:last-child a.btn { - color: #333; - background: white; - border: 1px solid #CCC; - border-radius: 4px; - padding: 0.3em 0.6em; - display: inline-block; + color: black !important; /*override a:visited color*/ + border: 1px solid gray; + border-radius: 20px; text-decoration: none; + padding: 6px 12px; } a.btn:hover { - background-color: #E6E6E6; - border-color: #ADADAD; - color: #333; + background-color: lightgray; } /* replaces tag */ @@ -598,6 +71,7 @@ em.big em.tt { font-style: normal; + font-family: Consolas, "Bitstream Vera Sans Mono", "Andale Mono", Monaco, "DejaVu Sans Mono", "Lucida Console", monospace; } /* replaces tag */ @@ -609,7 +83,7 @@ em.u table.params { - border: 1px dotted #333; + border: 1px dotted black; } tr.param @@ -626,7 +100,9 @@ tr:last-child td.param_id { border: inherit; + font-family: monospace; font-weight: bold; + font-size: 120%; padding-right: 1em; white-space: nowrap; vertical-align: top; @@ -788,7 +264,9 @@ div.summary, div.description, div.keyval h1, h2, h3, h4, h5, h6 { + font-family: Georgia, "Times New Roman", Times, serif; font-weight: normal; + color: #633; line-height: normal; text-align: left; margin: 2em 0 1em; @@ -800,19 +278,29 @@ h1 margin-top: 0; } +body#Home h1 span.slogan +{ + font-size: 0.75em; +} + h2 { font-size: 1.5em; + margin-top: 1em; + margin-bottom: 0.5em; } h3 { font-size: 1.35em; + margin-bottom: 0.5em; } h4 { font-size: 1.15em; + font-style: italic; + margin-bottom: 0; } form @@ -822,6 +310,7 @@ form blockquote { + font-family: Georgia, "Times New Roman", Times, serif; background-color: #e5e5e5; display: block; padding: 0.25em 1em; @@ -831,6 +320,7 @@ blockquote blockquote p:before { content: "\201C"; + font-family: Georgia, "Times New Roman", Times, serif; color: #bacaca; display: block; font-size: 700%; @@ -852,19 +342,16 @@ blockquote cite text-align: right; } -/* pre.prettyprint and div.prototype come from prettyprint.js */ -pre, pre.prettyprint, div.prototype +pre { background: white; - border-radius: 4px; padding: 1ex; margin: 1em 0 1em 0; + font-family: 'Inconsolata', monospace; + font-size: 1em; line-height: normal; border: 1px solid #ccc; width: auto; -} -pre -{ white-space: pre-wrap; /* css-3 */ white-space: -moz-pre-wrap; /* Mozilla, since 1999 */ white-space: -pre-wrap; /* Opera 4-6 */ @@ -874,10 +361,9 @@ pre dd, .d_decl_dd { - margin: 0; - margin-bottom: 2em; padding: 1ex; - padding-left: 2em; + margin-left: 3em; + margin-bottom: 1em; } .template_param_list @@ -905,7 +391,7 @@ dd, .d_decl_dd table { - border: solid #333; + border: solid black; border-width: 2px 0; border-collapse: collapse; } @@ -925,14 +411,14 @@ table td, table th, table caption table td { border: none; - border-bottom: 1px solid #E6E6E6; + border-bottom: 1px solid #E4E9EF; text-align: justify; } table th { border: none; - border-bottom: 1px solid #333; + border-bottom: 1px solid black; } table td:not(:last-child), table th:not(:last-child) @@ -945,15 +431,14 @@ hr margin: 2em 0; } -a, .question, .expand-toggle +a { - color: #B03931; - cursor: pointer; + color: #006; } -a:hover, .question:hover, .expand-toggle:hover +a:visited { - color: #742620; + color: #606; } /* @@ -973,16 +458,16 @@ a.anchor:hover text-decoration: underline; /* See above */ } -a.anchor:hover::after +a.anchor:hover:after { content: " \00B6"; /* Unicode pilcrow symbol */ - color: #333; /* Pilcrow should not use the regular header text color */ + color: black; /* Pilcrow should not use the regular header text color */ font-style: normal; /* ... and should not be italic */ } /* Avoid inserting the pilcrow in the middle of the line on the compiler pages */ -body.dcompiler dt a.anchor:hover::after +body.dcompiler dt a.anchor:hover:after { display: none; } @@ -995,36 +480,76 @@ body.dcompiler dt a.anchor:hover body.dcompiler dt a.anchor:hover:before { content: " \00B6"; - color: #333; + color: black; font-style: normal; position: absolute; left: -1em; } +.notice +{ + margin-bottom: 0.5em; +} + +a.notice:hover +{ + background: inherit; /* $(menu_bg_hover) */ +} + +.notice, table.notice-table td +{ + background-color: white; + box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12); + border: 1px dotted #633; + text-align: center; + padding: 0.5em; +} + +.notice, table.notice-table td a +{ + text-decoration: none; + font-weight: bold; + display: block; +} + +table.notice-table +{ + border: none; + width: 100%; + border-collapse: separate; + border-spacing: 0 0; +} + +table.notice-table td +{ + vertical-align: middle; +} + +/* padding between left and right cell */ +table.notice-table td:nth-child(2) +{ + visibility: hidden; + border: 0; + padding: 0.25em; +} + /* These are different kinds of
 sections */
 .bnf /* grammar */
 {
     background-color: white;
+    color: #000066;
 }
 
 .ddoccode
 {
     background-color: #f3eeee;
+    color: #000066;
 }
 
 .console /* command line console */
 {
-    background-color: #333;
-    border-color: #333;
-    color: #F5F5F5;
-}
-.console a
-{
-    color: #D8645E;
-}
-.console a:hover
-{
-    color: #F47069;
+    background-color: #f7f7f7;
+    color: #181818;
 }
 
 .moddeffile /* module definition file */
@@ -1039,20 +564,40 @@ body.dcompiler dt a.anchor:hover:before
     color: #111199;
 }
 
-.d_code, .d_code2 /* D code */
+.d_code /* D code */
+{
+    background-color: #fcfcfc;
+    color: #000066;
+}
+
+.d_code2 /* D code */
 {
     background-color: #fcfcfc;
+    color: #000066;
 }
 
 .asmcode /* Asm code */
 {
     background-color: #afcbde;
-    border-color: #afcbde;
+    color: #000066;
+}
+
+.ccode /* C code */
+{
+    background-color: #f6ecf0;
+    color: #000066;
+}
+
+.cppcode /* C++ code */
+{
+    background-color: #f6ecf0;
+    color: #000066;
 }
 
-.ccode, .cppcode, .cppcode2 /* C/C++ code */
+.cppcode2 /* C++ code */
 {
     background-color: #f6ecf0;
+    color: #000066;
 }
 
 td .d_code2, td .cppcode2, td .cppcode
@@ -1063,136 +608,227 @@ td .d_code2, td .cppcode2, td .cppcode
 
 .d_inlinecode
 {
+    font-family: monospace;
+    /* font-size: 1.2em; */
     font-weight: bold;
 }
 
-/* syntax highlighting
-
-d_* classes come from Ddoc.
-cm-* classes come from CodeMirror.
-
-These classes come from prettify.js:
-.pln - plain text
-.str - string content
-.kwd - keyword
-.com - comment
-.typ - type name
-.lit - literal value
-.pun - punctuation
-.opn - lisp open bracket
-.clo - lisp close bracket
-.tag - markup tag name
-.atn - markup attribute name
-.atv - markup attribute value
-.dec - declaration
-.var - variable name
-.fun - function name
+/* Elements of D source code text */
+.d_comment { color: green; }
+.d_string { color: red; }
+.d_keyword { color: blue; }
+.d_psymbol { text-decoration: underline; }
+.d_param { font-style: italic; }
 
-*/
+/* Focal symbol that is being documented */
+.ddoc_psymbol { color: #336600; }
 
-.d_comment,
-.cm-s-eclipse span.cm-comment,
-.com
+div#top, div#navigation
+{
+    width: 16em;
+    background: #333; /*hsl(0, 0%, 20%)*/
+    border: 0.25em none #191919; /*hsl(0, 0%, 10%)*/
+    border-right-style: solid;
+}
+div#top
 {
-    color: #999;
+    position: absolute;
+    top: 0;
+    left: 0;
+    font-size: 0.875em;
+    min-height: 100%;
 }
 
-.d_string,
-.cm-s-eclipse span.cm-string, .cm-s-eclipse span.cm-string-2,
-.str, .atv
+div#header
 {
-    color: #DC4040;
+    position: relative;
+    z-index: 1; /* i.e. higher than #navigation's */
 }
 
-.d_keyword,
-.cm-s-eclipse span.cm-keyword, .cm-s-eclipse span.cm-builtin,
-.kwd
+img
 {
-    color: #4040DC;
+    border: 0;
 }
 
-.d_param
+div#header a.logo
 {
-    font-style: italic;
+    display: block;
+    text-align: center;
+    padding: 1em 0;
 }
 
-/* .cm-meta is here because it and .lit both match @-attributes */
-.cm-s-eclipse span.cm-number, .cm-s-eclipse span.cm-meta,
-.lit
+img#logo
 {
-    color: #8E00DC;
+    vertical-align: text-bottom;
 }
 
+div#header a#d-language
 {
-    color: #333;
+    display: block;
+    font-variant: small-caps;
+    text-align: center;
+    color: white;
+    text-decoration: none;
+    line-height: 1.4em;
 }
 
-.cm-s-eclipse span.cm-attribute,
-.atn
+img#github-ribbon
 {
-    color: #9ad452;
+  position: absolute;
+  top: -15px;
+  right: 0;
+  border: 0;
+  z-index: 1;
 }
 
-.cm-s-eclipse span.cm-tag,
-.tag
+div#search-box, span#search-query, span#search-dropdown, span#search-submit
 {
-    color: #ffaa00;
+    border: 0.1em none #aaa;
 }
 
-.cm-s-eclipse span.cm-error
+div#search-box
 {
-    color: #f00;
+    white-space: nowrap;
+    margin: 3em 1em;
+    -webkit-border-radius: 0.3em 0.3em 0.3em 0.3em;
+    -moz-border-radius: 0.3em 0.3em 0.3em 0.3em;
+    border-radius: 0.3em 0.3em 0.3em 0.3em;
+    background: #F6F6F6;
+    border-style: solid;
 }
 
-.cm-s-eclipse span.cm-def, .cm-s-eclipse span.cm-operator,
-.cm-s-eclipse span.cm-property, .cm-s-eclipse span.cm-variable,
-.cm-s-eclipse span.cm-variable-2, .cm-s-eclipse span.cm-variable-3,
-.pln, .fun
-.dec, .var
+span#search-query, span#search-dropdown, span#search-submit
+{
+    vertical-align: top;
+    line-height: 1.3em;
+    height: 1.8em;
+}
+span#search-dropdown, span#search-submit
 {
-    color: #333;
+    display: inline-block;
 }
 
-.cm-s-eclipse span.cm-word {color: #006;}
-.cm-s-eclipse span.cm-atom {color: #219;}
-.cm-s-eclipse span.cm-qualifier {color: #555;}
-.cm-s-eclipse span.cm-bracket {color: #cc7;}
-.cm-s-eclipse span.cm-link {color: #219;}
+span#search-query input, span#search-dropdown select, span#search-submit button
+{
+    background: transparent;
+    color: black;
+    border: none;
+    margin: 0;
+    padding: 0 0.5em;
+    width: 100%;
+    height: 100%;
+    outline: none;
+}
 
+span#search-query
+{
+    display: block;
+    border-bottom-style: solid;
+}
 
-/* Focal symbol that is being documented */
-.d_psymbol, .ddoc_psymbol
+span#search-dropdown
 {
-/*     color: #B03931; */
-    font-weight: bold;
+    position: relative;
+    border-right: none;
+    overflow: hidden;
+    width: 11em;
+    /*
+        = 16em [#navigation's width]
+        - 2 * 1em [#search-box's margin-{left,right}]
+        - 3em [#search-submit's width]
+    */
 }
 
-.d_decl
+span#search-dropdown select
 {
-    background: #F5F5F5;
-    border-left: 5px solid #B03931;
-    text-align: left;
-    border-top-left-radius: 4px;
-    border-top-right-radius: 4px;
+    position: relative;
+    width: 14em; /* Pushing the native dropdown arrow into invisibility. */
+    z-index: 1;
 }
-.d_decl > div
+
+span#search-dropdown:after
 {
-    border: 1px solid #E6E6E6;
-    border-top-right-radius: 4px;
-    padding: 0.6em 1em;
+    content: "\f107"; /* angle down */
+    font-family: FontAwesome;
+    position: absolute;
+    height: 10px;
+    width: 1em;
+    top: 50%;
+    margin-top: -0.5em;
+    right: 0.2em;
 }
 
-.d_decl + dd
+span#search-submit
 {
-    border: 1px solid #E6E6E6;
-    border-top: none;
-    border-bottom-left-radius: 4px;
-    border-bottom-right-radius: 4px;
+    line-height: 1.2em;
+    width: 3em;
+    /*
+        = 16em [#navigation's width]
+        - 2 * 1em [#search-box's margin-{left,right}]
+        - 11em [#search-submit's width]
+    */
+    border-left-style: solid;
+    margin-left: -0.1em; /* = border-width */
 }
 
-img
+span#search-submit span /* hide 'go' */
 {
-    border: 0;
+    display: none;
+}
+
+
+div#navigation
+{
+    position: relative;
+    font-size: 0.875em;
+    float: left;
+    margin-top: 2.4em;
+    /*
+        = - 1em [body::before pseudo-padding]
+        + 2 * 1em [div#header a.logo's padding-{top,bottom}]
+        + 1.4em [#d-language's line-height]
+    */
+    padding-top: 95px; /* = #logo's height */
+}
+
+div#content
+{
+    text-align: justify;
+    min-height: 440px;
+    margin-left: 18em;
+    /*
+        = 16em [#navigation's width]
+        + 2em [inter-column space]
+    */
+    margin-right: 1em;
+    padding: 1.6em;
+    padding-top: 1.3em;
+    padding-bottom: 1em;
+    background-color: #f6f6f6;
+    font-size: 0.875em;
+    line-height: 1.4em;
+    border: 0.25em solid #ccd5d5;
+}
+
+/*  This is a CSS hack to only target Blink based browsers
+    Targets Chrome 28 and later and Opera 14 and later
+*/
+@media all and (-webkit-min-device-pixel-ratio:0) and (min-resolution: .001dpcm) {
+    div#content
+    {
+        /* because Blink based browsers don't support hyphens */
+        text-align: left;
+    }
+}
+
+body#Home div#content
+{
+    margin-right: 21em;
+    /*
+        = 1em [#news's margin-right]
+        + 18em [#news's width]
+        + 2em [inter-column space]
+    */
 }
 
 body.chm div#news,
@@ -1225,246 +861,291 @@ body.chm dt.d_decl
     width: 100%;
 }
 
-body#Home > .container
+span#wiki
 {
-    max-width: none;
-    padding: 0;
+    position: relative;
+    right: 0;
+    z-index: 2;
+}
+
+body#Home #content {
+    margin-right:20em;
 }
 
-body#Home #content #tools,
-body#Home #content > .intro
+div#news
 {
-    background: #F5F5F5;
+    font-size: 0.875em;
+    float: right;
+    width: 18em;
+    margin-right: 1em;
 }
 
-body#Home #content > h1
+div#twitter
 {
-    margin: 0;
+    color: white;
 }
 
-body#Home #content > .intro
+div#forum-summary
 {
-    padding-bottom: 1em;
-    border-bottom: 1px solid #E6E6E6;
+    color: white;
+    width: 100%;
+    margin-right: 1em;
 }
 
-body#Home #content > .intro > div > div
+div#forum-summary > iframe
 {
-    display: table;
+    border: 0;
     width: 100%;
+    height: 210px;
 }
 
-body#Home #content > .intro > div > div > *
+div.navblock
 {
-    display: table-cell;
+    margin-top: 0;
+    margin-bottom: 1em;
 }
 
-body#Home #content > .intro .pitch
+div#navigation .navblock h2
 {
-    font-size: large;
-    font-weight: 300;
-    margin: auto;
-    width: 21em;
+    font-family: Verdana, "Deja Vu", "Bitstream Vera Sans", sans-serif;
+    font-size: 1.35em;
+    color: #ccc;
+    margin: 0;
 }
 
-body#Home #content > .intro .download
+div#navigation .navblock ul
 {
-    margin-top: 3em;
-    text-align: center;
+    list-style-type: none;
+    margin: 0;
+    padding: 0;
 }
 
-body#Home #content > .intro .download .btn
+div#navigation .navblock li
 {
-    margin-bottom: 0.3em;
+    margin: 0 0 0 0.8em;
+    padding: 0;
 }
 
-body#Home #content > .intro #your-code-here
+#navigation .navblock a
 {
-    padding-left: 1em;
-    position: relative;
-    width: 32em;
+    display: block;
+    color: #ccc;
+    text-decoration: none;
+    padding: 0.1em 0;
+    border-bottom: 1px dotted #494949;
 }
 
-body#Home #content > .intro #your-code-here .tip
+#navigation .navblock a:hover
 {
-    position: absolute;
-    top: 0.1em;
-    right: 0.3em;
-    z-index: 1;
+    color: #eee;
 }
 
-body#Home #content > .intro #your-code-here pre
+#navigation .navblock a.active
 {
-    margin: 0;
+    color: white;
+    border-color: white;
+}
+
+
+div#translate
+{
+    margin-top: 3em;
+    margin-left: 0;
+    color: #ccc;
 }
 
-body#Home div#news
+
+div#tools
 {
+    display: inline;
     float: right;
-    width: 252px;
+    margin:
+        -1.1em /* = -(1.3em [#content's padding-top] - 0.2em) */
+        -1.4em /* = -(1.6em [#content's padding-right] - 0.2em) */
+        1em 1em;
+    text-align: right;
 }
 
-body#Home div#forum-summary
+body#Downloads div#tools
 {
-    color: white;
-    width: 100%;
-    margin-right: 1em;
+    padding-right: 149px; /* = width of github-ribbon.png */
 }
 
-body#Home div#forum-summary > iframe
+div#tools a.button
 {
-    border: 0;
-    width: 100%;
-    height: 210px;
+    -moz-box-shadow:inset 0 1px 0 0 #ffffff;
+    -webkit-box-shadow:inset 0 1px 0 0 #ffffff;
+    box-shadow:inset 0 1px 0 0 #ffffff;
+    background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #ededed), color-stop(1, #dfdfdf) );
+    background:-moz-linear-gradient( center top, #ededed 5%, #dfdfdf 100% );
+    background:-o-linear-gradient(top, #ededed, #dfdfdf);
+    filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed', endColorstr='#dfdfdf');
+    background-color:#ededed;
+    border:1px solid #aaa;
+    display:inline-block;
+    color:#555;
+    font-family:arial;
+    font-size:72%;
+    font-weight:bold;
+    padding:0 6px;
+    text-decoration:none;
+    text-shadow:1px 1px 0 #ffffff;
+}
+
+div#tools a.button:hover
+{
+    background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #dfdfdf), color-stop(1, #ededed) );
+    background:-moz-linear-gradient( center top, #dfdfdf 5%, #ededed 100% );
+    background:-o-linear-gradient(top, #dfdfdf, #ededed);
+    filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#dfdfdf', endColorstr='#ededed');
+    background-color:#dfdfdf;
+}
+
+div#tools a.button:active
+{
+    position: relative;
+    top: 1px;
+}
+
+div#tools img
+{
+    vertical-align: middle;
+}
+
+.tip {
+    position: relative;
 }
 
-body#Home .more .boxes, body#Home .more .whyd
-{
-    margin-right: 252px; /* prevent overlapping with #news */
-    padding-right: 4em;
+.tip span {
+    display: none;
+    position: absolute;
+    top: 25px;
+    left: auto;
+    right: 0;
+    width: 200px;
+    padding: 8px !important;
+    z-index: 100;
+    background: #000;
+    color: #eee !important;
+    font-style: normal !important;
+    font-size: 72%;
+    text-align: left;
+    -moz-border-radius: 5px;
+    -webkit-border-radius: 5px;
+    border-radius: 5px;
+
+    /* undo inherited attributes */
+    text-shadow: none;
 }
 
-body#Home .boxes .item .big-icon
-{
-    padding-right: 0.5em;
+.tip:hover span {
+    display: block;
 }
 
-body#Home .whyd .section
-{
-    margin-bottom: 1.5em;
-    border-left: 5px solid #B03931;
-    border-radius: 4px;
-}
-body#Home .whyd .section > div
-{
-    border: 1px solid #E6E6E6;
-    border-left: none;
-    border-radius: 4px;
-    padding: 1.5em;
-}
-body#Home .whyd .section > div > *:first-child
-{
-    margin-top: 0;
-}
-body#Home .whyd .section > div > *:last-child
-{
-    margin-bottom: 0;
-}
 
-body#Menu #content li.expand-container a::after
+div#content li
 {
-    content: "";
+    padding-bottom: .7ex;
 }
 
-body#Menu #content li.expand-container ul
-{
-    display: block;
-}
 
-.boxes
+div#footernav
 {
-    margin: 2em 0;
+    clear: both;
+    padding: 1em 2em 0 2em;
+    color: #666;
+    text-align: center;
+    font-size: 80%;
 }
 
-.boxes .row
+div#footernav a
 {
-    display: table-row;
+    color: #ccc;
 }
 
-.boxes .item
+div#footernav a:hover
 {
-    display: table-cell;
-    width: 50%;
+    color: white;
 }
 
-.boxes > .row > .item
+
+div#copyright
 {
     padding: 1em 2em;
+    color: #ccc;
+    font-size: 50%;
+    text-align: center;
 }
 
-.boxes > .row > .item > h4:first-child
+div#copyright a
 {
-    margin-top: 0;
+    color: #ccc;
 }
 
-.boxes > .row:first-child > .item
-{
-    padding-top: 0;
-}
 
-.boxes > .row:last-child > .item
+/* These are for the newsgroup archives */
+div#newsnav
 {
-    padding-bottom: 0;
+    margin-top: -1.5em;
+    margin-bottom: -1em;
 }
-
-.boxes > .row > .item:first-child
+div#Posting
 {
-    padding-left: 0;
+    border: 1px solid #cccccc;
+    margin-bottom: 1em;
 }
-
-.boxes > .row > .item:last-child
+div#PostingHeading
 {
-    padding-right: 0;
+    font-family: Georgia, "Times New Roman", Times, serif;
+    font-size: larger;
+    color: #633;
+    background-color: #eeeeee;
 }
-
-.tip
+div#PostingHeading img
 {
-    font-size: small;
-    position: relative;
+    vertical-align: middle;
 }
-
-.tip > div
+div#PostingHeading a
 {
-    display: none;
-    position: absolute;
-    top: 25px;
-    left: auto;
-    right: 0;
-    width: 19em;
-    padding: 8px;
-    z-index: 100;
-    background: #555;
-    color: white;
-    font-style: normal;
-    text-align: left;
-    -moz-border-radius: 4px;
-    -webkit-border-radius: 4px;
-    border-radius: 4px;
+    text-decoration: none;
 }
-
-.tip:hover > div
+div#PostingFooting
 {
-    display: block;
+    font-size: smaller;
+    background-color: #eeeeee;
 }
-
-.tip > div > *:first-child
+div#PostingTOC
 {
-    margin-top: 0;
+    font-size: smaller;
 }
-.tip > div > *:last-child
+div#PostingTOC li
 {
-    margin-bottom: 0;
+    margin-left: 0;
 }
-
-div#copyright
+div#PostingTOC a
 {
-    padding: 1em 2em;
-    clear: both;
-    text-align: center;
+    font-family: Georgia, "Times New Roman", Times, serif;
 }
-
-.smallprint, .smallprint a
+.PostingBody /* newsgroup posting */
 {
-    color: #999;
-    font-size: small;
+    border: 0;
+    margin: 0;
+    background-color: #fcfcfc;
+    color: #000066;
+    margin-left: 0;
+    min-width: 15em;
+    padding-bottom: 0.5em;
 }
-
-.smallprint a:hover
+.PostingQuote /* quote inside newsgroup posting */
 {
-    color: #555;
+    border: 1px solid #666666;
+    font-size: 90%;
+    background-color: inherit;
+    color: #666666;
+    margin-left: 0;
+    min-width: 15em;
 }
 
-
 /* These are for the changelogs */
 div.version
 {
@@ -1472,6 +1153,7 @@ div.version
 }
 div.version font
 {
+    font-family: Georgia, "Times New Roman", Times, serif;
     color: #633;
 }
 div.version li
@@ -1486,14 +1168,56 @@ div.changelog-nav
 }
 
 
+/* These are for comparison.html */
+table.comp /* "comparison with D": table */
+{
+    background-color:#e9e6dd;
+}
+table.comp a
+{
+    color: black;
+}
+td.compNo  /* comparison with D: "NO" */
+{
+    background-color:red;
+    text-align:center;
+}
+td.compYes  /* comparison with D: "YES" */
+{
+    background-color:#00FF00;
+    text-align:center;
+}
+
+
 .leadingrow {
     background-color: #E4E9EF;
     font-size: 110%;
 }
 
+.d_inlinecode
+{
+    font-family: "Consolas",
+        "Bitstream Vera Sans Mono",
+        "Andale Mono",
+        "Monaco",
+        "DejaVu Sans Mono",
+        "Lucida Console",
+        monospace;
+}
+
+.d_decl {
+    font-weight: bold;
+    background-color: #E4E9EF;
+    font-family: 'Inconsolata', monospace;
+    font-size: 16px;
+    border-bottom: solid 2px #336600;
+    padding: 2px 0 2px 2px;
+    text-align: left;
+}
+
 .quickindex {
     font-weight: normal;
-    background-color: #F5F5F5;
+    background-color: #E4E9EF;
 }
 
 .quickindex a {
@@ -1504,9 +1228,10 @@ div.changelog-nav
     text-decoration: underline;
 }
 
-.question, .question *
+.question
 {
     display: inline;
+    color: #006;
     text-decoration: underline;
     cursor:pointer;     /* Cursor is like a hand when someone rolls the mouse over the question */
 }
@@ -1530,6 +1255,8 @@ textarea.d_code_output, textarea.d_code_stdin, textarea.d_code_args
     text-align: left;
     border: none;
     width: 98%;
+    font-size: 1.09em;
+    font-family: monospace;
     padding: 5px;
     margin: 1px;
     word-wrap: break-word;
@@ -1539,8 +1266,8 @@ textarea.d_code_output, textarea.d_code_stdin, textarea.d_code_args
     outline: none;
 }
 
-div.d_code {margin: 0; padding: 0; background: #F5F5F5;}
-div.d_run_code {display: none;}
+div.d_code {margin: 0; padding: 0; font-size: 100%; margin-bottom: -14px; background: #F6F6F6;}
+div.d_run_code {display: none; margin: 1em 0 1em 3.1em;}
 div.d_code_output, div.d_code_stdin, div.d_code_args, div.d_code_unittest
 {
     border: 1px solid #CCC;
@@ -1550,10 +1277,31 @@ div.d_code_output, div.d_code_stdin, div.d_code_args, div.d_code_unittest
     width: 100%;
 }
 
-.d_code_title {font-weight: bold;padding: 5px;}
+.d_code_title {font-weight: bold;font-size: 100%;padding: 5px;}
 
 .CodeMirror-wrap {padding: 3px;}
-.CodeMirror {line-height: normal; border: 1px solid #CCC; background: #FCFCFC; }
+.CodeMirror {line-height: normal; font-size: 117%;border: 1px solid #CCC;background: white; }
+.cm-s-eclipse span.cm-word {color: #006;}
+.cm-s-eclipse span.cm-meta {color: #FF1717;}
+.cm-s-eclipse span.cm-keyword { color: blue; }
+.cm-s-eclipse span.cm-atom {color: #219;}
+.cm-s-eclipse span.cm-number {color: #006;}
+.cm-s-eclipse span.cm-def {color: #006;}
+.cm-s-eclipse span.cm-variable {color: #006;}
+.cm-s-eclipse span.cm-variable-2 {color: #006;}
+.cm-s-eclipse span.cm-variable-3 {color:#006;}
+.cm-s-eclipse span.cm-property {color: black;}
+.cm-s-eclipse span.cm-operator {color: black;}
+.cm-s-eclipse span.cm-comment {color: green;}
+.cm-s-eclipse span.cm-string {color: red;}
+.cm-s-eclipse span.cm-string-2 {color: red;}
+.cm-s-eclipse span.cm-error {color: #f00;}
+.cm-s-eclipse span.cm-qualifier {color: #555;}
+.cm-s-eclipse span.cm-builtin {color: #30a;}
+.cm-s-eclipse span.cm-bracket {color: #cc7;}
+.cm-s-eclipse span.cm-tag {color: #170;}
+.cm-s-eclipse span.cm-attribute {color: #00c;}
+.cm-s-eclipse span.cm-link {color: #219;}
 .cm-s-eclipse .CodeMirror-matchingbracket {border:1px solid grey;color:black !important;}
 
 input.runButton, input.resetButton, input.argsButton, input.inputButton, input.editButton
@@ -1598,13 +1346,18 @@ input.editButton:active
 input.resetButton{display: none}
 /* Runnable-examples css -end */
 
+div#mobile-top, div#mobile-search, img#mobile-hamburger
+{
+    display: none;
+}
+
 .page-contents
 {
     width: 300px;
     padding-right: 10px;
-    border: solid #333;
+    border: solid black;
     border-width: 2px 0;
-    font-size: small;
+    font-size: 12px;
     text-align: left;
     margin: 0 0 2em 2em;
 }
@@ -1622,14 +1375,13 @@ input.resetButton{display: none}
     margin-top: 0;
 }
 
-.page-contents li
+div#content .page-contents li
 {
     line-height: 1.3;
     padding-bottom: 0;
 }
 
-@media only screen and (min-width: 66em)
-{
+@media only screen and (min-width: 64em) { /* 1024px for default font-size 16 */
     pre
     {
         overflow: auto;
@@ -1641,340 +1393,159 @@ input.resetButton{display: none}
     }
 }
 
-/* Narrow layout stage 1: dropdown search, dropdown subnav */
-@media only screen and (max-width: 66em)
-{
-    #top .search-container.expand-container .expand-toggle
-    {
-        display: block;
-    }
-
-    #top .expand-container > #search-box
-    {
-        background: #B03931;
-        border: 1px solid #98312A;
-        border-bottom-left-radius: 4px;
-        border-bottom-right-radius: 4px;
+@media only screen and (max-width: 64em) { /* 1024px for default font-size 16 */
+    div#news{
         display: none;
-        padding: 0.6em;
-        position: absolute;
-        top: 100%;
-        right: 0;
-        width: auto;
-        z-index: 5;
     }
 
-    #top .expand-container.open > #search-box
-    {
-        display: block;
+    div#content{
+        margin-right: 1em !important;
     }
+}
 
-    body#Home #content > .intro .pitch
-    {
-        width: 15em;
-    }
+@media only screen and (max-width: 50em) { /* 800px for default font-size 16 */
 
-    .subnav
-    {
-        float: none;
-        border-bottom-width: 1px;
-        border-right-width: 0;
-        margin: 0 -1em;
-        padding: 0.6em 1em;
-        width: auto;
-    }
+    /* Disable desktop-size UI elements */
 
-    body .subnav.expand-container > *
-    {
+    div#news {
         display: none;
     }
 
-    .subnav.open
-    {
-        padding-bottom: 1em;
-    }
-
-    body.doc .subnav > ul,
-    body.std .subnav > ul > li > ul
-    {
-        -moz-column-width: 17em;
-        -webkit-column-width: 17em;
-        column-width: 17em;
-    }
-
-    body.doc .subnav > ul > li,
-    body.std .subnav > ul > li > ul > li
-    {
-        overflow: auto; /* avoid column breaks inside li */
-    }
-
-    .subnav h2
-    {
-        border-bottom-style: none;
-        margin-right: 0;
-        margin-top: 0;
-        padding-top: 1em;
-    }
-
-    /* Without JS, display the head section (h2, subhome link, ...) on one line.
-    With JS, display the toggle, and hide the other h2. */
-    .subnav > *
-    {
-        display: none;
-    }
-    .subnav > .head
-    {
-        display: block;
-        word-spacing: 1em;
-    }
-    .subnav > .head > *
-    {
-        display: inline;
-        word-spacing: 0;
-    }
-    .subnav > .head br
-    {
-        display: none;
-    }
-    .sunbav .subnav-duplicate
-    {
-        display: block;
-    }
-    .subnav > .head .separator::after
-    {
-        content: "\2013"; /* U+2013 EN DASH */
-    }
-    body.have-javascript .subnav.expand-container > .head > *,
-    body.have-javascript .subnav.expand-container.open > .head > h2,
-    body.have-javascript .subnav.expand-container.open > .head > .subnav-duplicate
-    {
-        display: none;
-    }
+    /* Header */
 
-    body.have-javascript .subnav.expand-container > h2.expand-toggle,
-    body.have-javascript .subnav.expand-container.open > .head > *,
-    body.have-javascript .subnav.expand-container > .head br
-    {
+    div#top {
+        position: relative;
+        width: auto;
         display: block;
-    }
-    body.have-javascript .subnav > h2.expand-toggle
-    {
-        margin: 0;
-        padding: 0;
-    }
-    body.have-javascript .head .separator::after
-    {
-        content: none;
-    }
-    body.have-javascript .subnav.open > h2
-    {
+        border-right-style: none;
         border-bottom-style: solid;
-        margin-bottom: 1em;
-    }
-
-    .subnav + #content
-    {
-        margin-left: 0;
-    }
-
-    .subnav-helper
-    {
-        display: none;
-    }
-}
-
-/* Narrow layout stage 2: hamburger menu, forum/twitter widgets disappear from
-the home page, intro pitch and your-code-here layed out vertically */
-@media only screen and (max-width:54em)
-{
-    body#Home #content > .intro > div > div
-    {
-        display: block;
-        width: auto;
+        overflow: hidden;
+        text-align: center;
+        font-size: 1em;
     }
 
-    body#Home #content > .intro > div > div > *
-    {
+    img#mobile-hamburger {
+        position: absolute;
+        left: 0;
+        top: 0;
+        width: 3.2em;
+        height: 3.2em;
+        line-height: 3.3em;
+        text-align: center;
         display: block;
+        cursor: pointer;
     }
 
-    body#Home #content > .intro .pitch
-    {
-        max-width: 21em;
-        width: auto;
+    img#mobile-hamburger:hover {
+        background: #444; /* menu_active_bg */
     }
 
-    body#Home #content > .intro #your-code-here
-    {
-        padding: 0;
-        margin: auto;
-        margin-top: 2em;
+    div#header {
+        position: static;
+        margin: 0 3.2em; /* = #mobile-hamburger's width */
     }
 
-    body#Home #news
-    {
+    div#header a.logo {
         display: none;
     }
 
-    body#Home .more .boxes, body#Home .more .whyd
-    {
-        margin-right: 0;
-        padding-right: 0;
+    span#d-language-mobilehelper {
+        display: inline-block;
+        vertical-align: middle;
+        line-height: 1.0;
     }
 
-    #top > .helper
-    {
+    div#header a#d-language {
+        position: static;
+        display: table-cell;
+        vertical-align: middle;
+        color: white;
+        text-align: center;
+        height: 3.2em;
         padding: 0;
+        line-height: 1.2em;
+        background: url(../images/dlogo.png) left no-repeat;
+        background-size: 50px auto;
+        padding-left: 60px;
+        /*
+            = 50px [background image width]
+            + 10px [some space between image and text]
+        */
     }
 
-    /* lay out navigation vertically */
-
-    #top #cssmenu, #top #search-box
-    {
-        display: block;
-    }
-
-    #top .logo
-    {
-        width: auto;
-    }
-
-    #top .logo > a
-    {
-        background: transparent; /* override :hover background change */
-        margin-left: 1em;
-    }
-
-    #top #cssmenu, #top .search-container
-    {
-        display: none;
-    }
-
-    #top .expand-container.open #cssmenu,
-    #top .expand-container .search-container
-    {
-        display: block;
-    }
+    /* Search */
 
-    #top #cssmenu
-    {
-        border-bottom: 1px solid rgba(255, 255, 255, 0.1);
-        border-top: 1px solid #943029;
-        clear: both;
-    }
-    #top #cssmenu > ul
+    div#search-box
     {
-        border-bottom: 1px solid #943029;
-        border-top: 1px solid rgba(255, 255, 255, 0.1);
+        position: static;
+        text-align: center;
+        overflow: hidden;
+        margin-top: 1em;
+
+        -moz-transition: height 0.5s;
+        -o-transition: left 0.5s;
+        -webkit-transition: height 0.5s;
+        transition: height 0.5s;
     }
 
-    #top .search-container
-    {
-        padding: 0.6em 1em;
-        width: auto;
+    div#search-query {
+        width: 40%;
     }
 
-    #top .search-container.expand-container .expand-toggle
-    {
-        display: none;
-    }
+    /* Navigation */
 
-    #top .expand-container > #search-box
-    {
-        border: 0;
+    div#navigation {
         display: block;
+        position: absolute;
+        top: 0;
+        left: -20em;
+        min-height: 100%;
         padding: 0;
-        position: static;
-    }
-
-    #top .expand-container .search-container
-    {
-        display: none;
-    }
-
-    #top .expand-container.open .search-container
-    {
-        display: block;
-    }
-
-    #top #search-box form
-    {
-        display: table;
-        width: 100%;
+        margin: 0;
+        -moz-box-shadow: 10px 0px 20px black;
+        -webkit-box-shadow: 10px 0px 20px black;
+        box-shadow: 10px 0px 20px black;
+        z-index: 10001;
+        -moz-transition: left 0.5s;
+        -o-transition: left 0.5s;
+        -webkit-transition: left 0.5s;
+        transition: left 0.5s;
     }
 
-    #top #search-query, #top #search-dropdown, #top #search-submit
-    {
-        display: table-cell;
+    div#navigation.open{
+        left: 0;
     }
 
-    #top #search-query
-    {
-        width: auto;
+    div#navigation-cancel {
+        position: fixed;
+        left: 0; top: 0; right: 0; bottom: 0;
+        background-color: rgba(255,255,255,0.5);
+        z-index: 10000;
     }
 
-    #top #search-dropdown
-    {
-        width: 0; /* shrink to content size */
-    }
+    /* Content */
 
-    #top #cssmenu > ul > li
-    {
-        float: none;
+    div#content {
+        -moz-border-radius: 0;
+        -webkit-border-radius: 0;
+        border-radius: 0;
+        margin-left: 0;
+        margin-right: 0 !important; /* override inline style! */
     }
 
-    #top #cssmenu > ul > li.expand-container.open > ul
-    {
-        border: none;
-
-        -moz-box-shadow: none;
-        -webkit-box-shadow: none;
-        box-shadow: none;
-
-        position: static;
+    body::before { /* Disable pseudo-padding. */
+        display: none;
     }
 
-    #top #cssmenu > ul > li.expand-container.open > ul > li > a
-    {
-        padding-left: 2em;
+    pre {
+        font-size: 1em;
     }
 
-    /* menu button */
-
-    #top a.hamburger
-    {
-        display: inline;
-        float: right;
-        font-size: 2em;
-        height: 1em;
-        line-height: 1;
-        padding: 0.15em 1em;
-    }
-    #top a.hamburger span
-    {
+    img#github-ribbon {
         display: none;
     }
-    #top a.hamburger::after
-    {
-        content: "\f0c9"; /* bars */
-        font-family: FontAwesome;
-    }
-}
-
-/* Narrow layout stage 3: no more two column boxes */
-@media only screen and (max-width: 40em)
-{
-    .boxes .row, .boxes .row .item
-    {
-        display: block;
-        padding: 0;
-        width: auto;
-    }
 
-    body#Home #content > .intro #your-code-here
-    {
-        /* change width to max-width */
-        width: auto;
-        max-width: 32em;
+    body#Downloads div#tools {
+        padding-right: 0;
     }
 }
diff --git a/ctarguments.dd b/ctarguments.dd
index 9a30d4be7a..cff6206cc0 100644
--- a/ctarguments.dd
+++ b/ctarguments.dd
@@ -217,4 +217,3 @@ $(H3 Homogenous lists)
 
 Macros:
     TITLE=Compile-time Argument Lists
-    SUBNAV=$(SUBNAV_ARTICLES)
diff --git a/ctod.dd b/ctod.dd
index 3589b69abe..8c0d7ee1e2 100644
--- a/ctod.dd
+++ b/ctod.dd
@@ -1597,4 +1597,3 @@ int main()
 Macros:
 	TITLE=Programming in D for C Programmers
 	WIKI=ctod
-	SUBNAV=$(SUBNAV_ARTICLES)
diff --git a/d-array-article.dd b/d-array-article.dd
index 98621e37e8..b89fd088f7 100644
--- a/d-array-article.dd
+++ b/d-array-article.dd
@@ -247,5 +247,4 @@ Macros:
     STDREF = $(D $2)
     OBJREF = $(D $2)
     WIKI =
-    SUBNAV=$(SUBNAV_ARTICLES)
     _=
diff --git a/d-floating-point.dd b/d-floating-point.dd
index 3f08441ded..43440d595d 100644
--- a/d-floating-point.dd
+++ b/d-floating-point.dd
@@ -348,4 +348,3 @@ Macros:
       HALF = ½
 	TITLE=Real Close to the Machine: Floating Point in D
 	WIKI=FloatingPointInD
-	SUBNAV=$(SUBNAV_ARTICLES)
diff --git a/dlang.org.ddoc b/dlang.org.ddoc
index 2b65f1e7a4..bfd4baa324 100644
--- a/dlang.org.ddoc
+++ b/dlang.org.ddoc
@@ -66,30 +66,30 @@ $(T title, $(FULL_TITLE))
 $(COMMON_HEADERS_DLANG)
 
 
+
 
 
 $(EXTRA_HEADERS)
 
 
 $(SCRIPT document.body.className += ' have-javascript')
-$(DIVID top, $(DIVC helper, $(DIVC helper expand-container,
-    $(DIVC logo, )
-    Menu
+$(DIVID top,
+	$(DIVID header,
+		
+		
+		D Programming Language
+	)
+)
+$(DIVID navigation,
+    $(SEARCH_BOX)
     $(NAVIGATION)
-    $(DIVC search-container expand-container,
-        Search
-        $(SEARCH_BOX)
-    )
-)))
+)
 $(LAYOUT_PREFIX)
-$(DIVC container,
-    $(SUBNAV)
-    $(DIVCID $(HYPHENATE), content,
-        $(PAGE_TOOLS)
-        $(LAYOUT_TITLE)
-        $(BODY_PREFIX)
-        $(BODY)
-    )
+$(DIVCID $(HYPHENATE), content,
+    $(PAGE_TOOLS)
+    $(LAYOUT_TITLE)
+    $(BODY_PREFIX)
+    $(BODY)
 )
 $(FOOTER)
 $(COMMON_SCRIPTS)
@@ -125,7 +125,7 @@ DDOC_PARAMS    = $(DDOCKEYVAL Parameters, $0
) DDOC_BLANKLINE = $(P) DDOC_PSYMBOL = $(ADEF $0)$(SPANC ddoc_psymbol, $0) DDOC_ANCHOR = $(ADEF .$1)$(DIVCID quickindex, quickindex.$1, ) -DDOC_DECL = $(TC dt, d_decl, $(DIV, $0)) +DDOC_DECL = $(TC dt, d_decl, $0) DDOC_UNDEFINED_MACRO = $(DDOC_COMMENT UNDEFINED MACRO: "$1") DDOCCODE=$(TC pre, ddoccode notranslate, $0) DDOCKEYVAL=$(DIVC keyval $1, $(SPANC key key$1, $1:) $(DIVC val val$1, $+)) @@ -145,8 +145,7 @@ EXTRA_JS= _= FAVICON=$(STATIC favicon.ico) -FOOTER = $(DIVCID smallprint, copyright, $(COPYRIGHT) | Page generated by -$(LINK2 $(ROOT_DIR)spec/ddoc.html, Ddoc) on $(GEN_DATETIME)) +FOOTER = $(DIV id="copyright", $(COPYRIGHT) | Page generated by $(WEB dlang.org/spec/ddoc.html, Ddoc) on $(GEN_DATETIME)) FOOTNOTE=$(SPANC footnote, $0) FULL_TITLE=$(TITLE) - D Programming Language FULL_XREF=$(XREF $1, $2) @@ -190,8 +189,7 @@ _= MDASH=$(T nobr,  — ) METACODE=$(SPANC metacode, $0) MENU =
  • $+
  • -MENU_W_SUBMENU =
  • $0 -MENU_W_SUBMENU_LINK =
  • $+ +MENU_W_SUBMENU =
  • $0 MENU_W_SUBMENU_END =
  • META_KEYWORDS=D programming language META_DESCRIPTION=D Programming Language @@ -202,54 +200,6 @@ MULTICOLS=$+ MULTIROW_HEADER=$+ _= - -NAVIGATION= -$(DIVID cssmenu, $(UL - $(MENU $(ROOT_DIR)getstarted.html, Learn) - $(MENU_W_SUBMENU_LINK $(ROOT_DIR)documentation.html, Documentation) - $(NAVIGATION_DOCUMENTATION) - $(MENU $(ROOT_DIR)download.html, Downloads) - $(MENU http://code.dlang.org, Packages) - $(MENU_W_SUBMENU_LINK $(ROOT_DIR)community.html, Community) - $(NAVIGATION_COMMUNITY) - $(MENU_W_SUBMENU_LINK $(ROOT_DIR)resources.html, Resources) - $(NAVIGATION_RESOURCES) -)) -NAVIGATION_COMMUNITY= -$(SUBMENU - $(ROOT_DIR)bugstats.php, Bug Tracker, - http://forum.dlang.org, Forums, - irc://irc.freenode.net/d, IRC, - http://github.com/D-Programming-Language, D on GitHub, - http://wiki.dlang.org, Wiki, - http://wiki.dlang.org/Review_Queue, Review Queue, - http://twitter.com/search?q=%23dlang, Twitter, - http://digitalmars.com/d/dlinks.html, More Links -) -NAVIGATION_DOCUMENTATION= -$(SUBMENU - $(ROOT_DIR)spec/intro.html, Language Reference, - $(ROOT_DIR)phobos/index.html, Library Reference, - $(ROOT_DIR)comparison.html, Feature Overview, - $(ROOT_DIR)dmd-windows.html, DMD Manual, - $(ROOT_DIR)articles.html, Articles -) -NAVIGATION_RESOURCES= -$(SUBMENU - $(ROOT_DIR)library/index.html, NEW Library Reference Preview, - $(ROOT_DIR)tools.html, D-Specific Tools, - $(VISUALD), Visual D, - http://wiki.dlang.org/Editors, Editors, - http://wiki.dlang.org/IDEs, IDEs, - http://wiki.dlang.org/Tutorials, Tutorials, - http://wiki.dlang.org/Books, Books, - $(ROOT_DIR)dstyle.html, The D Style, - $(ROOT_DIR)glossary.html, Glossary, - $(ROOT_DIR)acknowledgements.html, Acknowledgments, - $(ROOT_DIR)sitemap.html, Sitemap -) -_= - NEWS=http://digitalmars.com/webnews/newsgroups.php?search_txt=$(AMP)group=$1$(AMP)article_id=$+ NG_digitalmars_D = D/$0 NG_digitalmars_D_announce = D.announce/$0 @@ -264,23 +214,23 @@ OPT=$(SUBSCRIPT opt) _= PAGE_TOOLS= -$(DIVID tools, $(DIV, - $(DIVC tip smallprint, - $(HTMLTAG3 a, href="https://issues.dlang.org/enter_bug.cgi?bug_file_loc=http%3A%2F%2Fdlang.org/$(SELF_PATH)$(AMP)bug_severity=enhancement$(AMP)component=$(PROJECT)$(AMP)op_sys=All$(AMP)priority=P3$(AMP)product=D$(AMP)rep_platform=All$(AMP)short_desc=%5B$(TITLE)%5D$(AMP)version=D2", Report a bug) - $(DIV, +$(DIVID tools, + $(SPANC tip, + $(HTMLTAG3 a, href="https://issues.dlang.org/enter_bug.cgi?bug_file_loc=http%3A%2F%2Fdlang.org/$(SELF_PATH)$(AMP)bug_severity=enhancement$(AMP)component=$(PROJECT)$(AMP)op_sys=All$(AMP)priority=P3$(AMP)product=D$(AMP)rep_platform=All$(AMP)short_desc=%5B$(TITLE)%5D$(AMP)version=D2" class="button", Report a bug) + $(SPAN, If you spot a problem with this page, click here to create a Bugzilla issue. ) ) - $(DIVC tip smallprint, - Improve this page - $(DIV, + $(SPANC tip, + Improve this page + $(SPAN, Quickly fork, edit online, and submit a pull request for this page. Requires a signed-in GitHub account. This works well for small changes. If you'd like to make larger changes you may want to consider using - a local clone. + local clone. ) ) -)) +) _= PC=$(TC p, $1, $+) @@ -305,15 +255,15 @@ SEARCH_BOX=
    - $(SPANID search-query, )$(SPANID search-dropdown, $(SPANC helper, + $(SPANID search-query, )$(SPANID search-dropdown, - ))$(SPANID search-submit, ) + )$(SPANID search-submit, )
    ) SEARCH_OPTIONS_EXTRA= @@ -325,62 +275,11 @@ SECTION3=$(H3 $1)$+ SECTION4=$(H4 $1)$+ SECTION5=$(H5 $1)$+ STATIC=$(ROOT_DIR)$1 -SUBMENU=
      $(SUBMENU2 $1,$+)
    +SUBMENU=
      $(SUBMENU2 $1,$+)
    SUBMENU2=
  • $2
  • $(SUBMENU3 $+) SUBMENU3=$(SUBMENU2 $+) _= -SUBNAV= -SUBNAV_ARTICLES= -$(SUBNAV_TEMPLATE - $(DIVC head, - $(H2 Articles) - $(P $(LINK2 $(ROOT_DIR)articles.html, overview)) - ) - $(UL $(SUBMENU2 - $(ROOT_DIR)faq.html, FAQ, - $(ROOT_DIR)const-faq.html, const(FAQ), - $(ROOT_DIR)d-floating-point.html, Floating Point, - $(ROOT_DIR)warnings.html, Warnings, - $(ROOT_DIR)rationale.html, Rationale, - $(ROOT_DIR)builtin.html, Builtin Rationale, - $(ROOT_DIR)ctod.html, C to D, - $(ROOT_DIR)cpptod.html, C++ to D, - $(ROOT_DIR)pretod.html, C Preprocessor vs D, - $(ROOT_DIR)code_coverage.html, Code coverage analysis, - $(ROOT_DIR)exception-safe.html, Exception Safety, - $(ROOT_DIR)hijack.html, Hijacking, - $(ROOT_DIR)intro-to-datetime.html, Introduction to std.datetime, - $(ROOT_DIR)lazy-evaluation.html, Lazy Evaluation, - $(ROOT_DIR)migrate-to-shared.html, Migrating to Shared, - $(ROOT_DIR)mixin.html, Mixins, - $(ROOT_DIR)regular-expression.html, Regular Expressions, - $(ROOT_DIR)safed.html, SafeD, - $(ROOT_DIR)templates-revisited.html, Templates Revisited, - $(ROOT_DIR)ctarguments.html, Compile-time Argument Lists, - $(ROOT_DIR)variadic-function-templates.html, Variadic Templates, - $(ROOT_DIR)d-array-article.html, D Slices - )) -) - -SUBNAV_TEMPLATE=$(DIVC subnav-helper) $(DIVC subnav, $0) -_= - -SUBNAV_TOOLS= -$(SUBNAV_TEMPLATE - $(DIVC head, - $(H2 D-Specific Tools) - $(P $(LINK2 $(ROOT_DIR)tools.html, overview)) - ) - $(UL $(SUBMENU2 - /~https://github.com/Hackerpilot/dfix, dfix, - /~https://github.com/Hackerpilot/dfmt, dfmt, - $(ROOT_DIR)rdmd.html, rdmd, - $(ROOT_DIR)htod.html, htod - )) -) -_= - TABLE_10=$(TABLE2 $1,$+) TABLE_2COLS=$(TABLE2 $1, $+) TABLE_3COLS=$(TABLE2 $1, $+) @@ -402,7 +301,6 @@ UNDERSCORE=_ _= VERTROW=$(TR $(TDX $1, $+)) -VISUALD = http://rainers.github.io/visuald/visuald/StartPage.html _= WHITE=$(SPANC white, $0) diff --git a/doc.ddoc b/doc.ddoc index c6fa02a2bf..69dc1e9953 100644 --- a/doc.ddoc +++ b/doc.ddoc @@ -5,6 +5,123 @@ BODYCLASS = doc PROJECT = dlang.org _= +NAVIGATION= +$(DIVID cssmenu, $(UL + $(MENU $(ROOT_DIR)index.html, D $(LATEST)) + $(MENU $(ROOT_DIR)download.html, $(B Download)) + $(MENU $(ROOT_DIR)getstarted.html, Getting Started) + $(MENU http://ddili.org/ders/d.en/index.html, Official Tutorial) + $(MENU http://wiki.dlang.org, Wiki) + $(MENU_W_SUBMENU D Reference) + $(SUBMENU + $(ROOT_DIR)spec/intro.html, Introduction, + $(ROOT_DIR)spec/lex.html, Lexical, + $(ROOT_DIR)spec/grammar.html, Grammar, + $(ROOT_DIR)spec/module.html, Modules, + $(ROOT_DIR)spec/declaration.html, Declarations, + $(ROOT_DIR)spec/type.html, Types, + $(ROOT_DIR)spec/property.html, Properties, + $(ROOT_DIR)spec/attribute.html, Attributes, + $(ROOT_DIR)spec/pragma.html, Pragmas, + $(ROOT_DIR)spec/expression.html, Expressions, + $(ROOT_DIR)spec/statement.html, Statements, + $(ROOT_DIR)spec/arrays.html, Arrays, + $(ROOT_DIR)spec/hash-map.html, Associative Arrays, + $(ROOT_DIR)spec/struct.html, Structs and Unions, + $(ROOT_DIR)spec/class.html, Classes, + $(ROOT_DIR)spec/interface.html, Interfaces, + $(ROOT_DIR)spec/enum.html, Enums, + $(ROOT_DIR)spec/const3.html, Const and Immutable, + $(ROOT_DIR)spec/function.html, Functions, + $(ROOT_DIR)spec/operatoroverloading.html, Operator Overloading, + $(ROOT_DIR)spec/template.html, Templates, + $(ROOT_DIR)spec/template-mixin.html, Template Mixins, + $(ROOT_DIR)spec/contracts.html, Contract Programming, + $(ROOT_DIR)spec/version.html, Conditional Compilation, + $(ROOT_DIR)spec/traits.html, Traits, + $(ROOT_DIR)spec/errors.html, Error Handling, + $(ROOT_DIR)spec/unittest.html, Unit Tests, + $(ROOT_DIR)spec/garbage.html, Garbage Collection, + $(ROOT_DIR)spec/float.html, Floating Point, + $(ROOT_DIR)spec/iasm.html, D x86 Inline Assembler, + $(ROOT_DIR)spec/ddoc.html, Embedded Documentation, + $(ROOT_DIR)spec/interfaceToC.html, Interfacing to C, + $(ROOT_DIR)spec/cpp_interface.html, Interfacing to C++, + $(ROOT_DIR)spec/objc_interface.html, Interfacing to Objective-C, + $(ROOT_DIR)spec/portability.html, Portability Guide, + $(ROOT_DIR)spec/entity.html, Named Character Entities, + $(ROOT_DIR)spec/memory-safe-d.html, Memory Safety, + $(ROOT_DIR)spec/abi.html, Application Binary Interface, + $(ROOT_DIR)spec/simd.html, Vector Extensions + ) + $(MENU $(ROOT_DIR)phobos/index.html, Standard library) + $(MENU http://code.dlang.org, DUB $(NDASH) The D package registry) + $(MENU_W_SUBMENU Community) + $(SUBMENU + $(ROOT_DIR)bugstats.php, Bug Tracker, + http://forum.dlang.org, Forums, + irc://irc.freenode.net/d, IRC, + http://github.com/D-Programming-Language, D on GitHub, + http://wiki.dlang.org, Wiki, + http://wiki.dlang.org/Review_Queue, Review Queue, + http://twitter.com/search?q=%23dlang, Twitter, + http://digitalmars.com/d/dlinks.html, More Links + ) + $(MENU_W_SUBMENU Compilers $(AMP) Tools) + $(SUBMENU + $(ROOT_DIR)dmd-windows.html, dmd $(NDASH) reference compiler, + http://gdcproject.org, gdc $(NDASH) gcc-based compiler, + http://wiki.dlang.org/LDC, ldc $(NDASH) LLVM-based compiler, + http://code.dlang.org/download, DUB $(NDASH) D package manager, + /~https://github.com/Hackerpilot/dfix, dfix $(NDASH) D source code upgrade, + /~https://github.com/Hackerpilot/dfmt, dfmt $(NDASH) D source code formatting tool, + $(ROOT_DIR)rdmd.html, rdmd $(NDASH) build tool, + $(ROOT_DIR)htod.html, htod $(NDASH) .h to .d + ) + $(MENU_W_SUBMENU Books $(AMP) Articles) + $(SUBMENU + http://ddili.org/ders/d.en/index.html, Online Book (free), + http://wiki.dlang.org/Books, More Books, + $(ROOT_DIR)howtos.html, How-tos, + $(ROOT_DIR)faq.html, FAQ, + $(ROOT_DIR)const-faq.html, const(FAQ), + $(ROOT_DIR)comparison.html, Feature Overview, + $(ROOT_DIR)d-floating-point.html, Floating Point, + $(ROOT_DIR)warnings.html, Warnings, + $(ROOT_DIR)rationale.html, Rationale, + $(ROOT_DIR)builtin.html, Builtin Rationale, + $(ROOT_DIR)ctod.html, C to D, + $(ROOT_DIR)cpptod.html, C++ to D, + $(ROOT_DIR)pretod.html, C Preprocessor vs D, + $(ROOT_DIR)code_coverage.html, Code coverage analysis, + $(ROOT_DIR)exception-safe.html, Exception Safety, + $(ROOT_DIR)hijack.html, Hijacking, + $(ROOT_DIR)intro-to-datetime.html, Introduction to std.datetime, + $(ROOT_DIR)lazy-evaluation.html, Lazy Evaluation, + $(ROOT_DIR)migrate-to-shared.html, Migrating to Shared, + $(ROOT_DIR)mixin.html, Mixins, + $(ROOT_DIR)regular-expression.html, Regular Expressions, + $(ROOT_DIR)safed.html, SafeD, + $(ROOT_DIR)templates-revisited.html, Templates Revisited, + $(ROOT_DIR)tuple.html, Tuples, + $(ROOT_DIR)ctarguments.html, Compile-time Argument Lists, + $(ROOT_DIR)variadic-function-templates.html, Variadic Templates, + $(ROOT_DIR)d-array-article.html, D Slices + ) + $(MENU_W_SUBMENU Resources) + $(SUBMENU + $(ROOT_DIR)library/index.html, NEW Library Reference Preview, + $(VISUALD), Visual D, + http://wiki.dlang.org/Editors, Editors, + http://wiki.dlang.org/IDEs, IDEs, + $(ROOT_DIR)dstyle.html, The D Style, + $(ROOT_DIR)glossary.html, Glossary, + $(ROOT_DIR)acknowledgements.html, Acknowledgments, + $(ROOT_DIR)sitemap.html, Sitemap + ) +)) +_= + D_S = $(LAYOUT ,$1,$(ARGS $+)) SPEC_S = $(LAYOUT ,$1,$(ARGS $+)) COMMUNITY= $(LAYOUT ,$1,$(ARGS $+)) @@ -19,8 +136,13 @@ DUMPOBJ=$(HTTP digitalmars.com/ctg/dumpobj.html, dumpobj) SHELL=$(HTTP digitalmars.com/ctg/shell.html, shell) _= +VISUALD = http://rainers.github.io/visuald/visuald/StartPage.html +_= + AMAZONLINK= $(WEB amazon.com/exec/obidos/ASIN/$1/classicempire, $+) _= +_= + MIDRULE= _= diff --git a/documentation.dd b/documentation.dd deleted file mode 100644 index 0664ea3e9d..0000000000 --- a/documentation.dd +++ /dev/null @@ -1,6 +0,0 @@ -Ddoc - -$(D_S Documentation, $(NAVIGATION_DOCUMENTATION)) - -Macros: - TITLE=Documentation diff --git a/download.dd b/download.dd index 8bcee5b93e..95874ec511 100644 --- a/download.dd +++ b/download.dd @@ -1,5 +1,9 @@ Ddoc + +Fork D on GitHub + $(D_S Downloads, $(TABLEC download-compilers, diff --git a/dpl-docs/views/ddox.inc.module-tree.dt b/dpl-docs/views/ddox.inc.module-tree.dt index a7a3ac3638..849e31130f 100644 --- a/dpl-docs/views/ddox.inc.module-tree.dt +++ b/dpl-docs/views/ddox.inc.module-tree.dt @@ -1,16 +1,14 @@ - import ddox.entities; - void moduleNavTree(Package pack) - - string pack_class = "expand-container"; + - string pack_class = pack is info.rootPackage ? "has-sub" : "tree-view"; - foreach(i, p; pack.packages) - li(class='#{p.isAncestorOf(info.node) ? pack_class ~ " open" : pack_class}') - a.package(href="#", class="expand-toggle") - span= p !is info.rootPackage ? p.name : null + li(class='#{!pack.parent && i == 0 && !info.node.parent || p.isAncestorOf(info.node) ? pack_class : pack_class ~ " collapsed"}') + a.package(href="#")= p !is info.rootPackage ? p.name : null ul.tree-view - moduleNavTree(p); - foreach(m; pack.modules) li - a.module(href="#{info.linkTo(m)}", class='#{info.node is m || m.isAncestorOf(info.node) ? "selected" : ""}') - span= m.name + a.module(href="#{info.linkTo(m)}", class='#{info.node is m || m.isAncestorOf(info.node) ? "selected" : ""}')= m.name - moduleNavTree(info.rootPackage); diff --git a/dpl-docs/views/layout.dt b/dpl-docs/views/layout.dt index c9c53fb2da..a5dd30cc65 100644 --- a/dpl-docs/views/layout.dt +++ b/dpl-docs/views/layout.dt @@ -6,10 +6,8 @@ html(lang='en-US') | http://digitalmars.com - import std.process : environment; - string version_id = environment["GIT_TARGET"]; - - bool haveVersion = version_id.startsWith("v"); - - string version_name = haveVersion ? version_id[1 .. $] : "Prerelease"; + - string version_name = version_id.startsWith("v") ? version_id[1 .. $] : "Prerelease"; - string root_dir = info.linkTo(null) ~ (req is null ? "../" : ""); - - string ddox_dir = haveVersion ? "library/" : "library-prerelease/"; head meta(charset='utf-8') @@ -20,6 +18,7 @@ html(lang='en-US') link(rel='stylesheet', href='#{root_dir}css/codemirror.css') link(rel='stylesheet', href='#{root_dir}css/style.css') link(rel='stylesheet', href='#{root_dir}css/print.css', media='print') + link(rel='stylesheet', href='#{root_dir}css/cssmenu.css') link(rel='stylesheet', href='#{root_dir}css/ddox.css') link(rel="stylesheet", href="#{root_dir}prettify/prettify.css", type="text/css") link(rel='stylesheet', href='https://maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css') @@ -33,182 +32,97 @@ html(lang='en-US') script(type='text/javascript'). document.body.className += ' have-javascript'; #top - .helper - .helper.expand-container - a.logo(href='#{root_dir}') - img#logo(width='125', height='95', alt='D Logo', src='#{root_dir}images/dlogo.svg') - a.hamburger.expand-toggle(href="#{root_dir}menu.html", title="Menu") - span Menu - #cssmenu - ul - li - a(href="#{root_dir}getstarted.html") - span Learn - li.expand-container - a.expand-toggle(href="#{root_dir}documentation.html") - span Documentation - ul - li - a(href="#{root_dir}spec/intro.html")Language Reference - li - a(href="#{root_dir}phobos/index.html") Library Reference - li - a(href="#{root_dir}comparison.html") Feature Overview - li - a(href="#{root_dir}dmd-windows.html") DMD Manual - li - a(href="#{root_dir}articles.html") Articles - li - a(href="#{root_dir}download.html") - span Downloads - li - a(href="http://code.dlang.org") - span Packages - li.expand-container - a.expand-toggle(href="#{root_dir}community.html") - span Community - ul - li - a(href="#{root_dir}bugstats.php") Bug Tracker - li - a(href="http://forum.dlang.org") Forums - li - a(href="irc://irc.freenode.net/d") IRC - li - a(href="http://github.com/D-Programming-Language") D on GitHub - li - a(href="http://wiki.dlang.org") Wiki - li - a(href="http://wiki.dlang.org/Review_Queue") Review Queue - li - a(href="http://twitter.com/search?q=%23dlang") Twitter - li - a(href="http://digitalmars.com/d/dlinks.html") More Links - li.expand-container - a.expand-toggle(href="#{root_dir}resources.html") - span Resources - ul - li - a(href="#{root_dir}library/index.html") NEW Library Reference Preview - li - a(href="#{root_dir}tools.html") D-Specific Tools - li - a(href="http://rainers.github.io/visuald/visuald/StartPage.html") Visual D - li - a(href="http://wiki.dlang.org/Editors") Editors - li - a(href="http://wiki.dlang.org/IDEs") IDEs - li - a(href="http://wiki.dlang.org/Tutorials") Tutorials - li - a(href="http://wiki.dlang.org/Books") Books - li - a(href="#{root_dir}dstyle.html") The D Style - li - a(href="#{root_dir}glossary.html") Glossary - li - a(href="#{root_dir}acknowledgements.html") Acknowledgments - li - a(href="#{root_dir}sitemap.html") Sitemap - .search-container.expand-container - a.expand-toggle(href="#{root_dir}search.html", title="Search") - span Search - #search-box - form(method='get', action='http://google.com/search') - input#domains(type='hidden', name='domains', value='dlang.org') - | - input#sourceid(type='hidden', name='sourceid', value='google-search') - | - span#search-query - input#q(name='q', placeholder='Search') - input#symbolSearch(style="display: none", type="text", name="symbolSearch", placeholder="API Search", onchange="performSymbolSearch(80);", onkeypress="this.onchange();", onpaste="this.onchange();", oninput="this.onchange();", autofocus) - span#search-dropdown - .helper - select#sitesearch(name='sitesearch', size='1') - option(value='dlang.org') Entire D Site - | - option(selected='', value='dlang.org/spec') Language - | - option(selected='', value='dlang.org/library') Library - | - option(value='forum.dlang.org') Forums - span#search-submit - button(type='submit') - i.fa.fa-search - span go - include ddox.inc.symbol-search.results + #header + a.logo(href='#{root_dir}') + img#logo(width='125', height='95', alt='D Logo', src='#{root_dir}images/dlogo.svg') + | + span#d-language-mobilehelper + a#d-language(href='#{root_dir}') D Programming Language + #navigation + #search-box + form(method='get', action='http://google.com/search') + input#domains(type='hidden', name='domains', value='dlang.org') + | + input#sourceid(type='hidden', name='sourceid', value='google-search') + | + span#search-query + input#q(name='q', placeholder='Search') + input#symbolSearch(style="display: none", type="text", name="symbolSearch", placeholder="API Search", onchange="performSymbolSearch(80);", onkeypress="this.onchange();", onpaste="this.onchange();", oninput="this.onchange();", autofocus) + span#search-dropdown + select#sitesearch(name='sitesearch', size='1') + option(value='dlang.org') Entire D Site + | + option(selected='', value='dlang.org/library') Library Reference + | + option(value='digitalmars.com/d/archives') Newsgroup Archives + span#search-submit + button(type='submit') + i.fa.fa-search + span go - .container - .subnav-helper - .subnav - h2 API Documentation - p - span.smallprint - - if( haveVersion ) - | version #{version_name} - br - a(href='#{root_dir}library-prerelease/index.html') switch to pre-release version - - else - | pre-release version - br - a(href='#{root_dir}library/index.html') switch to latest release version - p - a(href="#{root_dir}#{ddox_dir}index.html") overview + #cssmenu ul + li + a(href='#{root_dir}index.html') + span D Lib #{version_name} + | + li + a(href='#{root_dir}library-prerelease/index.html') + span Prerelease Version + | block navigation - #content.hyphenate + li + a(href='http://code.dlang.org') + span 3rd Party Packages + + div(style="position: absolute; height: 0;") + include ddox.inc.symbol-search.results + + #content.hyphenate + - if( auto modname = info.node.moduleName ) #tools - div - - auto modname = info.node.moduleName; - - string project = "dlang.org"; - - string path_prefix, line_suffix, filename; - - if( modname ) - - if( modname.startsWith("core.") ) - - project = "druntime", path_prefix = "src/"; - - else - - project = "phobos", path_prefix = ""; - - if( auto decl = cast(Declaration)info.node ) line_suffix = "#L"~to!string(decl.line); - - filename = replace(modname, ".", "/"); + - string project, path_prefix, line_suffix; + - if( modname.startsWith("core.") ) + - project = "druntime", path_prefix = "src/"; + - else + - project = "phobos", path_prefix = ""; + - if( auto decl = cast(Declaration)info.node ) line_suffix = "#L"~to!string(decl.line); + - string filename = replace(modname, ".", "/") ~ ".d"; - - if( modname ) - .tip.smallprint - a(href='/~https://github.com/D-Programming-Language/#{project}/blob/#{version_id}/#{path_prefix}#{filename}.d#{line_suffix}') - | View source code - div - | Display the source code in #{filename}.d from which this - | page was generated on github. + a.tip.button(href='/~https://github.com/D-Programming-Language/#{project}/blob/#{version_id}/#{path_prefix}#{filename}#{line_suffix}') + | View source code + span + | Display the source code in #{filename} from which this page was generated on + | github. - .tip.smallprint - - auto pagename = modname ? path_prefix ~ filename : "index" ; - a(href="https://issues.dlang.org/enter_bug.cgi?bug_file_loc=http%3A%2F%2Fdlang.org/library/#{pagename}.html&bug_severity=enhancement&component=#{project}&op_sys=All&priority=P3&product=D&rep_platform=All&short_desc=%5B#{title}%5D&version=D2") Report a bug - div - | If you spot a problem with this page, click here to create a - | Bugzilla issue. + a.tip.button(href='/~https://github.com/D-Programming-Language/#{project}/edit/master/#{path_prefix}#{filename}') + | Improve this page + span + | Quickly fork, edit online, and submit a pull request for this page. + | Requires a signed-in GitHub account. This works well for small changes. + | If you'd like to make larger changes you may want to consider using + | local clone. - - if( modname ) - .tip.smallprint - a(href='/~https://github.com/D-Programming-Language/#{project}/edit/master/#{path_prefix}#{filename}.d') - | Improve this page - div - | Quickly fork, edit online, and submit a pull request for this page. - | Requires a signed-in GitHub account. This works well for small changes. - | If you'd like to make larger changes you may want to consider using - | local clone. + //- a.tip.button(href='http://www.prowiki.org/wiki4d/wiki.cgi?DocComments/Phobos/#{info.node.qualifiedName}') + a.tip.button(href='http://wiki.dlang.org/DocComments/Phobos/#{info.node.qualifiedName}') + | Page wiki + span + | View or edit the community-maintained wiki page associated with this page. - - auto hidx = std.string.lastIndexOf(title, ' '); - - auto node = info.docGroups.length ? info.docGroups[0].members[0] : null; - - if (title.endsWith(" - multiple declarations") && node) - h1 #{info.mod.qualifiedName}.#{title[0 .. $-24]} #{title[$-24 ..$]} - - else if (hidx > 0 && !title.startsWith("Module ") && node) - h1 #{title[0 .. hidx]} #{node.parent.qualifiedName}.#{node.name} - - else if (hidx > 0 && title.startsWith("Module ") && info.mod) - h1 Module #{info.mod.qualifiedName} - - else - h1= title - block body + - auto hidx = std.string.lastIndexOf(title, ' '); + - auto node = info.docGroups.length ? info.docGroups[0].members[0] : null; + - if (title.endsWith(" - multiple declarations") && node) + h1 #{info.mod.qualifiedName}.#{title[0 .. $-24]} #{title[$-24 ..$]} + - else if (hidx > 0 && !title.startsWith("Module ") && node) + h1 #{title[0 .. hidx]} #{node.parent.qualifiedName}.#{node.name} + - else if (hidx > 0 && title.startsWith("Module ") && info.mod) + h1 Module #{info.mod.qualifiedName} + - else + h1= title + block body - | - #quickindex.quickindex + | + #quickindex.quickindex #copyright block copyright diff --git a/exception-safe.dd b/exception-safe.dd index 4f70b5a7f7..5d81f19f05 100644 --- a/exception-safe.dd +++ b/exception-safe.dd @@ -441,4 +441,4 @@ $(LINK2 http://www.amazon.com/exec/obidos/ASIN/0321334876/classicempire, Macros: TITLE=Exception Safety WIKI=ExceptionSafe - SUBNAV=$(SUBNAV_ARTICLES) + diff --git a/faq.dd b/faq.dd index ff475fd6c7..7a214d1586 100644 --- a/faq.dd +++ b/faq.dd @@ -934,4 +934,3 @@ Macros: WIKI=FAQ ITEMR=$(LI $(RELATIVE_LINK2 $1, $+)) ITEM=
    $(H3 $+) - SUBNAV=$(SUBNAV_ARTICLES) diff --git a/getstarted.dd b/getstarted.dd index 63b3a7d78c..7e3c36d2d9 100644 --- a/getstarted.dd +++ b/getstarted.dd @@ -4,7 +4,7 @@ $(D_S Getting Started, $(P - The $(LINK2 $(ROOT_DIR)overview.html, overview) page gives a feel for + The $(LINK2 http://dlang.org/overview.html, overview) page gives a feel for the unique features of the language. ) diff --git a/hijack.dd b/hijack.dd index 8868be4fad..b3c34c4e2b 100644 --- a/hijack.dd +++ b/hijack.dd @@ -566,4 +566,3 @@ $(LI Andrei Alexandrescu) Macros: TITLE=Hijack WIKI=Hijack - SUBNAV=$(SUBNAV_ARTICLES) diff --git a/htod.dd b/htod.dd index 81a0abc6e8..66b61e7784 100644 --- a/htod.dd +++ b/htod.dd @@ -231,4 +231,3 @@ $(OL Macros: TITLE=htod WIKI=htod - SUBNAV=$(SUBNAV_TOOLS) diff --git a/index.dd b/index.dd index 544b39dc6b..9de630dd22 100644 --- a/index.dd +++ b/index.dd @@ -2,152 +2,126 @@ Ddoc $(D_S D Programming Language, -$(SECTION1 , - -$(DIVC intro, $(DIV, $(DIV, - $(DIV, - $(TC p, pitch, $(B D) is a systems programming language with C-like - syntax and static typing. It combines efficiency, control and modeling - power with safety and programmer productivity.) - - $(TC p, download, - Download - $(BR) - $(SPANC smallprint, Latest version: $(LATEST) - – $(LINK2 changelog/$(LATEST).html, Changelog)) - ) - ) - $(DIVID your-code-here, - $(DIVC tip, - $(LINK2 http://forum.dlang.org/newpost/general, your code here) - $(DIV, - $(P Got a brief example illustrating D?) - $(P Submit your code to the digitalmars.D forum specifying - "[your code here]" in the subject.) - $(P Upon approval it will be showcased here on a random schedule.) - ) - ) - $(DIVID your-code-here-default, +$(SECTION1 The D Programming Language$(BR) $(SPANC slogan, Modern convenience. Modeling power. Native efficiency.), + +$(NOTICE DMD $(LATEST) Released$(BR)Download · Changelog) +$(TABLEC notice-table, $(TR $(TD +$(WEB arsdnet.net/this-week-in-d/, This Week in D) +)$(TD)$(TD +$(WEB dconf.org/2015/schedule/index.html, Videos and Slides from DConf 2015) +))) +
    + +
    + + [your code here] + + Got a brief example illustrating D? Submit your code to the digitalmars.D forum specifying "[your code here]" in the title. Upon approval it will be showcased on a random schedule on D's homepage. + + +
    +$(DIVID your-code-here, +$(DIVID your-code-here-default, ---- // Round floating point numbers -import std.algorithm, std.conv, std.functional, - std.math, std.regex, std.stdio; - +import std.algorithm, + std.conv, + std.functional, + std.math, + std.regex, + std.stdio; + +// Transforms input into a real number, +// rounds it, then to a string alias round = pipe!(to!real, std.math.round, to!string); + +// Matches numbers that look like they need rounding static reFloatingPoint = ctRegex!`[0-9]+\.[0-9]+`; -void main() +void main(string[] args) { // Replace anything that looks like a real - // number with the rounded equivalent. - stdin - .byLine - .map!(l => l.replaceAll!(c => c.hit.round) - (reFloatingPoint)) - .each!writeln; + // number with the rounded equivalent. + stdin.byLine(KeepTerminator.yes) + .map!(l => l.replaceAll!(c => c.hit.round) + (reFloatingPoint)) + .copy(stdout.lockingTextWriter()); } ---- ) $(EXTRA_EXAMPLE ---- // Sort lines -import std.stdio, std.array, std.algorithm; +import std.stdio; +import std.array; +import std.algorithm; void main() { stdin - .byLineCopy + .byLine(KeepTerminator.yes) + .map!(a => a.idup) .array .sort - .each!writeln; + .copy( + stdout.lockingTextWriter()); } ---- ) +$(EXTRA_EXAMPLE +---- +// RPN calculator +import std.algorithm, std.container.array, + std.conv, std.stdio, std.meta; -) -))) +void main() +{ + Array!int stack; -$(DIVC more, + void binop(string op)() + { + stack[$ - 2] = mixin("stack[$ - 2] " ~ + op ~ " stack[$ - 1]"); + stack.removeBack(); + writeln(stack[$ - 1]); + } -$(DIVID news, - $(DIVID forum-summary, - - - ) - $(DIVID twitter, - - - ) + void process(in char[] token) + { + alias Ops = AliasSeq!( + "+", "-", "*", "/", "%", "^^"); + Lswitch: + switch (token) + { + foreach (op; Ops) + { + case op: + binop!op(); + break Lswitch; + } + + case "=": + writeln(stack[$ - 1]); + stack.removeBack(); + break; + + default: + stack.insertBack(token.to!int); + break; + } + } + + stdin.byLine.map!splitter.joiner.each!process; +} +---- ) -$(DIVC boxes, - $(DIVC row, - $(TOUR newspaper-o, News, - $(P $(LINK2 http://dconf.org/2016, DConf 2016) is coming up: May 4-6 - in Berlin, Germany. - $(LINK2 http://dconf.org/2016/registration.html, - Secure your seat) - before it's sold out! - ) - $(P Stay updated with - $(LINK2 http://arsdnet.net/this-week-in-d, - This Week in D), - Adam D. Ruppe's weekly newsletter. $(SPANC twid) - ) - ) - $(TOUR comments, Community, - $(P Discuss D on the $(LINK2 http://forum.dlang.org/, forums), join - the $(LINK2 irc://irc.freenode.net/d, IRC channel), or follow - us on $(LINK2 https://twitter.com/D_Programming, Twitter).) - $(P Browse the $(LINK2 http://wiki.dlang.org, wiki) where among - other things you can find the - $(LINK2 http://wiki.dlang.org/Review_Queue, review queue) for - major additions to the D project.) - ) - ) - $(DIVC row, - $(TOUR graduation-cap, Learn, - $(P Check out Ali Çehreli's great textbook - $(LINK2 http://ddili.org/ders/d.en/index.html, - Programming in D), ask questions in the - $(LINK2 http://forum.dlang.org/group/digitalmars.D.learn, - Learn forum), - see the - $(LINK2 $(ROOT_DIR)getstarted.html, Getting Started) page for - more. - ) - ) - $(TOUR book, Documentation, - $(P Refer to the documentation for the - $(LINK2 $(ROOT_DIR)spec/intro.html, language) and for - $(LINK2 $(ROOT_DIR)phobos/index.html, phobos), D's standard - library. The - $(LINK2 $(ROOT_DIR)dmd-windows.html, DMD manual) tells you how - to use the compiler. Read - $(LINK2 $(ROOT_DIR)articles.html, various articles) to deepen - your understanding. - ) - ) - ) - $(DIVC row, - $(TOUR cubes, Packages, - $(P DUB is the package manager for D. - $(LINK2 https://code.dlang.org/getting_started, - Get started with DUB), and check out the - $(LINK2 https://code.dlang.org/, available packages). - ) - ) - $(TOUR wrench, Contribute, - $(P Report any bugs you find to our $(LINK2 $(ROOT_DIR)bugstats.php, - bug tracker). If you can fix an issue, make a pull request on - $(LINK2 /~https://github.com/D-Programming-Language, GitHub).) - ) - ) ) -$(DIVC whyd, $(SECTION2 Why D?, +D is a language with C-like syntax and static typing. It pragmatically combines +efficiency, control, and modeling power, with safety and programmer productivity. -$(DIVC section, $(DIV, $(SECTION3 Convenience, +$(SECTION3 Convenience, $(P D allows writing large code fragments without redundantly specifying types, like dynamic languages do. On the other hand, static inference deduces types and other @@ -228,9 +202,9 @@ void main() ---- )) -))) +) -$(DIVC section, $(DIV, $(SECTION3 Power, +$(SECTION3 Power, $(P The best paradigm is to not impose something at the expense of others. D offers classic polymorphism, value semantics, functional @@ -298,9 +272,9 @@ information hiding, refined modularity, fast compilation, precise interfaces. $(HTTP drdobbs.com/high-performance-computing/217801225, Read more).) -))) +) -$(DIVC section, $(DIV, $(SECTION3 Efficiency, +$(SECTION3 Efficiency, $(P D compiles naturally to efficient native code.) @@ -362,14 +336,290 @@ void main() $(P The $(D @safe), $(D @trusted), and $(D @system) function attributes allow the programmer to best decide the safety-efficiency tradeoffs of an application, and have the compiler check for -consistency. $(LINK2 spec/memory-safe-d.html, Read more).) +consistency. $(LINK2 spec/memory-safe-d.html, Read more.)) -))) +)) + +$(COMMENT Community, + +$(P D is the center of a growing, vibrant community. Get D-related +news from the $(D digitalmars.D.announce) forum $(TAG2 span, +style="font-size:80%", $(HTTP +digitalmars.com/pnews/indexing.php?server=news.digitalmars.com$(AMP)group=digitalmars.D.announce, +[browse]) $(LINK2 news://news.digitalmars.com/digitalmars.D.announce, +[usenet]) $(HTTP +lists.puremagic.com/cgi-bin/mailman/listinfo/digitalmars-d-announce, +[mailing list])). On Twitter, subscribe to D's official announcements +channel, $(HTTP twitter.com/#!/D_Programming,@D_Programming), and +search for (and disseminate) news using tag $(HTTP +twitter.com/#!/search/%23dlang, #dlang).) + +$(P Learning D and have a question about the best way to do X? The $(D +digitalmars.D.learn) forum $(TAG2 span, style="font-size:80%", $(HTTP +digitalmars.com/pnews/indexing.php?server=news.digitalmars.com$(AMP)group=digitalmars.D.learn, +[browse]) $(LINK2 news://news.digitalmars.com/digitalmars.D.learn, +[usenet]) $(HTTP +lists.puremagic.com/cgi-bin/mailman/listinfo/digitalmars-d-learn, +[mailing list])) is the hangout place where many D experts are ready +to help fellow hackers.) + +$(P The $(D digitalmars.D) forum $(TAG2 span, style="font-size:80%", +$(HTTP +digitalmars.com/pnews/indexing.php?server=news.digitalmars.com$(AMP)group=digitalmars.D, +[browse]) $(LINK2 news://news.digitalmars.com/digitalmars.D, [usenet]) +$(HTTP lists.puremagic.com/cgi-bin/mailman/listinfo/digitalmars-d, +[mailing list])) is the best place to discuss anything and everything +related to D: language design ideas, suggestions, status and future, +contributions to the language and its standard library. Reach and +engage all major D contributors, including the very creator of D, +$(HTTP walterbright.com, Walter Bright). For real-time conversation, use #d IRC channel on freenode.) + +$(SECTION3 To contribute, + +$(P Many D enthusiasts are not only using, but also contributing to +the language, its implementation, and its standard library. The main +hub of D development is $(HTTP github.com/D-Programming-Language, +D-Programming-Language on github). The project has been awash in +contributions ever since creating the github repository on January 23, +2011, with an average of over 3 pull requests per day. (That doesn't +mean there's not a lot more to do!) You are welcome to fork any +subproject ($(HTTP github.com/D-Programming-Language/dmd, compiler), +$(HTTP github.com/D-Programming-Language/druntime, runtime), $(HTTP +github.com/D-Programming-Language/phobos, standard library), $(HTTP +github.com/D-Programming-Language/dlang.org, +website), $(HTTP github.com/D-Programming-Language/tools, tools), or +$(HTTP github.com/D-Programming-Language/installer, installer)), change +it in useful ways, and propose your changes back to the community. + +$(P The reference compiler $(LINK2 download.html, dmd) has inspired +work on alternate implementations that add value by using distinct +back-ends:) + +$(UL + +$(LI GNU D compiler $(LINK2 http://bitbucket.org/goshawk/gdc/wiki/Home, gdc).) + +$(LI LLVM D Compiler $(HTTP dsource.org/projects/ldc, ldc).) + +) + +$(P The gdc compiler is of particular interest because it taps into +gcc's extremely portable back-end and large installation base. The D +development team has signed the appropriate documents with FSF and is +pursuing integration of gdc with gcc version 4.8 starting March 2012. +$(HTTPS launchpad.net/~ibuclaw, Iain Buclaw) is leading that +effort.) + +) + +) +) +) + + + + +$(COMMENT + +$(COMMENT $(AMAZONLINK 0321635361, The D Programming Language book)) + +$(P The K&R of D is here! Get $(AMAZONLINK 0321635361, The D +Programming Language) by Andrei Alexandrescu—the authoritative +source on everything D. From the book's introduction: + +$(BLOCKQUOTE_BY $(AMAZONLINK 0321635361, The D Programming Language) by +Andrei Alexandrescu, D is a language that attempts to consistently do +the right thing within the constraints it chose: system-level access +to computing resources, high performance, and syntactic similarity +with C-derived languages. In trying to do the right thing, D +sometimes stays with tradition and does what other languages do, and +other times it breaks tradition with a fresh, innovative solution. On +occasion that meant revisiting the very constraints that D ostensibly +embraced. For example, large program fragments or indeed entire +programs can be written in a well-defined memory-safe subset of D, +which entails giving away a small amount of system-level access for a +large gain in program debuggability.)) + +$(P D is a multi-paradigm programming language that combines a +principled approach with a focus on practicality. In D you get to +harness the power and high performance of C and C++ and also the +safety and programmer productivity of modern languages such as Ruby +and Python. Special attention is given to the needs of quality +assurance, documentation, portability, and reliability.) + +$(P The D language is statically typed and compiles directly to machine code. +It’s multiparadigm, supporting many programming styles: +imperative, object oriented, and metaprogramming. It’s a member of the C +syntax family, and its appearance is very similar to that of C++. +Here’s a quick list of $(LINK2 comparison.html, features). +) + +$(P This site does not refer to the first edition of the language, +known as "D version 1" or "D1". Currently, D1 is in maintenance mode +and has documentation available $(LINK2 +http://www.digitalmars.com/d/1.0/index.html,here). We recommend the +current edition of the D programming language (formerly known as "D2") +for new projects. ) + +$(P There are currently three implementations: +$(OL + $(LI Digital Mars dmd for + $(LINK2 dmd-windows.html, Windows), + $(LINK2 dmd-linux.html, x86 Linux), + $(LINK2 dmd-osx.html, Mac OS X), and + $(LINK2 dmd-freebsd.html, x86 FreeBSD). + ) + + $(LI LLVM D Compiler $(LINK2 http://www.dsource.org/projects/ldc, ldc). + ) + +$(COMMENT + $(LI Gnu D compiler $(LINK2 http://dgcc.sourceforge.net/, gdc) + for several platforms, including + $(LINK2 http://gdcwin.sourceforge.net/, Windows) and + $(LINK2 http://gdcmac.sourceforge.net/, Mac OS X) + for D versions 1.030 and 2.014. + ) +) + $(LI Gnu D compiler $(LINK2 http://bitbucket.org/goshawk/gdc/wiki/Home, gdc). + ) + + $(COMMENT $(LINK2 http://dnet.codeplex.com/, D.NET compiler) + alpha for .NET for D version 2.) +) +) + +$(P A large and growing collection of D source code and projects +are at $(LINK2 http://www.dsource.org, dsource). +More links to innumerable D wikis, libraries, tools, media articles, +etc. are at $(LINK2 http://www.digitalmars.com/d/dlinks.html, dlinks). +) + +$(COMMENT $(P +This document is available as a +$(LINK2 http://www.prowiki.org/wiki4d/wiki.cgi?LanguageSpecification/PDFArchive, pdf), +as well as in +$(LINK2 http://www.kmonos.net/alang/d/, Japanese) +and +$(LINK2 http://elderane.50webs.com/tuto/d/, Portugese) +translations. +A German book +$(LINK2 http://www.amazon.de/Programmieren-D-Einf%C3%BChrung-neue-Programmiersprache/dp/3939084697/, Programming in D: Introduction to the new Programming Language) +is available, as well as +a Japanese book +$(LINK2 http://www.gihyo.co.jp/books/syoseki-contents.php/4-7741-2208-4, D Language Perfect Guide), +and a Turkish book +$(LINK2 http://ddili.org/ders/d/, D Programlama Dili Dersleri). +)) -)) $(COMMENT SECTION2 Why D?, DIVC whyd) -) $(COMMENT more) -) $(COMMENT SECTION1) -) $(COMMENT D_S) +$(COMMENT: Japanese by Kazuhiro Inaba, Portugese by Christian Hartung) + +$(P This is an example D program illustrating some of the capabilities:) +---- +#!/usr/bin/env rdmd +/* shebang is supported */ + +/* Hello World in D + To compile: + dmd hello.d (or on Unix just make hello.d executable and run it) + or to optimize: + dmd -O -inline -release hello.d +*/ + +import std.stdio; + +void main(string[] args) +{ + writeln("Hello World, Reloaded"); + + // auto type inference and built-in foreach + foreach (argc, argv; args) + { + // Object Oriented Programming + auto cl = new CmdLin(argc, argv); + // Improved typesafe printf + writeln(cl.argnum, cl.suffix, " arg: ", cl.argv); + // Automatic or explicit memory management + delete cl; + } + + // Nested structs and classes + struct specs + { + // all members automatically initialized + size_t count, allocated; + } + + // Nested functions can refer to outer + // variables like args + specs argspecs() + { + specs* s = new specs; + // no need for '->' + s.count = args.length; // get length of array with .length + s.allocated = typeof(args).sizeof; // built-in native type properties + foreach (argv; args) + s.allocated += argv.length * typeof(argv[0]).sizeof; + return *s; + } + + // built-in string and common string operations + writefln("argc = %d, " ~ "allocated = %d", + argspecs().count, argspecs().allocated); +} + +class CmdLin +{ + private size_t _argc; + private string _argv; + +public: + this(size_t argc, string argv) // constructor + { + _argc = argc; + _argv = argv; + } + + size_t argnum() + { + return _argc + 1; + } + + string argv() + { + return _argv; + } + + string suffix() + { + string suffix = "th"; + switch (_argc) + { + case 0: + suffix = "st"; + break; + case 1: + suffix = "nd"; + break; + case 2: + suffix = "rd"; + break; + default: + break; + } + return suffix; + } +} +---- + +$(P $(B Notice:) We welcome feedback about the D compiler or language, but please be explicit about +any claims to intellectual property rights with a copyright or patent notice if you have such for +your contributions. We want D to remain open and free to use, and do not wish to be caught by +someone posting a patch to the compiler, and then later claim compensation for that work.) + +) Macros: TITLE=Home @@ -379,15 +629,24 @@ Macros: D=$0 EXAMPLE= + $(TAG2 div, id="a$1" class="answer-nojs", $2) EXTRA_EXAMPLE= LAYOUT_PREFIX= + $(DIVID news, + $(DIVID forum-summary, + + + ) + $(DIVID twitter, + + + ) + ) LAYOUT_SUFFIX= $(SCRIPTLOAD $(ROOT_DIR)js/run-main-website.js) $(SCRIPTLOAD http://arsdnet.net/this-week-in-d/twid-latest.js) LAYOUT_TITLE= - TOUR=$(DIVC item, $(SECTION4 $(LINK2 $1, $(TC i, fa fa-$2 big-icon)$3), $4)) - TOUR=$(DIVC item, $(SECTION4 $(TC i, fa fa-$1 big-icon)$2, $3)) _= diff --git a/intro-to-datetime.dd b/intro-to-datetime.dd index fb8ce114f5..96b7ac4015 100644 --- a/intro-to-datetime.dd +++ b/intro-to-datetime.dd @@ -784,7 +784,6 @@ Macros: POSIXTZ=$(XREF datetime, PosixTimeZone) STOPWATCH=$(XREF datetime, StopWatch) SIMPLETZ=$(XREF datetime, SimpleTimeZone) - SUBNAV=$(SUBNAV_ARTICLES) SYSTIME=$(XREF datetime, SysTime) TIMEOFDAY=$(XREF datetime, TimeOfDay) TICK_DURATION=$(CXREF time, TickDuration) diff --git a/js/dlang.js b/js/dlang.js index 83b5b7b0f7..a5c7949810 100644 --- a/js/dlang.js +++ b/js/dlang.js @@ -1,16 +1,17 @@ (function($) { $(function() { if (typeof cssmenu_no_js === 'undefined') { - // add subnav toggle - $('.subnav').addClass('expand-container'); - $('.subnav').prepend( - $('.subnav h2').clone().addClass('expand-toggle') - ); + var menu_ul = $('#cssmenu > ul > li > ul'); + menu_ul.hide(); + + function baseName(str) { + return str.split('/').pop(); + } // highlight menu entry of the current page var href = window.location.href.split('#')[0]; var current; - var res = $('#top a, .subnav a').each(function (_, a) { + var res = $('#cssmenu a').each(function (_, a) { if (a.href == href) { current = a; return false; @@ -20,42 +21,50 @@ // direct li parent containing the link current.parent('li').addClass('active'); // topmost li parent, e.g. 'std' - current.parents('#top .expand-container').addClass('active'); - current.parents('.subnav .expand-container') - .addClass('open'); + current.parents('#cssmenu li.has-sub').addClass('active') + // show menu tree + .children('ul').show(); - var open_main_item = null; - $('.expand-toggle').click(function(e) { - var container = $(this).parent('.expand-container'); - container.toggleClass('open'); - /* In the main menu, let only one dropdown be open at a - time. Also close any open main menu dropdown when clicking - elsewhere. */ - if (open_main_item !== container && open_main_item !== null) { - open_main_item.removeClass("open"); + $('#cssmenu > ul > li > a').click(function() { + $li = $(this).closest('li'); + if (!$li.hasClass('has-sub')) { + $('#cssmenu li').removeClass('active'); } - var clicking_main_bar = container.parents("#top").length > 0; - var clicking_hamburger = this === $('.hamburger')[0]; - if (clicking_main_bar && !clicking_hamburger) { - open_main_item = container.hasClass('open') - ? container : null; + $li.addClass('active'); + var checkElement = $(this).next(); + if((checkElement.is('ul')) && (checkElement.is(':visible'))) { + $(this).closest('li').removeClass('active'); + checkElement.slideUp('normal'); } - return false; - }); - - $('html').click(function(e) { - var clicking_main_bar = $(e.target).parents("#top").length > 0; - if (clicking_main_bar) return; - if (open_main_item !== null) { - open_main_item.removeClass('open'); + 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; } - open_main_item = null; }); } - $('.search-container .expand-toggle').click(function() { - $('#search-query input').focus(); + $('#mobile-hamburger').click(function() { + var duration = 500; + $("#navigation").addClass('open'); + var $cancel = $('
    ') + .attr('id', 'navigation-cancel') + .click(function() { + $("#navigation").removeClass('open'); + $cancel.fadeOut(duration, function() { + $cancel.remove(); + }); + $cancel.off(); + }) + .hide() + .appendTo('body') + .fadeIn(500) + ; }); // [your code here] rotation for index.html @@ -89,10 +98,11 @@ // setTwid is called from http://arsdnet.net/this-week-in-d/twid-latest.js // which is included in index.html function setTwid(url, title, description) { - var twid = $('body#Home .boxes .twid'); - twid - .empty() - .append($('').attr('href', url).text(title)) - .append(': ') - .append(description); + $('table.notice-table td:first-child').html( + $('') + .attr('href', url) + .append($('').text(title + ':')) + .append($('
    ')) + .append($('').text(description)) + ); } diff --git a/js/run-main-website.js b/js/run-main-website.js index 8460b986aa..f8670ae180 100644 --- a/js/run-main-website.js +++ b/js/run-main-website.js @@ -10,10 +10,13 @@ Authors: Damian Ziemba var mainPage = new Array(); // Top rotation - sort lines -mainPage["9635bcb50e3d443aebde04bf65385a26"] = ["Mercury\nVenus\nEarth\nMars\nJupiter\nSaturn\nUranus\nNeptune"]; +mainPage["eaed85820b01767abc1e1da8a35ebd12"] = ["Mercury\nVenus\nEarth\nMars\nJupiter\nSaturn\nUranus\nNeptune"]; + +// Top rotation - RPN calculator +mainPage["651b6c20f520426a1b5bb77eca67ce44"] = ["2 3 ^^ 5 * 1 +\n3 4 +\n1 2 + 4 * 5 + 3 -\n2 3 7 * *"]; // Top rotation - round floating point numbers -mainPage["992f782e613253a4227c5c13fc81eef9"] = ["2.4 plus 2.4 equals 5 for sufficiently large values of 2."]; +mainPage["3d41a91e2b9e27835ab8d6c73367a909"] = ["2.4 plus 2.4 equals 5 for sufficiently large values of 2."]; // Automatic memory management makes for safe... mainPage["54f2095e83f8ef851a711db0a29b0e26"] = null; diff --git a/js/run.js b/js/run.js index b9f2ef76ac..75ebe66d94 100644 --- a/js/run.js +++ b/js/run.js @@ -266,14 +266,12 @@ function showHideAnswer(zis) if (obj.css('display') == 'none') { - $(zis).html('Hide example' + - ' '); + $(zis).html('Hide example.'); obj.css('display', 'block'); } else { - $(zis).html('Show example' + - ' '); + $(zis).html('See example.'); obj.css('display', 'none'); } } @@ -355,7 +353,7 @@ $(document).ready(function() var currentPage = $(location).attr('pathname'); - if ($('body')[0].id != "Home") + if (currentPage != "/" && currentPage != "/index.html") return; $('pre[class~=d_code]').each(function(index) diff --git a/lazy-evaluation.dd b/lazy-evaluation.dd index 4540b57f08..f0768893f3 100644 --- a/lazy-evaluation.dd +++ b/lazy-evaluation.dd @@ -310,7 +310,6 @@ $(H2 Acknowledgements) Macros: TITLE=Lazy Evaluation Of Function Arguments WIKI=LazyEvaluation - SUBNAV=$(SUBNAV_ARTICLES) NG_digitalmars_D =
    D/$0 diff --git a/menu.dd b/menu.dd deleted file mode 100644 index 03fe1ccd10..0000000000 --- a/menu.dd +++ /dev/null @@ -1,6 +0,0 @@ -Ddoc - -$(D_S Menu, $(NAVIGATION) $(SEARCH_BOX)) - -Macros: - TITLE=Menu diff --git a/migrate-to-shared.dd b/migrate-to-shared.dd index f8f10747d2..da43b279a2 100644 --- a/migrate-to-shared.dd +++ b/migrate-to-shared.dd @@ -226,5 +226,4 @@ extern (C) Macros: TITLE=Migrating to Shared WIKI=Migrating To Shared - SUBNAV=$(SUBNAV_ARTICLES) diff --git a/mixin.dd b/mixin.dd index 1973f5a0cb..e3d252eda6 100644 --- a/mixin.dd +++ b/mixin.dd @@ -93,4 +93,6 @@ END Macros: TITLE=Mixins WIKI=Mixins - SUBNAV=$(SUBNAV_ARTICLES) + + + diff --git a/posix.mak b/posix.mak index c1465eb8c8..3c2be805f1 100644 --- a/posix.mak +++ b/posix.mak @@ -113,8 +113,8 @@ endif DDOC=$(addsuffix .ddoc, macros html dlang.org doc ${GENERATED}/${LATEST}) $(NODATETIME) STD_DDOC=$(addsuffix .ddoc, macros html dlang.org ${GENERATED}/${LATEST} std std_navbar-release ${GENERATED}/modlist-${LATEST}) $(NODATETIME) -STD_DDOC_PRE=$(addsuffix .ddoc, macros html dlang.org ${GENERATED}/${LATEST} std std_navbar-prerelease ${GENERATED}/modlist-prerelease) $(NODATETIME) SPEC_DDOC=${DDOC} spec/spec.ddoc +STD_DDOC_PRE=$(addsuffix .ddoc, macros html dlang.org ${GENERATED}/${LATEST} std std_navbar-prerelease ${GENERATED}/modlist-prerelease) $(NODATETIME) CHANGELOG_DDOC=${DDOC} changelog/changelog.ddoc $(NODATETIME) CHANGELOG_PRE_DDOC=${CHANGELOG_DDOC} changelog/prerelease.ddoc @@ -136,7 +136,7 @@ JAVASCRIPT=$(addsuffix .js, $(addprefix js/, \ codemirror-compressed dlang ddox listanchors run run-main-website jquery-1.7.2.min)) STYLES=$(addsuffix .css, $(addprefix css/, \ - style print codemirror ddox)) + style print codemirror ddox cssmenu)) PRETTIFY=prettify/prettify.css prettify/prettify.js @@ -161,17 +161,15 @@ CHANGELOG_FILES=$(basename $(subst _pre.dd,.dd,$(wildcard changelog/*.dd))) # Website root filenames. They have extension .dd in the source # and .html in the generated HTML. Save for the expansion of # $(SPEC_ROOT), the list is sorted alphabetically. -PAGES_ROOT=$(SPEC_ROOT) 32-64-portability acknowledgements articles ascii-table \ - bugstats.php builtin \ - $(CHANGELOG_FILES) code_coverage COM community comparison concepts \ - const-faq cpptod ctarguments ctod \ - D1toD2 d-array-article d-floating-point deprecate dll dll-linux \ - dmd-freebsd dmd-linux dmd-osx dmd-windows documentation download dstyle \ - exception-safe faq features2 forum-template gpg_keys getstarted glossary gsoc2011 \ +PAGES_ROOT=$(SPEC_ROOT) 32-64-portability acknowledgements ascii-table \ + bugstats.php builtin $(CHANGELOG_FILES) code_coverage concepts const-faq COM \ + comparison cpptod ctarguments ctod D1toD2 d-array-article d-floating-point \ + deprecate dll dll-linux dmd-freebsd dmd-linux dmd-osx dmd-windows \ + download dstyle exception-safe faq features2 forum-template gpg_keys getstarted glossary gsoc2011 \ gsoc2012 gsoc2012-template hijack howto-promote htod htomodule index \ - intro-to-datetime lazy-evaluation memory menu migrate-to-shared mixin \ - overview pretod rationale rdmd regular-expression resources safed search \ - template-comparison templates-revisited tools tuple \ + intro-to-datetime lazy-evaluation memory migrate-to-shared mixin \ + overview pretod rationale rdmd regular-expression safed \ + template-comparison templates-revisited tuple \ variadic-function-templates warnings wc windbg windows TARGETS=$(addsuffix .html,$(PAGES_ROOT)) diff --git a/pretod.dd b/pretod.dd index cd489383e7..0e079c832c 100644 --- a/pretod.dd +++ b/pretod.dd @@ -726,5 +726,4 @@ Macros: WIKI=PreToD CWAY=$(SECTION4 The C Preprocessor Way, $0) DWAY=$(SECTION4 The D Way, $0) - SUBNAV=$(SUBNAV_ARTICLES) diff --git a/prettify/prettify.css b/prettify/prettify.css index 1ce0050cfa..bae2173072 100644 --- a/prettify/prettify.css +++ b/prettify/prettify.css @@ -1,6 +1,44 @@ /* Pretty printing styles. Used with prettify.js. */ -/* Syntax highlighting colors are defined in css/style.css */ +/* SPAN elements with the classes below are added by prettyprint. */ +.pln { color: #006 } /* plain text */ +pre .pln { color: #006 } /* plain text */ + +@media screen { + .str { color: red } /* string content */ + .kwd { color: blue } /* a keyword */ + .com { color: #684 } /* a comment */ + .typ { color: #008; } /* a type name */ + .lit { color: #840 } /* a literal value */ + /* punctuation, lisp open bracket, lisp close bracket */ + .pun, .opn, .clo { color: #006 } + .tag { color: #ffaa00 } /* a markup tag name */ + .atn { color: #9ad452 } /* a markup attribute name */ + .atv { color: #ffe7b6 } /* a markup attribute value */ + .dec, .var { color: #aaa } /* a declaration; a variable name */ + .fun { color: #066; text-decoration: underline; } /* a function name */ +} + +/* Use higher contrast and text-weight for printable form. */ +@media print, projection { + .str { color: #060 } + .kwd { color: #006; font-weight: bold } + .com { color: #600; font-style: italic } + .typ { color: #404; font-weight: bold } + .lit { color: #044 } + .pun, .opn, .clo { color: #440 } + .tag { color: #006; font-weight: bold } + .atn { color: #404 } + .atv { color: #060 } +} + +/* Put a border around prettyprinted code snippets. */ +pre.prettyprint, div.prototype { + padding: 0.5em; + background-color: #fff; + color: #006; + border: 1px solid #ccc; +} /* Specify class=linenums on a pre to get line numbering */ ol.linenums { margin-top: 0; margin-bottom: 0 } /* IE indents via margin-left */ diff --git a/rationale.dd b/rationale.dd index 9343f730a4..f4425217c6 100644 --- a/rationale.dd +++ b/rationale.dd @@ -222,5 +222,4 @@ static if (0 || is(int T)) T x; Macros: TITLE=Rationale WIKI=Rationale - SUBNAV=$(SUBNAV_ARTICLES) diff --git a/rdmd.dd b/rdmd.dd index f3d35be5ee..f36ff93a52 100644 --- a/rdmd.dd +++ b/rdmd.dd @@ -130,5 +130,4 @@ $(LINK2 http://erdani.org/, Andrei Alexandrescu) Macros: TITLE=rdmd WIKI=rdmd - SUBNAV=$(SUBNAV_TOOLS) diff --git a/regular-expression.dd b/regular-expression.dd index 7faa4872ca..11f9f82d9f 100644 --- a/regular-expression.dd +++ b/regular-expression.dd @@ -223,10 +223,8 @@ $(D_S Regular Expressions, --- $(P Importantly it's the exact same Regex object that works through all of the API we've seen so far. It takes next to nothing to initialize, just copy over ready-made structure from the data segment. - ) - $(P Roughly ~ 1 μs of run-time to initialize. Run-time version took around 10-20 μs on my machine, keep in mind that it was a trivial pattern. - ) + Roughly ~ 1 μs of run-time to initialize. Run-time version took around 10-20 μs on my machine, keep in mind that it was a trivial pattern. $(P Now stepping further in this direction there is an ability to construct specialized D code that matches a given regex and compile it instead of using the default run-time engine. @@ -284,4 +282,3 @@ Macros: H3 =

    $0

    DOLLAR = $ STD = $(LINK2 phobos/std_$0.html, std.$0) -SUBNAV=$(SUBNAV_ARTICLES) diff --git a/resources.dd b/resources.dd deleted file mode 100644 index 8ae7de6762..0000000000 --- a/resources.dd +++ /dev/null @@ -1,6 +0,0 @@ -Ddoc - -$(D_S Resources, $(NAVIGATION_RESOURCES)) - -Macros: - TITLE=Resources diff --git a/safed.dd b/safed.dd index 4ef52dea17..16293fc18a 100644 --- a/safed.dd +++ b/safed.dd @@ -260,4 +260,3 @@ $(P Many thanks go to the rest of the D design team for valuable feedback and co Macros: TITLE=SafeD WIKI=SafeD - SUBNAV=$(SUBNAV_ARTICLES) diff --git a/search.dd b/search.dd deleted file mode 100644 index d92a9891c5..0000000000 --- a/search.dd +++ /dev/null @@ -1,6 +0,0 @@ -Ddoc - -$(D_S Search, $(SEARCH_BOX)) - -Macros: - TITLE=Search diff --git a/spec/spec.ddoc b/spec/spec.ddoc index 1fece3e4f5..58e4a5753c 100644 --- a/spec/spec.ddoc +++ b/spec/spec.ddoc @@ -1,55 +1,3 @@ ROOT_DIR = ../ ROOT = .. SEARCHDEFAULT_SPEC = selected - -SUBNAV= -$(SUBNAV_TEMPLATE - $(DIVC head, - $(H2 Language Reference) - $(TC p, subnav-duplicate, - $(LINK2 $(ROOT_DIR)spec/spec.html, table of contents)) - ) - $(UL - $(SUBMENU2 - $(ROOT_DIR)spec/intro.html, Introduction, - $(ROOT_DIR)spec/lex.html, Lexical, - $(ROOT_DIR)spec/grammar.html, Grammar, - $(ROOT_DIR)spec/module.html, Modules, - $(ROOT_DIR)spec/declaration.html, Declarations, - $(ROOT_DIR)spec/type.html, Types, - $(ROOT_DIR)spec/property.html, Properties, - $(ROOT_DIR)spec/attribute.html, Attributes, - $(ROOT_DIR)spec/pragma.html, Pragmas, - $(ROOT_DIR)spec/expression.html, Expressions, - $(ROOT_DIR)spec/statement.html, Statements, - $(ROOT_DIR)spec/arrays.html, Arrays, - $(ROOT_DIR)spec/hash-map.html, Associative Arrays, - $(ROOT_DIR)spec/struct.html, Structs and Unions, - $(ROOT_DIR)spec/class.html, Classes, - $(ROOT_DIR)spec/interface.html, Interfaces, - $(ROOT_DIR)spec/enum.html, Enums, - $(ROOT_DIR)spec/const3.html, Const and Immutable, - $(ROOT_DIR)spec/function.html, Functions, - $(ROOT_DIR)spec/operatoroverloading.html, Operator Overloading, - $(ROOT_DIR)spec/template.html, Templates, - $(ROOT_DIR)spec/template-mixin.html, Template Mixins, - $(ROOT_DIR)spec/contracts.html, Contract Programming, - $(ROOT_DIR)spec/version.html, Conditional Compilation, - $(ROOT_DIR)spec/traits.html, Traits, - $(ROOT_DIR)spec/errors.html, Error Handling, - $(ROOT_DIR)spec/unittest.html, Unit Tests, - $(ROOT_DIR)spec/garbage.html, Garbage Collection, - $(ROOT_DIR)spec/float.html, Floating Point, - $(ROOT_DIR)spec/iasm.html, D x86 Inline Assembler, - $(ROOT_DIR)spec/ddoc.html, Embedded Documentation, - $(ROOT_DIR)spec/interfaceToC.html, Interfacing to C, - $(ROOT_DIR)spec/cpp_interface.html, Interfacing to C++, - $(ROOT_DIR)spec/objc_interface.html, Interfacing to Objective-C, - $(ROOT_DIR)spec/portability.html, Portability Guide, - $(ROOT_DIR)spec/entity.html, Named Character Entities, - $(ROOT_DIR)spec/memory-safe-d.html, Memory Safety, - $(ROOT_DIR)spec/abi.html, Application Binary Interface, - $(ROOT_DIR)spec/simd.html, Vector Extensions - ) - ) -) diff --git a/std_navbar-prerelease.ddoc b/std_navbar-prerelease.ddoc index a9df26ab16..8581398dce 100644 --- a/std_navbar-prerelease.ddoc +++ b/std_navbar-prerelease.ddoc @@ -1,11 +1,8 @@ -SUBNAV= -$(SUBNAV_TEMPLATE - $(DIVC head, - $(H2 Library Reference) - $(P $(SPANC smallprint, pre-release version $(SPANC separator, $(BR)) - $(LINK2 ../phobos/index.html, switch to version $(LATEST)))) - $(P $(LINK2 index.html, overview)) - ) - $(UL $(MODULE_MENU)) -) +NAVIGATION= +$(DIVID cssmenu, $(UL + $(MENU index.html, D Lib Prerelease) + $(MENU ../phobos/index.html, Current Release ($(LATEST))) + $(MODULE_MENU) + $(MENU http://code.dlang.org, 3rd Party Packages) +)) _= diff --git a/std_navbar-release.ddoc b/std_navbar-release.ddoc index 8ca9f75f9a..4a5892cf21 100644 --- a/std_navbar-release.ddoc +++ b/std_navbar-release.ddoc @@ -1,12 +1,8 @@ -SUBNAV= -$(SUBNAV_TEMPLATE - $(DIVC head, - $(H2 Library Reference) - $(P $(SPANC smallprint, version $(LATEST) $(SPANC separator, $(BR)) - $(LINK2 ../phobos-prerelease/index.html, switch to pre-release - version))) - $(P $(LINK2 index.html, overview)) - ) - $(UL $(MODULE_MENU)) -) +NAVIGATION= +$(DIVID cssmenu, $(UL + $(MENU index.html, D Lib $(LATEST)) + $(MENU ../phobos-prerelease/index.html, Prerelease Version) + $(MODULE_MENU) + $(MENU http://code.dlang.org, 3rd Party Packages) +)) _= diff --git a/templates-revisited.dd b/templates-revisited.dd index bdd0e42584..028d52f1f2 100644 --- a/templates-revisited.dd +++ b/templates-revisited.dd @@ -1220,4 +1220,5 @@ of Don Clugston, Eric Anderton and Matthew Wilson. Macros: TITLE=Templates Revisited WIKI=TemplatesRevisited - SUBNAV=$(SUBNAV_ARTICLES) + + diff --git a/tools.dd b/tools.dd deleted file mode 100644 index 5edef23e6d..0000000000 --- a/tools.dd +++ /dev/null @@ -1,36 +0,0 @@ -Ddoc - -$(D_S D-Specific Tools, - $(P - More tools can be found on the corresponding - $(LINK2 http://wiki.dlang.org/Development_tools, wiki page). - ) - - $(DIVC boxes, - $(DIVC row, - $(TC p, item, - $(LINK2 /~https://github.com/Hackerpilot/dfix, dfix) is a tool for - automatically upgrading D source code. - ) - $(TC p, item, - $(LINK2 /~https://github.com/Hackerpilot/dfmt, dfmt) is a - formatter for D source code. - ) - ) - $(DIVC row, - $(TC p, item, - $(LINK2 rdmd.html, rdmd) is a build tool that figures out - dependencies itself. One major use case is running programs in a - script-like fashion. - ) - $(TC p, item, - $(LINK2 htod.html, htod) is a migration tool to aid in - converting C header files (.h) to D modules (.d). - ) - ) - ) -) - -Macros: - TITLE=D-Specific Tools - SUBNAV=$(SUBNAV_TOOLS) diff --git a/tuple.dd b/tuple.dd index 8475e8558d..4afe9505be 100644 --- a/tuple.dd +++ b/tuple.dd @@ -8,4 +8,3 @@ which can be sometimes referred as "tuples" too (though it is discouraged). Macros: TITLE=Tuples - SUBNAV=$(SUBNAV_ARTICLES) diff --git a/variadic-function-templates.dd b/variadic-function-templates.dd index f15ab30278..8fd07aab48 100644 --- a/variadic-function-templates.dd +++ b/variadic-function-templates.dd @@ -267,4 +267,5 @@ $(H3 References) Macros: TITLE=Variadic Templates WIKI=VariadicTemplates - SUBNAV=$(SUBNAV_ARTICLES) + + diff --git a/warnings.dd b/warnings.dd index e1c7f82cb2..05d89e4f19 100644 --- a/warnings.dd +++ b/warnings.dd @@ -92,4 +92,3 @@ int foo(int i) Macros: TITLE=Warnings WIKI=Warnings - SUBNAV=$(SUBNAV_ARTICLES) diff --git a/win32.mak b/win32.mak index da2056fc25..2a15ba74cd 100644 --- a/win32.mak +++ b/win32.mak @@ -46,8 +46,7 @@ SRC= $(SPECSRC) cpptod.dd ctod.dd pretod.dd cppcontracts.dd index.dd overview.dd const-faq.dd concepts.dd d-floating-point.dd migrate-to-shared.dd \ D1toD2.dd intro-to-datetime.dd simd.dd deprecate.dd download.dd \ 32-64-portability.dd dll-linux.dd bugstats.php.dd getstarted.dd \ - ctarguments.dd articles.dd community.dd documentation.dd menu.dd \ - resources.dd search.dd tools.dd + css\cssmenu.css.dd ctarguments.dd SPECSRC=spec\spec.dd spec\intro.dd spec\lex.dd \ spec\grammar.dd spec\module.dd spec\declaration.dd \ @@ -75,7 +74,7 @@ CHANGELOG_PRE_DDOC=$(CHANGELOG_DDOC) changelog/prerelease.ddoc ASSETS=images\*.* css\*.* IMG=dmlogo.gif cpp1.gif d002.ico c1.gif d3.png d4.gif d5.gif favicon.gif -PREMADE=dcompiler.html language-reference.html appendices.html howtos.html d-keyring.gpg +PREMADE=dcompiler.html language-reference.html appendices.html howtos.html articles.html d-keyring.gpg SPECTARGETS=spec\spec.html spec\intro.html spec\lex.html \ spec\grammar.html spec\module.html spec\declaration.html \ @@ -135,9 +134,7 @@ TARGETS= $(SPECTARGETS) cpptod.html ctod.html pretod.html cppcontracts.html inde D1toD2.html intro-to-datetime.html \ deprecate.html download.html 32-64-portability.html \ d-array-article.html dll-linux.html bugstats.php.html getstarted.html \ - gpg_keys.html forum-template.html ctarguments.html articles.html \ - community.html documentation.html menu.html resources.html search.html \ - tools.html + gpg_keys.html forum-template.html css/cssmenu.css ctarguments.html # exclude list MOD_EXCLUDES_RELEASE=--ex=gc. --ex=rt. --ex=core.internal. --ex=core.stdc.config --ex=core.sys. \ @@ -174,8 +171,6 @@ dmd-windows.html : $(DDOC) windows.ddoc dcompiler.dd acknowledgements.html : $(DDOC) acknowledgements.dd -articles.html : $(DDOC) articles.dd - ascii-table.html : $(DDOC) ascii-table.dd bug-stats.php.html : $(DDOC) bug-stats.php.dd @@ -341,8 +336,6 @@ code_coverage.html : $(DDOC) code_coverage.dd COM.html : $(DDOC) COM.dd -community.html : $(DDOC) community.dd - comparison.html : $(DDOC) comparison.dd concepts.html : $(DDOC) concepts.dd @@ -367,8 +360,6 @@ dll.html : $(DDOC) dll.dd dll-linux.html : $(DDOC) dll-linux.dd -documentation.html : $(DDOC) documentation.dd - download.html : $(DDOC) download.dd dstyle.html : $(DDOC) dstyle.dd @@ -522,8 +513,6 @@ lazy-evaluation.html : $(DDOC) lazy-evaluation.dd memory.html : $(DDOC) memory.dd -menu.html : $(DDOC) menu.dd - migrate-to-shared.html : $(DDOC) migrate-to-shared.dd mixin.html : $(DDOC) mixin.dd @@ -538,18 +527,12 @@ rdmd.html : $(DDOC) rdmd.dd regular-expression.html : $(DDOC) regular-expression.dd -resources.html : $(DDOC) resources.dd - safed.html : $(DDOC) safed.dd -search.html : $(DDOC) search.dd - template-comparison.html : $(DDOC) template-comparison.dd templates-revisited.html : $(DDOC) templates-revisited.dd -tools.html : $(DDOC) tools.dd - tuple.html : $(DDOC) tuple.dd variadic-function-templates.html : $(DDOC) variadic-function-templates.dd @@ -564,6 +547,9 @@ windows.html : $(DDOC) windows.ddoc windows.dd forum-template.html : $(DDOC) forum-template.dd +css/cssmenu.css : $(DDOC) css/cssmenu.css.dd + $(DMD) -o- -c -Df$@ $(DDOC) css/cssmenu.css.dd + modlist-release.ddoc : modlist.d # need + to run as sub-cmd, redirect doesn't work otherwise +$(DMD) -run modlist.d ..\druntime ..\phobos $(MOD_EXCLUDES_RELEASE) >$@