The only worry is that now a lot of data science enthusiasts are going to try to publish their Jupyter Notebooks collection as Kindle books!
For things that will be online only mdBook is great.
I'm currently testing honkit which is a gitbook-cli fork and it seems OK.
For first time i've seen huge resource about R.
Oh well! Keeps things interesting, I suppose!
"Oh, I need to install the python package and the jupyter extension separately? And there are no breadcrumbs if I install one but not the other? And I have to figure out which versions are mutually compatible with each other and jupyterlab because 'everything latest' sure isn't? And I have to install extensions to get features that used to be built-in? And then I have to explain the install procedure to the person I'm trying to share with, twice, because he didn't believe me the first time? UGGGGGGGHHHHHHHH"
I was always a bit frustrated by the way nbconvert pulled in pandoc as a dependency, but then didn't make use of any of its power (pandoc surely has a powerful AST). Instead they re-implemented filters and templates themselves. It struck me that it would have been much cleaner to write a proper 'ipynb > AST' Pandoc reader, and then expose pandoc AST filters and templates.
I was a bit suspicious of moving away from pandoc to sphinx, because sphinx seems markedly less powerful and general than pandoc. However, you seem to think it's the opposite! Does Sphinx have an AST? I can't see any reference?
The only remaining tooling gap is a markdown linter implemented in python.
Can you elaborate on this a little? Do you mean via Jupyter notebooks?
https://codeocean.com/capsule/9155944/tree/v1
The nbconvert syntax is
jupyter nbconvert --exec --to latex --template ieee.tplx --output ../results/editorial.tex editorial.ipynb
and then `pdflatex` converts the tex file to a PDFMy method is roughly this:
1. Create a Python package that subclasses nbconvert.exporters.LatexExporter -- in the setup.py you register the class to 'nbconvert.exporters' in the 'entry_points' dict.
2. You can do general filtering/compiling by registering 'Exporter.filters'. The compile process can be modified by implementing a custom 'from_notebook_node()'
3. You can include a folder containing jinja template(s) in the package to implement whatever styling you want
4. I have some standard metadata that I pull from the notebook/cell metadata (using the standard Jupyter/lab frontend metadata sidebar) to define things like document titles, authors, etc.
5. Do the conversion like: jupyter nbconvert --to=myfancyexportformat notebook.ipynb
I’m not entirely sure I have a use for this book feature, at least not yet, but this is a cool addition.
A colleague of mine, when first introduced to Python and Jupyter, remarked that Jupyter could be a great platform for writing tests.
For C# I have LinqPad, which I'm a huge fan of but never discovered something with similar functionality for typescript.
I've seen some open source kernels[0] but I'm not sure about the quality, did anyone try them? Deno core in Jupyter would have been amazing.
[0]: https://github.com/jupyter/jupyter/wiki/Jupyter-kernels
There is actually a JS adaptor/extension for Jupyter but I found it pretty clunky to use, and since I’m equally comfortable with Python as JS, I just stuck with Python.
For Typescript Stackblitz might be interesting, but it’s not like a notebook, and it’s not a run-locally tool.
I hope this is it. LaTeX won't go away anytime soon, but being able to turn a notebook into a near-finished thesis/book (in TeX) would be a-mazing.
Jupyter should just be an editor and execution engine that operates on plain text code, using specially formatted comments to delineate cells. If I want to edit it with vim and execute it using plain old Python I should be able to.
Notebook document are _meant_ to keep output as they are design for research and where the records of your results are important, but you also don't have to use ipynbformat with the notebook UI either.
- captures creativity into a centralized proprietary platform on which creators have no control
- modal dialogs nagging you to create an account when you just want to read an article
- uniform, soulless, dull visual design
- heavy pages loaded with JavaScript that don't add any value for the reader
Hey Jupyter guys, can you please support asciidoc instead of inventing another MD format.
you will save the effort needed to maintain a new format.