@@ -16,8 +16,20 @@ function Portal (sites) {
1616 }
1717
1818 function _directory (sites) {
19− const listItems = sites.reduce((acc, site, id) => `${acc}<li ${_type(site)} id='${id}'><a href='${site.url}'>${_name(site)}</a></li>`, '')
20− return `<main><ul>${listItems}</ul></main><footer>${_readme()}${_buttons()}</footer>`
19+ const siteTypesArray = [ ...new Set( sites.map( site => site.type ).filter(Boolean) ) ]
20+ const siteTypes = siteTypesArray.reduce( (output, siteType) => `${output}
21+ <a data-type='${siteType}' href='#' onclick='event.preventDefault(); toggleType(event)'><${siteType}></a>`
22+ , `<a class='current' href='#' onclick='event.preventDefault(); toggleType(event)'><all></a>` )
23+
24+ const listItems = sites.reduce( (acc, site, id) =>
25+ `${acc}<li ${_type(site)} id='${id}'><a href='${site.url}'>${_name(site)}</a></li>`
26+ , '' )
27+
28+ return `<nav>${siteTypes}</nav>
29+ <main>
30+ <ul>${listItems}</ul>
31+ </main>
32+ <footer>${_readme()}${_buttons()}</footer>`
2133 }
2234
2335 function _name (site) {