diff --git a/src/assets/js/reprodb-search.js b/src/assets/js/reprodb-search.js index 9fd8d59..4fab4a6 100644 --- a/src/assets/js/reprodb-search.js +++ b/src/assets/js/reprodb-search.js @@ -257,31 +257,34 @@ } else if (d.paper_url) { links.push('📄 Paper'); } - // Artifact URLs (unified list) + if (d.appendix_url) links.push('📋 Appendix'); + // Artifact URLs from scraped sources first, then ArtiFinder-discovered URLs. var artUrlList = artUrls; if (artUrlList.length === 1) { var isGH = artUrlList[0].indexOf('github.com') !== -1; - var lbl = isGH ? '💻 GitHub' : '📦 Artifact'; + var isZenodo = artUrlList[0].indexOf('zenodo.org') !== -1; + var lbl = isGH ? '💻 GitHub' : (isZenodo ? '📦 Zenodo' : '📦 Artifact'); var avail1 = availabilityTag(artUrlList[0]); links.push('' + lbl + '' + avail1); } else { artUrlList.forEach(function(u, i) { if (u) { var isGH = u.indexOf('github.com') !== -1; - var lbl = isGH ? '💻 GitHub' : '📦 Artifact'; + var isZenodo = u.indexOf('zenodo.org') !== -1; + var lbl = isGH ? '💻 GitHub' : (isZenodo ? '📦 Zenodo' : '📦 Artifact'); if (artUrlList.length > 1) lbl += ' #' + (i+1); var availN = availabilityTag(u); links.push('' + lbl + '' + availN); } }); } - if (d.appendix_url) links.push('📋 Appendix'); // ArtiFinder-discovered links: not manually verified, no badges. var afUrls = (d.artifinder_urls || []).map(normalizeUrl); afUrls.forEach(function(u) { if (!u) return; var isGH = u.indexOf('github.com') !== -1; - var lbl = isGH ? '💻 GitHub' : '📦 Artifact'; + var isZenodo = u.indexOf('zenodo.org') !== -1; + var lbl = isGH ? '💻 GitHub' : (isZenodo ? '📦 Zenodo' : '📦 Artifact'); links.push('' + lbl + '' + artifinderTag()); }); var linksLine = links.length > 0 ? links.join(' · ') : ''; diff --git a/src/methodology/search-keywords.md b/src/methodology/search-keywords.md index 723561a..07e65e7 100644 --- a/src/methodology/search-keywords.md +++ b/src/methodology/search-keywords.md @@ -25,4 +25,15 @@ The [search bar]({{ '/' | relative_url }}) supports special `#` keywords that fi Keywords also work alongside the year, venue, and area dropdown filters. +## Result Link Order + +In each search result card, links are displayed in this order: + +1. Paper +2. Appendix +3. Artifact links from scraped sources (for example, Zenodo or GitHub) +4. Artifact links discovered by ArtiFinder + +When multiple artifact links are present, scraped links are shown before ArtiFinder links. + **Note on `#unavailable`:** Availability is determined by automated URL checks that run as part of the monthly pipeline. A URL marked as unavailable may be temporarily down, rate-limited, or require authentication. The hover tooltip on each flagged artifact shows when the check was last performed.