`` block and then `includes`_ a template for that section. These included templates are found in the ``sections`` directory in the root ``cv`` template directory. If you would like to customize the look of an individual section, you should write your own templates for the section you want to modify. The name of the section template is the plural of the model name; for example, the template for the :class:`~cv.models.base.Degree` model is ``cv/sections/degrees.html`` (the one exception is the template for :class:`~cv.models.works.OtherWriting`, which is simply ``cv/sections/otherwriting.html``).
+.. _CDNs: https://en.wikipedia.org/wiki/Content_delivery_network/
+
+At the next layer, the ``cv/base.html`` template inherits from
+``cv/skeleton.html`` and **defines the order of sections** as a
+series of Django template blocks. This is done by using `blocks`_
+from Django templates. The name of each block corresponds to the
+the plural of the model name, except the blocks for
+:class:`~cv.models.works.OtherWriting` and
+:class:`~cv.models.base.Service` are named ``otherwriting`` and
+``service``.
+
+.. _blocks: https://docs.djangoproject.com/en/2.1/ref/templates/builtins/#block
+
+The template ``cv/cv.html`` inherits from the ``cv/base.html``
+template and **defines the style for each section**. In the default
+template, each block consists of a ``
`` block and then
+`includes`_ the section template in the ``templates/cv/sections``
+directory. The section template is an html file named for the
+plural form of the section name (except for :class:`OtherWriting`
+and :class:`Service`, as above); for example, the section template
+for articles would be the file
+``templates/cv/sections/articles.html``. If you would like to
+customize the look of an individual section, you should save a
+file with that name in the ``cv/sections/`` subdirectory of the
+template directory of your own project.
.. _includes: https://docs.djangoproject.com/en/dev/ref/templates/builtins/#include
.. _views-pdf:
PDF
-^^^
\ No newline at end of file
+^^^
+
+Django Vitae will also create a PDF of your CV "on-the-fly".
+
+The PDF version of your CV can be found at the ``/pdf/`` URL. The
+URL retrives the view :class:`cv.views.pdf.cv_pdf`. The view
+gathers data from different sections of the CV and then creates a
+PDF using the `Report Lab`_ library.
+
+.. _Report Lab: https://www.reportlab.com/
+
+**Template Structure**::
+
+ cv/
+ pdf/
+ pdf_list.json
+
.html
+
+Creating PDFs requires that much of the style be controlled
+internally in the code. The internal coding makes it difficult to
+customize the *style* of the PDF version of the CV. The *content*
+can be customized, however, by using templates.
+
+The content of the PDF, including the order, is controlled by the
+template ``pdf_list.json`` `JSON`_ file. The JSON file is
+structured as a list of dictionaries. Each dictionary **must** have
+a ``model_name`` key that is the model name in lowercase. In
+addtion, the dictionary **may** have the following keys:
+
+ ``display_name``
+ A string of the section heading (including any capitalization
+ that you desire)
+
+ ``date_field``
+ May either be a string representing the name of the field
+ that you would like to use to display as the date in each
+ entry for that section **or** a list of two strings, the
+ field names to be used to render the start and end dates.
+
+ ``subsections``
+ A list of lists; each of the sub-lists should include two
+ string values: the first contains the heading for the
+ subsection and the second is a string representing the method
+ of the :attr:`displayable` manager to use to get the queryset
+ for that subsection.
+
+The ``templates/cv/pdf/`` also contains an XML file for each
+section of the PDF. The XML files use the intra-paragraph markup
+described in the ReportLab `User Guide`_ (subsection 6.3) that
+include the ```` tag for italics, ```` for boldface, and
+```` for links (among others).
+
+.. _JSON: https://en.wikipedia.org/wiki/JSON
+.. _User Guide: https://www.reportlab.com/docs/reportlab-userguide.pdf
+
+
+