Sha256: 3ccb7b4563baf614ca28be105bc59358645ceeef65a467e6837ce8ed07c9b987

Contents?: true

Size: 1.93 KB

Versions: 12

Compression:

Stored size: 1.93 KB

Contents

<div class="form  form--search">
    <form id="contact-form" action="">
        <label class="label" for="search">Search term:</label>
        <input class="input" id="search" type="search" name="search" placeholder="e.g. About us" autocomplete="off" />

        <ul class="list  list--results" id="list">
            <!-- results go here -->
      	</ul>
    </form>
</div>

<script type="text/javascript" src="{{ "/assets/scripts/fetch.js" | relative_url }}"></script>
<script type="text/javascript">
    const endpoint = '{{ "/assets/search.json" | relative_url }}';

    const pages = [];

    fetch(endpoint)
        .then(blob => blob.json())
        .then(data => pages.push(...data))

    function findResults(termToMatch, pages) {
        return pages.filter(item => {
            const regex = new RegExp(termToMatch, 'gi');
            return item.title.match(regex) || item.content.match(regex);
        });
    }

    function displayResults() {
        const resultsArray = findResults(this.value, pages);
        const html = resultsArray.map(item => {
          return `
              <li class="item  item--result">
                  <article class="article  typeset">
                      <h4><a href="${item.url}">${item.title}</a></h4>
                      <p>${item.excerpt}</p>
                  </article>
              </li>`;
        }).join('');
        if ((resultsArray.length == 0) || (this.value == '')) {
            resultsList.innerHTML = `<p>Sorry, nothing was found</p>`;
        } else {
            resultsList.innerHTML = html;
        }
    }

    const field = document.querySelector('#search');
    const resultsList = document.querySelector('#list');

    field.addEventListener('keyup', displayResults);

    field.addEventListener('keypress', function(event) {
        if (event.keyCode == 13) {
          event.preventDefault();
        }
    });
</script>
<noscript>Please enable JavaScript to use the search form.</noscript>

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
alembic-jekyll-theme-3.0.1 _includes/site-search.html
alembic-jekyll-theme-3.0.0 _includes/site-search.html
alembic-jekyll-theme-2.3.1 _includes/site-search.html
alembic-jekyll-theme-2.3 _includes/site-search.html
alembic-jekyll-theme-2.2.5 _includes/site-search.html
alembic-jekyll-theme-2.2.4 _includes/site-search.html
alembic-jekyll-theme-2.2.3 _includes/site-search.html
alembic-jekyll-theme-2.2.2 _includes/site-search.html
alembic-jekyll-theme-2.2.1 _includes/site-search.html
alembic-jekyll-theme-2.2.0 _includes/site-search.html
alembic-jekyll-theme-2.1.2 _includes/site-search.html
alembic-jekyll-theme-2.1.1 _includes/site-search.html