Getting started
===============

From a template repository
--------------------------

You can get started by making a Sphinx project and configuring the
extension.  We recommend you use the sphinx-lesson-template repository
(https://github.com/coderefinery/sphinx-lesson-template).

This template repository is updated with new copies of base files as
the lesson develops - you might want to check back for them, later.



Convert an existing jekyll lesson
---------------------------------

See :doc:`convert-old-lessons`.



From scratch
------------

See the next page, :doc:`installation`, for raw Python packages to
install and how to configure a arbitrary Sphinx project.



Github Pages initial commit
---------------------------

The included Github Actions file will automatically push to Github
Pages, but due to some quirk/bugs in gh-pages *the very first
non-human gh-pages push won't enable Github Pages*.  So, you have to
do one push yourself (or go to settings and disable-enable gh-pages
the first time).

You can make an empty commit to gh-pages this way, which will trigger
the gh-pages deployment (and everything will be automatic after that)::

  git checkout -b gh-pages origin/gh-pages
  git commit -m 'empty commit to trigger gh-pages' --allow-empty
  git push


Demo lessons
------------

This guide can't currently stand alone.  It is probably good to look
at and copy from existing lessons for some things:

* Python for Scientific Computing uses many of the features:
  https://aaltoscicomp.github.io/python-for-scicomp/ .

* Github without the command line is a complete lesson using the
  theme: https://coderefinery.github.io/github-without-command-line/ .
