@aaronellington/vite-plugin-inkwell 0.0.8 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../src/content.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/B,OAAO,KAAK,EAAsB,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAavE,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,MAAM,EAAE,CAcvE;AAED,wBAAgB,gBAAgB,CAC/B,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,GACd;IAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAQpD;AAED,wBAAgB,WAAW,CAC1B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,QAAQ,EAAE,MAAM,GACd,MAAM,CAQR;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,iBAAiB,EAAE,GAAG,IAAI,CAcpE;AAeD,wBAAgB,cAAc,CAAC,UAAU,EAAE,eAAe,EAAE,GAAG,MAAM,CAOpE;AAED,wBAAgB,gBAAgB,CAC/B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACd,iBAAiB,CAkCnB"}
1
+ {"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../src/content.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/B,OAAO,KAAK,EAAsB,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAavE,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,MAAM,EAAE,CAcvE;AAED,wBAAgB,gBAAgB,CAC/B,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,GACd;IAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAQpD;AAED,wBAAgB,WAAW,CAC1B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,QAAQ,EAAE,MAAM,GACd,MAAM,CAQR;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,iBAAiB,EAAE,GAAG,IAAI,CAcpE;AAeD,wBAAgB,cAAc,CAAC,UAAU,EAAE,eAAe,EAAE,GAAG,MAAM,CAOpE;AAED,wBAAgB,gBAAgB,CAC/B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACd,iBAAiB,CA4DnB"}
package/dist/content.js CHANGED
@@ -85,13 +85,30 @@ export function parseContentFile(filePath, baseDir, renderer) {
85
85
  if (typeof html !== "string") {
86
86
  throw new Error(`Async marked extensions are not supported. File: ${filePath}`);
87
87
  }
88
+ const dateInput = typeof data.date === "string"
89
+ ? data.date
90
+ : data.date instanceof Date
91
+ ? data.date.toISOString()
92
+ : "";
93
+ const today = new Date().toISOString().slice(0, 10);
94
+ if (!dateInput) {
95
+ throw new Error(`Missing "date" in frontmatter for ${filePath}\n` +
96
+ ` Expected format: "YYYY-MM-DD" (e.g. "${today}")`);
97
+ }
98
+ // Normalize bare date strings (e.g. "2025-01-15") to UTC by appending T00:00:00Z
99
+ // This prevents the build server's timezone from affecting the output
100
+ const normalizedDate = /^\d{4}-\d{2}-\d{2}$/.test(dateInput)
101
+ ? `${dateInput}T00:00:00Z`
102
+ : dateInput;
103
+ const parsed = new Date(normalizedDate);
104
+ if (Number.isNaN(parsed.getTime())) {
105
+ throw new Error(`Invalid "date" in frontmatter for ${filePath}: "${dateInput}"\n` +
106
+ ` Expected format: "YYYY-MM-DD" (e.g. "${today}")`);
107
+ }
88
108
  const frontmatter = {
89
109
  ...data,
90
- date: typeof data.date === "string"
91
- ? data.date
92
- : data.date instanceof Date
93
- ? data.date.toISOString()
94
- : "",
110
+ date: parsed.toISOString(),
111
+ description: typeof data.description === "string" ? data.description : "",
95
112
  draft: data.draft === true,
96
113
  slug,
97
114
  title: typeof data.title === "string" ? data.title : "",
@@ -1 +1 @@
1
- {"version":3,"file":"content.js","sourceRoot":"","sources":["../src/content.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"content.js","sourceRoot":"","sources":["../src/content.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  export { inkwell } from "./plugin.js";
2
- export type { Content } from "./types.js";
2
+ export type { CollectionConfig, Content, FeedConfig, InkwellOptions, } from "./types.js";
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,YAAY,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,YAAY,EACX,gBAAgB,EAChB,OAAO,EACP,UAAU,EACV,cAAc,GACd,MAAM,YAAY,CAAA"}
package/dist/plugin.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  import type { Plugin } from "vite";
2
- export declare function inkwell(): Plugin;
2
+ import type { InkwellOptions } from "./types.js";
3
+ export declare function inkwell(options: InkwellOptions): Plugin;
3
4
  //# sourceMappingURL=plugin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAiC,MAAM,MAAM,CAAA;AAkBjE,wBAAgB,OAAO,IAAI,MAAM,CA4NhC"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAiC,MAAM,MAAM,CAAA;AAYjE,OAAO,KAAK,EAAc,cAAc,EAAqB,MAAM,YAAY,CAAA;AAkF/E,wBAAgB,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,CAsTvD"}
package/dist/plugin.js CHANGED
@@ -5,15 +5,84 @@ import { checkDuplicateSlugs, createRenderer, parseContentFile, scanDirectory, }
5
5
  const CONTENT_PREFIX = "inkwell:";
6
6
  const RESOLVED_PREFIX = "\0inkwell:";
7
7
  const SLUG_SEPARATOR = "/";
8
- export function inkwell() {
8
+ function escapeXml(str) {
9
+ return str
10
+ .replace(/&/g, "&")
11
+ .replace(/</g, "&lt;")
12
+ .replace(/>/g, "&gt;")
13
+ .replace(/"/g, "&quot;")
14
+ .replace(/'/g, "&apos;");
15
+ }
16
+ function normalizeBasePath(basePath) {
17
+ if (!basePath.startsWith("/"))
18
+ basePath = `/${basePath}`;
19
+ if (!basePath.endsWith("/"))
20
+ basePath = `${basePath}/`;
21
+ return basePath;
22
+ }
23
+ function isValidDate(dateStr) {
24
+ if (!dateStr)
25
+ return false;
26
+ const d = new Date(dateStr);
27
+ return !Number.isNaN(d.getTime());
28
+ }
29
+ function generateRssXml(items, feed, basePath) {
30
+ const normalizedSiteUrl = feed.siteUrl.replace(/\/+$/, "");
31
+ const normalizedBasePath = normalizeBasePath(basePath);
32
+ const feedUrl = `${normalizedSiteUrl}/${feed.outputPath.replace(/^\//, "")}`;
33
+ const sortedItems = [...items].sort((a, b) => new Date(b.frontmatter.date).getTime() -
34
+ new Date(a.frontmatter.date).getTime());
35
+ const itemsXml = sortedItems
36
+ .map((item) => {
37
+ const link = `${normalizedSiteUrl}${normalizedBasePath}${item.frontmatter.slug}`;
38
+ const lines = [
39
+ " <item>",
40
+ ` <title>${escapeXml(item.frontmatter.title)}</title>`,
41
+ ` <link>${escapeXml(link)}</link>`,
42
+ ` <guid>${escapeXml(link)}</guid>`,
43
+ ];
44
+ if (isValidDate(item.frontmatter.date)) {
45
+ lines.push(` <pubDate>${new Date(item.frontmatter.date).toUTCString()}</pubDate>`);
46
+ }
47
+ if (item.frontmatter.description) {
48
+ lines.push(` <description>${escapeXml(item.frontmatter.description)}</description>`);
49
+ }
50
+ lines.push(" </item>");
51
+ return lines.join("\n");
52
+ })
53
+ .join("\n");
54
+ return [
55
+ '<?xml version="1.0" encoding="UTF-8"?>',
56
+ '<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">',
57
+ " <channel>",
58
+ ` <title>${escapeXml(feed.siteTitle)}</title>`,
59
+ ` <link>${escapeXml(normalizedSiteUrl)}</link>`,
60
+ ` <description>${escapeXml(feed.siteDescription || feed.siteTitle)}</description>`,
61
+ ` <language>${escapeXml(feed.language)}</language>`,
62
+ ` <lastBuildDate>${new Date().toUTCString()}</lastBuildDate>`,
63
+ ` <atom:link href="${escapeXml(feedUrl)}" rel="self" type="application/rss+xml"/>`,
64
+ itemsXml,
65
+ " </channel>",
66
+ "</rss>",
67
+ ].join("\n");
68
+ }
69
+ export function inkwell(options) {
9
70
  let config;
10
71
  let server;
11
72
  let isProduction = false;
12
73
  const renderer = createRenderer([]);
74
+ // Map from collection name to its resolved absolute directory path
75
+ const collectionDirs = new Map();
76
+ // Map from absolute directory path to its collection name
77
+ const dirToName = new Map();
13
78
  // Map from absolute directory path to its parsed content items
14
79
  const collections = new Map();
15
80
  // Track which directories are in use for HMR
16
81
  const watchedDirs = new Set();
82
+ function getBasePath(name) {
83
+ const collectionConfig = options.collections[name];
84
+ return normalizeBasePath(collectionConfig?.basePath ?? "/");
85
+ }
17
86
  function buildCollection(absoluteDir) {
18
87
  if (!fs.existsSync(absoluteDir)) {
19
88
  throw new Error(`Content directory does not exist: ${absoluteDir}`);
@@ -36,25 +105,52 @@ export function inkwell() {
36
105
  }
37
106
  return items;
38
107
  }
39
- function generateCollectionModule(absoluteDir) {
108
+ function checkDuplicatePaths() {
109
+ const seen = new Map();
110
+ for (const [dir, allItems] of collections) {
111
+ const name = dirToName.get(dir);
112
+ if (!name)
113
+ continue;
114
+ const basePath = getBasePath(name);
115
+ const items = getVisibleItems(allItems);
116
+ for (const item of items) {
117
+ const itemPath = `${basePath}${item.frontmatter.slug}`;
118
+ const existing = seen.get(itemPath);
119
+ if (existing) {
120
+ throw new Error(`Duplicate path "${itemPath}" found in:\n` +
121
+ ` - ${existing}\n` +
122
+ ` - ${item.filePath}\n` +
123
+ `Provide an explicit "slug" in frontmatter to resolve.`);
124
+ }
125
+ seen.set(itemPath, item.filePath);
126
+ }
127
+ }
128
+ }
129
+ function generateCollectionModule(absoluteDir, name) {
40
130
  const allItems = collections.get(absoluteDir);
41
131
  if (!allItems) {
42
132
  throw new Error(`No content collection for directory: ${absoluteDir}`);
43
133
  }
134
+ checkDuplicatePaths();
44
135
  const items = getVisibleItems(allItems);
45
136
  const slugPrefix = CONTENT_PREFIX + absoluteDir + SLUG_SEPARATOR;
137
+ const basePath = getBasePath(name);
46
138
  const entries = items.map((item) => {
47
139
  const meta = { ...item.frontmatter };
48
140
  delete meta.title;
49
141
  delete meta.slug;
50
142
  delete meta.date;
51
143
  delete meta.draft;
144
+ delete meta.description;
145
+ const itemPath = `${basePath}${item.frontmatter.slug}`;
52
146
  return [
53
147
  " {",
54
148
  ` title: ${JSON.stringify(item.frontmatter.title)},`,
55
149
  ` slug: ${JSON.stringify(item.frontmatter.slug)},`,
56
- ` date: ${JSON.stringify(item.frontmatter.date)},`,
150
+ ` path: ${JSON.stringify(itemPath)},`,
151
+ ` date: new Date(${JSON.stringify(item.frontmatter.date)}),`,
57
152
  ` draft: ${JSON.stringify(item.frontmatter.draft)},`,
153
+ ` description: ${JSON.stringify(item.frontmatter.description)},`,
58
154
  ` directory: ${JSON.stringify(item.directoryPath)},`,
59
155
  ` meta: ${JSON.stringify(meta)},`,
60
156
  ` getHtml: () => import(${JSON.stringify(slugPrefix + item.frontmatter.slug)}).then(m => m.default),`,
@@ -71,6 +167,12 @@ export function inkwell() {
71
167
  configResolved(resolvedConfig) {
72
168
  config = resolvedConfig;
73
169
  isProduction = resolvedConfig.command === "build";
170
+ // Resolve collection paths from config
171
+ for (const [name, collectionConfig] of Object.entries(options.collections)) {
172
+ const absoluteDir = path.resolve(config.root, collectionConfig.contentPath);
173
+ collectionDirs.set(name, absoluteDir);
174
+ dirToName.set(absoluteDir, name);
175
+ }
74
176
  },
75
177
  configureServer(devServer) {
76
178
  server = devServer;
@@ -128,8 +230,8 @@ export function inkwell() {
128
230
  return null;
129
231
  const rest = id.slice(RESOLVED_PREFIX.length);
130
232
  // Check if this is a slug module (contains a slug after the directory path)
131
- // Slug modules: \0content:/abs/path/to/dir/my-slug
132
- // Collection modules: \0content:/abs/path/to/dir
233
+ // Slug modules: \0inkwell:/abs/path/to/dir/my-slug
234
+ // Collection modules: \0inkwell:/abs/path/to/dir
133
235
  for (const [absoluteDir, items] of collections) {
134
236
  const dirPrefix = absoluteDir + SLUG_SEPARATOR;
135
237
  if (rest.startsWith(dirPrefix) && rest.length > dirPrefix.length) {
@@ -141,14 +243,16 @@ export function inkwell() {
141
243
  return generateSlugModuleCode(item.html, item.assets);
142
244
  }
143
245
  if (rest === absoluteDir) {
144
- return generateCollectionModule(absoluteDir);
246
+ const name = dirToName.get(absoluteDir);
247
+ if (!name) {
248
+ throw new Error(`No collection name found for directory: ${absoluteDir}`);
249
+ }
250
+ return generateCollectionModule(absoluteDir, name);
145
251
  }
146
252
  }
147
253
  // If we get here, the collection hasn't been built yet
148
254
  // This happens on first load — build it now
149
255
  if (rest.includes(SLUG_SEPARATOR)) {
150
- // Try to find the directory portion
151
- // Walk backward from the end to find a valid directory
152
256
  const lastSlash = rest.lastIndexOf(SLUG_SEPARATOR);
153
257
  const possibleDir = rest.slice(0, lastSlash);
154
258
  const slug = rest.slice(lastSlash + 1);
@@ -162,8 +266,31 @@ export function inkwell() {
162
266
  }
163
267
  return null;
164
268
  },
269
+ generateBundle() {
270
+ for (const [name, collectionConfig] of Object.entries(options.collections)) {
271
+ if (!collectionConfig.feed)
272
+ continue;
273
+ const absoluteDir = collectionDirs.get(name);
274
+ if (!absoluteDir)
275
+ continue;
276
+ const allItems = collections.get(absoluteDir);
277
+ if (!allItems) {
278
+ config.logger.warn(`[inkwell] No collection found for "${name}" (resolved to ${absoluteDir})`);
279
+ continue;
280
+ }
281
+ const items = getVisibleItems(allItems);
282
+ const basePath = getBasePath(name);
283
+ const feed = collectionConfig.feed;
284
+ const rssXml = generateRssXml(items, feed, basePath);
285
+ this.emitFile({
286
+ type: "asset",
287
+ fileName: feed.outputPath.replace(/^\//, ""),
288
+ source: rssXml,
289
+ });
290
+ }
291
+ },
165
292
  name: "inkwell",
166
- resolveId(source, importer) {
293
+ resolveId(source) {
167
294
  if (!source.startsWith(CONTENT_PREFIX))
168
295
  return null;
169
296
  const rawPath = source.slice(CONTENT_PREFIX.length);
@@ -171,11 +298,12 @@ export function inkwell() {
171
298
  if (path.isAbsolute(rawPath)) {
172
299
  return RESOLVED_PREFIX + rawPath;
173
300
  }
174
- // Resolve relative to the importer's directory
175
- const importerDir = importer ? path.dirname(importer) : config.root;
176
- // Strip the \0 prefix from importer if it's a virtual module
177
- const cleanImporterDir = importerDir.replace(/^\0/, "");
178
- const absoluteDir = path.resolve(cleanImporterDir, rawPath);
301
+ // Look up by collection name
302
+ const absoluteDir = collectionDirs.get(rawPath);
303
+ if (!absoluteDir) {
304
+ throw new Error(`Collection "${rawPath}" is not defined in inkwell options. ` +
305
+ `Available collections: ${[...collectionDirs.keys()].join(", ")}`);
306
+ }
179
307
  // Build the collection if we haven't yet
180
308
  if (!collections.has(absoluteDir)) {
181
309
  const items = buildCollection(absoluteDir);
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,OAAO,EACN,sBAAsB,EACtB,sBAAsB,EACtB,6BAA6B,GAC7B,MAAM,aAAa,CAAA;AACpB,OAAO,EACN,mBAAmB,EACnB,cAAc,EACd,gBAAgB,EAChB,aAAa,GACb,MAAM,cAAc,CAAA;AAGrB,MAAM,cAAc,GAAG,UAAU,CAAA;AACjC,MAAM,eAAe,GAAG,YAAY,CAAA;AACpC,MAAM,cAAc,GAAG,GAAG,CAAA;AAE1B,MAAM,UAAU,OAAO;IACtB,IAAI,MAAsB,CAAA;IAC1B,IAAI,MAAiC,CAAA;IACrC,IAAI,YAAY,GAAG,KAAK,CAAA;IAExB,MAAM,QAAQ,GAAG,cAAc,CAAC,EAAE,CAAC,CAAA;IAEnC,+DAA+D;IAC/D,MAAM,WAAW,GAAG,IAAI,GAAG,EAA+B,CAAA;IAC1D,6CAA6C;IAC7C,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAA;IAErC,SAAS,eAAe,CAAC,WAAmB;QAC3C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,qCAAqC,WAAW,EAAE,CAAC,CAAA;QACpE,CAAC;QAED,MAAM,QAAQ,GAAG,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,CAAA;QACjD,MAAM,KAAK,GAAwB,EAAE,CAAA;QAErC,KAAK,MAAM,QAAQ,IAAI,QAAQ,EAAE,CAAC;YACjC,MAAM,IAAI,GAAG,gBAAgB,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAA;YAE9D,MAAM,MAAM,GAAG,sBAAsB,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;YAC1D,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;YACpB,IAAI,CAAC,IAAI,GAAG,6BAA6B,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;YAE5D,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACjB,CAAC;QAED,mBAAmB,CAAC,KAAK,CAAC,CAAA;QAC1B,OAAO,KAAK,CAAA;IACb,CAAC;IAED,SAAS,eAAe,CAAC,KAA0B;QAClD,IAAI,YAAY,EAAE,CAAC;YAClB,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;QACvD,CAAC;QACD,OAAO,KAAK,CAAA;IACb,CAAC;IAED,SAAS,wBAAwB,CAAC,WAAmB;QACpD,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;QAC7C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,wCAAwC,WAAW,EAAE,CAAC,CAAA;QACvE,CAAC;QAED,MAAM,KAAK,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAA;QACvC,MAAM,UAAU,GAAG,cAAc,GAAG,WAAW,GAAG,cAAc,CAAA;QAEhE,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YAClC,MAAM,IAAI,GAA4B,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;YAC7D,OAAO,IAAI,CAAC,KAAK,CAAA;YACjB,OAAO,IAAI,CAAC,IAAI,CAAA;YAChB,OAAO,IAAI,CAAC,IAAI,CAAA;YAChB,OAAO,IAAI,CAAC,KAAK,CAAA;YAEjB,OAAO;gBACN,KAAK;gBACL,cAAc,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG;gBACvD,aAAa,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG;gBACrD,aAAa,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG;gBACrD,cAAc,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG;gBACvD,kBAAkB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG;gBACvD,aAAa,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG;gBACpC,6BAA6B,IAAI,CAAC,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,yBAAyB;gBACxG,KAAK;aACL,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACb,CAAC,CAAC,CAAA;QAEF,OAAO,qBAAqB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAA;IACxD,CAAC;IAED,SAAS,cAAc,CACtB,WAAmB,EACnB,IAAY;QAEZ,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;QAC1C,OAAO,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;IACvD,CAAC;IAED,OAAO;QACN,cAAc,CAAC,cAAc;YAC5B,MAAM,GAAG,cAAc,CAAA;YACvB,YAAY,GAAG,cAAc,CAAC,OAAO,KAAK,OAAO,CAAA;QAClD,CAAC;QAED,eAAe,CAAC,SAAS;YACxB,MAAM,GAAG,SAAS,CAAA;QACnB,CAAC;QACD,OAAO,EAAE,KAAK;QAEd,SAAS,CAAC,GAAG;YACZ,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,CAAA;YACpB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAAE,OAAM;YACjC,IAAI,CAAC,MAAM;gBAAE,OAAM;YAEnB,oDAAoD;YACpD,IAAI,UAA8B,CAAA;YAClC,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;gBAC/B,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC;oBACnE,UAAU,GAAG,GAAG,CAAA;oBAChB,MAAK;gBACN,CAAC;YACF,CAAC;YAED,IAAI,CAAC,UAAU;gBAAE,OAAM;YAEvB,IAAI,CAAC;gBACJ,MAAM,KAAK,GAAG,eAAe,CAAC,UAAU,CAAC,CAAA;gBACzC,WAAW,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC,CAAA;YACnC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;gBACtE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;gBACnC,OAAO,EAAE,CAAA;YACV,CAAC;YAED,mCAAmC;YACnC,MAAM,YAAY,GAAG,eAAe,GAAG,UAAU,CAAA;YACjD,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,aAAa,CAAC,YAAY,CAAC,CAAA;YACpE,IAAI,GAAG,EAAE,CAAC;gBACT,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAA;YACnD,CAAC;YAED,4CAA4C;YAC5C,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;YACzC,MAAM,WAAW,GAAG,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAA;YACjE,IAAI,WAAW,EAAE,CAAC;gBACjB,MAAM,MAAM,GACX,eAAe;oBACf,UAAU;oBACV,cAAc;oBACd,WAAW,CAAC,WAAW,CAAC,IAAI,CAAA;gBAC7B,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;gBACrE,IAAI,UAAU,EAAE,CAAC;oBAChB,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAA;gBAC1D,CAAC;YACF,CAAC;YAED,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAA;YACxC,OAAO,EAAE,CAAA;QACV,CAAC;QAED,IAAI,CAAC,EAAE;YACN,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC;gBAAE,OAAO,IAAI,CAAA;YAEhD,MAAM,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;YAE7C,4EAA4E;YAC5E,mDAAmD;YACnD,iDAAiD;YACjD,KAAK,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC;gBAChD,MAAM,SAAS,GAAG,WAAW,GAAG,cAAc,CAAA;gBAC9C,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC;oBAClE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;oBACzC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;oBAC3D,IAAI,CAAC,IAAI,EAAE,CAAC;wBACX,MAAM,IAAI,KAAK,CAAC,2BAA2B,IAAI,aAAa,CAAC,CAAA;oBAC9D,CAAC;oBACD,OAAO,sBAAsB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;gBACtD,CAAC;gBAED,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;oBAC1B,OAAO,wBAAwB,CAAC,WAAW,CAAC,CAAA;gBAC7C,CAAC;YACF,CAAC;YAED,uDAAuD;YACvD,4CAA4C;YAC5C,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;gBACnC,oCAAoC;gBACpC,uDAAuD;gBACvD,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAA;gBAClD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAA;gBAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAA;gBAEtC,IAAI,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;oBAClC,MAAM,IAAI,GAAG,cAAc,CAAC,WAAW,EAAE,IAAI,CAAC,CAAA;oBAC9C,IAAI,CAAC,IAAI,EAAE,CAAC;wBACX,MAAM,IAAI,KAAK,CAAC,2BAA2B,IAAI,aAAa,CAAC,CAAA;oBAC9D,CAAC;oBACD,OAAO,sBAAsB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;gBACtD,CAAC;YACF,CAAC;YAED,OAAO,IAAI,CAAA;QACZ,CAAC;QACD,IAAI,EAAE,SAAS;QAEf,SAAS,CAAC,MAAM,EAAE,QAAQ;YACzB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC;gBAAE,OAAO,IAAI,CAAA;YAEnD,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA;YAEnD,wFAAwF;YACxF,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC9B,OAAO,eAAe,GAAG,OAAO,CAAA;YACjC,CAAC;YAED,+CAA+C;YAC/C,MAAM,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAA;YACnE,6DAA6D;YAC7D,MAAM,gBAAgB,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;YACvD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAA;YAE3D,yCAAyC;YACzC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;gBACnC,MAAM,KAAK,GAAG,eAAe,CAAC,WAAW,CAAC,CAAA;gBAC1C,WAAW,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;gBAEnC,0BAA0B;gBAC1B,IAAI,MAAM,EAAE,CAAC;oBACZ,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;gBAChC,CAAC;gBACD,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;YAC7B,CAAC;YAED,OAAO,eAAe,GAAG,WAAW,CAAA;QACrC,CAAC;KACD,CAAA;AACF,CAAC"}
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -3,6 +3,7 @@ export interface ContentFrontmatter {
3
3
  slug: string;
4
4
  date: string;
5
5
  draft: boolean;
6
+ description: string;
6
7
  [key: string]: unknown;
7
8
  }
8
9
  export interface AssetReference {
@@ -23,14 +24,42 @@ export interface ParsedContentItem {
23
24
  /** Asset references discovered in this content */
24
25
  assets: AssetReference[];
25
26
  }
27
+ export interface FeedConfig {
28
+ /** Output filename for the RSS feed (e.g. "rss.xml") */
29
+ outputPath: string;
30
+ /** Site title used in the RSS channel */
31
+ siteTitle: string;
32
+ /** Site URL used for building item links (e.g. "https://example.com") */
33
+ siteUrl: string;
34
+ /** RSS language code (e.g. "en", "en-us", "fr") */
35
+ language: string;
36
+ /** Site description used in the RSS channel. Defaults to siteTitle */
37
+ siteDescription?: string;
38
+ }
39
+ export interface CollectionConfig {
40
+ /** Path to the content directory, relative to the Vite config file */
41
+ contentPath: string;
42
+ /** Path prefix for content item URLs (e.g. "/blog/"). Defaults to "/" */
43
+ basePath?: string;
44
+ /** Optional RSS feed configuration for this collection */
45
+ feed?: FeedConfig;
46
+ }
47
+ export interface InkwellOptions {
48
+ /** Named content collections keyed by collection name */
49
+ collections: Record<string, CollectionConfig>;
50
+ }
26
51
  export interface Content {
27
52
  title: string;
28
53
  slug: string;
29
- date: string;
54
+ /** Full URL path (basePath + slug), e.g. "/blog/hello-world" */
55
+ path: string;
56
+ /** Date parsed as UTC */
57
+ date: Date;
30
58
  draft: boolean;
59
+ description: string;
31
60
  /** Relative directory path within the content source */
32
61
  directory: string;
33
- /** All frontmatter key-value pairs (excluding title, slug, date, draft) */
62
+ /** All frontmatter key-value pairs not covered by other fields */
34
63
  meta: Record<string, unknown>;
35
64
  /** Lazy-load the rendered HTML for this content item */
36
65
  getHtml: () => Promise<string>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IAClC,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,OAAO,CAAA;IACd,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACtB;AAED,MAAM,WAAW,cAAc;IAC9B,wDAAwD;IACxD,YAAY,EAAE,MAAM,CAAA;IACpB,+BAA+B;IAC/B,YAAY,EAAE,MAAM,CAAA;IACpB,yDAAyD;IACzD,gBAAgB,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,iBAAiB;IACjC,WAAW,EAAE,kBAAkB,CAAA;IAC/B,QAAQ,EAAE,MAAM,CAAA;IAChB,kEAAkE;IAClE,aAAa,EAAE,MAAM,CAAA;IACrB,uDAAuD;IACvD,IAAI,EAAE,MAAM,CAAA;IACZ,kDAAkD;IAClD,MAAM,EAAE,cAAc,EAAE,CAAA;CACxB;AAED,MAAM,WAAW,OAAO;IACvB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,OAAO,CAAA;IACd,wDAAwD;IACxD,SAAS,EAAE,MAAM,CAAA;IACjB,2EAA2E;IAC3E,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7B,wDAAwD;IACxD,OAAO,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAA;CAC9B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IAClC,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,OAAO,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACtB;AAED,MAAM,WAAW,cAAc;IAC9B,wDAAwD;IACxD,YAAY,EAAE,MAAM,CAAA;IACpB,+BAA+B;IAC/B,YAAY,EAAE,MAAM,CAAA;IACpB,yDAAyD;IACzD,gBAAgB,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,iBAAiB;IACjC,WAAW,EAAE,kBAAkB,CAAA;IAC/B,QAAQ,EAAE,MAAM,CAAA;IAChB,kEAAkE;IAClE,aAAa,EAAE,MAAM,CAAA;IACrB,uDAAuD;IACvD,IAAI,EAAE,MAAM,CAAA;IACZ,kDAAkD;IAClD,MAAM,EAAE,cAAc,EAAE,CAAA;CACxB;AAED,MAAM,WAAW,UAAU;IAC1B,wDAAwD;IACxD,UAAU,EAAE,MAAM,CAAA;IAClB,yCAAyC;IACzC,SAAS,EAAE,MAAM,CAAA;IACjB,yEAAyE;IACzE,OAAO,EAAE,MAAM,CAAA;IACf,mDAAmD;IACnD,QAAQ,EAAE,MAAM,CAAA;IAChB,sEAAsE;IACtE,eAAe,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,gBAAgB;IAChC,sEAAsE;IACtE,WAAW,EAAE,MAAM,CAAA;IACnB,yEAAyE;IACzE,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,0DAA0D;IAC1D,IAAI,CAAC,EAAE,UAAU,CAAA;CACjB;AAED,MAAM,WAAW,cAAc;IAC9B,yDAAyD;IACzD,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;CAC7C;AAED,MAAM,WAAW,OAAO;IACvB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,gEAAgE;IAChE,IAAI,EAAE,MAAM,CAAA;IACZ,yBAAyB;IACzB,IAAI,EAAE,IAAI,CAAA;IACV,KAAK,EAAE,OAAO,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;IACnB,wDAAwD;IACxD,SAAS,EAAE,MAAM,CAAA;IACjB,kEAAkE;IAClE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7B,wDAAwD;IACxD,OAAO,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAA;CAC9B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aaronellington/vite-plugin-inkwell",
3
- "version": "0.0.8",
3
+ "version": "0.2.0",
4
4
  "description": "A Vite plugin that transforms directories of markdown files into typed, lazy-loaded content collections with frontmatter parsing, asset hashing, and HMR.",
5
5
  "license": "MIT",
6
6
  "author": "Aaron Ellington",