uccser/cs-field-guide

View on GitHub
docs/developer/website_design.rst

Summary

Maintainability
Test Coverage
Website Design (HTML templates/CSS)
##############################################################################

This page covers the HTML templates and CSS styling used for the Computer Science Field Guide website.

In summary:

- We use Bootstrap 4 for the underlying framework for responsive design.
- We use SCSS for style sheets where possible.
- We wrap translatable strings in `{% trans %}` or `{% blocktrans %}` tags.
- When interactives are viewed in whole page mode they should be centered.
- We aim for the website to be as accessible as possible via accessible features.

Setting Custom Converter Templates
==============================================================================
We use Verto to convert Markdown files to HTML. To override a default Verto template, add a new HTML file to ``utils/custom_converter_templates/<processor-name>.html``.

The template file name must correspond to the name of a processor in Verto (for example: ``image.html``, or the name of a supporting template specified in Verto documentation (for example: ``relative-image-link.html``).
A list of the available processors is available in the `Verto Documentation`_.

Notes for Writing Custom Converter Templates
------------------------------------------------------------------------------

All HTML element attributes must contain a value.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

The following snippet from a custom template would result in an error:

.. code-block:: html

    <details open>

The line would need to be written as this:

.. code-block:: html

    <details open="open">

Translation tags must be separate line.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

If any Django translation tags are included in a template, it must first be escaped using ``{{ ' ' }}``.
For the Django ``makemessages`` command to detect the translation tag, the tag must be on its own line (whitespace before the tag doesn't matter).

The following is an example of how to do this:

.. code-block:: django


    <span class="panel-type-title">
        {{-'
            {% trans "Teacher Note" %}
        '-}}
    </span>

.. _Verto Documentation: https://verto.readthedocs.io/en/latest/