578 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
		
		
			
		
	
	
			578 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
|  | .. _simple theme templates:
 | ||
|  | 
 | ||
|  | ======================
 | ||
|  | Simple Theme Templates
 | ||
|  | ======================
 | ||
|  | 
 | ||
|  | The simple template is complex, it consists of many different elements and also
 | ||
|  | uses macros and include statements.  The following is a rough overview that we
 | ||
|  | would like to give the developerat hand, details must still be taken from the
 | ||
|  | :origin:`sources <searx/templates/simple/>`.
 | ||
|  | 
 | ||
|  | A :ref:`result item <result types>` can be of different media types.  The media
 | ||
|  | type of a result is defined by the :py:obj:`result_type.Result.template`.  To
 | ||
|  | set another media-type as :ref:`template default`, the field ``template``
 | ||
|  | in the result item must be set to the desired type.
 | ||
|  | 
 | ||
|  | .. contents:: Contents
 | ||
|  |    :depth: 2
 | ||
|  |    :local: | ||
|  |    :backlinks: entry
 | ||
|  | 
 | ||
|  | 
 | ||
|  | .. _result template macros:
 | ||
|  | 
 | ||
|  | Result template macros
 | ||
|  | ======================
 | ||
|  | 
 | ||
|  | .. _macro result_header:
 | ||
|  | 
 | ||
|  | ``result_header``
 | ||
|  | -----------------
 | ||
|  | 
 | ||
|  | Execpt ``image.html`` and some others this macro is used in nearly all result
 | ||
|  | types in the :ref:`main result list`.
 | ||
|  | 
 | ||
|  | Fields used in the template :origin:`macro result_header
 | ||
|  | <searx/templates/simple/macros.html>`:
 | ||
|  | 
 | ||
|  | url :  :py:class:`str`
 | ||
|  |   Link URL of the result item.
 | ||
|  | 
 | ||
|  | title :  :py:class:`str`
 | ||
|  |   Link title of the result item.
 | ||
|  | 
 | ||
|  | img_src, thumbnail : :py:class:`str`
 | ||
|  |   URL of a image or thumbnail that is displayed in the result item.
 | ||
|  | 
 | ||
|  | 
 | ||
|  | .. _macro result_sub_header:
 | ||
|  | 
 | ||
|  | ``result_sub_header``
 | ||
|  | ---------------------
 | ||
|  | 
 | ||
|  | Execpt ``image.html`` and some others this macro is used in nearly all result
 | ||
|  | types in the :ref:`main result list`.
 | ||
|  | 
 | ||
|  | Fields used in the template :origin:`macro result_sub_header
 | ||
|  | <searx/templates/simple/macros.html>`:
 | ||
|  | 
 | ||
|  | publishedDate : :py:obj:`datetime.datetime`
 | ||
|  |   The date on which the object was published.
 | ||
|  | 
 | ||
|  | length: :py:obj:`time.struct_time`
 | ||
|  |   Playing duration in seconds.
 | ||
|  | 
 | ||
|  | views: :py:class:`str`
 | ||
|  |   View count in humanized number format.
 | ||
|  | 
 | ||
|  | author : :py:class:`str`
 | ||
|  |   Author of the title.
 | ||
|  | 
 | ||
|  | metadata : :py:class:`str`
 | ||
|  |   Miscellaneous metadata.
 | ||
|  | 
 | ||
|  | 
 | ||
|  | .. _engine_data:
 | ||
|  | 
 | ||
|  | ``engine_data_form``
 | ||
|  | --------------------
 | ||
|  | 
 | ||
|  | The ``engine_data_form`` macro is used in :origin:`results,html
 | ||
|  | <searx/templates/simple/results.html>` in a HTML ``<form/>`` element.  The
 | ||
|  | intention of this macro is to pass data of a engine from one :py:obj:`response
 | ||
|  | <searx.engines.demo_online.response>` to the :py:obj:`searx.search.SearchQuery`
 | ||
|  | of the next :py:obj:`request <searx.engines.demo_online.request>`.
 | ||
|  | 
 | ||
|  | To pass data, engine's response handler can append result items of typ
 | ||
|  | ``engine_data``.  This is by example used to pass a token from the response to
 | ||
|  | the next request:
 | ||
|  | 
 | ||
|  | .. code:: python
 | ||
|  | 
 | ||
|  |    def response(resp):
 | ||
|  |        ...
 | ||
