nb
nb copied to clipboard
nb show -r doesn't work with GUI browsers
Thanks for writing nb, it's a great tool.
I have $BROWSER
set as firefox
, and nb show -r
doesn't work, because Firefox doesn't handle piped input. It'd be nice if nb show -r
worked like a quick version of nb export
, and made a standalone HTML file with pandoc. It wouldn't change the existing workflow with CLI browsers, but it would make GUI browsers work.
Right now I'm using this script as my BROWSER
instead:
#!/usr/bin/env bash
if [ -z "$NB_DIR" ]; then
firefox "$@"
else
file="/tmp/$(openssl rand -hex 8).html"
# Pandoc standalone CSS, minified
echo "<style>html{line-height:1.5;font-family:Georgia, serif;font-size:20px;color:#1a1a1a;background-color:#fdfdfd}body{margin:0 auto;max-width:36em;padding:50px;hyphens:auto;word-wrap:break-word;text-rendering:optimizeLegibility;font-kerning:normal}@media (max-width: 600px){body{font-size:0.9em;padding:1em}}@media print{body{background-color:transparent;color:black;font-size:12pt}h2,h3,p{orphans:3;widows:3}h2,h3,h4{page-break-after:avoid}}p{margin:1em 0}a{color:#1a1a1a}a:visited{color:#1a1a1a}img{max-width:100%}h1,h2,h3,h4,h5,h6{margin-top:1.4em}h5,h6{font-size:1em;font-style:italic}h6{font-weight:normal}ol,ul{padding-left:1.7em;margin-top:1em}li > ol,li > ul{margin-top:0}blockquote{margin:1em 0 1em 1.7em;padding-left:1em;border-left:2px solid #e6e6e6;color:#606060}code{font-family:Menlo, Monaco, 'Lucida Console', Consolas, monospace;font-size:85%;margin:0}pre{margin:1em 0;overflow:auto}pre code{padding:0;overflow:visible}.sourceCode{background-color:transparent;overflow:visible}hr{background-color:#1a1a1a;border:none;height:1px;margin:1em 0}table{margin:1em 0;border-collapse:collapse;width:100%;overflow-x:auto;display:block;font-variant-numeric:lining-nums tabular-nums}table caption{margin-bottom:0.75em}tbody{margin-top:0.5em;border-top:1px solid #1a1a1a;border-bottom:1px solid #1a1a1a}th{border-top:1px solid #1a1a1a;padding:0.25em 0.5em}td{padding:0.125em 0.5em 0.25em}header{margin-bottom:4em;text-align:center}#TOC li{list-style:none}#TOC a:not(:hover){text-decoration:none}code{white-space:pre-wrap}span.smallcaps{font-variant:small-caps}span.underline{text-decoration:underline}div.column{display:inline-block;vertical-align:top;width:50%}div.hanging-indent{margin-left:1.5em;text-indent:-1.5em}ul.task-list{list-style:none}.display.math{display:block;text-align:center;margin:0.5rem auto}</style>" > "$file"
cat - >> "$file"
firefox "$file"
fi
The output isn't valid HTML, but Firefox will display it properly anyway.
Hi @makeworld-the-better-one, glad to hear you find nb
useful! 😊
Thanks for the information. The functionality around show --render
has been substantially updated, and there is a new nb browse
subcommand with a web app that works in both terminal and GUI browsers and should resolve the issues you are encountering. These changes are available in the latest versions of the nb
git repository and will also be available in the next point release.