/* Perforce CHM Styles */ /* vim: set ts=2 sw=2 tw=80 ai si: */ /* body styling -------------------------------------------------------- */ body { background-color: #fff; color: #333; font-family: Tahoma, Helvetica, Arial, sans-serif; font-size: 13px; line-height: 1.5em; } #footer { margin-top: 1em; padding-top: 9; border-top: 1px solid #000; } #footer a, #footer img { text-decoration: none; border: 0 none; } /* 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: 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, .refentry .refsynopsisdiv h2, .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, .refentry .refsynopsisdiv h2, .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: ""; } a > img { text-decoration: none; border: 0 none; } 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; animation-name: pulse; animation-iteration-count: 3; animation-direction: alternate; 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; } @keyframes pulse { from { opacity: 0; } to { opacity: 1; } } dl.glossary dt:target { border-bottom: 0 none; } dl.glossary dt:target + dd { border-top: 0 none; padding-left: 34px; padding-right: 6px; } /* 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; 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 ------------------------------------------------ */ ol.loweralpha, ol[type=a] { list-style-type: lower-alpha; } ol.upperalpha { list-style-type: upper-alpha; } ol.lowerroman, ol[type=i] { list-style-type: lower-roman; } ol.upperroman { list-style-type: 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; padding: 0px 12px 9px 12px; background-color: #eee; color: #000; z-index: 10; clear: both; margin: 36px 0 10px 0; border-top: 6px solid #ccc; border-bottom: 1px dotted #ccc; } 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; font-size: 10px; text-transform: uppercase; letter-spacing: 1px; padding: 0px 8px 0px 8px; z-index: 0; border-bottom: 0 none; border-right: 1px solid #ccc; margin: -25px 0 0 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; } li p + .admonition { margin-top: 36px; } /* 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; } /* 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; }
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#1 | 12823 | eedwards |
Add a new 'htmlhelp' doc build target that generates the HTML, index, TOC files that can be compiled into a CHM file on a Windows machine using HTML Help Workshop. The build target can be used wherever the doc infrastructure runs, but the final CHM compilation currently needs to be performed on a Windows box. This means full CHM production automation is currently unavailable. Further investigation into non-Microsoft CHM compilers will be required for full automation. Note that any guide that requires CHM production will need to add its own 'htmlhelp' asset tree. The P4VS guide will (shortly) become a decent reference, if required. For any XSLT tinkerers, note that only a few of the 'htmlhelp' DocBook parameters are currently passed through to the transformation phase. If you need to pass any additional parameters through, add them to build.xml as appropriate. |
||
//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. |