|  |        results.append({
 | ||
|  |           'engine_data': token,
 | ||
|  |           'key': 'next_page_token',
 | ||
|  |        })
 | ||
|  |        ...
 | ||
|  |        return results
 | ||
|  | 
 | ||
|  |    def request(query, params):
 | ||
|  |        page_token = params['engine_data'].get('next_page_token')
 | ||
|  | 
 | ||
|  | 
 | ||
|  | .. _main result list:
 | ||
|  | 
 | ||
|  | Main Result List
 | ||
|  | ================
 | ||
|  | 
 | ||
|  | The **media types** of the **main result type** are the template files in
 | ||
|  | the :origin:`result_templates <searx/templates/simple/result_templates>`.
 | ||
|  | 
 | ||
|  | .. _template default:
 | ||
|  | 
 | ||
|  | ``default.html``
 | ||
|  | ----------------
 | ||
|  | 
 | ||
|  | Displays result fields from:
 | ||
|  | 
 | ||
|  | - :ref:`macro result_header` and
 | ||
|  | - :ref:`macro result_sub_header`
 | ||
|  | 
 | ||
|  | Additional fields used in the :origin:`default.html
 | ||
|  | <searx/templates/simple/result_templates/default.html>`:
 | ||
|  | 
 | ||
|  | content :  :py:class:`str`
 | ||
|  |   General text of the result item.
 | ||
|  | 
 | ||
|  | iframe_src : :py:class:`str`
 | ||
|  |   URL of an embedded ``<iframe>`` / the frame is collapsible.
 | ||
|  | 
 | ||
|  | audio_src : uri,
 | ||
|  |   URL of an embedded ``<audio controls>``.
 | ||
|  | 
 | ||
|  | 
 | ||
|  | .. _template images:
 | ||
|  | 
 | ||
|  | ``images.html``
 | ||
|  | ---------------
 | ||
|  | 
 | ||
|  | The images are displayed as small thumbnails in the main results list.
 | ||
|  | 
 | ||
|  | title :  :py:class:`str`
 | ||
|  |   Title of the image.
 | ||
|  | 
 | ||
|  | thumbnail_src : :py:class:`str`
 | ||
|  |   URL of a preview of the image.
 | ||
|  | 
 | ||
|  | resolution :py:class:`str`
 | ||
|  |   The resolution of the image (e.g. ``1920 x 1080`` pixel)
 | ||
|  | 
 | ||
|  | 
 | ||
|  | Image labels
 | ||
|  | ~~~~~~~~~~~~
 | ||
|  | 
 | ||
|  | Clicking on the preview opens a gallery view in which all further metadata for
 | ||
|  | the image is displayed.  Addition fields used in the :origin:`images.html
 | ||
|  | <searx/templates/simple/result_templates/images.html>`:
 | ||
|  | 
 | ||
|  | img_src : :py:class:`str`
 | ||
|  |   URL of the full size image.
 | ||
|  | 
 | ||
|  | content:  :py:class:`str`
 | ||
|  |   Description of the image.
 | ||
|  | 
 | ||
|  | author:  :py:class:`str`
 | ||
|  |   Name of the author of the image.
 | ||
|  | 
 | ||
|  | img_format : :py:class:`str`
 | ||
|  |   The format of the image (e.g. ``png``).
 | ||
|  | 
 | ||
|  | source : :py:class:`str`
 | ||
|  |   Source of the image.
 | ||
|  | 
 | ||
|  | filesize: :py:class:`str`
 | ||
|  |   Size of bytes in :py:obj:`human readable <searx.humanize_bytes>` notation
 | ||
|  |   (e.g. ``MB`` for 1024 \* 1024 Bytes filesize).
 | ||
|  | 
 | ||
|  | url : :py:class:`str`
 | ||
|  |   URL of the page from where the images comes from (source).
 | ||
|  | 
 | ||
|  | 
 | ||
|  | .. _template videos:
 | ||
|  | 
 | ||
|  | ``videos.html``
 | ||
|  | ---------------
 | ||
|  | 
 | ||
|  | Displays result fields from:
 | ||
|  | 
 | ||
|  | - :ref:`macro result_header` and
 | ||
|  | - :ref:`macro result_sub_header`
 | ||
|  | 
 | ||
|  | Additional fields used in the :origin:`videos.html
 | ||
|  | <searx/templates/simple/result_templates/videos.html>`:
 | ||
