Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions eleventy.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -370,6 +370,7 @@ const vendorModules = [

export default async function (eleventyConfig) {
const isProd = process.env.NODE_ENV === 'production' || process.env.ELEVENTY_ENV === 'production'
const rankingEasterEgg = rankingEasterEggEnabled(isProd)
const prodOrigin = 'https://packages.sublimetext.io'
const devOrigin = process.env.DEV_ORIGIN || 'http://localhost:8080'
const siteOrigin = isProd ? prodOrigin : devOrigin
Expand Down Expand Up @@ -628,6 +629,7 @@ export default async function (eleventyConfig) {
prodOrigin,
devOrigin,
disableLiveLink: Boolean(process.env.DISABLE_L_LINK),
rankingEasterEgg,
})

// Send the full tag history so the browser can decide what is visible and
Expand Down Expand Up @@ -686,6 +688,15 @@ export default async function (eleventyConfig) {
}
}

function rankingEasterEggEnabled(isProd) {
const override = process.env.RANKING_EASTER_EGG
if (typeof override === 'string') {
return override.trim().toLowerCase() === 'true'
}

return !isProd
}

async function bundleJs(staticOutputDir, entries, isProd) {
if (!entries.size) {
return
Expand Down
16 changes: 11 additions & 5 deletions eleventy.filters.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -98,15 +98,15 @@ export function label_normalization_note(changes) {
return `<p>* ${heading}</p><ul>${items}</ul>`
}

export function search_index_json(packages) {
export function search_index_json(packages, options = {}) {
return JSON.stringify({
packages: packages.map(compactSearchPackage),
packages: packages.map(pkg => compactSearchPackage(pkg, options)),
label_icon_aliases: labelIconAliases,
label_icon_tints: labelIconTints,
})
}

function compactSearchPackage(pkg) {
function compactSearchPackage(pkg, { includeMagicDetails = true } = {}) {
const row = [
pkg.name,
htmlDescription(pkg.description ?? ''),
Expand All @@ -116,11 +116,17 @@ function compactSearchPackage(pkg) {
timestamp(pkg.first_seen) || 0,
timestamp(pkg.last_modified) || 0,
pkg.magic_score ?? 0,
compactMagicBreakdown(pkg.magic),
]

if (includeMagicDetails) {
row.push(compactMagicBreakdown(pkg.magic))
}

row.push(
(pkg.platforms ?? []).join(','),
pkg.platform_statement ?? '',
(pkg.labels ?? []).join(','),
]
)

if (pkg.outdated || pkg.st3_only || pkg.removed || pkg.archived_at) {
row.push(
Expand Down
6 changes: 4 additions & 2 deletions search-index.11ty.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,9 @@ export default class SearchIndex {
}
}

render({ collections }) {
return search_index_json(collections.searchable_packages)
render({ collections, site }) {
return search_index_json(collections.searchable_packages, {
includeMagicDetails: site.rankingEasterEgg,
})
}
}
21 changes: 18 additions & 3 deletions static/package-search.js
Original file line number Diff line number Diff line change
Expand Up @@ -63,15 +63,26 @@ function expandSearchPackage(row) {
first_seen,
last_modified,
magic_score,
magic,
] = row

let offset = 8
const hasMagicDetails = Array.isArray(row[offset])
const magic = hasMagicDetails
? row[offset]
: undefined
if (hasMagicDetails) {
offset += 1
}

const [
platforms,
platform_statement,
labels,
outdated,
st3_only,
removed,
archived_at,
] = row
] = row.slice(offset)

return {
name,
Expand All @@ -93,7 +104,11 @@ function expandSearchPackage(row) {
}
}

function expandMagicBreakdown(values = []) {
function expandMagicBreakdown(values) {
if (!Array.isArray(values)) {
return null
}

const [popularity, stars, freshness, longevity, recency, penalty] = values
return { popularity, stars, freshness, longevity, recency, penalty }
}
Expand Down