forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			128 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
			
		
		
	
	
			128 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
| .. _sphinx_intro:
 | |
| 
 | |
| Sphinx Introduction for LLVM Developers
 | |
| =======================================
 | |
| 
 | |
| This document is intended as a short and simple introduction to the Sphinx
 | |
| documentation generation system for LLVM developers.
 | |
| 
 | |
| Quickstart
 | |
| ----------
 | |
| 
 | |
| To get started writing documentation, you will need to:
 | |
| 
 | |
|  1. Have the Sphinx tools :ref:`installed <installing_sphinx>`.
 | |
| 
 | |
|  2. Understand how to :ref:`build the documentation
 | |
|     <building_the_documentation>`.
 | |
| 
 | |
|  3. Start :ref:`writing documentation <writing_documentation>`!
 | |
| 
 | |
| .. _installing_sphinx:
 | |
| 
 | |
| Installing Sphinx
 | |
| ~~~~~~~~~~~~~~~~~
 | |
| 
 | |
| You should be able to install Sphinx using the standard Python package
 | |
| installation tool ``easy_install``, as follows::
 | |
| 
 | |
|   $ sudo easy_install sphinx
 | |
|   Searching for sphinx
 | |
|   Reading http://pypi.python.org/simple/sphinx/
 | |
|   Reading http://sphinx.pocoo.org/
 | |
|   Best match: Sphinx 1.1.3
 | |
|   ... more lines here ..
 | |
| 
 | |
| If you do not have root access (or otherwise want to avoid installing Sphinx in
 | |
| system directories) see the section on :ref:`installing_sphinx_in_a_venv` .
 | |
| 
 | |
| If you do not have the ``easy_install`` tool on your system, you should be able
 | |
| to install it using:
 | |
| 
 | |
|   Linux
 | |
|     Use your distribution's standard package management tool to install it,
 | |
|     i.e., ``apt-get install easy_install`` or ``yum install easy_install``.
 | |
| 
 | |
|   macOS
 | |
|     All modern macOS systems come with ``easy_install`` as part of the base
 | |
|     system.
 | |
| 
 | |
|   Windows
 | |
|     See the `setuptools <http://pypi.python.org/pypi/setuptools>`_ package web
 | |
|     page for instructions.
 | |
| 
 | |
| 
 | |
| .. _building_the_documentation:
 | |
| 
 | |
| Building the documentation
 | |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 | |
| 
 | |
| In order to build the documentation need to add ``-DLLVM_ENABLE_SPHINX=ON`` to
 | |
| your ``cmake`` command.  Once you do this you can build the docs using
 | |
| ``docs-lld-html`` build (``ninja`` or ``make``) target.
 | |
| 
 | |
| That build target will invoke ``sphinx-build`` with the appropriate options for
 | |
| the project, and generate the HTML documentation in a ``tools/lld/docs/html``
 | |
| subdirectory.
 | |
| 
 | |
| .. _writing_documentation:
 | |
| 
 | |
| Writing documentation
 | |
| ~~~~~~~~~~~~~~~~~~~~~
 | |
| 
 | |
| The documentation itself is written in the reStructuredText (ReST) format, and
 | |
| Sphinx defines additional tags to support features like cross-referencing.
 | |
| 
 | |
| The ReST format itself is organized around documents mostly being readable
 | |
| plaintext documents. You should generally be able to write new documentation
 | |
| easily just by following the style of the existing documentation.
 | |
| 
 | |
| If you want to understand the formatting of the documents more, the best place
 | |
| to start is Sphinx's own `ReST Primer <http://sphinx.pocoo.org/rest.html>`_.
 | |
| 
 | |
| 
 | |
| Learning More
 | |
| -------------
 | |
| 
 | |
| If you want to learn more about the Sphinx system, the best place to start is
 | |
| the Sphinx documentation itself, available `here
 | |
| <http://sphinx.pocoo.org/contents.html>`_.
 | |
| 
 | |
| 
 | |
| .. _installing_sphinx_in_a_venv:
 | |
| 
 | |
| Installing Sphinx in a Virtual Environment
 | |
| ------------------------------------------
 | |
| 
 | |
| Most Python developers prefer to work with tools inside a *virtualenv* (virtual
 | |
| environment) instance, which functions as an application sandbox. This avoids
 | |
| polluting your system installation with different packages used by various
 | |
| projects (and ensures that dependencies for different packages don't conflict
 | |
| with one another). Of course, you need to first have the virtualenv software
 | |
| itself which generally would be installed at the system level::
 | |
| 
 | |
|   $ sudo easy_install virtualenv
 | |
| 
 | |
| but after that you no longer need to install additional packages in the system
 | |
| directories.
 | |
| 
 | |
| Once you have the *virtualenv* tool itself installed, you can create a
 | |
| virtualenv for Sphinx using::
 | |
| 
 | |
|   $ virtualenv ~/my-sphinx-install
 | |
|   New python executable in /Users/dummy/my-sphinx-install/bin/python
 | |
|   Installing setuptools............done.
 | |
|   Installing pip...............done.
 | |
| 
 | |
|   $ ~/my-sphinx-install/bin/easy_install sphinx
 | |
|   ... install messages here ...
 | |
| 
 | |
| and from now on you can "activate" the *virtualenv* using::
 | |
| 
 | |
|   $ source ~/my-sphinx-install/bin/activate
 | |
| 
 | |
| which will change your PATH to ensure the sphinx-build tool from inside the
 | |
| virtual environment will be used. See the `virtualenv website
 | |
| <http://www.virtualenv.org/en/latest/index.html>`_ for more information on using
 | |
| virtual environments.
 |