2 $limit = @$Place['limit'] ?: 10;
3 $path = ' '.escapeshellarg('*.html');
4 $query = @$_REQUEST['q'] ?: $Args ?: $Page;
6 if (!trim($query, '/')) return;
8 $cmd = "git grep -li -- ".escapeshellarg($query).$path;
10 if (count($results) > $limit) {
12 array_splice($results, $limit);
15 $cmd = "git ls-files -- $path";
18 # order files by similarity to query
19 $ls = array_combine($ls, array_map(function ($row) use ($query) {
20 $row = preg_replace('{(?:^|/)index\.html$}', '', $row);
21 return similar_text($row, $query) - strlen($row) / 8;
25 # prepend best match, replace unless duplicate
26 array_unshift($results, key($ls));
27 $results = array_unique($results);
28 array_splice($results, $limit);
32 $results = ['index.html'];
35 if (isset($Place['verbose'])) {
36 printf("<p>%s gevonden voor <q>%s</q>:</p>\n",
37 $results ? count($results).' resultaten' : 'Niets',
38 htmlspecialchars($query)
42 require_once('nieuws.inc.php');
44 foreach ($results as $result) {
45 $page = new ArchiveArticle($result);
46 printf('<li><a href="/%s">%s</a></li>'."\n", $page->link, $page->name);