|  | 
 | ||
|  | iframe_src : :py:class:`str`
 | ||
|  |   URL of an embedded ``<iframe>`` / the frame is collapsible.
 | ||
|  | 
 | ||
|  |   The videos are displayed as small thumbnails in the main results list, there
 | ||
|  |   is an additional button to collaps/open the embeded video.
 | ||
|  | 
 | ||
|  | content :  :py:class:`str`
 | ||
|  |   Description of the code fragment.
 | ||
|  | 
 | ||
|  | 
 | ||
|  | .. _template torrent:
 | ||
|  | 
 | ||
|  | ``torrent.html``
 | ||
|  | ----------------
 | ||
|  | 
 | ||
|  | .. _magnet link: https://en.wikipedia.org/wiki/Magnet_URI_scheme
 | ||
|  | .. _torrent file: https://en.wikipedia.org/wiki/Torrent_file
 | ||
|  | 
 | ||
|  | Displays result fields from:
 | ||
|  | 
 | ||
|  | - :ref:`macro result_header` and
 | ||
|  | - :ref:`macro result_sub_header`
 | ||
|  | 
 | ||
|  | Additional fields used in the :origin:`torrent.html
 | ||
|  | <searx/templates/simple/result_templates/torrent.html>`:
 | ||
|  | 
 | ||
|  | magnetlink:
 | ||
|  |   URL of the `magnet link`_.
 | ||
|  | 
 | ||
|  | torrentfile
 | ||
|  |   URL of the `torrent file`_.
 | ||
|  | 
 | ||
|  | seed : ``int``
 | ||
|  |   Number of seeders.
 | ||
|  | 
 | ||
|  | leech : ``int``
 | ||
|  |   Number of leecher
 | ||
|  | 
 | ||
|  | filesize : ``int``
 | ||
|  |   Size in Bytes (rendered to human readable unit of measurement).
 | ||
|  | 
 | ||
|  | files : ``int``
 | ||
|  |   Number of files.
 | ||
|  | 
 | ||
|  | 
 | ||
|  | .. _template map:
 | ||
|  | 
 | ||
|  | ``map.html``
 | ||
|  | ------------
 | ||
|  | 
 | ||
|  | .. _GeoJSON: https://en.wikipedia.org/wiki/GeoJSON
 | ||
|  | .. _Leaflet: https://github.com/Leaflet/Leaflet
 | ||
|  | .. _bbox: https://wiki.openstreetmap.org/wiki/Bounding_Box
 | ||
|  | .. _HTMLElement.dataset: https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/dataset
 | ||
|  | .. _Nominatim: https://nominatim.org/release-docs/latest/
 | ||
|  | .. _Lookup: https://nominatim.org/release-docs/latest/api/Lookup/
 | ||
|  | .. _place_id is not a persistent id:
 | ||
|  |     https://nominatim.org/release-docs/latest/api/Output/#place_id-is-not-a-persistent-id
 | ||
|  | .. _perma_id: https://wiki.openstreetmap.org/wiki/Permanent_ID
 | ||
|  | .. _country code: https://wiki.openstreetmap.org/wiki/Country_code
 | ||
|  | 
 | ||
|  | Displays result fields from:
 | ||
|  | 
 | ||
|  | - :ref:`macro result_header` and
 | ||
|  | - :ref:`macro result_sub_header`
 | ||
|  | 
 | ||
|  | Additional fields used in the :origin:`map.html
 | ||
|  | <searx/templates/simple/result_templates/map.html>`:
 | ||
|  | 
 | ||
|  | content :  :py:class:`str`
 | ||
|  |   Description of the item.
 | ||
|  | 
 | ||
|  | address_label : :py:class:`str`
 | ||
|  |   Label of the address / default ``_('address')``.
 | ||
|  | 
 | ||
|  | geojson : GeoJSON_
 | ||
|  |   Geometries mapped to HTMLElement.dataset_ (``data-map-geojson``) and used by
 | ||
|  |   Leaflet_.
 | ||
|  | 
 | ||
|  | boundingbox : ``[ min-lon, min-lat, max-lon, max-lat]``
 | ||
|  |   A bbox_ area defined by min longitude , min latitude , max longitude and max
 | ||
|  |   latitude.  The bounding box is mapped to HTMLElement.dataset_
 | ||
|  |   (``data-map-boundingbox``) and is used by Leaflet_.
 | ||
|  | 
 | ||
