Initial commit: New MoreminiMore website with fresh design

This commit is contained in:
MoreminiMore
2026-04-22 01:59:05 +07:00
commit 76409638cc
14010 changed files with 2052041 additions and 0 deletions

View File

@@ -0,0 +1,48 @@
import { HTMLString } from './escape.js';
/**
* LRU (Least Recently Used) cache for HTMLString objects.
*
* This cache reduces memory allocations by reusing identical HTMLString objects
* across both recursive rendering (.astro files) and queue rendering (MDX files).
*
* When the cache reaches maxSize, the least recently used item is evicted.
* This keeps memory usage bounded while maintaining good cache hit rates.
*
* Example:
* - 10,000 identical `<li class="foo">` tags → single cached HTMLString object
* - Memory savings: ~30KB (10,000 objects) → ~3 bytes (1 object + Map overhead)
*/
export declare class HTMLStringCache {
private cache;
private readonly maxSize;
constructor(maxSize?: number);
/**
* Get or create an HTMLString for the given content.
* If cached, the existing object is returned and moved to end (most recently used).
* If not cached, a new HTMLString is created, cached, and returned.
*
* @param content - The HTML string content
* @returns HTMLString object (cached or newly created)
*/
getOrCreate(content: string): HTMLString;
/**
* Get current cache size
*/
size(): number;
/**
* Pre-warms the cache with common HTML patterns.
* This ensures first-render cache hits for frequently used tags.
*
* @param patterns - Array of HTML strings to pre-cache
*/
warm(patterns: string[]): void;
/**
* Clear the entire cache
*/
clear(): void;
}
/**
* Common HTML patterns that appear frequently in Astro pages.
* Pre-warming the cache with these patterns ensures first-render cache hits.
*/
export declare const COMMON_HTML_PATTERNS: string[];