SYMBOL INDEX (275 symbols across 38 files) FILE: app/[typefaceSlug]/glyphs/page.tsx constant SITE_NAME (line 12) | const SITE_NAME = "Beautiful Web Type"; constant TWITTER_CREATOR (line 13) | const TWITTER_CREATOR = "@ubuwaits"; function generateStaticParams (line 15) | function generateStaticParams() { function generateMetadata (line 19) | async function generateMetadata({ function GlyphPage (line 57) | async function GlyphPage({ FILE: app/[typefaceSlug]/page.tsx constant SITE_NAME (line 18) | const SITE_NAME = "Beautiful Web Type"; constant TWITTER_CREATOR (line 19) | const TWITTER_CREATOR = "@ubuwaits"; function generateStaticParams (line 21) | function generateStaticParams() { function generateMetadata (line 25) | async function generateMetadata({ function TypefacePage (line 63) | async function TypefacePage({ FILE: app/display/page.tsx function DisplayPage (line 12) | function DisplayPage() { FILE: app/feed.xml/route.ts function GET (line 6) | function GET() { FILE: app/layout.tsx constant SITE_NAME (line 10) | const SITE_NAME = "Beautiful Web Type"; constant SITE_ORIGIN (line 11) | const SITE_ORIGIN = "https://www.beautifulwebtype.com"; constant DEFAULT_SITE_DESCRIPTION (line 12) | const DEFAULT_SITE_DESCRIPTION = constant DEFAULT_SOCIAL_IMAGE_PATH (line 14) | const DEFAULT_SOCIAL_IMAGE_PATH = "/assets/images/card.png"; constant TWITTER_CREATOR (line 15) | const TWITTER_CREATOR = "@ubuwaits"; function RootLayout (line 45) | function RootLayout({ children }: { children: ReactNode }) { FILE: app/monospaced/page.tsx function MonospacedPage (line 12) | function MonospacedPage() { FILE: app/not-found.tsx function NotFound (line 3) | function NotFound() { FILE: app/page.tsx function HomePage (line 23) | function HomePage() { FILE: app/pairings/page.tsx function PairingsPage (line 19) | function PairingsPage() { FILE: app/sans-serif/page.tsx function SansSerifPage (line 12) | function SansSerifPage() { FILE: app/serif/page.tsx function SerifPage (line 12) | function SerifPage() { FILE: app/sitemap.ts function sitemap (line 13) | function sitemap(): MetadataRoute.Sitemap { FILE: app/v1/page.tsx constant LEGACY_V1_PATH (line 6) | const LEGACY_V1_PATH = path.join(process.cwd(), "v1/index.html"); function extractBodyHtml (line 8) | function extractBodyHtml(html: string): string { function LegacyV1Page (line 30) | function LegacyV1Page() { FILE: components/breadcrumb-jsonld.tsx type BreadcrumbItem (line 3) | type BreadcrumbItem = { type BreadcrumbJsonLdProps (line 8) | type BreadcrumbJsonLdProps = { function BreadcrumbJsonLd (line 12) | function BreadcrumbJsonLd({ items }: BreadcrumbJsonLdProps) { FILE: components/category-page.tsx type CategoryPageProps (line 5) | type CategoryPageProps = { function CategoryPage (line 10) | function CategoryPage({ heading, typefaces }: CategoryPageProps) { FILE: components/category-route-page.tsx type CategoryRoutePageProps (line 7) | type CategoryRoutePageProps = { function CategoryRoutePage (line 15) | function CategoryRoutePage({ FILE: components/comparison-sync.tsx function ComparisonSync (line 5) | function ComparisonSync() { FILE: components/footer.tsx function SiteFooter (line 6) | function SiteFooter() { FILE: components/glyph-inspector.tsx type GlyphInspectorProps (line 8) | type GlyphInspectorProps = { function formatCssCode (line 15) | function formatCssCode(unicode: number): string { function formatHtmlCode (line 21) | function formatHtmlCode(unicode: number): string { function getPixelRatio (line 25) | function getPixelRatio(): number { function enableHighDpiCanvas (line 29) | function enableHighDpiCanvas(canvas: HTMLCanvasElement) { function getColumnCount (line 47) | function getColumnCount(): number { function getGlyphsPerPage (line 59) | function getGlyphsPerPage(): number { function getGlyphPosition (line 71) | function getGlyphPosition(font: Font, canvas: HTMLCanvasElement, glyph: ... function GlyphInspector (line 86) | function GlyphInspector({ FILE: components/page-shell.tsx type PageShellProps (line 4) | type PageShellProps = { function PageShell (line 9) | function PageShell({ bodyClass, children }: PageShellProps) { FILE: components/pairing-card.tsx type PairingCardProps (line 7) | type PairingCardProps = { function PairingCard (line 12) | function PairingCard({ pairing, currentTypefaceName }: PairingCardProps) { FILE: components/sample-card.tsx type SampleCardProps (line 6) | type SampleCardProps = { function SampleCard (line 11) | function SampleCard({ sample, typeface }: SampleCardProps) { FILE: components/site-header.tsx function NavItems (line 7) | function NavItems({ function SiteHeader (line 73) | function SiteHeader() { FILE: components/typeface-comparison.tsx type TypefaceComparisonProps (line 7) | type TypefaceComparisonProps = { function TypefaceComparison (line 13) | function TypefaceComparison({ FILE: components/typeface-detail.tsx constant CHARACTER_EXAMPLES (line 11) | const CHARACTER_EXAMPLES = [ type TypefaceDetailProps (line 58) | type TypefaceDetailProps = { function TypefaceDetail (line 65) | function TypefaceDetail({ FILE: js/wawoff2-decompress.js function locateFile (line 1) | function locateFile(path){if(Module["locateFile"]){return Module["locate... function logExceptionOnExit (line 1) | function logExceptionOnExit(e){if(e instanceof ExitStatus)return;var toL... function assert (line 1) | function assert(condition,text){if(!condition){abort("Assertion failed: ... function UTF8ArrayToString (line 1) | function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBy... function UTF8ToString (line 1) | function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(H... function stringToUTF8Array (line 1) | function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxByte... function stringToUTF8 (line 1) | function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Arr... function lengthBytesUTF8 (line 1) | function lengthBytesUTF8(str){var len=0;for(var i=0;i... function stringToUTF32 (line 1) | function stringToUTF32(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===... function lengthBytesUTF32 (line 1) | function lengthBytesUTF32(str){var len=0;for(var i=0;i0){x+=multiple-x%multiple}ret... function updateGlobalBufferAndViews (line 1) | function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP... function keepRuntimeAlive (line 1) | function keepRuntimeAlive(){return noExitRuntime||runtimeKeepaliveCounte... function preRun (line 1) | function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="func... function initRuntime (line 1) | function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__AT... function postRun (line 1) | function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="f... function addOnPreRun (line 1) | function addOnPreRun(cb){__ATPRERUN__.unshift(cb)} function addOnInit (line 1) | function addOnInit(cb){__ATINIT__.unshift(cb)} function addOnPostRun (line 1) | function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)} function addRunDependency (line 1) | function addRunDependency(id){runDependencies++;if(Module["monitorRunDep... function removeRunDependency (line 1) | function removeRunDependency(id){runDependencies--;if(Module["monitorRun... function abort (line 1) | function abort(what){{if(Module["onAbort"]){Module["onAbort"](what)}}wha... function isDataURI (line 1) | function isDataURI(filename){return filename.startsWith(dataURIPrefix)} function isFileURI (line 1) | function isFileURI(filename){return filename.startsWith("file://")} function getBinary (line 1) | function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return... function getBinaryPromise (line 1) | function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRON... function createWasm (line 1) | function createWasm(){var info={"a":asmLibraryArg};function receiveInsta... function callRuntimeCallbacks (line 1) | function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var c... function getWasmTableEntry (line 1) | function getWasmTableEntry(funcPtr){var func=wasmTableMirror[funcPtr];if... function ___cxa_allocate_exception (line 1) | function ___cxa_allocate_exception(size){return _malloc(size+16)+16} function ExceptionInfo (line 1) | function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-16;thi... function ___cxa_throw (line 1) | function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(pt... function __embind_register_bigint (line 1) | function __embind_register_bigint(primitiveType,name,size,minRange,maxRa... function getShiftFromSize (line 1) | function getShiftFromSize(size){switch(size){case 1:return 0;case 2:retu... function embind_init_charCodes (line 1) | function embind_init_charCodes(){var codes=new Array(256);for(var i=0;i<... function readLatin1String (line 1) | function readLatin1String(ptr){var ret="";var c=ptr;while(HEAPU8[c]){ret... function makeLegalFunctionName (line 1) | function makeLegalFunctionName(name){if(undefined===name){return"_unknow... function createNamedFunction (line 1) | function createNamedFunction(name,body){name=makeLegalFunctionName(name)... function extendError (line 1) | function extendError(baseErrorType,errorName){var errorClass=createNamed... function throwBindingError (line 1) | function throwBindingError(message){throw new BindingError(message)} function throwInternalError (line 1) | function throwInternalError(message){throw new InternalError(message)} function whenDependentTypesAreResolved (line 1) | function whenDependentTypesAreResolved(myTypes,dependentTypes,getTypeCon... function registerType (line 1) | function registerType(rawType,registeredInstance,options){options=option... function __embind_register_bool (line 1) | function __embind_register_bool(rawType,name,size,trueValue,falseValue){... function __emval_decref (line 1) | function __emval_decref(handle){if(handle>4&&0===--emval_handle_array[ha... function count_emval_handles (line 1) | function count_emval_handles(){var count=0;for(var i=5;i4){emval_handle_array[handle].... function requireRegisteredType (line 1) | function requireRegisteredType(rawType,humanName){var impl=registeredTyp... function __emval_take_value (line 1) | function __emval_take_value(type,argv){type=requireRegisteredType(type,"... function _abort (line 1) | function _abort(){abort("")} function _emscripten_memcpy_big (line 1) | function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src... function emscripten_realloc_buffer (line 1) | function emscripten_realloc_buffer(size){try{wasmMemory.grow(size-buffer... function _emscripten_resize_heap (line 1) | function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.lengt... function intArrayToString (line 1) | function intArrayToString(array){var ret=[];for(var i=0;i = { function listDirectories (line 35) | function listDirectories(directory: string): string[] { function readRequiredTextFile (line 47) | function readRequiredTextFile(filePath: string): string { function readYamlFile (line 55) | function readYamlFile(filePath: string): Record { function assertString (line 69) | function assertString(value: unknown, key: string, filePath: string): st... function assertStringValue (line 77) | function assertStringValue(value: unknown, key: string, filePath: string... function assertObject (line 85) | function assertObject( function assertCategory (line 97) | function assertCategory(value: unknown, filePath: string): CategoryName { function maybeString (line 105) | function maybeString(value: unknown): string | undefined { function maybeBoolean (line 109) | function maybeBoolean(value: unknown): boolean | undefined { function assertStringArray (line 113) | function assertStringArray(value: unknown, key: string, filePath: string... function assertStringOrNumber (line 121) | function assertStringOrNumber( function assertWeights (line 133) | function assertWeights(value: unknown, filePath: string): Weight[] { function assertSampleShade (line 155) | function assertSampleShade( function toDateString (line 171) | function toDateString(value: unknown, key: string, filePath: string): st... function categoryToSlug (line 187) | function categoryToSlug(category: CategoryName): CategorySlug { function loadTypefaceBundles (line 191) | function loadTypefaceBundles(contentDir: string): { function loadPairings (line 263) | function loadPairings(contentDir: string): Pairing[] { function loadTextData (line 286) | function loadTextData(contentDir: string): TextData { function loadContentSource (line 297) | function loadContentSource(contentDir = DEFAULT_CONTENT_DIR): ContentSou... FILE: lib/content/types.ts type CategoryName (line 1) | type CategoryName = "Display" | "Monospaced" | "Sans-Serif" | "Serif"; type CategorySlug (line 3) | type CategorySlug = "display" | "monospaced" | "sans-serif" | "serif"; type Weight (line 5) | type Weight = { type SampleShade (line 10) | type SampleShade = "light" | "dark"; type Typeface (line 12) | type Typeface = { type GlyphPage (line 39) | type GlyphPage = { type Sample (line 46) | type Sample = { type Pairing (line 53) | type Pairing = { type TextData (line 62) | type TextData = { type ContentGraph (line 68) | type ContentGraph = { FILE: lib/feed.ts constant SITE_NAME (line 4) | const SITE_NAME = "Beautiful Web Type"; function xmlEscape (line 6) | function xmlEscape(value: string): string { function buildAtomFeedXml (line 15) | function buildAtomFeedXml( FILE: lib/glyph-inspector-font-loader.ts type Glyph (line 1) | type Glyph = { type Font (line 15) | type Font = { type OpentypeRuntime (line 31) | type OpentypeRuntime = { type Wawoff2Module (line 36) | type Wawoff2Module = { type ReadyWawoff2Module (line 41) | type ReadyWawoff2Module = Wawoff2Module & { type GlyphInspectorFontLoaderDeps (line 45) | type GlyphInspectorFontLoaderDeps = { constant WAWOFF2_DECOMPRESSOR_SRC (line 53) | const WAWOFF2_DECOMPRESSOR_SRC = "/js/wawoff2-decompress.js"; type Window (line 59) | interface Window { function isWoff2FontFile (line 65) | function isWoff2FontFile(fontFile: string) { function normalizeDecompressedFontData (line 69) | function normalizeDecompressedFontData(fontData: ArrayBuffer | Uint8Arra... function loadOpentypeFont (line 82) | function loadOpentypeFont(opentype: OpentypeRuntime, fontFile: string) { function loadScriptFromDocument (line 100) | function loadScriptFromDocument(src: string) { function ensureWoff2Module (line 148) | async function ensureWoff2Module( function loadGlyphInspectorFont (line 218) | async function loadGlyphInspectorFont( function createGlyphInspectorFontLoader (line 239) | function createGlyphInspectorFontLoader(deps: GlyphInspectorFontLoaderDe... function resetGlyphInspectorFontLoaderForTests (line 243) | function resetGlyphInspectorFontLoaderForTests() { FILE: lib/routes.ts constant SITE_ORIGIN (line 1) | const SITE_ORIGIN = "https://www.beautifulwebtype.com"; constant STATIC_SITEMAP_PATHS (line 3) | const STATIC_SITEMAP_PATHS = [ constant NON_TYPEFACE_TOP_LEVEL_PATHS (line 12) | const NON_TYPEFACE_TOP_LEVEL_PATHS = [ function routeToTopLevelSlug (line 22) | function routeToTopLevelSlug(routePath: string): string | undefined { function getReservedTopLevelSlugs (line 26) | function getReservedTopLevelSlugs(): Set { function getTypefacePath (line 35) | function getTypefacePath(typefaceSlug: string): string { function getGlyphPath (line 39) | function getGlyphPath(typefaceSlug: string): string { function toAbsoluteUrl (line 43) | function toAbsoluteUrl(routePath: string): string { FILE: scripts/migrate-content.ts constant ROOT_DIR (line 7) | const ROOT_DIR = process.cwd(); constant CONTENT_DIR (line 8) | const CONTENT_DIR = path.join(ROOT_DIR, "content"); constant LEGACY_DATA_DIR (line 9) | const LEGACY_DATA_DIR = path.join(ROOT_DIR, "_data"); constant LEGACY_GLYPHS_DIR (line 10) | const LEGACY_GLYPHS_DIR = path.join(ROOT_DIR, "_glyphs"); constant LEGACY_PAIRINGS_DIR (line 11) | const LEGACY_PAIRINGS_DIR = path.join(ROOT_DIR, "_pairings"); constant LEGACY_SAMPLES_DIR (line 12) | const LEGACY_SAMPLES_DIR = path.join(ROOT_DIR, "_samples"); constant LEGACY_TYPEFACES_DIR (line 13) | const LEGACY_TYPEFACES_DIR = path.join(ROOT_DIR, "_typefaces"); constant CATEGORY_SLUGS (line 15) | const CATEGORY_SLUGS = { type CategoryName (line 22) | type CategoryName = keyof typeof CATEGORY_SLUGS; type CategorySlug (line 23) | type CategorySlug = (typeof CATEGORY_SLUGS)[CategoryName]; type SampleShade (line 24) | type SampleShade = "light" | "dark"; function listFilesRecursively (line 26) | function listFilesRecursively(directory: string, extension: string): str... function parseYamlText (line 42) | function parseYamlText(rawValue: string, filePath: string): Record>(value: T): T { function serializeYaml (line 151) | function serializeYaml(value: Record): string { function writeYamlFile (line 159) | async function writeYamlFile(filePath: string, value: Record