bunki 0.13.1 → 0.14.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.
package/dist/cli.js CHANGED
@@ -33111,6 +33111,27 @@ async function parseMarkdownFile(filePath) {
33111
33111
  lat: data.location.lat,
33112
33112
  lng: data.location.lng
33113
33113
  }
33114
+ },
33115
+ ...data.category && { category: data.category },
33116
+ ...data.business && {
33117
+ business: {
33118
+ type: data.business.type,
33119
+ name: data.business.name,
33120
+ address: data.business.address,
33121
+ lat: data.business.lat,
33122
+ lng: data.business.lng,
33123
+ ...data.business.cuisine && { cuisine: data.business.cuisine },
33124
+ ...data.business.priceRange && {
33125
+ priceRange: data.business.priceRange
33126
+ },
33127
+ ...data.business.telephone && {
33128
+ telephone: data.business.telephone
33129
+ },
33130
+ ...data.business.url && { url: data.business.url },
33131
+ ...data.business.openingHours && {
33132
+ openingHours: data.business.openingHours
33133
+ }
33134
+ }
33114
33135
  }
33115
33136
  };
33116
33137
  return { post, error: null };
@@ -33474,6 +33495,10 @@ class SiteGenerator {
33474
33495
  const tags = {};
33475
33496
  posts.forEach((post) => {
33476
33497
  post.tagSlugs = {};
33498
+ const imageUrl = extractFirstImageUrl(post.html, this.options.config.baseUrl);
33499
+ if (imageUrl) {
33500
+ post.image = imageUrl;
33501
+ }
33477
33502
  post.tags.forEach((tagName) => {
33478
33503
  const tagSlug = import_slugify.default(tagName, { lower: true, strict: true });
33479
33504
  post.tagSlugs[tagName] = tagSlug;
package/dist/index.js CHANGED
@@ -30729,6 +30729,27 @@ async function parseMarkdownFile(filePath) {
30729
30729
  lat: data.location.lat,
30730
30730
  lng: data.location.lng
30731
30731
  }
30732
+ },
30733
+ ...data.category && { category: data.category },
30734
+ ...data.business && {
30735
+ business: {
30736
+ type: data.business.type,
30737
+ name: data.business.name,
30738
+ address: data.business.address,
30739
+ lat: data.business.lat,
30740
+ lng: data.business.lng,
30741
+ ...data.business.cuisine && { cuisine: data.business.cuisine },
30742
+ ...data.business.priceRange && {
30743
+ priceRange: data.business.priceRange
30744
+ },
30745
+ ...data.business.telephone && {
30746
+ telephone: data.business.telephone
30747
+ },
30748
+ ...data.business.url && { url: data.business.url },
30749
+ ...data.business.openingHours && {
30750
+ openingHours: data.business.openingHours
30751
+ }
30752
+ }
30732
30753
  }
30733
30754
  };
30734
30755
  return { post, error: null };
@@ -31421,6 +31442,10 @@ class SiteGenerator {
31421
31442
  const tags = {};
31422
31443
  posts.forEach((post) => {
31423
31444
  post.tagSlugs = {};
31445
+ const imageUrl = extractFirstImageUrl(post.html, this.options.config.baseUrl);
31446
+ if (imageUrl) {
31447
+ post.image = imageUrl;
31448
+ }
31424
31449
  post.tags.forEach((tagName) => {
31425
31450
  const tagSlug = import_slugify.default(tagName, { lower: true, strict: true });
31426
31451
  post.tagSlugs[tagName] = tagSlug;
package/dist/types.d.ts CHANGED
@@ -11,6 +11,32 @@ export interface Location {
11
11
  /** Longitude coordinate */
12
12
  lng: number;
13
13
  }
14
+ /**
15
+ * Business schema data for LocalBusiness structured data
16
+ * Includes location data for map display and geo coordinates
17
+ */
18
+ export interface Business {
19
+ /** Schema.org type (e.g., Restaurant, Bakery, CafeOrCoffeeShop) */
20
+ type: string;
21
+ /** Business name */
22
+ name: string;
23
+ /** Full address of the business */
24
+ address: string;
25
+ /** Latitude coordinate */
26
+ lat: number;
27
+ /** Longitude coordinate */
28
+ lng: number;
29
+ /** Cuisine type for restaurants (e.g., "Mexican, Oaxacan") */
30
+ cuisine?: string;
31
+ /** Price range (e.g., "$", "$$", "$$$") */
32
+ priceRange?: string;
33
+ /** Business phone number */
34
+ telephone?: string;
35
+ /** Business website URL */
36
+ url?: string;
37
+ /** Opening hours in schema.org format */
38
+ openingHours?: string;
39
+ }
14
40
  export interface Post {
15
41
  /** Title of the post */
16
42
  title: string;
@@ -32,6 +58,12 @@ export interface Post {
32
58
  html: string;
33
59
  /** Optional location data for map display */
34
60
  location?: Location;
61
+ /** Optional category for the post */
62
+ category?: string;
63
+ /** Optional business schema data for LocalBusiness structured data */
64
+ business?: Business;
65
+ /** Optional image URL (first image from post content, used for thumbnails and social sharing) */
66
+ image?: string;
35
67
  }
36
68
  /**
37
69
  * Configuration for CSS processing
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bunki",
3
- "version": "0.13.1",
3
+ "version": "0.14.0",
4
4
  "description": "An opinionated static site generator built with Bun featuring PostCSS integration and modern web development workflows",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",