SPB Git

spb/autoscholar

Public
1.8 KB · 53 lines typescript
1export interface CitationInput {2  publicId: string;3  title: string;4  year: number;5  month: number;6  versionNo: number;7  url: string;8  keywords: string[];9  abstract?: string;10}1112const MONTHS = ["jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec"];1314export function bibtexFor(c: CitationInput): string {15  const key = `autoscholar_${c.publicId.replace(/[^A-Za-z0-9]/g, "_").toLowerCase()}`;16  return [17    `@techreport{${key},`,18    `  title        = {${c.title.replace(/[{}]/g, "")}},`,19    `  author       = {{AutoScholar}},`,20    `  institution  = {AutoScholar.ai},`,21    `  type         = {AutoScholar Working Paper},`,22    `  number       = {${c.publicId}},`,23    `  year         = {${c.year}},`,24    `  month        = ${MONTHS[c.month - 1] ?? "jan"},`,25    `  note         = {Version ${c.versionNo}. AI-generated working paper; not formally peer reviewed. Research computed on MacLustr.},`,26    `  url          = {${c.url}}`,27    "}",28    "",29  ].join("\n");30}3132export function risFor(c: CitationInput): string {33  const lines = [34    "TY  - RPRT",35    `TI  - ${c.title}`,36    "AU  - AutoScholar",37    `PY  - ${c.year}`,38    `DA  - ${c.year}/${String(c.month).padStart(2, "0")}//`,39    "PB  - AutoScholar.ai",40    `SN  - ${c.publicId}`,41    `UR  - ${c.url}`,42    `N1  - AutoScholar Working Paper ${c.publicId}, version ${c.versionNo}. AI-generated working paper; not formally peer reviewed.`,43  ];44  for (const k of c.keywords) lines.push(`KW  - ${k}`);45  if (c.abstract) lines.push(`AB  - ${c.abstract.replace(/\s+/g, " ")}`);46  lines.push("ER  - ", "");47  return lines.join("\n");48}4950export function plainCitationFor(c: CitationInput): string {51  return `AutoScholar (${c.year}). ${c.title}. AutoScholar Working Paper ${c.publicId}, version ${c.versionNo}. ${c.url}`;52}53
Files · ad78891b6b969902dedc372df227e1adc3cd93ba
Menu

Theme