.. _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 `. A :ref:`result item ` 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 `: 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 `: 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 ` in a HTML ``
`` element. The intention of this macro is to pass data of a engine from one :py:obj:`response ` to the :py:obj:`searx.search.SearchQuery` of the next :py:obj:`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 `. .. _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 `: content : :py:class:`str` General text of the result item. iframe_src : :py:class:`str` URL of an embedded ``