nb icon indicating copy to clipboard operation
nb copied to clipboard

nb show -r doesn't work with GUI browsers

Open makew0rld opened this issue 3 years ago • 1 comments

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.

makew0rld avatar Feb 11 '21 03:02 makew0rld

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.

xwmx avatar Feb 19 '21 02:02 xwmx