Package: knitj
KnitjKnitj is an alternative front-end to Jupyter kernels. Inspired byknitrandR Markdown, Knitj renders a mix of markdown and source code into HTML by evaluating the code in a Jupyter kernel.In addition to a one-off conversion, Knitj can serve the HTML document via HTTP and watch the source file for changes. When the source file is changed, Knitj reevaluates only the changed bits (defined by boundaries between markdown and source code), and pushes the updates into the HTML document via WebSocket.ExampleEither of the two following files renders into the same HTML document below withknitj$SOURCE>$SOURCE.html```python#::hideimportnumpyasnpfrommatplotlibimportpyplotasplt%matplotlibinline```## ExampleLet's plot

$$ f(x)=\frac{\sin x}x $$```pythonx=np.linspace(-20,20,200)plt.plot(x,np.sin(x)/x)```# ::hideimportnumpyasnpfrommatplotlibimportpyplotasplt# ::%matplotlib inline# ::># ## Example## Let's plot## $$ f(x)=\frac{\sin x}x $$x=np.linspace(-20,20,200)plt.plot(x,np.sin(x)/x)Alternatively, one can start the Knitj server, which starts watching the source file for changes and opens a browser window with the rendered and live-updated HTML document$ knitj --server test.py
[22:19:14.718] INFO:knitj: Entered Knitj
[22:19:14.722] INFO:knitj.document: File change: 3/0 new cells, 0 dropped
[22:19:14.732] INFO:knitj.document: 2 code cells loaded from output
[22:19:14.732] INFO:knitj.kernel: Starting kernel...
[22:19:15.145] INFO:knitj.kernel: Kernel started
[22:19:15.160] INFO:knitj.knitj: Started web server on port 8081
[22:19:15.441] INFO:knitj.knitj: Started broadcasting to browsers
[22:19:15.462] INFO:knitj.source: Started watching file test.md for changes
[22:19:15.881] INFO:knitj.webserver: Browser connected: 4542074160
[22:19:41.477] INFO:knitj.document: File change: 1/3 new cells, 1 dropped
[22:19:41.683] INFO:knitj.document: 72fea2: Got an error
[22:19:41.698] INFO:knitj.document: 72fea2: Cell done
[22:19:41.716] INFO:knitj.document: 72fea2: Got an error execution reply
^C[22:19:46.179] INFO:knitj.webserver: Closing websockets
[22:19:46.180] INFO:knitj.webserver: Browser disconnected: 4542074160
[22:19:46.181] INFO:knitj.kernel: Kernel shut down
[22:19:46.186] INFO:knitj: Leaving KnitjInstallingInstall and update usingPip.pip install -U knitjThe following dependencies are installed:Jupyter Clientfor communicating with the Jupyter kernelsWatchdogfor watching a file for changesansi2htmlfor converting ANSI color codes into HTMLMisakafor rendering Markdownaiohttpfor running a http and WebSocket serverPygmentsfor syntax highlightingJinjafor HTML templatesBeautiful Soupfor parsing HTMLTo use Knitj, you also need some Jupyter kernel on your system. If you don’t have one, you can get the IPython kernel withpip install ipykernelUsageusage: knitj [-h] [-s] [-f FORMAT] [-o FILE] [-k KERNEL] [-b BROWSER] [-n]
             [FILE]

positional arguments:
  FILE                  input file

optional arguments:
  -h, --help            show this help message and exit
  -s, --server          run in server mode
  -f FORMAT, --format FORMAT
                        input format
  -o FILE, --output FILE
                        output HTML file
  -k KERNEL, --kernel KERNEL
                        Jupyter kernel to use
  -b BROWSER, --browser BROWSER
                        browser to open
  -n, --no-browser      do not open a browser