|  | longitude, latitude : :py:class:`str`
 | ||
|  |   Geographical coordinates, mapped to HTMLElement.dataset_ (``data-map-lon``,
 | ||
|  |   ``data-map-lat``) and is used by Leaflet_.
 | ||
|  | 
 | ||
|  | address : ``{...}``
 | ||
|  |   A dicticonary with the address data:
 | ||
|  | 
 | ||
|  |   .. code:: python
 | ||
|  | 
 | ||
|  |      address = {
 | ||
|  |          'name'          : str,  # name of object
 | ||
|  |          'road'          : str,  # street name of object
 | ||
|  |          'house_number'  : str,  # house number of object
 | ||
|  |          'postcode'      : str,  # postcode of object
 | ||
|  |          'country'       : str,  # country of object
 | ||
|  |          'country_code'  : str,
 | ||
|  |          'locality'      : str,
 | ||
|  |      }
 | ||
|  | 
 | ||
|  |   country_code : :py:class:`str`
 | ||
|  |     `Country code`_ of the object.
 | ||
|  | 
 | ||
|  |   locality : :py:class:`str`
 | ||
|  |     The name of the city, town, township, village, borough, etc. in which this
 | ||
|  |     object is located.
 | ||
|  | 
 | ||
|  | links : ``[link1, link2, ...]``
 | ||
|  |   A list of links with labels:
 | ||
|  | 
 | ||
|  |   .. code:: python
 | ||
|  | 
 | ||
|  |      links.append({
 | ||
|  |          'label'       : str,
 | ||
|  |          'url'         : str,
 | ||
|  |          'url_label'   : str,  # set by some engines but unused (oscar)
 | ||
|  |      })
 | ||
|  | 
 | ||
|  | data : ``[data1, data2, ...]``
 | ||
|  |   A list of additional data, shown in two columns and containing a label and
 | ||
|  |   value.
 | ||
|  | 
 | ||
|  |   .. code:: python
 | ||
|  | 
 | ||
|  |      data.append({
 | ||
|  |         'label'   : str,
 | ||
|  |         'value'   : str,
 | ||
|  |         'key'     : str,  # set by some engines but unused
 | ||
|  |      })
 | ||
|  | 
 | ||
|  | type : :py:class:`str`  # set by some engines but unused (oscar)
 | ||
|  |   Tag label from :ref:`OSM_KEYS_TAGS['tags'] <update_osm_keys_tags.py>`.
 | ||
|  | 
 | ||
|  | type_icon : :py:class:`str`  # set by some engines but unused (oscar)
 | ||
|  |   Type's icon.
 | ||
|  | 
 | ||
|  | osm : ``{...}``
 | ||
|  |   OSM-type and OSM-ID, can be used to Lookup_ OSM data (Nominatim_). There is
 | ||
|  |   also a discussion about "`place_id is not a persistent id`_" and the
 | ||
|  |   perma_id_.
 | ||
|  | 
 | ||
|  |   .. code:: python
 | ||
|  | 
 | ||
|  |      osm = {
 | ||
|  |          'type': str,
 | ||
|  |          'id':   str,
 | ||
|  |      }
 | ||
|  | 
 | ||
|  |   type : :py:class:`str`
 | ||
|  |     Type of osm-object (if OSM-Result).
 | ||
|  | 
 | ||
|  |   id :
 | ||
|  |     ID of osm-object (if OSM-Result).
 | ||
|  | 
 | ||
|  |   .. hint::
 | ||
|  | 
 | ||
|  |      The ``osm`` property is set by engine ``openstreetmap.py``, but it is not
 | ||
|  |      used in the ``map.html`` template yet.
 | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | .. _template paper:
 | ||
|  | 
 | ||
|  | ``paper.html``
 | ||
|  | --------------
 | ||
|  | 
 | ||
|  | .. _BibTeX format: https://www.bibtex.com/g/bibtex-format/
 | ||
|  | .. _BibTeX field types: https://en.wikipedia.org/wiki/BibTeX#Field_types
 | ||
|  | 
 | ||
|  | Displays result fields from:
 | ||
|  | 
 | ||
|  | - :ref:`macro result_header`
 | ||
|  | 
 | ||
|  | Additional fields used in the :origin:`paper.html
 | ||
|  | <searx/templates/simple/result_templates/paper.html>`:
 | ||
|  | 
 | ||
|  | content :  :py:class:`str`
 | ||
