4 * Theme override for a set of links.
7 * - attributes: Attributes for the UL containing the list of links.
8 * - links: Links to be output.
9 * Each link will have the following elements:
10 * - title: The link text.
11 * - href: The link URL. If omitted, the 'title' is shown as a plain text
12 * item in the links list. If 'href' is supplied, the entire link is passed
13 * to l() as its $options parameter.
14 * - attributes: (optional) HTML attributes for the anchor, or for the <span>
15 * tag if no 'href' is supplied.
16 * - link_key: The link CSS class.
17 * - heading: (optional) A heading to precede the links.
18 * - text: The heading text.
19 * - level: The heading level (e.g. 'h2', 'h3').
20 * - attributes: (optional) A keyed list of attributes for the heading.
21 * If the heading is a string, it will be used as the text of the heading and
22 * the level will default to 'h2'.
24 * Headings should be used on navigation menus and any list of links that
25 * consistently appears on multiple pages. To make the heading invisible use
26 * the 'visually-hidden' CSS class. Do not use 'display:none', which
27 * removes it from screen readers and assistive technology. Headings allow
28 * screen reader and keyboard only users to navigate to or skip the links.
29 * See http://juicystudio.com/article/screen-readers-display-none.php and
30 * http://www.w3.org/TR/WCAG-TECHS/H42.html for more information.
34 * @see template_preprocess_links()
39 {%- if heading.level -%}
40 <{{ heading.level }}{{ heading.attributes }}>{{ heading.text }}</{{ heading.level }}>
42 <h2{{ heading.attributes }}>{{ heading.text }}</h2>
45 {%- if attributes.hasClass('inline') -%}
46 <ul{{ attributes.addClass('list-inline') }}>
50 {%- for key, item in links -%}
51 <li{{ item.attributes.addClass(key|clean_class) }}>
54 {%- elseif item.text_attributes -%}
55 <span{{ item.text_attributes }}>{{ item.text }}</span>