Improve print output (#680)

* Update print styles for new sidebar behavior

* Hide copy icons in print output

* Wait for mathjax rendering to complete before printing

* Remove old wrapping css
Browsers this old are already hilariously broken, so we don't need these fallbacks.

* Change mathjax script type
Chrome won't execute this if it's not marked as js

* Ensure page has rendered before printing
In certain situations Chrome willl fire window.onLoad before it's
done rendering. Add a 100ms delay to work around this.
This commit is contained in:
Matt Ickstadt 2018-05-01 07:29:34 -05:00 committed by Michael Bryan
parent a323620e02
commit 69fef40e57
3 changed files with 37 additions and 31 deletions

View File

@ -1322,12 +1322,14 @@ html:not(.sidebar-visible) #menu-bar:not(:hover).folded > #menu-bar-sticky-conta
.mobile-nav-chapters { .mobile-nav-chapters {
display: none; display: none;
} }
#page-wrapper {
left: 0;
overflow-y: initial;
}
#page-wrapper.page-wrapper { #page-wrapper.page-wrapper {
padding-left: 0px; -webkit-transform: none;
-moz-transform: none;
-o-transform: none;
-ms-transform: none;
transform: none;
margin-left: 0px;
overflow-y: initial;
} }
#content { #content {
max-width: none; max-width: none;
@ -1361,16 +1363,14 @@ html:not(.sidebar-visible) #menu-bar:not(:hover).folded > #menu-bar-sticky-conta
h6 { h6 {
page-break-inside: avoid; page-break-inside: avoid;
page-break-after: avoid; page-break-after: avoid;
/*break-after: avoid*/
} }
pre, pre,
code { code {
page-break-inside: avoid; page-break-inside: avoid;
white-space: pre-wrap /* CSS 3 */; white-space: pre-wrap;
white-space: -moz-pre-wrap /* Mozilla, since 1999 */; }
white-space: -pre-wrap /* Opera 4-6 */; .fa {
white-space: -o-pre-wrap /* Opera 7 */; display: none !important;
word-wrap: break-word /* Internet Explorer 5.5+ */;
} }
} }
.tooltiptext { .tooltiptext {

View File

@ -212,14 +212,6 @@
</script> </script>
{{/if}} {{/if}}
{{#if is_print}}
<script type="text/javascript">
document.addEventListener('DOMContentLoaded', function() {
window.print();
})
</script>
{{/if}}
{{#if playpen_js}} {{#if playpen_js}}
<script src="ace.js" type="text/javascript" charset="utf-8"></script> <script src="ace.js" type="text/javascript" charset="utf-8"></script>
<script src="editor.js" type="text/javascript" charset="utf-8"></script> <script src="editor.js" type="text/javascript" charset="utf-8"></script>
@ -246,5 +238,23 @@
<script type="text/javascript" src="{{this}}"></script> <script type="text/javascript" src="{{this}}"></script>
{{/each}} {{/each}}
{{#if is_print}}
{{#if mathjax_support}}
<script type="text/javascript">
window.addEventListener('load', function() {
MathJax.Hub.Register.StartupHook('End', function() {
window.setTimeout(window.print, 100);
});
});
</script>
{{else}}
<script type="text/javascript">
window.addEventListener('load', function() {
window.setTimeout(window.print, 100);
});
</script>
{{/if}}
{{/if}}
</body> </body>
</html> </html>

View File

@ -7,13 +7,10 @@
display: none display: none
} }
#page-wrapper {
left: 0;
overflow-y: initial;
}
#page-wrapper.page-wrapper { #page-wrapper.page-wrapper {
padding-left: 0px; transform: none;
margin-left: 0px;
overflow-y: initial;
} }
#content { #content {
@ -46,15 +43,14 @@
h1, h2, h3, h4, h5, h6 { h1, h2, h3, h4, h5, h6 {
page-break-inside: avoid page-break-inside: avoid
page-break-after: avoid page-break-after: avoid
/*break-after: avoid*/
} }
pre, code { pre, code {
page-break-inside: avoid page-break-inside: avoid
white-space: pre-wrap /* CSS 3 */ white-space: pre-wrap
white-space: -moz-pre-wrap /* Mozilla, since 1999 */ }
white-space: -pre-wrap /* Opera 4-6 */
white-space: -o-pre-wrap /* Opera 7 */ .fa {
word-wrap: break-word /* Internet Explorer 5.5+ */ display: none !important
} }
} }