mirror of
https://github.com/prdlk/leetcode.git
synced 2026-11-03 13:27:36 +00:00
docs: add companies frontmatter, schema, and rendering in badges & appendix pages
This commit is contained in:
1 parent
c753937852
commit
f6c580b14b
109 files changed
+1218
-12
No files matched your search
@@ -0,0 +1,36 @@
|
||||
/**
|
||||
* The `companies:` frontmatter vocabulary, shared by its writer
|
||||
* (`apps/cli/sync.ts`, from the local DuckDB company-frequency database), its
|
||||
* schema (`blume.config.ts`) and its two readers: the company table under a
|
||||
* problem page's badge row (`components/ProblemBadges.astro`) and the
|
||||
* Companies section of the Appendix (`pages/appendix.astro`), where each
|
||||
* company's card — anchored at `companyHref()` — lists the problems it asked.
|
||||
* Plain data, no Astro imports: sync imports this file under Bun.
|
||||
*/
|
||||
|
||||
/** The database's recency windows, most recent first; they nest, so a company is filed under the first it appears in. */
|
||||
export const RECENCY = ["Thirty Days", "Three Months", "Six Months"] as const;
|
||||
export type Recency = (typeof RECENCY)[number];
|
||||
|
||||
/** Read under an "Asked within" heading (the company table) or as a row chip (the Appendix card). */
|
||||
export const RECENCY_LABEL: Record<Recency, string> = {
|
||||
"Thirty Days": "30 days",
|
||||
"Three Months": "3 months",
|
||||
"Six Months": "6 months",
|
||||
};
|
||||
|
||||
export interface Company {
|
||||
name: string;
|
||||
/** The most recent window the company asked the problem in. */
|
||||
period: Recency;
|
||||
/** 5–100, relative within the company and window: 100 is its most-asked problem there. */
|
||||
frequency: number;
|
||||
}
|
||||
|
||||
/** The company's card on the Appendix; `company-` keeps it clear of the tag cards' `#<slug>` ids. */
|
||||
export function companyHref(name: string): string {
|
||||
return `/appendix#company-${name
|
||||
.toLowerCase()
|
||||
.replace(/[^a-z0-9]+/g, "-")
|
||||
.replace(/^-|-$/g, "")}`;
|
||||
}
|
||||
Reference in new issue
Block a user