title: How to add blog style tags in reStructuredText with Sphinx
body: <p>For a programming language documentation project written in reStructuredText and rendered to HTML with Sphinx, I want to group my functions into logical groups like: String (all string functions), Web (all web-related functions), List (anything to do with list handling), etc.. Now, since functions can be members of several groups I want to add tags in some way, just like you would to blog posts.</p>
  <p>It would be really neat if there were a Sphinx extension (or way of using Domains for example) to add the tags and then generate a page per tag referencing all those functions, an overview of all tags and a cross-reference at the bottom of each function page. Is this feasible and if so, how?</p>
  <p>Example:</p>
  <pre><code>substring
  =========
  
  **substring (**\ *&lt;string,number&gt;* **text,** *number* **start,** *number* **end*)**
  
  Description
  -----------
  
  Returns the substring of string ``text`` 
  between integer positions ``start`` and position ``end``.
  
  The first character in the string is numbered 0. 
  The last character returned by ``substring`` is the character before position ``end``.
  Optionally ``end`` can be left out, which means
  the returned string will end at the last position of ``text``.
  
  Example
  -------
  
      Executing the following code:
      
      ::
              
          log(substring(&quot;Welcome to our site!&quot;, 0, 7));
          log(substring(&quot;Welcome to our site!&quot;, 0));
          
      will print:
      
      ::
      
          Welcome
          Welcome to our site!
  
  Tags
  ----
  
  String
  </code></pre>