GitHub Pages
============
https://docs.github.com/en/pages/quickstart
`GitHub Pages `_ can be used to host a static website for free.
GitHub Pages serves static files from a repository and, by default, runs them through `Jekyll `_
(which turns `Markdown `_ into HTML). Sphinx already produces finished HTML, so Jekyll
only gets in the way.
.. warning::
It is possible to bypass Jekyll processing on GitHub Pages by creating a file named .nojekyll in the root of your pages
repo and pushing it to GitHub.
This should only be necessary if your site uses files or directories that start with underscores since Jekyll considers
these to be special resources and does not copy them to the final site.
For Sphinx docs to render correctly on GitHub Pages:
.. code-block:: python
# conf.py: creates .nojekyll so _static and _sources are published
extensions = [
...
'sphinx.ext.githubpages',
]
Deploy with ABlog from a Windows command prompt:
.. code-block:: bat
set GITHUB_PAGES=samkhalilian
set WEBSITE=_build/html
set REPODIR=Z:/samkhalilian.github.io
set GITHUB_BRANCH=main
ablog deploy -w %WEBSITE% -p %REPODIR% -g %GITHUB_PAGES% --github-branch %GITHUB_BRANCH% --github-ssh
SSH is preferred. ``--github-token`` also works, but read the token from an environment variable you set
outside the docs and never commit it.
Windows bug fix
---------------
On Windows, ``ablog deploy`` can fail with "command line is too long". The workaround is a local patch around
line 435 of ``ablog/commands.py`` in the virtual environment's ``site-packages``; it must be reapplied after
upgrading ABlog.
Custom Domain
-------------
https://docs.github.com/en/pages/configuring-a-custom-domain-for-your-github-pages-site