[fastpages] Deprecating fastpages in favor of Quarto

Hello :wave: folks. I wanted to let you know about a new development re: fastpages. As you know, we have rebuilt nbdev from the ground up on top of Quarto, a fantastic technical content platform including excellent facilities for blogging.

I know many people use fastpages in the community. I created fastpages because, at the time, there weren’t any good options for blogging with notebooks. Recently, there have been some new pieces of technology like Jupyter Book and Quarto which are both fabulous. We ended up using Quarto for nbdev, because of its shared vision with nbdev and the fantastic ongoing support from JJ Allaire and the rest of the Posit team. More discussion on this topic can be found in this blog post.

Even though I created fastpages, I believe that people trying to blog with notebooks should be using Quarto. I am a believer in recommending the best tools for the job and helping people use those tools where possible. To that end, I have created this migration guide that can help you migrate your fastpages projects to Quarto, along with other Quarto resources that might be helpful.

One of the most central aspects of fastai is writing blog posts and sharing your learnings, as it is an unreasonably effective way to experience career and personal growth. I hope that you all will continue blogging using the wonderful tools Quarto provides. If anything, I believe that Quarto will encourage richer forms of technical communication as it is a rich platform that is capable of so many things even beyond blogging. Thank you

47 Likes

Hello Hamel, thanks for sharing migration guide. I see in step 7, where we have to run nbdev_migrate --path posts, for compatibility with Quarto, the --path argument does not exist.

(fast)  $ nbdev_migrate -h
usage: nbdev_migrate [-h] [--fname FNAME] [--disp] [--stdin] [--no_skip]

Convert all directives and callouts in `fname` from v1 to v2

optional arguments:
  -h, --help     show this help message and exit
  --fname FNAME  A notebook name or glob to migrate
  --disp         Print the outputs with newly formatted directives (default: False)
  --stdin        Read notebook from input stream (default: False)
  --no_skip      Do not skip directories beginning with an underscore (default: False)

Therefore instead I tried with nbdev_migrate --fname posts --no_skip, hoping that would work.

install the latest version of nbdev from Github

pip install -U git+https://github.com/fastai/nbdev

@hamelsmu have you created any tutorial on how to start using quarto to create blogs on github pages?

You can read the Quarto docs. I’ve linked to some useful pages in the nbdev docs I shared

4 Likes

Can we use quarto with kaggle’s jupiter notebook ?

Could you share more about how you’d like to use this? You can download the notebook as an .ipynb file (in the Kaggle notebook edtir: File > Download Notebook) which works with Quarto.

Thanks for providing Quarto as an easy-to-use blogging platform. As a fast.ai-beginner, I took the advice to start blogging about my learning journey.

Setting up my blog was not really hard, but it took some time. To hopefully provide some shortcuts, I created a quick tutorial on how to setup a blog with Quarto and how to leverage jupyter notebooks for blogging. Happy blogging!

10 Likes

@chrwittm Thank you so much for your post. I am also a fast.ai beginner and starting a blog seems like the best way to integrate into the data science community, and document the learning journey ahead. This is my first ever blog :slight_smile:

1 Like

@SJB137 I am glad I could help you start your blog!

1 Like

Hi, after you’ve downloaded quarto, you can use this guide to start your blog.

Hope it helps!

4 Likes

Thanks @chrwittm @afshan22 – I’ve sent your posts to the CEO of RStudio and suggested he consider using them as a role model for an official Quarto tutorial :slight_smile:

7 Likes

It makes me so happy to see everyone’s blogs, and you’re all putting out such valuable content too! :slight_smile: Should we make a “share your quarto blog” topic?

3 Likes

Yes this is a great idea :smiley: Esp because we can all learn each others customizations and other things they’re doing :slight_smile: (And we can seperate the fastai projects and blogs)

2 Likes

Thanks a lot @afshan22 ! Really wonderful guide.

1 Like

@hamelsmu , should we worry if, when we run the second line in the Migration guide, i.e., the line that reads

quarto install extension quarto-ext/video

, that it responds with the message:

Extension not found in local or remote sources

?

Here’s a full log of activities up to and including that point:

$ git clone https://github.com/drscotthawley/blog_quarto.git
Cloning into 'blog_quarto'...
warning: You appear to have cloned an empty repository.
$ cd blog_quarto/
$ quarto create-project --type website:blog .
Creating project at /Users/shawley/github/blog_quarto:
  - Created _quarto.yml
  - Created .gitignore
  - Created index.qmd
  - Created posts/welcome/index.qmd
  - Created posts/post-with-code/index.qmd
  - Created about.qmd
  - Created styles.css
  - Created posts/_metadata.yml
$ quarto install extension quarto-ext/video
Extension not found in local or remote sources

Thanks!

That extension recently got merged with Quarto itself; that is, it’s now a built-in feature of Quarto. So it doesn’t need to be or can’t be installed anymore.

2 Likes

Publishing my blog at https://chrwittm.github.io/ used to be very easy via

quarto publish gh-pages

Today, however, I get the following error (no obvious change to my setup):

fatal: 'gh-pages' is already checked out at /mnt/c/Users/chrwi/OneDrive/Dokumente/GitRepos/chrwittm.github.io/bc75ca74

I am a git-newbie, tried google it, but none of the result yielded working results.
Do you have any advice how to get rid of this checkout?
Thanks for your help!

Solved: I found a solution which actually makes a lot of sense to me now: You can easily re-build your Quarto blog from the main branch of your repo: For more details check out this blog post - existence proof that my blog is back :wink:

1 Like

Thanks for this post and the migration guide. It was really helpful in helping me migrate my fastpages blog to quarto!

A couple pieces of feedback on the migration guide in the hopes of helping others:

  • The “pip install -U git+https://github.com/fastai/nbdev” step you mention in a reply here is essential; it would be nice to add this to the migration guide.
  • The instructions about moving the images are incorrect. I needed to end up with all of the images in the directory “posts/images” I believe you can just do: “cp -r …/blog/images posts/” and have things work

Hi,

My fastpages blog (github repo here) does not build anymore, because of an error in Jekyll I don’t really manage to fix…

  Liquid Exception: Invalid syntax for include tag. File contains invalid characters or sequences: social-icons/.svg Valid syntax: {% include file.ext param='value' param2='value' %} in assets/minima-social-icons.liquid
      Remote Theme: Cleaning up /tmp/jekyll-remote-theme-20221225-1-10joxn8
/usr/gem/gems/jekyll-4.1.1/lib/jekyll/tags/include.rb:59:in `validate_file_name': Invalid syntax for include tag. File contains invalid characters or sequences: (ArgumentError)

Since I had this error, I tried to migrate to Quarto using the tutorial mentioned in this post, but didn’t manage to get my .docx articles to be converted.

Would be grateful for help on one of these directions :).

EDIT: someone (not on this forum) found a solution to this problem! See below

1 Like