/* Perforce Documentation Styles */ /* vim: set ts=2 sw=2 tw=80 ai si: */ /* body styling -------------------------------------------------------- */ body { background: #fff; color: #333; font-family: Tahoma, Helvetica, Arial, sans-serif; font-size: 13px; line-height: 1.5em; } .container { position: relative; padding: 0; margin: 0 auto; max-width: 860px; min-width: 320px; } #content { outline: none; position: absolute; display: block; width: auto; max-width: 860px; min-width: 320px; margin: 0; left: 0; right: 0; -webkit-overflow-scrolling: touch; top: 40px; min-height: 100%; -webkit-transition: top .3s ease-in-out; -moz-transition: top .3s ease-in-out; -ms-transition: top .3s ease-in-out; -o-transition: top .3s ease-in-out; transition: top .3s ease-in-out; -webkit-transition: bottom .3s ease-in-out; -moz-transition: bottom .3s ease-in-out; -ms-transition: bottom .3s ease-in-out; -o-transition: bottom .3s ease-in-out; transition: bottom .3s ease-in-out; border-right: 1px solid #ddd; -webkit-transition: left .3s ease-in-out, right .3s ease-in-out; -moz-transition: left .3s ease-in-out, right .3s ease-in-out; -ms-transition: left .3s ease-in-out, right .3s ease-in-out; -o-transition: left .3s ease-in-out, right .3s ease-in-out; transition: left .3s ease-in-out, right .3s ease-in-out; background: #fff; } #content .container { padding: 12px 48px 60px 48px; } .content img { max-width: 100%; } h1, h2, h3, h4, h5, h6 { -webkit-transition: font-size .3s ease-in-out, line-height .3s ease-in-out; -moz-transition: font-size .3s ease-in-out, line-height .3s ease-in-out; -ms-transition: font-size .3s ease-in-out, line-height .3s ease-in-out; -o-transition: font-size .3s ease-in-out, line-height .3s ease-in-out; transition: font-size .3s ease-in-out, line-height .3s ease-in-out; } @media (min-width: 875px) { #content { left: 292px; } } @media (max-width: 768px) { h1 { font-size: 26px; } h2 { font-size: 22px; } h3 { font-size: 18px; } h4 { font-size: 14px; } h5 { font-size: 14px; } h6 { font-size: 14px; } } @media (max-height: 320px) { h1 { font-size: 18px; } h2 { font-size: 16px; } h3 { font-size: 13px; } h4 { font-size: 13px; } h5 { font-size: 13px; } h6 { font-size: 13px; } } /* header styling ------------------------------------------------------ */ #header { position: fixed; top: 0; left: 0; right: 0; background-color: #fff; height: 40px; z-index: 100; box-shadow: 0 0 2px rgba(0, 0, 0, 0.5); -webkit-transition: height .3s ease-in-out; -moz-transition: height .3s ease-in-out; -ms-transition: height .3s ease-in-out; -o-transition: height .3s ease-in-out; transition: height .3s ease-in-out; } #header .container { max-width: 1152px; margin: 0; } #progress { width: 0; height: 1px; position: absolute; bottom: 0; left: 0; background-color: #3c4d66; } #header .logo { position: absolute; top: 0; left: 59px; display: block; margin-top: 10px; } #header .logo a { display: block; text-decoration: none; background: url("../images/logo.png") no-repeat; background-size: 174px 20px; width: 174px; height: 20px; -webkit-transition: width .3s ease-in-out; -moz-transition: width .3s ease-in-out; -ms-transition: width .3s ease-in-out; -o-transition: width .3s ease-in-out; transition: width .3s ease-in-out; } #header .logo a:after { content: ""; } #header button, #header a.pdf { position: absolute; top: 0; display: block; width: 40px; height: 40px; text-align: center; background-color: transparent; border: 0 none; color: #2382b4; font-size: 20px; } #header button .text { display: none; } #header button.toc { left: 0; } #header button.search { right: 0; display: none; } #header a.pdf { right: 40px; padding: 8px 8px; } #header a.pdf:after { content: ""; } #header button:hover, #header a.pdf:hover, #header button:focus, #header button.active { background-color: #444; background-color: #2382b4; color: #fff; outline: none; } #header h1 { margin: 9px 84px; text-align: center; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 14px; letter-spacing: 2.5px; text-transform: uppercase; line-height: 1.7; font-weight: normal; border: 0 none; margin-left: 245px; -webkit-transition: margin .3s ease-in-out; -moz-transition: margin .3s ease-in-out; -ms-transition: margin .3s ease-in-out; -o-transition: margin .3s ease-in-out; transition: margin .3s ease-in-out; } #header h1 a { text-decoration: none; color: #333; } #header h1 a:hover { color: #00f; color: #dd5f38; text-decoration: none; } #header h1 a.brand { display: inline-block; margin: -6px 8px 0 0; } @media (min-width: 875px) { #header button.toc { display: none; } } @media (max-width: 768px) { #header .brand img { width: 120px; height: auto; } #header .brand { width: 26px; overflow: hidden; } #header .logo a { width: 0px; } #header h1 { margin-left: 72px; } } @media (max-height: 320px) { #header { height: 30px; } #header h1 { font-size: 13px; margin: 4px 36px; } #header h1 a.brand { display: none; } #header button, #header a.pdf { font-size: 14px; width: 30px; height: 30px; } } /* footer styling ------------------------------------------------------ */ #footer { position: fixed; width: 100%; bottom: 0; left: 0; height: 32px; background-color: #333; color: #999; z-index: 100; /* box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.5); */ -webkit-transition: height .3s ease-in-out, bottom .3s ease-in-out; -moz-transition: height .3s ease-in-out, bottom .3s ease-in-out; -ms-transition: height .3s ease-in-out, bottom .3s ease-in-out; -o-transition: height .3s ease-in-out, bottom .3s ease-in-out; transition: height .3s ease-in-out, bottom .3s ease-in-out; } #footer a { position: absolute; box-sizing: border-box; display: block; padding: 2px 20px; text-decoration: none; white-space: nowrap; background-color: transparent; -webkit-transition: margin .3s ease-in-out; -moz-transition: margin .3s ease-in-out; -ms-transition: margin .3s ease-in-out; -o-transition: margin .3s ease-in-out; transition: margin .3s ease-in-out; top: 6px; width: 49%; color: #999; } #footer a:hover { text-decoration: none; color: #fff; } #footer a.nav-prev { left: 0; text-align: left; } #footer a.nav-prev span { display: block; color: #fff; float: left; height: 25px; padding: 0 3px; } #footer a.nav-next { right: 0; text-align: right; } #footer a.nav-next span { display: block; color: #fff; float: right; height: 25px; padding: 0 3px; } #footer .label, #footer .title { overflow: hidden; text-overflow: ellipsis; font-size: 13px; line-height: 17px; color: inherit; padding: 0; font-weight: normal; text-align: inherit; } #footer .label { display: none; } @media (max-width: 568px) { #footer .label { display: block; } #footer .title { display: none; } } /* navigation styling -------------------------------------------------- */ #nav { position: fixed; display: block; top: 40px; left: 0px; bottom: 27px; width: 292px; z-index: 10; background-color: #f3f3f3; padding-top: 2px; padding-bottom: 6px; border-left: 1px solid #ddd; border-right: 1px solid #ddd; -webkit-transition: left .3s ease-in-out, right .3s ease-in-out, width .3s ease-in-out; -moz-transition: left .3s ease-in-out, right .3s ease-in-out, width .3s ease-in-out; -ms-transition: left .3s ease-in-out, right .3s ease-in-out, width .3s ease-in-out; -o-transition: left .3s ease-in-out, right .3s ease-in-out, width .3s ease-in-out; transition: left .3s ease-in-out, right .3s ease-in-out, width .3s ease-in-out; } #nav.open { left: 0; } #nav .cover { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background-color: #f3f3f3; z-index: 20; } ul.toc { font-size: 13px; line-height: 17px; height: 100%; overflow-y: auto; -webkit-overflow-scrolling: touch; } #nav ul, nav li { margin: 0; padding: 0; list-style: none; position: relative; } #nav ul.toc ul { display: block; max-height: 0; overflow: hidden; -webkit-transition: max-height .3s ease-in-out; -moz-transition: max-height .3s ease-in-out; -ms-transition: max-height .3s ease-in-out; -o-transition: max-height .3s ease-in-out; transition: max-height .3s ease-in-out; } #nav ul.toc li.active > ul { max-height: 999999px; } .nav > li > a { display: block; position: relative; padding: 13px 30px 14px 12px; color: #555; text-decoration: none; border-bottom: 1px solid #ddd; border-right: 1px solid transparent; } .nav li li a { padding-left: 24px; } .nav li li li a { padding-left: 36px; } .nav li li li li a { padding-left: 48px; } .nav li li li li li a { padding-left: 60px; } .nav li li li li li li a { padding-left: 72px; } .nav li li li li li li li a { padding-left: 84px; } .nav li li li li li li li li a { padding-left: 96px; } /* this selector necessary to override Bootstrap styling */ .nav > li > a:hover { background-color: rgba(0, 0, 0, 0.1); text-decoration: none; color: #dd5f38; } #nav li.active > a { color: #dd5f38; font-weight: bold; } #nav li > a.expander { position: absolute; top: 0; right: 0; color: rgba(0, 0, 0, 0.2); border: 0 none; padding: 13px 12px; z-index: 10; background-color: transparent; } #nav ul.toc li.expanded > a.expander { color: rgba(0, 0, 0, 0.5); } #nav ul.toc li > a.expander:hover { color: #dd5f38; } @media (max-width: 874px) { #nav { box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.2); left: -568px; } } /* search styling ------------------------------------------------------ */ #search { position: fixed; top: 40px; right: -420px; bottom: 27px; overflow: auto; -webkit-overflow-scrolling: touch; width: 290px; z-index: 10; opacity: 0; background-color: #fafafa; box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.1); -webkit-transition: right .3s ease-in-out, opacity .1s ease-in-out .2s; -moz-transition: right .3s ease-in-out, opacity .1s ease-in-out .2s; -ms-transition: right .3s ease-in-out, opacity .1s ease-in-out .2s; -o-transition: right .3s ease-in-out, opacity .1s ease-in-out .2s; transition: right .3s ease-in-out, opacity .1s ease-in-out .2s; } #search.open { right: 0px; opacity: 1; -webkit-transition: right .3s ease-in-out, opacity .1s ease-in-out; -moz-transition: right .3s ease-in-out, opacity .1s ease-in-out; -ms-transition: right .3s ease-in-out, opacity .1s ease-in-out; -o-transition: right .3s ease-in-out, opacity .1s ease-in-out; transition: right .3s ease-in-out, opacity .1s ease-in-out; } #search .input, #search .controls, #search .count { padding: 12px 12px 0 12px; } #search input { font-size: 14px; color: #444; height: 30px; width: 100%; border-radius: 16px; border: 1px solid #bcbab1; padding: 0 11px; outline: none; } #search input::-ms-clear { display: none; } #search button.clear { position: absolute; top: 17px; right: 17px; width: 18px; height: 18px; padding: 0; border: 0; background-color: transparent; overflow: hidden; color: #999; font-size: 15px; } #search button.clear:hover { color: #000; } #search .controls div.substring, #search .controls div.highlighter { display: block; padding: 0 0 5px 12px; } #search .controls input { height: auto; width: auto; margin-right: 5px; } #search .results { font-size: 13px; line-height: 17px; margin-left: 0; } #search .results ul, #search .results li { margin: 0; padding: 0; list-style: none; } #search .results .type { display: block; font-weight: bold; padding: 14px 12px 6px 12px; color: #333; } #search .results a { display: block; position: relative; border-top: 1px solid #ddd; padding: 14px 12px 13px 12px; color: #555; text-decoration: none; } #search .results li:last-child a { border-bottom: 1px solid #ddd; padding: 14px 12px 14px 12px; } #search .results a:hover { background-color: rgba(0, 0, 0, 0.1); text-decoration: none; color: #2a6496; } #search .results .score { color: #999; } .search-results li:last-child { border-bottom: 1px solid #bcbab1; } .search-highlight { float: right; cursor: pointer; } .search-highlight a { color: #666; } .search-highlight a:hover { text-decoration: none; color: #ff6; } /* content styling ----------------------------------------------------- */ code, pre, .command { font-family: Consolas, "Courier New", monospace; font-size: 14px; color: #000; } pre { white-space: pre; word-wrap: normal; word-break: normal; overflow-x: auto; line-height: 1.5; font-size: 13px; background-color: #fafafa; border: 1px solid #e4e4e4; margin: 10px 0 0 0; } code { background-color: inherit; padding: 0; line-height: 1.5; border-radius: 0; border: 0 none; white-space: nowrap; } code.uri a { color: #428bca; text-decoration: none; } code.filename { color: #669; } a > code { color: #428bca; } em.parameter, .xref em { font-style: normal; } .command { white-space: nowrap; color: #373; } .command strong { font-weight: normal; } .replaceable, .replaceable code { color: #555; } .command .replaceable, .command .replaceable code, .filename .replaceable, .filename .replaceable code { color: inherit; } .highlight { background-color: #ff0; } h1, h2, h3, h4, h5, h6 { font-weight: normal; letter-spacing: normal; } h1, h2, h3 { border-bottom: 1px solid #ddd; padding-bottom: 2px; } h1, h2 { color: #DD5F38; font-family: "Myriad Pro", "AvenirNextLTW01-Regular", Arial, Helvetica, sans-serif; font-size: 35px; margin: 30px 0 10px; line-height: 37px; } .chapter h2, h3, h4, h5, h6 { color: #111; font-family: 'AvenirNextLTW01-Medium', Arial, Helvetica, sans-serif; } .chapter h2, .preface h2, .appendix h2, .reference h2, .reference .partintro h1, #content > .container > .refentry .refsynopsisdiv h2, #content > .container > .refentry .refsection h2 { color: #333; font-size: 26px; line-height: 31px; } h3 { color: #222; font-size: 20px; line-height: 24px; } h4 { font-size: 18px; line-height: 22px; } h5 { font-size: 17px; line-height: 20px; } h6 { font-size: 16; line-height: 19px; } .reference .titlepage hr { display: none; } .section { clear: both; } .section + .section h2, #content > .container > .refentry .refsynopsisdiv h2, #content > .container > .refentry .refsection h2 { padding-top: 24px; } a[href ^= "http"]:after { content: " " url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAVklEQVR4Xn3PgQkAMQhDUXfqTu7kTtkpd5RA8AInfArtQ2iRXFWT2QedAfttj2FsPIOE1eCOlEuoWWjgzYaB/IkeGOrxXhqB+uA9Bfcm0lAZuh+YIeAD+cAqSz4kCMUAAAAASUVORK5CYII=); } a.btn[href ^= "http"]:after { content: ""; } dl dd { margin-left: 30px; } .variablelist dd p { margin-bottom: 10px; } .literallayout p br:last-child { display: none; } span.guibutton, span.guilabel, span.guimenu, span.guimenuitem, span.guisubmenu { font-weight: bold; } p { position: relative; } p, td, th { font-family: Tahoma,Helvetica,Arial,sans-serif; font-size: 13px; line-height: 1.5em; margin: 10px 0 0 0; } p.clear { clear: both; } p:first-child { margin-top: 0; } /* targeted element styling -------------------------------------------- */ dt:target, div:target > .titlepage h1, div:target > .titlepage h2, div:target > .titlepage h3, div:target > .titlepage h4, div:target > .titlepage h5, div:target > .titlepage h6, span:target + h2, span:target + * + h2, .glossary dt:target + dd { margin-left: -12px; margin-right: -12px; padding-left: 12px; padding-right: 12px; color: #dd5f38; background-color: rgba(221, 95, 56, 0.2); animation-duration: 0.3s; -webkit-animation-duration: 0.3s; animation-name: pulse; -webkit-animation-name: pulse; animation-iteration-count: 3; -webkit-animation-iteration-count: 3; animation-direction: alternate; -webkit-animation-direction: alternate; animation-timing-function: ease-in-out; -webkit-animation-timing-function: ease-in-out; } .glossary dt:target + dd { padding-left: 44px; } span:target + h2 > a.headerlink, span:target + * + h2 > a.headerlink { color: #f0f0ff; } span:target + h2 > a.headerlink:hover, span:target + * + h2 > a.headerlink:hover { color: #449; background: #eaeaf8; } @-webkit-keyframes pulse { from { opacity: 0; } to { opacity: 1; } } @keyframes pulse { from { opacity: 0; } to { opacity: 1; } } dl.glossary dt:target { border-bottom: 0 none; -webkit-border-bottom-left-radius: 0; -moz-border-bottom-left-radius: 0; border-bottom-left-radius: 0; -webkit-border-bottom-right-radius: 0; -moz-border-bottom-right-radius: 0; border-bottom-right-radius: 0; } dl.glossary dt:target + dd { border-top: 0 none; padding-left: 34px; padding-right: 6px; -webkit-border-top-left-radius: 0; -moz-border-top-left-radius: 0; border-top-left-radius: 0; -webkit-border-top-right-radius: 0; -moz-border-top-right-radius: 0; border-top-right-radius: 0; } /* special image styling ----------------------------------------------- */ span.thumb { margin: 0 0 6px 12px; float: right; } p.thumb + p { margin-top: 0; } span.frame img { background-color: #fff; border: 1px solid #ddd; padding: 3px 3px 6px 3px; -webkit-box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); -moz-box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); margin: 0; } ul.popup-image { float: right; margin: 10px 0 0 0; padding: 0; } ul.popup-image li { position: relative; list-style: none; margin: 0; padding: 4px 0; } span.popup { float: right; cursor: pointer; margin: 0 0 6px 12px; text-align: right; position: relative; z-index: 50; } span.popup img { max-width: 100px; } span.popup span.expand { display: block; font-size: 10px; color: #999; } span.popup:hover span.expand { color: #111; } .doc-image-popup { position: absolute; top: 1px; right: -18px; z-index: 100; } .doc-image-popup img, span.popup .doc-image-popup img { position: absolute; top: -2px; right: 18px; margin: 0; max-width: 600px; } .doc-image-popup span.close-icon:before { content: "X"; font-size: 16px; } .doc-image-popup span.close-icon { position: absolute; top: 0; right: 0; cursor: pointer; } p.popup { position: relative; } /* ordered list styling ------------------------------------------------ */ ul, ol { padding: 0; margin: 10px 0 0 25px; position: relative; } ol { counter-reset: li; margin-left: 0; padding-left: 0; } ol > li { position: relative; margin: 0 0 8px 16px; padding: 4px 0 4px 24px; list-style: none; border-left: 2px solid #ddd; clear: both; } ol > li:before { content: counter(li); counter-increment: li; position: absolute; top: 0px; left: -16px; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; width: 30px; margin-right: 8px; -webkit-border-radius: 16px; -moz-border-radius: 16px; border-radius: 16px; padding: 4px; border: 1px solid #ddd; color: #000; background: #f7f7f7; font-weight: bold; text-align: center; font-family: Tahoma,Helvetica,Arial,sans-serif; font-size: 14px; } ol.loweralpha > li:before, ol[type=a] > li:before { content: counter(li, lower-alpha) } ol.upperalpha > li:before { content: counter(li, upper-alpha) } ol.lowerroman > li:before, ol[type=i] > li:before { content: counter(li, lower-roman) } ol.upperroman > li:before { content: counter(li, upper-roman) } li ol { margin-top: 6px; } li ul { list-style-type: disc; } ol.procedure li.step > p:first-child { font-weight: bold; } ul.itemizedlist li + li { margin-top: 10px; } /* table styling ------------------------------------------------------- */ div.informaltable { margin-top: 10px; } div.informaltable table, table.simplelist { border: 0 none; border-collapse: collapse; font-size: 14px; } div.informaltable table thead tr:last-child th { border-bottom: 1px solid #000; } div.informaltable table th { background-color: #ddd; vertical-align: top; padding: 10px 10px; } div.informaltable table td { vertical-align: top; padding: 10px 10px; } div.informaltable table tbody tr td { border-bottom: 1px solid #bcbab1; } div.informaltable table tbody tr:last-child td { border-bottom: 1px solid #bcbab1; } div.informaltable table tbody tr:nth-child(even) td { background-color: inherit; } div.informaltable table p:last-child { margin: 0; } table.simplelist { margin-top: 10px; } table.simplelist td { vertical-align: top; padding: 0 15px 3px 0; } table.simplelist td:last-child { padding: 0; } /* tweaks for size-specified images */ div.mediaobject table td { padding: 0; } div.mediaobject table tbody tr:last-child td { border: 0 none; } div.mediaobject table img { max-width: none; } /* TOC styling --------------------------------------------------------- */ dl.toc span.preface, dl.toc span.chapter, dl.toc span.appendix { display: block; border-bottom: 1px solid #bcbab1; margin-top: 12px; } dl.toc dl { margin: 0; } dl.toc dd { margin-left: 18px; } dl.toc a { color: #000; text-decoration: none; } dl.toc a:hover { color: #ddd; } /* admonition styling -------------------------------------------------- */ div.admonition { position: relative; margin: 10px 0 0 104px; border-left: 6px solid #ccc; border-right: 1px dotted #ccc; padding: 9px 12px; background-color: #eee; color: #000; z-index: 10; clear: both; } div.admonition h1, div.admonition h2, div.admonition h3 { position: absolute; top: 0; left: 0; border-top: 1px solid #ccc; border-left: 1px solid #ccc; border-bottom: 1px solid #ccc; border-top-left-radius: 12px; border-bottom-left-radius: 12px; margin: 0 0 0 -110px; font-size: 10px; text-transform: uppercase; letter-spacing: 1px; width: 105px; padding: 0px 12px 0px 8px; box-shadow: 0 3px 4px -2px #333; z-index: 0; } div.admonition pre { margin: 10px 0 0 0; } div.admonition h1 + p, div.admonition h2 + p, div.admonition h3 + p, div.admonition .literallayout + p { margin: 0; } /* warning */ div.admonition.warning { border-color: #f00; background-color: #fee; } div.admonition.warning h1, div.admonition.warning h1, div.admonition.warning h3 { color: #f00; border-color: #f00; } div.admonition.warning pre { border-color: #ffe4e4; background-color: #ffe4e4; } div.admonition.warning ol > li { border-left-color: #ddc2c2; } div.admonition.warning ol > li:before { border-color: #ddc2c2; background-color: #f7c2c2; } /* caution */ div.admonition.caution { border-color: #f79319; background-color: #fdeedc; } div.admonition.caution h1, div.admonition.caution h1, div.admonition.caution h3 { color: #f79319; border-color: #f79319; } div.admonition.caution pre { border-color: #e7d8c6; background-color: #f3e4d2; } div.admonition.caution ol > li { border-left-color: #c5b6a4; } div.admonition.caution ol > li:before { border-color: #c5b6a4; background-color: #d1c2b0; } /* important */ div.admonition.important { border-color: #408; background-color: #e3d9ed; } div.admonition.important h1, div.admonition.important h1, div.admonition.important h3 { color: #408; border-color: #408; } div.admonition.important pre { border-color: #cdbfd7; background-color: #d9cfe3; } div.admonition.important ol > li { border-left-color: #ab9db5; } div.admonition.important ol > li:before { border-color: #ab9db5; /* - 22 */ background-color: #d2c8db; /* - 07 */ } /* note */ div.admonition.note { border-color: #068; background-color: #d9e8ed; } div.admonition.note h1, div.admonition.note h1, div.admonition.note h3 { color: #068; border-color: #068; } div.admonition.note pre { border-color: #c3d2d7; background-color: #cfdee3; } div.admonition.note ol > li { border-left-color: #a1b0b5; } div.admonition.note ol > li:before { border-color: #a1b0b5; background-color: #adbcc1; } /* tip */ div.admonition.tip { border-color: #00f; background-color: #eef; } div.admonition.tip h1, div.admonition.tip h1, div.admonition.tip h3 { color: #00f; border-color: #00f; } @media (max-width: 768px) { div.admonition { margin: 36px 0 10px 0; border: 0 none; border-top: 6px solid #ccc; border-bottom: 1px dotted #ccc; } div.admonition h1, div.admonition h2, div.admonition h3 { border-bottom: 0 none; border-right: 1px solid #ccc; border-bottom-left-radius: 0; border-top-right-radius: 12px; margin: -30px 0 0 0; width: auto; padding-right: 8px; box-shadow: 0 0 0 0; } li p + .admonition { margin-top: 36px; } } /* styling for the index page ------------------------------------------ */ div.index dl dt { font-weight: normal; } div.index dl dl { margin-top: 0; } div.index dl dd { margin-left: 18px; } /* keyboard shortcuts modal dialog styling ----------------------------- */ .modal h4 { margin: 0; border: 0 none; } .modal .modal-header { background-color: #f4f4f4; border-top-left-radius: 6px; border-top-right-radius: 6px; } .modal dt { clear: both; float: left; width: 40%; text-align: right; padding-right: 10px; line-height: 1.5; } .modal dd { line-height: 1.5; }
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#1 | 13895 | Paul Allen | Copying using p4convert-docbook | ||
//guest/perforce_software/doc_build/main/perforce/assets/publicsite/css/perforce.css | |||||
#50 | 12837 | eedwards |
#review-1029519 Change the way that the TOC is generated for the HTML presentation: - no longer include the TOC in each generated HTML page. - generate a JSON file representing the TOC. - add javascript to read the TOC in JSON format, and generate the appropriate HTML. - Remove the noscript block that prevents using the documentation with javascript disabled; just hide the search button because you can't use search without javascript. |
||
#49 | 12831 | eedwards |
Fix a minor vertical alignment problem in the keyboard shortcuts dialog. |
||
#48 | 12828 | eedwards |
#review-1028126 Update the logo for both PDF, HTML, and CHM output. Includes updated favicon.ico for the HTML output. Includes some additional tweaks: - In the HTML presentation, the "book" icon (to access the PDF, if available) and the magnifying glass icon for searching both look more clickable, using colors from the latest perforce.com design. - Also, both icons stick to the right edge of the doc content, rather than the right edge of the browser. - The background color in the HTML presentation is now plain white; the gradient image is removed. - The Google Analytics code is now included in the HTML presentation by default. Individual guides can disable this by setting the DocBook parameter perforce.analytics=0. Once this change is in place, subsequent generation of guides will incorporate these changes. |
||
#47 | 12827 | eedwards |
Add an estimate of reading time to the top of each HTML page. Also add an indicator of reading progress to the fixed header. |
||
#46 | 12822 | eedwards |
Add additonal styles to provide the correct stacking order for popup elements. This should make them more reliably clickable. |
||
#45 | 12820 | eedwards | CSS fix to improve popup image placement. | ||
#44 | 12819 | eedwards |
Improve the appearance of numbered lists within admonitions by applying admonition-specific colors to the left border and border/background of the number. |
||
#43 | 12817 | eedwards | Improve the presentation of indexes in PDF/HTML. | ||
#42 | 12816 | eedwards |
Adjust the selectors for eliminating paragraph margins to be more specific, to avoid removing the margins for paragraphs following pre blocks. |
||
#41 | 12810 | eedwards |
Add styling tweaks for images with specified sizes. When this occurs, DocBook creates a table to wrap around the image, and we want to turn off borders, cell padding, and the image's "max-width: 100%" styling to achieve the desired presentation. |
||
#40 | 12809 | eedwards |
#review-954548 Add the infrastructure to present a "PDF" link in the header bar in the HTML presentation. Not all guides provide PDF versions, so this is configurable on a guide-by-guide basis. The default is to omit the link. When a guide provides a PDF version, set the pdf.available attribute to the name of the PDF file that the link should target. For example, in P4Guide's publicsite build.properties: pdf.available=p4guide.pdf A subsequent changelist will apply this attribute to all of the server guides. |
||
#39 | 12801 | eedwards | CSS fix for spacing of entries in a <variablelist>. | ||
#38 | 12800 | eedwards |
Doc presentation tweaks: - For PDF cover page: - move logo to top-left from bottom right - move title down - move subtitle near bottom - add <pubdate> presentation below subtitle (the <subtitle> now specifies the doc version) - tweaked font sizes - For HTML: - Add Perforce logo to header bar. - Add <subtitle> in brackets after guide title. |
||
#37 | 12795 | eedwards |
#review-932846 Tweak the styling for headings in the HTML presentation: - make second-level and third-level headings slightly larger, to better visually distinguish them from lower-level headings - make second-level headings for preface, appendix, and reference "chapters" consistent with chapters. - better organization of the heading styles to group like styling together, and demonstrate the progression of styling. - remove the border between second-level sections in exchange for greater whitespace between them. - reference sections with partintro blocks included an extra horizontal rule, which is no longer displayed. - Includes a tweak to allow Firefox to scale images in a response manner. |
||
#36 | 12793 | eedwards |
Tweak the color of the bottom border of a table to match the bottom borders of cells within the table. |
||
#35 | 12792 | eedwards |
A few updates to presentation for HTML and PDF: - Chapter cross-references no longer appear in italics. - For PDF, <gui*> tag content renders in bold, to match the HTML output. - HTML cross-references to chapters now appears in quotation marks, but cross-references to sections now have the quotation marks removed. - A number of spacing issues in the HTML output between list items, admonitions, images, and a following paragraph have been resolved. |
||
#34 | 12784 | eedwards |
Improved nav pane scroll position when moving from page to page in a guide. The behaviour isn't perfect in all situations yet, but is notably better. |
||
#33 | 12783 | eedwards |
Add some margin below "framed" images to provide better separation for following content. |
||
#32 | 12782 | eedwards |
Tweak CSS so that pop-up images, which only appear in the Swarm docs currently, are positioned properly. Should have no other visible impact. |
||
#31 | 12780 | eedwards |
Adjust the paragraph spacing within admonitions so that intermediary <literallayout> tags present as expected. |
||
#30 | 12776 | eedwards |
#review-851775 Updates to the HTML presentation: - remove the double DOCTYPE declarations. - revise markup so that the content is no longer in an immovable container. This should allow the scroll position to be maintained by the browser and work as expected after users navigate within a page and then use the browser's back button. - rename the generated search index file to 'index.js' to avoid a mimetype issue. Also, made the search code tolerant of a missing index.js. - fix scrolling to targeted locations in a guide by applying an offset to the scroll to move the target out from under the header, and to animate the scroll. |
||
#29 | 12775 | eedwards |
Add HTML formatting for <simplelist> tags. (The PDF formatting is already adequate). This should have no effect on existing docs, as <simplelist> does not appear to be used anywhere. Added to format a 'table' that appears in the forthcoming P4Convert docs (conversion to DocBook). |
||
#28 | 12773 | eedwards |
Add an additional override to Bootstrap so that code blocks (in <programlisting> tags) do not word wrap when content that could be wrapped is near the right border of the text area in HTML. |
||
#27 | 12772 | eedwards |
Minor CSS tweak to target pre-formatted only at the end of an admonition. |
||
#26 | 12771 | eedwards |
Improve the presentation of pre-formatted text in admonitions for the HTML output: - remove the negative left/right margins so that the border around the text doesn't run into the admonition border. - if the pre-formatted text is the last element in an admonition, remove its bottom margin. - adjust the border and background color of the pre-formatted text to better match the color of the different types of admonitions. |
||
#25 | 12769 | eedwards |
HTML style tweaks: - for Internet Explorer 11, hide the browser's own 'clear' button on input fields to prevent an ugly display problem where IE's clear button overlaps our own button. - make the border around <programlisting> tags just a touch lighter/less constrasty. - make <replaceable> content within <filename> tags inherit the <filename> color. - provide styling to help fix a vertical alignment issue when including "thumb" graphics in a paragraph. Documents that could use this fix need to change the <para> tag to <para condition="thumb">. |
||
#24 | 12766 | eedwards |
Updates to the HTML presentation for docs to better support users with Internet Explorer 8: - removed used of HTML5 tags, such as header, footer and nav, which IE8 doesn't understand at all. - add Respond.js (MIT license), which simulates CSS media queries in IE8. - fix some issues with the javascript that IE8 could not handle. - add a custom IE8 stylesheet to include some very specific tweaks. The HTML for the following two guides has been updated, and is available for review for a limited time: http://ee.perforce.ca/docs/p4dist.ie8/ http://ee.perforce.ca/docs/swarm/ |
||
#23 | 12765 | eedwards |
Adjust margin for the heading title so that a guide's title appears centered vertically. |
||
#22 | 12764 | eedwards |
Make the style which presents the first paragraph in a procedure step bold apply more specifically, so that subordinate list paragraphs do not also become bold. |
||
#21 | 12762 | eedwards | Fix the color for linked <envar> and <uri> tags. | ||
#20 | 12759 | eedwards |
Improve specificity of :target styling so that only the TOC element clicked gets highlighted, rather than that element and its enclosed subsections. |
||
#19 | 12758 | eedwards |
Updates to the HTML doc presentation's search interface: - Add checkbox to toggle whether partial match results will be displayed or not - Replace obscure water droplet icon with checkbox and label to make it obvious that clicking toggles the highlighting of search terms in the current page - Report results by type: phrase matches, exact term matches, and partial matches, using a heading to indicate each group. |
||
#18 | 12754 | eedwards |
Move the header text up a couple of pixels. Add 2px of top padding to the nav sidebar. Thanks Stew! |
||
#17 | 12753 | eedwards |
Enable inertia scrolling for the main content, and both the TOC and search sidebars. |
||
#16 | 12752 | eedwards |
Several doc presentation/interactiontweaks: - on page load, the navigation sidebar is scrolled to show the current section (as well as can be expected) - refactored the keypress handling to use a switch statement. This makes it easier to handle multiple keys with the same logic. - add a modal dialog describing the keyboard shortcuts available while viewing the docs. |
||
#15 | 12751 | eedwards |
Tweak styles for literallayout such that only the last <br> tag gets hidden. This maintains the expected use of literallayout for multi-line, non-monospaced presentation, but also permits the common practice of injecting a line-break where needed. |
||
#14 | 12750 | eedwards |
Add in styles for targeted elements, which makes finding where xref links point much easier. |
||
#13 | 12749 | eedwards |
Adjustments to make the documentation presentation very similar to the public web site. Notable changes: - fix scrollSpy logic that was failing to match section identifiers containing periods - the navigation footer stays in view at all sizes - the background, colours, font sizes, etc. are now identical/similar to the public web site. - we cannot currently use the public web site's fonts due to a licensing issue. |
||
#12 | 12745 | eedwards |
Remove the "external link" indicator from anchor tags styled as buttons. |
||
#11 | 12744 | eedwards |
Make guibutton, guilabel, guimenu, guimenuitem, and guisubmenu content appear in bold. |
||
#10 | 12743 | eedwards |
Make the first paragraph in a procedure step bold for the HTML docs. |
||
#9 | 12742 | eedwards |
Add javascript from swarm.js to handle thumbnail and popup images, including adding a "Click to expand" indicator for popup images. A subsequent changelist will remove this functionality from the Swarm customizations, as this capability is now available for all guides. |
||
#8 | 12741 | eedwards |
Adjust CSS to prevent admonitions in orderedlists from overlapping any immediately preceding images. |
||
#7 | 12740 | eedwards |
Doc presentation style tweaks: - make the header 20% shorter. - make the guide title/version 16% smaller. - hide the left border for nested TOC entries. - lighten the hover colours for the sidebar links. - Use a cursor change to indicate that the term highlight link (the water droplet) is clickable. Also, made the "clear search" button clear the search results. |
||
#6 | 12738 | eedwards |
Infrastructure updates to support new Swarm DocBook documentation: - Strip out XSLTHL; it does a poor job of highlighting the kinds of syntax included in our documentation, and it does an awful job when code to be highlighted contains other markup, such as xref, link, or replaceable. - Add in google-code-prettify (from Swarm) so that generated HTML has fairly decent syntax highlighting for many of the code examples we use. Further work on syntax highlighting, particularly for PDF output, is required. - Disable TOC generation in HTML; the HTML template already includes the full TOC as a sidebar on every page. - Update the xmlns attribute and image URL filtering. - Fix a bug in HTML page title XSL that often prevented the current section title from being included. This was more obvious in the Swarm documentation which chunks into pages by section, rather than by chapter. - Update the HTML indexer to process multiple HTML files in one pass for performance, and overall simplify the code structure. - Adjust sidebar TOC activation logic to allow Bootstrap's scrollSpy code to work with section-based chunking. - Re-introduce the "brand" markup in the HTML doc heading so that Swarm's documentation can include its logo. Other guides can do so if required, but none have been updated to do so yet. - Add facility for guide-specific custom javacsript inclusion. - Add facility to apply custom CSS classes to images in documentation. This is used in Swarm documentation to provide thumbnail, popup, and "framed" images. - Adjust xref and link text to just report the chapter or section name, without the preamble text, for example: "the section called". - Add <replaceable role="bold"> to provide a second kind of emphasis to programlistings. - Added a subtle color to <filename> content, to help distinguish from other literal text. - Removed the separator rule from the first section heading while chunking by section. - Added Swarm's orderedlist styling so that each numbered item has a circle around the number and a vertical bar indicating the extend of the item. - Added a visual indicator when a link points to an external document. - Rewrote the javascript search code to search for exact and fuzzy terms matches, as well as phrases. Relevance scoring is included, but likely needs some fine tuning to suit our documentation. |
||
#5 | 12734 | eedwards |
Replace the Java-based HTML indexer with a Python-based one. The Java-based HTML indexer was based on stemming, which can reduce the size of the index notably. However, stemming producespoor search behaviour, and is language specific. For example, the word 'documentation' has a stem of 'document'. When a user searches for 'docu', 'document' is not found. Also, all punctuation was stripped, making searches for IP addresses or depot paths impossible. The Python-based indexer collects all whitespace-separated tokens. The resulting index is around 10% larger than the stemmed index, but permits much more reasonable results, particularly while the user is still typing in search terms. The Python-based indexer should be cross-platform, but has to date only been tested on Mac OSX. It should work as-is on Linux, but further work may be required on Windows or other platforms. Also, there is room for optimization, particularly when a large number of HTML documents are to be indexed. Searching multiple terms is possible, and each HTML page must match all entered terms. There is nothing fancy about handling the search terms, no conjunctions, phrase searching, etc. Depending on user feedback, we may need to add more sophistication in the future. Included in this change: - the Python indexer - removed use of Java-based indexer from common build.xml and applied the Python indexer - added additional image src filtering - better build commentary in certain targets - rewrote the client-side searching - fixed the content of the HTML <title> tags to be '<chapter> // <book>', or just '<book>' when necessary. Search results strip off the ' // <book>' to be concise. - identify results as 'pages' rather than results, as each page may contain multiple matches. - results now indicate how many matches to expect on each page. - re-enabled indexing/search for CmdRef, P4API, P4Dist, and P4Guide. |
||
#4 | 12733 | eedwards |
Add more xmlns attribute cleanup, and adjust how included images get processed. |
||
#3 | 12730 | eedwards |
HTML doc presentation tweaks: - turn off the search functionality as it currently has issues making it unreliable. A fix will be applied in a future changelist. - remove the Perforce logo as it is too large and potentially violates several logo style rules. I'll discuss options with our graphics dept. - ensure that code samples can be scrolled horizontally, rather than using word wrapping, if they don't fit in the browser width. |
||
#2 | 12729 | eedwards |
Implement a few HTML presentation tweaks: - make body content images reduce their size to match the column width as the browser width is reduced. - add a separating line above top-level section headings, to better indicate the section transition. - add more space after tabular information. - remove alternate background color from tabular information; no more zebra striping. |
||
#1 | 12728 | eedwards |
Upgrade ANT doc build infrastructure to assemble PDFs: - remove non-namespaced DocBook source and add namespaced DocBook source. - add Apache FOP 1.1 - copy fonts, images, XSL into _build, establishing new asset structure. The original structure remains until all guides using it can be upgraded, and several other issues can be resolved. - updated build.xml to allow for per-target build properties. - upgraded the P4SAG to use the new infrastructure. - tweaked admonition presentation in PDFs to remove admonition graphics, and resemble closely the presentation used in the new HTML layout, including the same colors. With these changes, building PDFs involves using a shell, navigating into the guide's directory (just P4SAG for now), and executing "ant pdf". Issues still to be resolved: - PDF generation encounters several warnings about missing fonts (bold versions of Symbol and ZapfDingbats), and a couple of locations where the page content exceeds the defined content area. - Due to issues within Apache FOP, PDF generation emits a substantial amount of output that is not easily suppressed without losing important warning information. - Apache FOP's interface to ANT does not expose a way to set the font base directory. The current configuration does work under Mac OSX, but further testing on Windows will need to be done to determine if the relative paths defined continue to work. The workaround is for Windows users to customize the fop-config.xml to provide absolute system paths to the required fonts. - HTML generation needs further browser testing, and exhibits broken navigation on iOS browsers within the TOC sidebar. - A number of PDF and HTML presentation tweaks still need to be made, for example: sidebars, gui* DocBook tags, whitespace, section separation, etc. |
||
//guest/perforce_software/doc_build/main/perforce/assets/webhelp/css/perforce.css | |||||
#6 | 12727 | eedwards |
Further presentation tweaks to the prototype HTML docs: - improve the presentation of the noscript warning when javascript is disabled. - customize the javascript disabled text to refer to 'documentation' instead of 'this site' - remove some stray styles and cruft that interfered with the intended presentation |
||
#5 | 12726 | eedwards |
Tweaks to the TOC presentation in prototype HTML for docs: - Animated open/close of TOC section - Reflect open/close state in TOC section expansion button - Made section nesting more visually apparent |
||
#4 | 12725 | eedwards |
Fixes for prototype HTML presentation: - don't attempt to highlight search terms when there are none - adjust inline-block styling in the header so that the text-overflow property takes effect as expected - use smaller font sizes for headings for narrower browsers, and apply transitions to heading font sizes - unroll transition styles to include all browser-specific transition styles. |
||
#3 | 12724 | eedwards |
Tweak prototype HTML's CSS to prevent a problem where the body content's left margin could be off-screen on initial page load for narrow browsers. |
||
#2 | 12721 | eedwards |
Tweaks to the prototype HTML presentation for docs: - use CSS classes rather than hard-coded values in javascript to implement sidebar open/close - made the search sidebar disappear when not open, not just to the right where it can be seen in wide browsers - made the TOC sidebar disappear when the search sidebar appears (at narrow browser widths), and vice-versa. |
||
#1 | 12720 | eedwards |
Apply better organization for DocBook transformation assets. In the future, other output target assets will appear as peers of webhelp, within the assets directory. |
||
//guest/perforce_software/doc_build/main/perforce/webhelp_assets/css/perforce.css | |||||
#4 | 12719 | eedwards |
Minor updates to prototype HTML presentation: - make ScrollSpy work, so that the current section of the documentation is highlighted in the sidebar TOC. - add expander buttons to the TOC so that users can manually explore the TOC. - remove the now-unused SIDR code. - remove some cruft. |
||
#3 | 12718 | eedwards |
WebHelp transformation improvements: - consolidate the Java indexer's output files into a single file to reduce HTTP requests, and tidy up the search assets the indexer created - move the search interface and results into their own pane on the right side of the display - make search incremental as users type - replace existing navigation links with a TOC sidebar that is displayed when the browser is wide enough, or use a footer with prev/next links when the browser is too narrow. In the narrow presentation, the TOC sidebar can be toggled open. - Various improvements to colours, formatting, at various browser sizes. |
||
#2 | 12717 | eedwards |
Initial prototype of new HTML generation intended to exist on the Perforce public web site. The updates features a more responsive design, removal of frames, styling improvements. More work needs to be done to ensure robust presentation across various devices, and further design tweaks may be required once various stakeholders get a chance to have a look. Future infrastructure work will need to be done: - incorporate PDF generation - some organizational tweaks to make additional output targets easy to add - HTML validation assets need to be added/incorporated |
||
#1 | 12716 | eedwards |
Initial checkin of infrastructure to process DocBook XML into WebHelp format. The purpose of this change is to lay the groundwork that will allow all published Perforce documentation to be converted to HTML (and eventually PDF and other formats) in a consistent manner, independent of tools, and eventually allow for automated documentation builds. The latest versions of DocBook (1.78.1), Saxon (6.5.5), Xalan-J (2.7.1), and XSLTHL (2.1.0) are included, as well as generic customization capability and per-guide customizations. More work needs to be done to the customization layers to fully support their use from an XML authoring tool, such as oXygen, which will appear in a future change. Note: This change only includes configuration to build WebHelp for the P4SAG. Further work is required before the infrastructure can be applied to other guides. WARNING: For anyone using oXygen to produce WebHelp, there is a known incompatibility: <imagedata> tags in oXygen are verified for file existence, and the HTML is subsequently patched to resolve to the output directory. The non-oXygen WebHelp generation does not include the patch operation, so images are broken. The <imagedata> can be updated to indicate the relative path in the output directory, but then the oXygen transformation will fail. This will be fixed in a future change. |