astro-loader-hashnode
Version:
Astro content loader for seamlessly integrating Hashnode blog posts into your Astro website using the Content Layer API
56 lines (55 loc) • 1.71 kB
TypeScript
/**
* Utilities - Export all utility functions
*/
export { extractTextFromHtml, generateExcerpt, calculateReadingTime, countWords, normalizeContent, extractHeadings, generateTableOfContents, processContent, } from './content.js';
export { generateSEOMetadata, optimizeTitle, generateMetaDescription, generateKeywords, generateJSONLD, validateSEOMetadata, } from './seo.js';
export type { SEOMetadata } from './seo.js';
export { formatDate, timeAgo, isRecent } from './date.js';
export { createSlug, normalizeUrl, extractDomain, isValidUrl, makeAbsoluteUrl, buildUrl, parseUrl, cleanUrl, generateSharingUrls, generateCanonicalUrl, extractSlugFromUrl, isSameDomain, generateSitemapEntry, } from './url.js';
export declare function processPostData(data: {
title: string;
content: string;
brief?: string;
publishedAt: Date;
url: string;
author: {
name: string;
};
tags?: Array<{
name: string;
}>;
}): {
content: {
html: string;
text: string;
excerpt?: string;
readingTime?: number;
wordCount: number;
headings?: Array<{
level: number;
text: string;
id?: string;
}>;
tableOfContents?: Array<{
level: number;
title: string;
slug: string;
id: string;
parentId?: string;
}>;
};
seo: import("./seo.js").SEOMetadata;
sharing: {
twitter: string;
facebook: string;
linkedin: string;
reddit: string;
email: string;
};
meta: {
timeAgo: string;
isRecent: boolean;
slug: string;
canonicalUrl: string;
};
};