mirror of
https://github.com/badgen/badgen.net.git
synced 2025-04-19 05:42:17 +03:00
feat: include legacy badge examples in badge builder
This commit is contained in:
parent
a1ddd5d253
commit
7b85c086b1
@ -1,17 +1,33 @@
|
||||
import badgeList from '../public/.meta/badge-list.json'
|
||||
import badgeListLegacy from '../public/.meta/badges.json'
|
||||
|
||||
// const examples = [...badgeList.live, ...badgeList.static].reduce((accu, curr) => {
|
||||
// return (accu as any).concat(Object.entries(curr.examples))
|
||||
// }, [] as [string, string][])
|
||||
|
||||
type Examples = [string, string][]
|
||||
type BadgeExamples = {
|
||||
[pathname: string]: string
|
||||
}
|
||||
type BadgeList = {
|
||||
[id: string]: {
|
||||
title: string;
|
||||
examples: BadgeExamples;
|
||||
}
|
||||
}
|
||||
|
||||
function extractExampleList (badgeList): Examples {
|
||||
const examples = []
|
||||
|
||||
const examples = extractExampleList(badgeList)
|
||||
|
||||
function extractExampleList (badgeList: BadgeList): BadgeExamples {
|
||||
let examples = {}
|
||||
|
||||
Object.entries(badgeList).forEach((x) => {
|
||||
console.log(x)
|
||||
// Object.entries(meta?.examples)
|
||||
examples = { ...examples, ...x[1].examples }
|
||||
})
|
||||
|
||||
// Also apply legacy examples
|
||||
badgeListLegacy.live.forEach((x) => {
|
||||
examples = { ...examples, ...x.examples }
|
||||
})
|
||||
|
||||
return examples
|
||||
@ -24,13 +40,11 @@ interface BuilderHelperProps {
|
||||
}
|
||||
|
||||
export default function BuilderHelper ({ badgeURL, onSelect }: BuilderHelperProps) {
|
||||
console.log(2333)
|
||||
if (badgeURL.length < 2) {
|
||||
return <div className='helper' />
|
||||
}
|
||||
|
||||
const examples = extractExampleList(badgeList)
|
||||
const matched = examples.filter(eg => eg[0].includes(badgeURL))
|
||||
const matched = Object.entries(examples).filter(eg => eg[0].includes(badgeURL))
|
||||
|
||||
const hints = matched.length === 1 && matched[0][0] === '/' + badgeURL ? null : (
|
||||
<div className='suggestions'>
|
||||
|
@ -27,7 +27,7 @@ export default function BuilderHints ({ focus, badgeURL }) {
|
||||
overflow: visible;
|
||||
width: 100%;
|
||||
left: -147px;
|
||||
height: 200px;
|
||||
/* height: 200px; */
|
||||
transition: all 200ms cubic-bezier(0.215, 0.61, 0.355, 1);
|
||||
}
|
||||
.hint a {
|
||||
|
@ -7,82 +7,80 @@ const rel = (...args) => path.resolve(__dirname, ...args)
|
||||
export const liveBadgeList = [
|
||||
// // source control
|
||||
// 'github',
|
||||
// 'gitlab',
|
||||
// // release registries
|
||||
// 'npm',
|
||||
// 'david',
|
||||
// 'packagephobia',
|
||||
// 'bundlephobia',
|
||||
// 'crates',
|
||||
// 'docker',
|
||||
// 'homebrew',
|
||||
// 'chrome-web-store',
|
||||
// 'amo',
|
||||
// 'pypi',
|
||||
// 'nuget',
|
||||
// 'packagist',
|
||||
// 'rubygems',
|
||||
// 'apm',
|
||||
// 'hackage',
|
||||
// 'vs-marketplace',
|
||||
// 'melpa',
|
||||
// 'maven',
|
||||
// 'cocoapods',
|
||||
// 'haxelib',
|
||||
// 'opam',
|
||||
// 'cpan',
|
||||
// 'cran',
|
||||
// 'ctan',
|
||||
// 'dub',
|
||||
// 'elm-package',
|
||||
// 'scoop',
|
||||
// 'winget',
|
||||
// 'f-droid',
|
||||
// 'pub',
|
||||
// 'shards',
|
||||
// 'wapm',
|
||||
// 'open-vsx',
|
||||
// 'snapcraft',
|
||||
// // CI
|
||||
// 'travis',
|
||||
// 'circleci',
|
||||
// 'appveyor',
|
||||
// 'codecov',
|
||||
// 'codacy',
|
||||
// 'coveralls',
|
||||
// 'codeclimate',
|
||||
// 'azure-pipelines',
|
||||
// // quality & metrics
|
||||
// 'snyk',
|
||||
// 'lgtm',
|
||||
// 'deepscan',
|
||||
// 'uptime-robot',
|
||||
// 'xo',
|
||||
// 'badgesize',
|
||||
// 'jsdelivr',
|
||||
// // social
|
||||
// 'devrant',
|
||||
// 'peertube',
|
||||
// 'reddit',
|
||||
// // chat
|
||||
// 'discord',
|
||||
// 'gitter',
|
||||
// 'matrix',
|
||||
// // utilities
|
||||
// 'opencollective',
|
||||
// 'keybase',
|
||||
// 'twitter',
|
||||
// 'mastodon',
|
||||
// 'tidelift',
|
||||
// 'jenkins',
|
||||
// 'liberapay',
|
||||
// 'runkit',
|
||||
// 'https',
|
||||
'gitlab',
|
||||
// release registries
|
||||
'npm',
|
||||
'david',
|
||||
'packagephobia',
|
||||
'bundlephobia',
|
||||
'crates',
|
||||
'docker',
|
||||
'homebrew',
|
||||
'chrome-web-store',
|
||||
'amo',
|
||||
'pypi',
|
||||
'nuget',
|
||||
'packagist',
|
||||
'rubygems',
|
||||
'apm',
|
||||
'hackage',
|
||||
'vs-marketplace',
|
||||
'melpa',
|
||||
'maven',
|
||||
'cocoapods',
|
||||
'haxelib',
|
||||
'opam',
|
||||
'cpan',
|
||||
'cran',
|
||||
'ctan',
|
||||
'dub',
|
||||
'elm-package',
|
||||
'scoop',
|
||||
'f-droid',
|
||||
'pub',
|
||||
'shards',
|
||||
'wapm',
|
||||
'open-vsx',
|
||||
'snapcraft',
|
||||
// CI
|
||||
'travis',
|
||||
'circleci',
|
||||
'appveyor',
|
||||
'codecov',
|
||||
'codacy',
|
||||
'coveralls',
|
||||
'codeclimate',
|
||||
'azure-pipelines',
|
||||
// quality & metrics
|
||||
'snyk',
|
||||
'lgtm',
|
||||
'deepscan',
|
||||
'uptime-robot',
|
||||
'badgesize',
|
||||
'jsdelivr',
|
||||
// social
|
||||
'devrant',
|
||||
'peertube',
|
||||
'reddit',
|
||||
// chat
|
||||
'discord',
|
||||
'gitter',
|
||||
'matrix',
|
||||
// utilities
|
||||
'opencollective',
|
||||
'keybase',
|
||||
'twitter',
|
||||
'mastodon',
|
||||
'tidelift',
|
||||
'jenkins',
|
||||
'liberapay',
|
||||
'runkit',
|
||||
'https',
|
||||
]
|
||||
|
||||
export async function loadBadgeMeta () {
|
||||
const liveBadgeExamples = await Promise.all(liveBadgeList.map(async id => {
|
||||
const mod = await import(rel('../api', id))
|
||||
const mod = await import(rel('../api-', id))
|
||||
const { title, examples, handlers } = mod.default.meta
|
||||
|
||||
return {
|
||||
|
@ -6,11 +6,13 @@ import BadgeList2 from '../libs/badge-list2'
|
||||
const rel = (...args) => path.resolve(__dirname, ...args)
|
||||
|
||||
;(async function main () {
|
||||
// old list
|
||||
const badgeMeta = await loadBadgeMeta()
|
||||
await fse.outputJson(rel('../public/.meta/badges.json'), badgeMeta, {
|
||||
spaces: 2
|
||||
})
|
||||
|
||||
// new list
|
||||
await fse.outputJson(rel('../public/.meta/badge-list.json'), BadgeList2, {
|
||||
spaces: 2
|
||||
})
|
||||
|
Loading…
x
Reference in New Issue
Block a user