# Lilian Besson’s Web Pages - using Sphinx¶

My web pages are currently generated with Sphinx Doc (v1.6+).

I have been using Sphinx since 2012, and I like it very much!

Currently this project is in version 3.0, public release! I recently switched to a much cleaner theme, based on alabaster, the new Sphinx’s default theme, and nicer fonts (in Dec 2017).

## Demos¶

• 🇬🇧 in English:

• 🇫🇷 in French:

## What do those pages contain ?¶

Some pages host my résumé, others are just experiments, about Sphinx and many other things. A few pages talk about some points I am interested in (GNU Nano, Sublime Text 3, Firefox, hitch-hiking, maths, Pokémon etc)…

## Other repository¶

To limit the size of this one, I used an other git repository to store the scripts/ folder : web-sphinx-scripts.

This second repository mainly hosts some Javascript scripts (GNU Plot & OCaml & Python toplevel, shortcuts.js, etc), and also a complete Python distribution, used with python.opt.js to embed a Python toplevel in my web pages (I know, it’s useless, but so funny !).

### Languages¶

• the reStructuredText plain text markup language, mainly, for the content of the pages,

• Jinja templates (for changing appearance of the web pages),

• Javascript in the .static/ <.static/>__ folder, for some interactive stuff on the web-pages. See this page for some details,

• CSS in the .static/ <.static/>__ folder, for an improved style, based on the (old) default Sphinx style,

• HTML (to include a few web components in some pages),

• Python (for Sphinx configuration, conf.py <conf.py>__ file).

## Requirements ?¶

This project use the following software:

• Python, version 2.7+ or 3.4+.

• Python Sphinx (currently v1.5+, but v1.3+ should be enough);

• GNU Make (other versions of Make should NOT work);

• rst2pdf, rst2html, rst2s5, included in the docutils package, only required to build other formats, but not required for building basic HTML;

• Optional: LaTeX (pdflatex, and hevea) (not required for building html);

• git (but not required for building);

• GnuPG (gpg);

• and the following Sphinx contrib extensions (now living on this GitHub repo), to be installed manually :

• note: there are bugs in each of these extensions, that were written for Python 2 or previous versions of Sphinx. I know know almost by memory how to fixes these bugs, but I don’t have the energy of trying again to submit tickets and pull-requests to the new repository. I had tickets opened on the old bitbucket repository, and didn’t receive any feedback in two to four years. Basically, what I do everytime I have to install the dependencies to build my website, for instance on a new laptop, is to clone the repository, install them with a few sudo python3 setup.py install ran in the folders of the desired extensions. Then I try to compile the website, and everytime a Python exception occurs in the code of an extension, I manually edit the file in /usr/local/lib/python3.6/dist-packages/sphinxcontrib_XXX/XXX/XXX.py. It’s durty, but simple.

• these Python packages, from PyPI: ansicolortags, sphinx_pyreverse, sphinx_git, sphinx_tabs. Install them with sudo pip install ansicolortags sphinx_pyreverse sphinx_git sphinx_tabs;

• Optional: GnuPlot (but not GNU Octave), only for these embedded examples;

• Optional: GraphViz and Dot graph (dot), only for these embedded examples;

• Optional: Ocaml, only for these embedded examples.

To install all these dependencies, use brew on Mac OS, or your package manager on Linux/UNIX.