|  |   An abstract or excerpt from the document.
 | ||
|  | 
 | ||
|  | comments : :py:class:`str`
 | ||
|  |   Free text display in italic below the content.
 | ||
|  | 
 | ||
|  | tags : :py:class:`List <list>`\ [\ :py:class:`str`\ ]
 | ||
|  |   Free tag list.
 | ||
|  | 
 | ||
|  | type : :py:class:`str`
 | ||
|  |   Short description of medium type, e.g. *book*, *pdf* or *html* ...
 | ||
|  | 
 | ||
|  | authors : :py:class:`List <list>`\ [\ :py:class:`str`\ ]
 | ||
|  |   List of authors of the work (authors with a "s" suffix, the "author" is in the
 | ||
|  |   :ref:`macro result_sub_header`).
 | ||
|  | 
 | ||
|  | editor : :py:class:`str`
 | ||
|  |   Editor of the book/paper.
 | ||
|  | 
 | ||
|  | publisher : :py:class:`str`
 | ||
|  |   Name of the publisher.
 | ||
|  | 
 | ||
|  | journal : :py:class:`str`
 | ||
|  |   Name of the journal or magazine the article was published in.
 | ||
|  | 
 | ||
|  | volume : :py:class:`str`
 | ||
|  |   Volume number.
 | ||
|  | 
 | ||
|  | pages : :py:class:`str`
 | ||
|  |   Page range where the article is.
 | ||
|  | 
 | ||
|  | number : :py:class:`str`
 | ||
|  |   Number of the report or the issue number for a journal article.
 | ||
|  | 
 | ||
|  | doi : :py:class:`str`
 | ||
|  |   DOI number (like ``10.1038/d41586-018-07848-2``).
 | ||
|  | 
 | ||
|  | issn : :py:class:`List <list>`\ [\ :py:class:`str`\ ]
 | ||
|  |   ISSN number like ``1476-4687``
 | ||
|  | 
 | ||
|  | isbn : :py:class:`List <list>`\ [\ :py:class:`str`\ ]
 | ||
|  |   ISBN number like ``9780201896831``
 | ||
|  | 
 | ||
|  | pdf_url : :py:class:`str`
 | ||
|  |   URL to the full article, the PDF version
 | ||
|  | 
 | ||
|  | html_url : :py:class:`str`
 | ||
|  |   URL to full article, HTML version
 | ||
|  | 
 | ||
|  | 
 | ||
|  | .. _template packages:
 | ||
|  | 
 | ||
|  | ``packages``
 | ||
|  | ------------
 | ||
|  | 
 | ||
|  | Displays result fields from:
 | ||
|  | 
 | ||
|  | - :ref:`macro result_header`
 | ||
|  | 
 | ||
|  | Additional fields used in the :origin:`packages.html
 | ||
|  | <searx/templates/simple/result_templates/packages.html>`:
 | ||
|  | 
 | ||
|  | package_name : :py:class:`str`
 | ||
|  |   The name of the package.
 | ||
|  | 
 | ||
|  | version : :py:class:`str`
 | ||
|  |   The current version of the package.
 | ||
|  | 
 | ||
|  | maintainer : :py:class:`str`
 | ||
|  |   The maintainer or author of the project.
 | ||
|  | 
 | ||
|  | publishedDate : :py:class:`datetime <datetime.datetime>`
 | ||
|  |   Date of latest update or release.
 | ||
|  | 
 | ||
|  | tags : :py:class:`List <list>`\ [\ :py:class:`str`\ ]
 | ||
|  |   Free tag list.
 | ||
|  | 
 | ||
|  | popularity : :py:class:`str`
 | ||
|  |   The popularity of the package, e.g. rating or download count.
 | ||
|  | 
 | ||
|  | license_name : :py:class:`str`
 | ||
|  |   The name of the license.
 | ||
|  | 
 | ||
|  | license_url : :py:class:`str`
 | ||
|  |   The web location of a license copy.
 | ||
|  | 
 | ||
|  | homepage : :py:class:`str`
 | ||
|  |   The url of the project's homepage.
 | ||
|  | 
 | ||
|  | source_code_url: :py:class:`str`
 | ||
|  |   The location of the project's source code.
 | ||
|  | 
 | ||
|  | links : :py:class:`dict`
 | ||
|  |   Additional links in the form of ``{'link_name': 'http://example.com'}``
 | ||
|  | 
 | ||
