New version of Nbdev.jl

I have added a couple of new features in “Nbdev.jl” for #JuliaLang . Nbdev.jl now has project scaffolding through Julia REPL and also has the ability to generate source code link in the documentation. Here is a tutorial to help you get started.

At this stage it’s still under works but now it has all the ingredients to generate modules and documents from Pluto notebooks.

Documents are handled using Mkdocs :point_down:

Documents now have link to source code :point_down:

Generated modules are simple Julia files :point_down:

…and now that fastai has released nbdev2, I hope that in near future the good stuffs from nbdev2 can crossover to Julia either in Nbdev.jl or in some other form.

2 Likes
  1. why not Pluto
  2. what’s the deal with people re-inventing different flavors of Documenter.jl? including FastAI.jl - Data containers , very confusing I have to say.

other wise, good work! thanks for exploring new tech for the community to try out

1 Like

Actually Nbdev.jl takes Pluto notebook as base and then you can generate Julia modules from that notebook as well as documents. The advantage is that you can take selective cells in your Pluto notebook and then export the code in the required cells into a Julia module.

Similarly, for the documentation part you can keep what you want in the document (from the original notebook) and ignore the things that are not needed in the final document. This generated document then becomes part of the final document website which gets hosted on github pages as soon as you commit to your branch.

Nbdev.jl’s aim is not to reinvent Pluto or Documenter.jl but to provide a tool that can provide a seamless automatic workflow for generating code and documentation from a single notebook, having an integrated CI to run tests in the notebook etc. In some sense it’s similar to something like Literate.jl (which was one of the source of inspiration) but with somw additional functionality.

I would say that Nbdev.jl is more of a re-imagination of the original Nbdev (python version) and an alternative to other literate programming tools in Julia.

The usage of mkdocs for creating the document website in Nbdev.jl is just a matter of choice and with some modifications even Documenter.jl or other document generation tools could have been used in place of mkdocs.

3 Likes