mirror of
https://github.com/MarginaliaSearch/MarginaliaSearch.git
synced 2025-02-24 13:19:02 +00:00
107 lines
5.9 KiB
Plaintext
107 lines
5.9 KiB
Plaintext
@import nu.marginalia.model.idx.DocumentFlags
|
|
@import nu.marginalia.search.command.SearchParameters
|
|
@import nu.marginalia.search.model.ClusteredUrlDetails
|
|
@import nu.marginalia.search.model.UrlDetails
|
|
@param ClusteredUrlDetails result
|
|
@param SearchParameters parameters
|
|
@param boolean domainSearch
|
|
|
|
<div class="bg-white dark:bg-gray-800 dark:text-white p-4 border dark:border-gray-600 border-gray-300 flex rounded">
|
|
<div class="flex flex-col grow">
|
|
<div class="flex space-x-0">
|
|
<div class="flex flex-col grow" >
|
|
<div class="flex flex-row space-x-2 place-items-center">
|
|
<div class="flex-0" title="Match density">
|
|
@template.serp.part.matchogram(mask = result.first.positionsMask)
|
|
</div>
|
|
<div class="flex grow justify-between items-start">
|
|
<div class="flex-1">
|
|
<h2 class="text-md sm:text-xl ${result.colorScheme.textColor} font-serif mr-4 break-words hyphens-auto">
|
|
<a href="${result.first.url.toString()}" rel="noopener noreferrer">$unsafe{result.first.displayTitle()}</a>
|
|
</h2>
|
|
|
|
<div class="text-sm mt-1">
|
|
<a class="text-liteblue dark:text-blue-200 underline break-all" href="${result.first.url.toString()}"
|
|
rel="noopener noreferrer" tabindex="-1">$unsafe{result.first.displayUrl()}</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<div class="overflow-auto flex-1">
|
|
<p class="mt-2 text-sm text-black dark:text-white leading-relaxed break-words">
|
|
$unsafe{result.first.displayDescription()}
|
|
</p>
|
|
</div>
|
|
|
|
</div>
|
|
@if (!domainSearch)
|
|
<div class="flex flex-col ml-5 content-center items-center space-y-2">
|
|
<a href="/site/${result.getDomain().toString()}" class="p-1.5 dark:text-gray-200 dark:hover:text-gray-400 text-gray-600 hover:text-gray-900 rounded-xl active:outline outline-1 outline-margeblue" title="About this domain">
|
|
<i class="fas fa-info text-sm"></i>
|
|
</a>
|
|
<a href="https://web.archive.org/web/*/${result.first.url.toString()}"
|
|
class="p-1.5 dark:text-gray-200 dark:hover:text-gray-400 text-gray-600 hover:text-gray-900 rounded-xl active:outline outline-1 outline-margeblue"
|
|
title="Wayback Machine">
|
|
<i class="fas fa-clock-rotate-left text-sm"></i>
|
|
</a>
|
|
</div>
|
|
@endif
|
|
</div>
|
|
@if (result.hasMultiple() && !domainSearch)
|
|
<div class="flex mt-2 text-sm flex flex-col space-y-2">
|
|
<p class="text-black dark:text-white ${result.colorScheme.backgroundColor} p-1 rounded break-words hyphens-auto">Also from ${result.getDomain().toString()}:</p>
|
|
|
|
<ul class="pl-2 mt-2 underline text-liteblue dark:text-blue-200">
|
|
@for(UrlDetails item : result.rest)
|
|
<li class="-indent-4 pl-4 mb-1 break-words hyphens-auto">
|
|
<a href="${item.url.toString()}" rel="noopener noreferrer">$unsafe{item.displayTitle()}</a>
|
|
</li>
|
|
@endfor
|
|
</ul>
|
|
</div>
|
|
@endif
|
|
|
|
<span class="flex space-x-1 flex-row text-xs mt-4">
|
|
@if (!domainSearch && result.remainingCount() > 0)
|
|
<span>
|
|
<a class="text-liteblue dark:text-blue-200 underline" href="${parameters.renderUrlWithSiteFocus(result.getDomain())}">${result.remainingCount()} more</a>
|
|
</span>
|
|
@endif
|
|
|
|
<div class="grow"></div>
|
|
@if (DocumentFlags.PlainText.isPresent(result.getFirst().resultItem.encodedDocMetadata))
|
|
<span class="px-1 bg-blue-100 text-blue-700 dark:border dark:border-blue-600 dark:text-blue-400 dark:bg-black rounded">Plain text</span>
|
|
@endif
|
|
@if (DocumentFlags.GeneratorForum.isPresent(result.getFirst().resultItem.encodedDocMetadata))
|
|
<span class="px-1 bg-blue-100 text-blue-700 dark:border dark:border-blue-600 dark:text-blue-400 dark:bg-black rounded">Forum</span>
|
|
@endif
|
|
@if (DocumentFlags.GeneratorWiki.isPresent(result.getFirst().resultItem.encodedDocMetadata))
|
|
<span class="px-1 bg-blue-100 text-blue-700 dark:border dark:border-blue-600 dark:text-blue-400 dark:bg-black rounded">Wiki</span>
|
|
@endif
|
|
|
|
@if(result.getFirst().isCookies())
|
|
<span class="px-1 bg-yellow-100 text-yellow-700 dark:border dark:border-yellow-600 dark:text-yellow-400 dark:bg-black rounded" title="Contains Cookies">Cookies</span>
|
|
@endif
|
|
|
|
@if(result.getFirst().isTracking())
|
|
<span class="px-1 bg-yellow-100 text-yellow-700 dark:border dark:border-yellow-600 dark:text-yellow-400 dark:bg-black rounded" title="Uses tracking scripts">Tracking</span>
|
|
@endif
|
|
|
|
@if(result.getFirst().isScripts())
|
|
<span class="px-1 bg-yellow-100 text-yellow-700 dark:border dark:border-yellow-600 dark:text-yellow-400 dark:bg-black rounded" title="Contains JavaScript">JS</span>
|
|
@endif
|
|
|
|
@if(result.getFirst().isAds())
|
|
<span class="px-1 bg-red-100 text-red-700 dark:border dark:border-red-600 dark:text-red-400 dark:bg-black rounded" title="Contains adtech">Has Ads</span>
|
|
@endif
|
|
|
|
@if(result.getFirst().isAffiliate())
|
|
<span class="px-1 bg-red-100 text-red-700 dark:border dark:border-red-600 dark:text-red-400 dark:bg-black rounded" title="Contains Affiliate Link">Has Affiliate</span>
|
|
@endif
|
|
|
|
</span>
|
|
</div>
|
|
|
|
</div> |