{% pop site_items item %}
{% if item[page.page_mask] != true %}

	{% set_hash_entry item path item_path %}
	{% set_hash_entry item url item_url %}
	{% set_hash_entry item title item_title %}
	{% set_hash_entry item content item_content %}
	{% set_hash_entry item data item_data %}
	
	{% comment %}<!-- Build a list of all the pages included in this manual -->{% endcomment %}
	{{ page.availablePages | appendToArray: item }}
	
	{% capture pid %}{{ item.title | remove:'/' | replace:' ','-' | downcase }}{% endcapture %}
	<a id="{{ item_path }}" name="{{ item_path }}" href="javascript:void(0);"></a>
	{{ page.my_array['test'] = 'test' }}
	<li>
	 {% if visited contains item_title %}
	  {{ item['title'] }} &nbsp; <a href="#link-{{pid}}"><span class="octicon octicon-link-external flip"></span></a>
	 {% elsif item['external'] %}
	  {{ item['title'] }} &nbsp; <a href="{{ item['url'] }}"><span class="octicon octicon-link-external"></span></a>
	 {% else %}
	 	 {% if item['content'] != null %}
	   		<a href="#contentsLink-{{pid}}" id="link-{{pid}}">{{ item['title'] }}</a>
	    {% else %}
	    	{{ item['title'] }}
	    {% endif %}
	  {% if item['menu'] %}
	   {% push visited item_title %}
	   <ul>
	    {% push site_items item %}
	    {% assign last_item = site_items[-1] %}
	    {% for item in last_item['menu'] %}
	     {% push site_items item %}
	     {% include singlepage-item.html %}
	    {% endfor %}
	    {% pop site_items item %}
	   </ul>
	  {% endif %}
	 {% endif %}
	</li>
{% endif %}