UNPKG

astro-loader-hashnode

Version:

Astro content loader for seamlessly integrating Hashnode blog posts into your Astro website using the Content Layer API

89 lines (88 loc) 2.21 kB
/** * URL Utilities */ import { URLSearchParams } from 'url'; /** * Generate a URL-friendly slug from text */ export declare function createSlug(text: string): string; /** * Ensure URL has proper protocol */ export declare function normalizeUrl(url: string): string; /** * Extract domain from URL */ export declare function extractDomain(url: string): string; /** * Check if URL is valid */ export declare function isValidUrl(url: string): boolean; /** * Generate absolute URL from relative path */ export declare function makeAbsoluteUrl(path: string, baseUrl: string): string; /** * Build URL with query parameters */ export declare function buildUrl(baseUrl: string, params: Record<string, string | number | boolean | undefined>): string; /** * Parse URL and extract components */ export declare function parseUrl(url: string): { protocol: string; hostname: string; pathname: string; search: string; hash: string; searchParams: URLSearchParams; } | null; /** * Clean URL by removing tracking parameters */ export declare function cleanUrl(url: string, paramsToRemove?: string[]): string; /** * Generate social media sharing URLs */ export declare function generateSharingUrls(data: { url: string; title: string; description?: string; hashtags?: string[]; via?: string; }): { twitter: string; facebook: string; linkedin: string; reddit: string; email: string; }; /** * Generate canonical URL */ export declare function generateCanonicalUrl(slug: string, baseUrl: string, options?: { pathPrefix?: string; removeTrailingSlash?: boolean; }): string; /** * Extract slug from URL */ export declare function extractSlugFromUrl(url: string): string; /** * Check if URL is from the same domain */ export declare function isSameDomain(url1: string, url2: string): boolean; /** * Generate sitemap URL entries */ export declare function generateSitemapEntry(data: { url: string; lastModified?: Date; changeFrequency?: 'always' | 'hourly' | 'daily' | 'weekly' | 'monthly' | 'yearly' | 'never'; priority?: number; }): { loc: string; lastmod?: string; changefreq?: string; priority?: string; };