##// END OF EJS Templates
Backport PR #2738: Unicode content crashes the pager (console)...
Backport PR #2738: Unicode content crashes the pager (console) We've run into an interesting bug in the astropy project. https://github.com/astropy/astropy/issues/600 When displaying a docstring that contains Unicode and is also long enough that it gets sent to the pager it fails since the docstring can't be sent to the pager as ascii. This crashes in the middle of sending content to the pager, so the shell ends up in an inconsistent state and stops echoing the keyboard etc. The fix (attached) is merely to encode the content sent to the pager in the same encoding as the terminal (`sys.stdout.encoding`). Strictly speaking, this isn't always the right thing to do, since the pager may be configured to expect a different encoding than the terminal, but that is sort of an irrational way to configure a machine... ;) For example, `less`, in the absence of any special environment variables to tell it otherwise, uses the standard `LC*` environment variables to determine what to do, which should be the same mechanism the terminal also uses by default. If anyone can suggest a better fix, I'm all for it. Perhaps it should be configurable, defaulting to `sys.stdout.encoding`?

File last commit:

r8076:c7de115c
r9853:7f9a133e
Show More
notebook.css
393 lines | 7.5 KiB | text/css | CssLexer
Brian E. Granger
Updating font-sizing to use the YUI protocol.
r4379 /**
* Primary styles
*
* Author: IPython Development Team
*/
Brian Granger
Initial draft of HTML5/JS/CSS3 notebook.
r4292 body {
Brian E. Granger
Starting to refactor the notebook layout
r4355 overflow: hidden;
Brian Granger
Fixes to notebook scrolling and layout....
r4311 }
Brian E. Granger
Work on save widget, kernel status widget and notebook section.
r4372 span#save_widget {
Brian Granger
Improved notebook renaming....
r5859 padding: 5px;
Brian Granger
Implemented menu based UI using Wijmo.
r5857 margin: 0px 0px 0px 300px;
Matthias BUSSONNIER
notebook : update logo...
r5702 display:inline-block;
Brian E. Granger
Work on save widget, kernel status widget and notebook section.
r4372 }
Brian Granger
Improved notebook renaming....
r5859 span#notebook_name {
height: 1em;
line-height: 1em;
padding: 3px;
border: none;
font-size: 146.5%;
}
Brian Granger
Solid first go at jquery-ui based menus.
r5869 .ui-menubar-item .ui-button .ui-button-text {
padding: 0.4em 1.0em;
font-size: 100%;
}
.ui-menu {
-moz-box-shadow: 0px 6px 10px -1px #adadad;
-webkit-box-shadow: 0px 6px 10px -1px #adadad;
box-shadow: 0px 6px 10px -1px #adadad;
}
.ui-menu .ui-menu-item a {
mcelrath
Fix 1px jumping of cells and menus in Notebook.
r7300 border: 1px solid transparent;
Brian Granger
Minor style changes. Using better fonts, indenting menu items.
r5870 padding: 2px 1.6em;
Brian Granger
Solid first go at jquery-ui based menus.
r5869 }
mcelrath
Fix 1px margin bouncing of selected menu item.
r7320 .ui-menu .ui-menu-item a.ui-state-focus {
margin: 0;
}
Brian Granger
Solid first go at jquery-ui based menus.
r5869 .ui-menu hr {
margin: 0.3em 0;
}
Brian Granger
Major refactoring of saving, notification....
r6047 #menubar_container {
position: relative;
}
#notification {
position: absolute;
right: 3px;
top: 3px;
height: 25px;
padding: 3px 6px;
z-index: 10;
}
Brian Granger
First draft of toolbar....
r5993 #toolbar {
padding: 3px 15px;
}
Brian Granger
Further work on the toolbar UI....
r5994 #cell_type {
font-size: 85%;
}
Brian Granger
Refactoring templates and top level js/css organization.
r6192
div#main_app {
width: 100%;
position: relative;
}
Fernando Perez
Add quick help button: broken ATM, style and binding aren't working....
r5023 span#quick_help_area {
position: static;
padding: 5px 0px;
margin: 0px 0px 0px 0px;
}
Brian E. Granger
Adding minor help strings for keyboard shortcuts.
r4516 .help_string {
float: right;
width: 170px;
padding: 0px 5px;
Brian E. Granger
Adding keyboard shortcut help dialog.
r4646 text-align: left;
Brian E. Granger
Reorganize the L panel buttons.
r4640 font-size: 85%;
Brian E. Granger
Adding minor help strings for keyboard shortcuts.
r4516 }
.help_string_label {
float: right;
Brian E. Granger
Reorganize the L panel buttons.
r4640 font-size: 85%;
Brian E. Granger
Adding minor help strings for keyboard shortcuts.
r4516 }
Brian E. Granger
More work updating the notebook to use dynamics resizing.
r4360 div#notebook_panel {
Brian E. Granger
Left panel is now working.
r4363 margin: 0px 0px 0px 0px;
Brian E. Granger
More work updating the notebook to use dynamics resizing.
r4360 padding: 0px;
Brian E. Granger
Starting to refactor the notebook layout
r4355 }
div#notebook {
overflow-y: scroll;
overflow-x: auto;
Brian E. Granger
More work updating the notebook to use dynamics resizing.
r4360 width: 100%;
Brian E. Granger
Reducing/adjusting the padding of cells to make the notebook more...
r4525 /* This spaces the cell away from the edge of the notebook area */
Fernando Perez
Padding adjustments to better use vertical and horizontal whitespace....
r5017 padding: 5px 5px 15px 5px;
MinRK
third attempt at scrolled long output...
r7362 margin: 0px;
Brian Granger
Initial draft of HTML5/JS/CSS3 notebook.
r4292 background-color: white;
Brian Granger
General CSS cleanup....
r4331 }
Brian Granger
Fixes to notebook scrolling and layout....
r4311
Brian E. Granger
More work updating the notebook to use dynamics resizing.
r4360 div#pager_splitter {
Brian E. Granger
Pager is working again.
r4361 height: 8px;
Brian E. Granger
More work updating the notebook to use dynamics resizing.
r4360 }
div#pager {
Brian E. Granger
Improving the scrolling model.
r4364 padding: 15px;
Brian E. Granger
More work updating the notebook to use dynamics resizing.
r4360 overflow: auto;
Brian Granger
Start the pager out collapsed.
r5948 display: none;
Brian E. Granger
More work updating the notebook to use dynamics resizing.
r4360 }
mcelrath
Fix 1px jumping of cells and menus in Notebook.
r7300 div.ui-widget-content {
border: 1px solid #aaa;
outline: none;
}
.cell {
border: 1px solid transparent;
}
Brian Granger
Initial draft of HTML5/JS/CSS3 notebook.
r4292 div.cell {
Brian Granger
Fixes to notebook scrolling and layout....
r4311 width: 100%;
Fernando Perez
Padding adjustments to better use vertical and horizontal whitespace....
r5017 padding: 5px 5px 5px 0px;
Brian Granger
Fine tuning of notebook styles....
r4324 /* This acts as a spacer between cells, that is outside the border */
Fernando Perez
Padding adjustments to better use vertical and horizontal whitespace....
r5017 margin: 2px 0px 2px 0px;
Brian Granger
Initial draft of HTML5/JS/CSS3 notebook.
r4292 }
div.code_cell {
background-color: white;
}
MinRK
third attempt at scrolled long output...
r7362
MinRK
add 'running' class to running code cells...
r5221 /* any special styling for code cells that are currently running goes here */
div.code_cell.running {
}
Brian Granger
Initial draft of HTML5/JS/CSS3 notebook.
r4292
div.prompt {
Brian E. Granger
All output types are not indented.
r4642 /* This needs to be wide enough for 3 digit prompt numbers: In[100]: */
Brian E. Granger
Adjusting width of prompt area.
r4643 width: 11ex;
Brian E. Granger
Reducing/adjusting the padding of cells to make the notebook more...
r4525 /* This 0.4em is tuned to match the padding on the CodeMirror editor. */
Brian Granger
Minor fixes to fonts and spacing.
r4366 padding: 0.4em;
Brian Granger
Initial reply handling implemented along with css fixes.
r4299 margin: 0px;
Brian E. Granger
Updating font-sizing to use the YUI protocol.
r4379 font-family: monospace;
Fernando Perez
Right-align prompts to remove spurious whitespace.
r4644 text-align:right;
Brian Granger
Initial draft of HTML5/JS/CSS3 notebook.
r4292 }
Brian E. Granger
Adding page break logic to the print css....
r4625 div.input {
page-break-inside: avoid;
}
MinRK
fix Input prompt/code alignment...
r4887 /* input_area and input_prompt must match in top border and margin for alignment */
Brian E. Granger
Fixing padding of output cells.
r4531 div.input_area {
color: black;
MinRK
small CSS adjustments in notebook...
r4883 border: 1px solid #ddd;
MinRK
round corner and light bg on code areas...
r4886 border-radius: 3px;
Fernando Perez
Adjust cell background and number color after review with @minrk.
r5064 background: #f7f7f7;
Brian E. Granger
Fixing padding of output cells.
r4531 }
Brian Granger
Initial draft of HTML5/JS/CSS3 notebook.
r4292 div.input_prompt {
Brian Granger
CodeMirror code editing added....
r4332 color: navy;
MinRK
fix Input prompt/code alignment...
r4887 border-top: 1px solid transparent;
Brian Granger
Initial draft of HTML5/JS/CSS3 notebook.
r4292 }
MinRK
third attempt at scrolled long output...
r7362 div.output_wrapper {
Brian Granger
Fine tuning of notebook styles....
r4324 /* This is a spacer between the input and output of each cell */
Brian E. Granger
Reducing/adjusting the padding of cells to make the notebook more...
r4525 margin-top: 5px;
MinRK
third attempt at scrolled long output...
r7362 margin-left: 5px;
/* FF needs explicit width to stretch */
width: 100%;
/* this position must be relative to enable descendents to be absolute within it */
position: relative;
}
/* class for the output area when it should be height-limited */
div.output_scroll {
/* ideally, this would be max-height, but FF barfs all over that */
height: 24em;
/* FF needs this *and the wrapper* to specify full width, or it will shrinkwrap */
width: 100%;
overflow: auto;
border-radius: 3px;
box-shadow: inset 0 2px 8px rgba(0, 0, 0, .8);
}
/* output div while it is collapsed */
div.output_collapsed {
margin-right: 5px;
}
div.out_prompt_overlay {
height: 100%;
padding: 0px;
position: absolute;
border-radius: 3px;
}
div.out_prompt_overlay:hover {
/* use inner shadow to get border that is computed the same on WebKit/FF */
box-shadow: inset 0 0 1px #000;
MinRK
slightly more subtle prompt overlay
r7574 background: rgba(240, 240, 240, 0.5);
Brian Granger
Initial draft of HTML5/JS/CSS3 notebook.
r4292 }
div.output_prompt {
Brian Granger
CodeMirror code editing added....
r4332 color: darkred;
MinRK
third attempt at scrolled long output...
r7362 /* 5px right shift to account for margin in parent container */
MinRK
fix margin typo on output prompt
r7573 margin: 0 5px 0 -5px;
Brian Granger
Initial draft of HTML5/JS/CSS3 notebook.
r4292 }
Brian E. Granger
All output types are not indented.
r4642 /* This class is the outer container of all output sections. */
Brian E. Granger
Fixing padding of output cells.
r4531 div.output_area {
Brian E. Granger
All output types are not indented.
r4642 padding: 0px;
Brian E. Granger
Adding page break logic to the print css....
r4625 page-break-inside: avoid;
Brian E. Granger
Updating CodeMirror to v 2.12....
r4504 }
Brian E. Granger
All output types are not indented.
r4642 /* This class is for the output subarea inside the output_area and after
the prompt div. */
div.output_subarea {
Brian Granger
Misc fixes to the code cell and output area.
r7199 padding: 0.4em 0.4em 0.4em 0.4em;
Brian E. Granger
Fixing padding of output cells.
r4531 }
/* The rest of the output_* classes are for special styling of the different
output types */
MinRK
small CSS adjustments in notebook...
r4883 /* all text output has this class: */
div.output_text {
Brian E. Granger
Fixing padding of output cells.
r4531 text-align: left;
color: black;
font-family: monospace;
Brian Granger
Refactoring of the output and display system....
r4317 }
MinRK
small CSS adjustments in notebook...
r4883
/* stdout/stderr are 'text' as well as 'stream', but pyout/pyerr are *not* streams */
div.output_stream {
padding-top: 0.0em;
padding-bottom: 0.0em;
}
div.output_stdout {
}
MinRK
allow stdout/stderr to have distinct css...
r4865 div.output_stderr {
MinRK
small CSS adjustments in notebook...
r4883 background: #fdd; /* very light red background for stderr */
MinRK
allow stdout/stderr to have distinct css...
r4865 }
Brian Granger
Refactoring of the output and display system....
r4317
div.output_latex {
Brian E. Granger
Fixing padding of output cells.
r4531 text-align: left;
color: black;
Brian Granger
Refactoring of the output and display system....
r4317 }
MinRK
support html representations in the notebook frontend...
r4403 div.output_html {
}
Brian E. Granger
Updating the notebook to work with the latex master....
r4348 div.output_png {
}
Brian Granger
Initial draft of HTML5/JS/CSS3 notebook.
r4292
Brian E. Granger
Fixing padding of output cells.
r4531 div.output_jpeg {
}
Brian Granger
Refactoring of text/markdown/rst/html cells.
r4508 div.text_cell {
Brian Granger
Initial draft of HTML5/JS/CSS3 notebook.
r4292 background-color: white;
Brian Granger
Lots of small notebook improvements....
r5946 padding: 5px 5px 5px 5px;
Brian Granger
Initial draft of HTML5/JS/CSS3 notebook.
r4292 }
Brian Granger
Refactoring of text/markdown/rst/html cells.
r4508 div.text_cell_input {
Brian E. Granger
Starting work on a Markdown cell.
r4507 color: black;
Brian Granger
Lots of small notebook improvements....
r5946 border: 1px solid #ddd;
border-radius: 3px;
background: #f7f7f7;
Brian E. Granger
Starting work on a Markdown cell.
r4507 }
Brian Granger
Refactoring of text/markdown/rst/html cells.
r4508 div.text_cell_render {
Brian E. Granger
Starting work on a Markdown cell.
r4507 font-family: "Helvetica Neue", Arial, Helvetica, Geneva, sans-serif;
outline: none;
resize: none;
width: inherit;
border-style: none;
padding: 5px;
color: black;
}
mcelrath
Alternative solution: silently apply some CSS instead of a dialog box.
r7446 /* The following gets added to the <head> if it is detected that the user has a
* monospace font with inconsistent normal/bold/italic height. See
* notebookmain.js. Such fonts will have keywords vertically offset with
* respect to the rest of the text. The user should select a better font.
* See: https://github.com/ipython/ipython/issues/1503
*
* .CodeMirror span {
* vertical-align: bottom;
* }
*/
mcelrath
Fix vertical offset due to bold/italics, and bad browser fonts.
r7347
Brian E. Granger
Updating font-sizing to use the YUI protocol.
r4379 .CodeMirror {
Brian E. Granger
Changing CodeMirror-scroll to overflow-y: hidden....
r4638 line-height: 1.231; /* Changed from 1em to our global default */
Brian E. Granger
Updating font-sizing to use the YUI protocol.
r4379 }
Brian E. Granger
Updating CodeMirror to v 2.12....
r4504 .CodeMirror-scroll {
Brian E. Granger
Changing CodeMirror-scroll to overflow-y: hidden....
r4638 height: auto; /* Changed to auto to autogrow */
/* The CodeMirror docs are a bit fuzzy on if overflow-y should be hidden or visible.*/
/* We have found that if it is visible, vertical scrollbars appear with font size changes.*/
overflow-y: hidden;
overflow-x: auto; /* Changed from auto to remove scrollbar */
Brian E. Granger
Updating CodeMirror to v 2.12....
r4504 }
Brian Granger
Colors now working in tracebacks and the pager....
r4383 /* CSS font colors for translated ANSI colors. */
.ansiblack {color: black;}
.ansired {color: darkred;}
.ansigreen {color: darkgreen;}
.ansiyellow {color: brown;}
.ansiblue {color: darkblue;}
.ansipurple {color: darkviolet;}
.ansicyan {color: steelblue;}
.ansigrey {color: grey;}
.ansibold {font-weight: bold;}
Matthias BUSSONNIER
shrink less and css, typo in css
r7187 .completions {
Brian E. Granger
Autocompletion working with CTRL-SPACE.
r4389 position: absolute;
z-index: 10;
Matthias BUSSONNIER
fix completer css on some Chrome versions...
r7539 overflow: hidden;
Matthias BUSSONNIER
shrink less and css, typo in css
r7187 border: 1px solid grey;
Brian E. Granger
Autocompletion working with CTRL-SPACE.
r4389 }
Brian Granger
Colors now working in tracebacks and the pager....
r4383
Brian E. Granger
Autocompletion working with CTRL-SPACE.
r4389 .completions select {
background: white;
outline: none;
border: none;
padding: 0px;
margin: 0px;
Matthias BUSSONNIER
fix completer css on some Chrome versions...
r7539 overflow: auto;
Brian E. Granger
Autocompletion working with CTRL-SPACE.
r4389 font-family: monospace;
}
Brian Granger
Colors now working in tracebacks and the pager....
r4383
Matthias BUSSONNIER
implement the completer in a separate class...
r7131 option.context {
background-color: #DEF7FF;
}
option.introspection {
background-color: #EBF4EB;
}
Matthias BUSSONNIER
completer update code-miror on the fly...
r5637 /*fixed part of the completion*/
Brian Granger
Implemented menu based UI using Wijmo.
r5857 .completions p b {
Matthias BUSSONNIER
completer update code-miror on the fly...
r5637 font-weight:bold;
}
Brian Granger
Implemented menu based UI using Wijmo.
r5857 .completions p {
Matthias BUSSONNIER
Base of an as you type conpleter....
r5507 background: #DDF;
/*outline: none;
padding: 0px;*/
border-bottom: black solid 1px;
padding: 1px;
font-family: monospace;
}
MinRK
allow the notebook to run without MathJax...
r5547 pre.dialog {
background-color: #f7f7f7;
border: 1px solid #ddd;
border-radius: 3px;
padding: 0.4em;
padding-left: 2em;
}
Brian Granger
Implemented menu based UI using Wijmo.
r5857 p.dialog {
MinRK
allow the notebook to run without MathJax...
r5547 padding : 0.2em;
}
Stefan van der Walt
Align colons in help dialog.
r4650 .shortcut_key {
display: inline-block;
Brian Granger
Cleaning up menu code....
r5858 width: 15ex;
Stefan van der Walt
Align colons in help dialog.
r4650 text-align: right;
Fernando Perez
Use monospaced font for keybinding display.
r5019 font-family: monospace;
Stefan van der Walt
Align colons in help dialog.
r4650 }
.shortcut_descr {
Fernando Perez
Clean up accidentally introduced hard tabs in JS code.
r5025 }
Fernando Perez
Word-wrap output correctly in the notebook; prevents excessive scrolling....
r5256
/* Word-wrap output correctly. This is the CSS3 spelling, though Firefox seems
to not honor it correctly. Webkit browsers (Chrome, rekonq, Safari) do.
*/
pre, code, kbd, samp { white-space: pre-wrap; }
mcelrath
Add bad font detection, and a dialog informing the user.
r7394
#fonttest {
font-family: monospace;
}
MinRK
Backport PR #2212: catch errors in markdown javascript...
r8076
.js-error {
color: darkred;
}