|  | 
 | ||
|  | .. _template code:
 | ||
|  | 
 | ||
|  | ``code.html``
 | ||
|  | -------------
 | ||
|  | 
 | ||
|  | Displays result fields from:
 | ||
|  | 
 | ||
|  | - :ref:`macro result_header` and
 | ||
|  | - :ref:`macro result_sub_header`
 | ||
|  | 
 | ||
|  | Additional fields used in the :origin:`code.html
 | ||
|  | <searx/templates/simple/result_templates/code.html>`:
 | ||
|  | 
 | ||
|  | content :  :py:class:`str`
 | ||
|  |   Description of the code fragment.
 | ||
|  | 
 | ||
|  | codelines : ``[line1, line2, ...]``
 | ||
|  |   Lines of the code fragment.
 | ||
|  | 
 | ||
|  | code_language : :py:class:`str`
 | ||
|  |   Name of the code language, the value is passed to
 | ||
|  |   :py:obj:`pygments.lexers.get_lexer_by_name`.
 | ||
|  | 
 | ||
|  | repository : :py:class:`str`
 | ||
|  |   URL of the repository of the code fragment.
 | ||
|  | 
 | ||
|  | 
 | ||
|  | .. _template files:
 | ||
|  | 
 | ||
|  | ``files.html``
 | ||
|  | --------------
 | ||
|  | 
 | ||
|  | Displays result fields from:
 | ||
|  | 
 | ||
|  | - :ref:`macro result_header` and
 | ||
|  | - :ref:`macro result_sub_header`
 | ||
|  | 
 | ||
|  | Additional fields used in the :origin:`code.html
 | ||
|  | <searx/templates/simple/result_templates/files.html>`:
 | ||
|  | 
 | ||
|  | filename, size, time: :py:class:`str`
 | ||
|  |   Filename, Filesize and Date of the file.
 | ||
|  | 
 | ||
|  | mtype : ``audio`` | ``video`` | :py:class:`str`
 | ||
|  |   Mimetype type of the file.
 | ||
|  | 
 | ||
|  | subtype : :py:class:`str`
 | ||
|  |   Mimetype / subtype of the file.
 | ||
|  | 
 | ||
|  | abstract : :py:class:`str`
 | ||
|  |   Abstract of the file.
 | ||
|  | 
 | ||
|  | author : :py:class:`str`
 | ||
|  |   Name of the author of the file
 | ||
|  | 
 | ||
|  | embedded : :py:class:`str`
 | ||
|  |   URL of an embedded media type (``audio`` or ``video``) / is collapsible.
 | ||
|  | 
 | ||
|  | 
 | ||
|  | .. _template products:
 | ||
|  | 
 | ||
|  | ``products.html``
 | ||
|  | -----------------
 | ||
|  | 
 | ||
|  | Displays result fields from:
 | ||
|  | 
 | ||
|  | - :ref:`macro result_header` and
 | ||
|  | - :ref:`macro result_sub_header`
 | ||
|  | 
 | ||
|  | Additional fields used in the :origin:`products.html
 | ||
|  | <searx/templates/simple/result_templates/products.html>`:
 | ||
|  | 
 | ||
|  | content :  :py:class:`str`
 | ||
|  |   Description of the product.
 | ||
|  | 
 | ||
|  | price : :py:class:`str`
 | ||
|  |   The price must include the currency.
 | ||
|  | 
 | ||
|  | shipping : :py:class:`str`
 | ||
|  |   Shipping details.
 | ||
|  | 
 | ||
|  | source_country : :py:class:`str`
 | ||
|  |   Place from which the shipment is made.
 | ||
|  | 
 | ||
|  | 
 | ||
|  | .. _template answer results:
 | ||
|  | 
 | ||
|  | Answer results
 | ||
|  | ==============
 | ||
|  | 
 | ||
|  | See :ref:`result_types.answer`
 | ||
|  | 
 | ||
|  | Suggestion results
 | ||
|  | ==================
 | ||
|  | 
 | ||
|  | See :ref:`result_types.suggestion`
 | ||
|  | 
 | ||
|  | Correction results
 | ||
|  | ==================
 | ||
|  | 
 | ||
|  | See :ref:`result_types.corrections`
 | ||
|  | 
 | ||
|  | Infobox results
 | ||
|  | ===============
 | ||
|  | 
 | ||
|  | See :ref:`result_types.infobox`
 |