From 89e1fb322321c05497caa01372ceb7d5b57fa680 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrien=20T=C3=A9tar?= Date: Sat, 7 Dec 2013 17:15:12 +0100 Subject: [PATCH 1/2] rustdoc: fix the search-bar layout Now with broader compatibility. --- src/librustdoc/html/layout.rs | 10 ++++++---- src/librustdoc/html/static/main.css | 6 +++++- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/librustdoc/html/layout.rs b/src/librustdoc/html/layout.rs index bfa6651fe0a2..36d98755e022 100644 --- a/src/librustdoc/html/layout.rs +++ b/src/librustdoc/html/layout.rs @@ -58,11 +58,13 @@ pub fn render( diff --git a/src/librustdoc/html/static/main.css b/src/librustdoc/html/static/main.css index 80bdb0a9e4f9..e0f4a9c167d2 100644 --- a/src/librustdoc/html/static/main.css +++ b/src/librustdoc/html/static/main.css @@ -233,10 +233,14 @@ a { .content a.fn, .block a.current.fn { color: #8c6067; } .content .fnname { color: #8c6067; } +.search-container { + padding-right: 10px; + overflow: hidden; +} .search-input { border: 2px solid #e9e9e9; border-radius: 2px; - width: calc(100% - 66px); + width: 100%; } .do-search { float: right; From 1999b253107e5c12c78ca2003732a9a771ee4d93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrien=20T=C3=A9tar?= Date: Sat, 7 Dec 2013 17:42:00 +0100 Subject: [PATCH 2/2] doc: CSS changes + commit improved favicon --- doc/manual.inc | 6 +- doc/rust.css | 335 +++++++++++++++++--------------------- doc/rust.md | 1 - mk/docs.mk | 4 +- src/etc/pkg/rust-logo.ico | Bin 94339 -> 4286 bytes 5 files changed, 153 insertions(+), 193 deletions(-) diff --git a/doc/manual.inc b/doc/manual.inc index a60ef803b5f8..405dc559a120 100644 --- a/doc/manual.inc +++ b/doc/manual.inc @@ -5,8 +5,6 @@ padding-left: 2em; } #influences blockquote p:last-child { - display: block; - line-height: 1.428571429; - color: #999999; + color: #999; } - + \ No newline at end of file diff --git a/doc/rust.css b/doc/rust.css index 8b95a5860300..402519162b53 100644 --- a/doc/rust.css +++ b/doc/rust.css @@ -13,99 +13,87 @@ /* Global page semantics ========================================================================== */ body { - background-color: #fff; - margin: 0 auto; - padding: 0 15px; - margin-bottom: 4em; - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - font-size: 14px; - color: #333; - line-height: 1.428571429; + margin: 0 auto; + padding: 0 15px; + margin-bottom: 4em; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 14px; + color: #333; + line-height: 1.428571429; } @media (min-width: 768px) { - body { - max-width: 750px; - } -} -@media (min-width: 992px) { - body { - max-width: 970px; - } -} -@media (min-width: 1200px) { - body { - max-width: 1170px; - } + body { + max-width: 750px; + } } h1, h2, h3, h4, h5, h6 { - color: black; - font-weight: 500; - line-height: 1.1; + color: black; + font-weight: 500; + line-height: 1.1; } h1, h2, h3 { - margin-top: 20px; - margin-bottom: 10px; + margin-top: 20px; + margin-bottom: 10px; } h4, h5, h6 { - margin-top: 12px; - margin-bottom: 10px; + margin-top: 12px; + margin-bottom: 10px; + padding: .2em .8em; + text-decoration: underline; } h1 { - font-size: 36px; - padding: .1em .4em; - margin: 0.67em 0; - background-color: #E9E9E9; - border-radius: .2em; + font-size: 36px; + padding: .1em .4em; + margin: 0.67em 0; + border-bottom: 2px solid #ddd; } h1.title { - line-height: 1.5em; + line-height: 1.5em; } h2 { - font-size: 30px; - padding: .2em .5em; - background-color: #E9E9E9; - border-radius: .3em; + font-size: 30px; + padding: .2em .5em; + border-bottom: 1px solid #ddd; } h3 { - font-size: 24px; - padding: .2em .5em; - background-color: #DDE8FC; - border-radius: .4em; + font-size: 24px; + padding: .2em .7em; + border-bottom: 1px solid #DDE8FC; } h4 { - font-size: 18px; + font-size: 18px; } h5 { - font-size: 16px; + font-size: 16px; } h6 { - font-size: 14px; + font-size: 14px; } p { - margin: 0 0 10px; + margin: 0 0 10px; } /* Links layout ========================================================================== */ a { - text-decoration: none; - color: #428BCA; - background: transparent; + text-decoration: none; + color: #428BCA; + background: transparent; } a:hover, a:focus { - color: #2A6496; - text-decoration: underline; + color: #2A6496; + text-decoration: underline; } a:focus { - outline: thin dotted #333; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; } a:hover, a:active { - outline: 0; + outline: 0; } h1 a:link, h1 a:visited, h2 a:link, h2 a:visited, @@ -115,193 +103,168 @@ h5 a:link, h5 a:visited {color: black;} /* Code ========================================================================== */ pre, code { - font-family: Menlo, Monaco, Consolas, "Courier New", monospace; - border-radius: 4px; + font-family: Menlo, Monaco, Consolas, "Courier New", monospace; + border-radius: 4px; } pre { - background-color: #F5F5F5; - border: 1px solid #CCC; - border-radius: 0.5em; - white-space: pre-wrap; - padding: 9.5px; - margin: 10px 0; - font-size: 13px; - word-break: break-all; - word-wrap: break-word; + background-color: #F5F5F5; + border: 1px solid #CCC; + border-radius: 0.5em; + white-space: pre-wrap; + padding: 9.5px; + margin: 10px 0; + font-size: 13px; + word-break: break-all; + word-wrap: break-word; } code { - padding: 2px 4px; - font-size: 90%; - color: #C7254E; - background-color: #F9F2F4; - white-space: nowrap; + padding: 2px 4px; + font-size: 90%; + color: #C7254E; + background-color: #F9F2F4; + white-space: nowrap; } pre code { - padding: 0; - font-size: inherit; - color: inherit; - white-space: pre-wrap; - background-color: transparent; - border-radius: 0; + padding: 0; + font-size: inherit; + color: inherit; + white-space: pre-wrap; + background-color: transparent; + border-radius: 0; } /* Code highlighting */ -.cm-s-default span.cm-keyword {color: #708;} +.cm-s-default span.cm-keyword {color: #803C8D;} .cm-s-default span.cm-atom {color: #219;} -.cm-s-default span.cm-number {color: #164;} -.cm-s-default span.cm-def {color: #00f;} +.cm-s-default span.cm-number {color: #2AA198;} +.cm-s-default span.cm-def {color: #256EB8;} .cm-s-default span.cm-variable {color: black;} -.cm-s-default span.cm-variable-2 {color: #05a;} +.cm-s-default span.cm-variable-2 {color: #817E61;} .cm-s-default span.cm-variable-3 {color: #085;} .cm-s-default span.cm-property {color: black;} .cm-s-default span.cm-operator {color: black;} -.cm-s-default span.cm-comment {color: #a50;} -.cm-s-default span.cm-string {color: #a11;} -.cm-s-default span.cm-string-2 {color: #f50;} +.cm-s-default span.cm-comment {color: #A82323;} +.cm-s-default span.cm-string {color: #866544;} +.cm-s-default span.cm-string-2 {color: #F50;} .cm-s-default span.cm-meta {color: #555;} -/*.cm-s-default span.cm-error {color: #f00;}*/ +/*.cm-s-default span.cm-error {color: #F00;}*/ .cm-s-default span.cm-qualifier {color: #555;} -.cm-s-default span.cm-builtin {color: #30a;} -.cm-s-default span.cm-bracket {color: #cc7;} +.cm-s-default span.cm-builtin {color: #30A;} +.cm-s-default span.cm-bracket {color: #CC7;} .cm-s-default span.cm-tag {color: #170;} -.cm-s-default span.cm-attribute {color: #00c;} +.cm-s-default span.cm-attribute {color: #00C;} /* The rest ========================================================================== */ #versioninfo { - text-align: center; - margin: 0.5em; - font-size: 1.1em; + text-align: center; + margin: 0.5em; + font-size: 1.1em; } @media (min-width: 768px) { - #versioninfo { - position: fixed; - bottom: 0px; - right: 0px; - } - .white-sticker { - background-color: #fff; - margin: 2px; - padding: 0 2px; - border-radius: .3em; - } + #versioninfo { + position: fixed; + bottom: 0px; + right: 0px; + } + .white-sticker { + background-color: #fff; + margin: 2px; + padding: 0 2px; + border-radius: .3em; + } } #versioninfo a.hash { - color: gray; - font-size: 70%; + color: gray; + font-size: 70%; } blockquote { - color: black; - border-left: 5px solid #eee; - margin: 0 0 20px; - padding: 10px 20px; + color: black; + border-left: 5px solid #eee; + margin: 0 0 20px; + padding: 10px 20px; } blockquote p { - font-size: 17px; - font-weight: 300; - line-height: 1.25; + font-size: 17px; + font-weight: 300; + line-height: 1.25; } blockquote p:last-child { - margin-bottom: 0; -} - -/* Make the table under the tutorial's 'Types' section look nicer */ -table { - border-top: 1px solid silver; - border-bottom: 1px solid silver; - padding: 0.8em; - font-size: smaller; -} -/* Also for the benefit of the type table */ -td { - padding-right: 1em; + margin-bottom: 0; } ul, ol { - margin-top: 0; - margin-bottom: 10px; + margin-top: 0; + margin-bottom: 10px; } ul ul, ol ul, ul ol, ol ol { - margin-bottom: 0; + margin-bottom: 0; } dl { - margin-bottom: 20px; + margin-bottom: 20px; } dd { - margin-left: 0; + margin-left: 0; } #TOC ul { - list-style-type: none; - padding-left: 0px; -} -/* Only display one level of hierarchy in the TOC */ -#TOC ul ul { - display: none; -} - -/* Adjust list alignment so rustdoc indexes don't align with blockquotes */ -div.index ul { - padding-left: 1em; -} - -div.section.level3 { - margin-left: 1em; + list-style-type: none; + padding-left: 0px; } sub, sup { - font-size: 75%; - line-height: 0; - position: relative; + font-size: 75%; + line-height: 0; + position: relative; } hr { - margin-top: 20px; - margin-bottom: 20px; - border: 0; - border-top: 1px solid #eeeeee; + margin-top: 20px; + margin-bottom: 20px; + border: 0; + border-top: 1px solid #eeeeee; } @media print { - * { - text-shadow: none !important; - color: #000 !important; - background: transparent !important; - box-shadow: none !important; - } - a, a:visited { - text-decoration: underline; - } - a[href]:after { - content: " (" attr(href) ")"; - } - a[href^="javascript:"]:after, a[href^="#"]:after { - content: ""; - } - pre, blockquote { - border: 1px solid #999; - page-break-inside: avoid; - } - @page { - margin: 2cm .5cm; - } - p, h2, h3 { - orphans: 3; - widows: 3; - } - h2, h3 { - page-break-after: avoid; - } - table { - border-collapse: collapse !important; - } - table td, table th { - background-color: #fff !important; - } + * { + text-shadow: none !important; + color: #000 !important; + background: transparent !important; + box-shadow: none !important; + } + a, a:visited { + text-decoration: underline; + } + a[href]:after { + content: " (" attr(href) ")"; + } + a[href^="javascript:"]:after, a[href^="#"]:after { + content: ""; + } + pre, blockquote { + border: 1px solid #999; + page-break-inside: avoid; + } + @page { + margin: 2cm .5cm; + } + p, h2, h3 { + orphans: 3; + widows: 3; + } + h2, h3 { + page-break-after: avoid; + } + table { + border-collapse: collapse !important; + } + table td, table th { + background-color: #fff !important; + } } diff --git a/doc/rust.md b/doc/rust.md index 7368ba2b7e7b..87ba6c7d1f8d 100644 --- a/doc/rust.md +++ b/doc/rust.md @@ -319,7 +319,6 @@ r##"foo #"# bar"##; // foo #"# bar #### Number literals ~~~~ {.ebnf .gram} - num_lit : nonzero_dec [ dec_digit | '_' ] * num_suffix ? | '0' [ [ dec_digit | '_' ] * num_suffix ? | 'b' [ '1' | '0' | '_' ] + int_suffix ? diff --git a/mk/docs.mk b/mk/docs.mk index 412981add6c6..98cfed8b1e0e 100644 --- a/mk/docs.mk +++ b/mk/docs.mk @@ -15,8 +15,8 @@ DOCS := DOCS_L10N := -BASE_DOC_OPTS := --from=markdown --standalone --toc --number-sections --include-before-body=doc/version_info.html -HTML_OPTS = $(BASE_DOC_OPTS) --to=html5 --section-divs --css=rust.css --include-in-header=doc/favicon.inc +BASE_DOC_OPTS := --from=markdown --standalone --toc --number-sections +HTML_OPTS = $(BASE_DOC_OPTS) --to=html5 --section-divs --css=rust.css --include-before-body=doc/version_info.html --include-in-header=doc/favicon.inc TEX_OPTS = $(BASE_DOC_OPTS) --to=latex EPUB_OPTS = $(BASE_DOC_OPTS) --to=epub diff --git a/src/etc/pkg/rust-logo.ico b/src/etc/pkg/rust-logo.ico index 4749b398c2d2c063219f8e5b5c99bf1547ec0d99..e8e1f18df224101e38632043cfd043cdd329c4b3 100644 GIT binary patch literal 4286 zcmZQzU}RuqP*4ET3Jfa*7#PGD7#K7d7#I{77#JKFAmR)R3=9ndAQBb-|NozX6ue-; zg4}7-rd5FSq^72BNKH*$4`NT9I<*2M2VzqjuUN4nB{w&B+57kJ1x-v$p2*6|{;#dA zog^hC^&f;mY>*g84x}b0CubQ*4<+t+|Ngzu_U+q)KxWj{)lC4Iucf8+UO_?Or;Lou ze-M_Glmy!^EiL^Ygh6s3H6V6vZS4e*UXU3evp{T8@Ru)NctCbqSy|mRF)?`zG85!i zkew0|68}LM#0Fsy8-zh@kQ$KNjE#+-T3A@zlarJC4>F5byHA}uWxIOy>i9#44!MBL z0l5KWH_Uu}ef{T2NlEK^dU_h>&6}4E!XP$COixemIZPeQ9U%LU9692=YSpUvlP6Ew z5^@K~ZjikotgNj3W9!zf!ILLXt^oOM@#4j4KYsjR$7KdcZt~>G4 ze?jgCVUQbe=>^5n)2B~mVg3fG2blv>f9={eU3q!=pCC3d7^Dvr=D&acW&yby#0UB3 z;K73~AUi;Ip_{XL^X4#+8aX++KcFxN=>cI=Q`7q(Gm?{&*P`pe#rN~`I|9;cW@dI@ zK|$dMC{95B0htY=H*MM!hE1=Lk!rdT-@fYtgNMBVPSimot-ZtV+RL^D|`0r@q(GRef#zRH#fJlAhns9nad+0B6cPu zBy0qk1qu%kHZd`I)ZE2R+9>k1nB|cIdkR|`1<;u zP*G9&4)QlBjaXY--v(g|3yZt5va-L?&9t(zx*Zr8c+kts>m(>mgUl%_E1Q9?4#c;! zv%99Dq46HX24Rr@l$Djg`}p{rm_2)T!IUXeDv`s!xVU&O$UGPZrD2dhWPIYp35;^Y z*4Fk0vKkOOEiG*o$eg!t-->|J0LX3-2Kf_2Po6xv5+q+&S2qzP2Et31E=>iA!7!){ z1(}76=gpg!^Xkv113g&VlJOGc$Vt(gTu1!~f9u;JOGV=IZKt{@=fUj4*R<-@dKU-QC>? zG7Drs$j*d>gw5#opF4NX5~c@4!|Vs?gPBc;28A_9FFFR51t4=k_Jh(ue0=<7kQz|< zgZvM|Ha0dlPo6w!4H5@oSltKG2g6YNar$3LN$FcrQ4vZy+PHCJxSpQgOOV|ldtl)Y zOMjqxN=ZrShl`8LB_$=LpLuzCi$M0<+uL7<*$bm*&z_wR%I}XKKbC*??3pyEoCKu- zm^_SbX=&*M)k(g-zQ@$m)IRz8`W{zMQ1}J1ALI^@-E-&8E%5R2IVmS6_ctysZac`% z($dmd^78V(L2OVwg4BXA%v?~J43a~}pfVjM52F4#yE*=}xb=i=kzH-XA#5FHd0 zbPyzt4TH>{I(2H9xw-kh*4EZ8H8r*G+S=OhLEz#XrbjAUi;H9jML&$suDC6O-p4H6RSK-@(D*y0^FYDRXo42ZXShnb|{7 z``63M>-3~ald53mg4!WEIy!Ga{s5V4Zf^bzCWlOK-@ZKz_`9BH@3jaZB{r&xq zf%GG*!^H-bHGls6VMdn!^yw3ylatdGnB58r3V%T6Zr!>Sqx}JD6Fq(URPNBBLoOgS zFgJkmy@as;X(AG8Cr%!i5Vapg00yP&)@E4pIYB3$ho4<>lq!W~^DWCLX2^7k&El zXt_z!*nkFbJD*gwRPbw-ZKSAb$u#u6`OFcck zw;(pier09lpCC0Leq&=JxPAqh0WynNd$FlowQ5yLQBl#d4<9}VT3J~=QBqR+UteE8 z3FIaa2C+e6mX?-JKxzsL3zvcPU^9zSvBirQ=gyot6WssK%*@=7m6ZkVf6tgPqY@-X Ms`;p+0rckq0N8hMga7~l literal 94339 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