Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Search results no longer include delimiter pipe #6

Open
r0ckarong opened this issue May 24, 2017 · 7 comments
Open

Search results no longer include delimiter pipe #6

r0ckarong opened this issue May 24, 2017 · 7 comments

Comments

@r0ckarong
Copy link

My page titles are build like

Product Version | Section | Topic

Until some recent change which I can not fathom the search result would look like that.
Now the search result is only "Topic".

I'm trying to find out if your indexer does something different.

My implementation looks like this, pretty much the reference from your instructions:

Script insertion in the actual page template

  <!-- JS-Search -->
  <script src="<%= File.join(javascripts_path, "jssearch.js") %>" /></script>
  <script src="<%= File.join(javascripts_path, "jssearch.index.js") %>" /></script>

  <script type="text/javascript">
    $(document).on("keyup", "#searchbox", function() {
      var result = jssearch.search($(this).val());

      $('#query').html(jssearch.queryWords.join(' '));

      $('#results').html('');
      var i = 0;
      result.forEach(function(item) {
        if (i++ > 20) {
          return;
        }

        var div = $('#results');

        var version = "<%= version %>"
        var location = window.location.href;
        var pos = location.substr(0, location.search(version));
        var oerl = item.file.url;
        var clean = oerl.substr(2, oerl.length)

        div.html(div.html() + '<li>' + '<a href="' + pos + version + clean + '">' + item.file.title + '</a>' + '</li>');
      });
    });
  </script>

I've also updated to 0.9.3 and I see the same behavior.

@cebe
Copy link
Owner

cebe commented May 24, 2017

Until some recent change which I can not fathom the search result would look like that.

there have not been significant changes to this package since 2014, are you sure its a problem with the code in this package?

@r0ckarong
Copy link
Author

That is what I'm trying to debug. Suddenly the titles recorded into jssearch index no longer contain the longer notation with the pipes. Where does the indexer grab the title from and how is it processed?

@cebe
Copy link
Owner

cebe commented May 29, 2017

protected function generateFileInfo($file, $contents, $basePath, $baseUrl)
{
// create file entry
if (preg_match('~<h1>(.*?)</h1>~s', $contents, $matches)) {
$title = strip_tags($matches[1]);
} elseif (preg_match('~<title>(.*?)</title>~s', $contents, $matches)) {
$title = strip_tags($matches[1]);
} else {
$title = '<i>No title</i>';
}
return [
'url' => $baseUrl . str_replace('\\', '/', substr($file, strlen(rtrim($basePath, '\\/')))),
'title' => $title,
];
}

@cebe
Copy link
Owner

cebe commented May 29, 2017

have you added <h1> tags that were not present before?

@r0ckarong
Copy link
Author

I did actually convert a previously h2 into an h1. So it takes the text from the first h1 it finds over the HTML <title> tag from what I can read? This would explain it.

@r0ckarong
Copy link
Author

Ok yeah that was the cause. Ideally could you add an option to pass with the script that allows me to select if the first h1 or the actual <title> tag is used?

@cebe
Copy link
Owner

cebe commented May 29, 2017

I can add it but I do not have time for it right now. If you want to have it earlier I am happy to accept a pull request.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants