chalknotes 1.0.2 → 1.0.4

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/README.md CHANGED
@@ -91,18 +91,18 @@ module.exports = {
91
91
 
92
92
  ## 🧩 Plugin System
93
93
 
94
- ChalkNotes features a powerful plugin architecture with inline syntax parsing. Simply add plugin syntax anywhere in your Notion content using the `{{PluginName[params]}}` format:
94
+ ChalkNotes features a powerful plugin architecture with inline syntax parsing. Simply add plugin syntax anywhere in your Notion content using the `%%PluginName[params]` format:
95
95
 
96
96
  ### Built-in Plugins
97
97
 
98
98
  ```markdown
99
- {{CommentSection}} - Add a comment section
100
- {{TableOfContents}} - Generate table of contents
101
- {{ReadingTime}} - Show estimated reading time
102
- {{Share[twitter,linkedin]}} - Add share buttons
103
- {{CodePen[pen-id]}} - Embed CodePen
104
- {{Tweet[tweet-id]}} - Embed Twitter tweets
105
- {{YouTube[video-id]}} - Embed YouTube videos
99
+ %%CommentSection - Add a comment section
100
+ %%TableOfContents - Generate table of contents
101
+ %%ReadingTime - Show estimated reading time
102
+ %%Share[twitter,linkedin] - Add share buttons
103
+ %%CodePen[pen-id] - Embed CodePen
104
+ %%Tweet[tweet-id] - Embed Twitter tweets
105
+ %%YouTube[video-id] - Embed YouTube videos
106
106
  ```
107
107
 
108
108
  ### Custom Plugins
@@ -114,7 +114,7 @@ import { registerPlugin } from 'chalknotes';
114
114
 
115
115
  registerPlugin({
116
116
  name: 'CustomWidget',
117
- syntax: /\{\{CustomWidget\[([^\]]+)\]\}\}/g,
117
+ syntax: /%%CustomWidget\[([^\]]+)\]/g,
118
118
  render: (match, context) => {
119
119
  const config = match[1];
120
120
  return `<div class="custom-widget">${config}</div>`;
@@ -86,7 +86,7 @@ async function init(options = {}) {
86
86
  logger_1.Logger.info('3. Run "chalknotes scaffold" to generate your blog pages');
87
87
  logger_1.Logger.info('4. Start your development server to see your blog');
88
88
  logger_1.Logger.section('Built-in plugins available:');
89
- logger_1.Logger.info('Use {{CommentSection}}, {{TableOfContents}}, {{Share}}, {{ReadingTime}} in your Notion content');
89
+ logger_1.Logger.info('Use %%CommentSection, %%TableOfContents, %%Share, %%ReadingTime in your Notion content');
90
90
  }
91
91
  catch (error) {
92
92
  logger_1.Logger.error(`Initialization failed: ${error instanceof Error ? error.message : 'Unknown error'}`);
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ export declare class NotionClient {
7
7
  getPostBySlug(slug: string): Promise<BlogPost | null>;
8
8
  private extractPostMetadata;
9
9
  private getPageBlocks;
10
+ private getTableRows;
10
11
  private convertBlockToStructuredJSON;
11
12
  private extractPlainText;
12
13
  private slugify;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/notion/client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAe,MAAM,UAAU,CAAC;AAEjD,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,UAAU,CAAS;gBAEf,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IAKvC,WAAW,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAiClC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;YAqB7C,mBAAmB;YAgCnB,aAAa;IAsB3B,OAAO,CAAC,4BAA4B;IAsFpC,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,OAAO;CAMhB"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/notion/client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAe,MAAM,UAAU,CAAC;AAEjD,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,UAAU,CAAS;gBAEf,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IAKvC,WAAW,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAiClC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;YAqB7C,mBAAmB;YAgCnB,aAAa;YAsBb,YAAY;YAwBZ,4BAA4B;IAuG1C,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,OAAO;CAMhB"}
@@ -90,7 +90,7 @@ class NotionClient {
90
90
  });
91
91
  const blocks = [];
92
92
  for (const block of response.results) {
93
- const convertedBlock = this.convertBlockToStructuredJSON(block);
93
+ const convertedBlock = await this.convertBlockToStructuredJSON(block);
94
94
  if (convertedBlock) {
95
95
  blocks.push(convertedBlock);
96
96
  }
@@ -101,7 +101,27 @@ class NotionClient {
101
101
  throw new Error(`Failed to fetch blocks for page ${pageId}: ${error instanceof Error ? error.message : 'Unknown error'}`);
102
102
  }
103
103
  }
104
- convertBlockToStructuredJSON(block) {
104
+ async getTableRows(tableId) {
105
+ try {
106
+ const response = await this.client.blocks.children.list({
107
+ block_id: tableId,
108
+ page_size: 100
109
+ });
110
+ const rows = [];
111
+ for (const row of response.results) {
112
+ if (row.type === 'table_row') {
113
+ const cells = row.table_row.cells.map((cell) => cell.map((text) => text.plain_text));
114
+ rows.push({ cells });
115
+ }
116
+ }
117
+ return rows;
118
+ }
119
+ catch (error) {
120
+ console.warn(`Failed to fetch table rows for ${tableId}:`, error);
121
+ return [];
122
+ }
123
+ }
124
+ async convertBlockToStructuredJSON(block) {
105
125
  const base = { type: block.type };
106
126
  try {
107
127
  switch (block.type) {
@@ -160,8 +180,22 @@ class NotionClient {
160
180
  case 'table_of_contents':
161
181
  case 'bookmark':
162
182
  case 'equation':
163
- case 'table':
164
183
  return { ...base };
184
+ case 'table': {
185
+ const table = block.table;
186
+ const tableWidth = table.table_width;
187
+ const hasColumnHeader = table.has_column_header;
188
+ const hasRowHeader = table.has_row_header;
189
+ // Get table rows
190
+ const rows = await this.getTableRows(block.id);
191
+ return {
192
+ ...base,
193
+ tableWidth,
194
+ hasColumnHeader,
195
+ hasRowHeader,
196
+ rows
197
+ };
198
+ }
165
199
  default:
166
200
  return {
167
201
  ...base,
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/notion/client.ts"],"names":[],"mappings":";;;AAAA,6CAA0C;AAG1C,MAAa,YAAY;IAIvB,YAAY,KAAa,EAAE,UAAkB;QAC3C,IAAI,CAAC,MAAM,GAAG,IAAI,eAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAC1C,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,WAAW;QACf,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC;gBACjD,WAAW,EAAE,IAAI,CAAC,UAAU;gBAC5B,MAAM,EAAE;oBACN,QAAQ,EAAE,WAAW;oBACrB,QAAQ,EAAE;wBACR,MAAM,EAAE,IAAI;qBACb;iBACF;gBACD,KAAK,EAAE;oBACL;wBACE,QAAQ,EAAE,SAAS;wBACnB,SAAS,EAAE,YAAY;qBACxB;iBACF;aACF,CAAC,CAAC;YAEH,MAAM,KAAK,GAAe,EAAE,CAAC;YAE7B,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACpC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;gBAClD,IAAI,IAAI,EAAE,CAAC;oBACT,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACnB,CAAC;YACH,CAAC;YAED,OAAO,KAAK,CAAC;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,sCAAsC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;QACpH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,IAAY;QAC9B,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;YACvC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;YAE9C,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,OAAO,IAAI,CAAC;YACd,CAAC;YAED,yBAAyB;YACzB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAE3D,OAAO;gBACL,GAAG,IAAI;gBACP,MAAM;aACP,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,MAAM,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;QACjH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,IAAS;QACzC,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAC1E,MAAM,KAAK,GAAG,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC;YAEpD,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,IAAI,CAAC;YACd,CAAC;YAED,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAEjC,8BAA8B;YAC9B,MAAM,mBAAmB,GAAG,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YACzF,MAAM,WAAW,GAAG,mBAAmB,EAAE,IAAI,EAAE,KAAK,CAAC;YAErD,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAC7C,MAAM,IAAI,GAAG,YAAY,EAAE,YAAY,EAAE,GAAG,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAE3E,OAAO;gBACL,KAAK;gBACL,IAAI;gBACJ,YAAY,EAAE,IAAI,CAAC,EAAE;gBACrB,MAAM,EAAE,EAAE,EAAE,iDAAiD;gBAC7D,WAAW;gBACX,IAAI;aACL,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,wCAAwC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;YACjH,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,MAAc;QACxC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACtD,QAAQ,EAAE,MAAM;gBAChB,SAAS,EAAE,GAAG;aACf,CAAC,CAAC;YAEH,MAAM,MAAM,GAAkB,EAAE,CAAC;YAEjC,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACrC,MAAM,cAAc,GAAG,IAAI,CAAC,4BAA4B,CAAC,KAAK,CAAC,CAAC;gBAChE,IAAI,cAAc,EAAE,CAAC;oBACnB,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBAC9B,CAAC;YACH,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,mCAAmC,MAAM,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;QAC5H,CAAC;IACH,CAAC;IAEO,4BAA4B,CAAC,KAAU;QAC7C,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;QAElC,IAAI,CAAC;YACH,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;gBACnB,KAAK,WAAW;oBACd,OAAO;wBACL,GAAG,IAAI;wBACP,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC;wBACtD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS;qBACpC,CAAC;gBAEJ,KAAK,WAAW,CAAC;gBACjB,KAAK,WAAW,CAAC;gBACjB,KAAK,WAAW;oBACd,OAAO;wBACL,GAAG,IAAI;wBACP,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC;wBACxD,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS;qBACtC,CAAC;gBAEJ,KAAK,oBAAoB,CAAC;gBAC1B,KAAK,oBAAoB;oBACvB,OAAO;wBACL,GAAG,IAAI;wBACP,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC;wBACxD,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS;qBACtC,CAAC;gBAEJ,KAAK,OAAO,CAAC,CAAC,CAAC;oBACb,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;oBAC1B,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;oBAC5E,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBACrD,OAAO;wBACL,GAAG,IAAI;wBACP,QAAQ,EAAE,GAAG;wBACb,OAAO;wBACP,GAAG,EAAE,OAAO,IAAI,wBAAwB;qBACzC,CAAC;gBACJ,CAAC;gBAED,KAAK,OAAO;oBACV,OAAO;wBACL,GAAG,IAAI;wBACP,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC;wBAClD,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,SAAS;qBAChC,CAAC;gBAEJ,KAAK,MAAM;oBACT,OAAO;wBACL,GAAG,IAAI;wBACP,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;wBACjD,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,IAAI,MAAM;qBACxC,CAAC;gBAEJ,KAAK,SAAS;oBACZ,OAAO,EAAE,GAAG,IAAI,EAAE,CAAC;gBAErB,KAAK,SAAS;oBACZ,OAAO;wBACL,GAAG,IAAI;wBACP,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;wBACpD,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS;qBAClC,CAAC;gBAEJ,KAAK,mBAAmB,CAAC;gBACzB,KAAK,UAAU,CAAC;gBAChB,KAAK,UAAU,CAAC;gBAChB,KAAK,OAAO;oBACV,OAAO,EAAE,GAAG,IAAI,EAAE,CAAC;gBAErB;oBACE,OAAO;wBACL,GAAG,IAAI;wBACP,WAAW,EAAE,IAAI;qBAClB,CAAC;YACN,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,mCAAmC,KAAK,CAAC,IAAI,GAAG,EAAE,KAAK,CAAC,CAAC;YACtE,OAAO;gBACL,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,WAAW,EAAE,IAAI;aAClB,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,gBAAgB,CAAC,WAAkB,EAAE;QAC3C,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAClD,CAAC;IAEO,OAAO,CAAC,GAAW;QACzB,OAAO,GAAG;aACP,WAAW,EAAE;aACb,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;aAC3B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAC7B,CAAC;CACF;AArND,oCAqNC"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/notion/client.ts"],"names":[],"mappings":";;;AAAA,6CAA0C;AAG1C,MAAa,YAAY;IAIvB,YAAY,KAAa,EAAE,UAAkB;QAC3C,IAAI,CAAC,MAAM,GAAG,IAAI,eAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAC1C,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,WAAW;QACf,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC;gBACjD,WAAW,EAAE,IAAI,CAAC,UAAU;gBAC5B,MAAM,EAAE;oBACN,QAAQ,EAAE,WAAW;oBACrB,QAAQ,EAAE;wBACR,MAAM,EAAE,IAAI;qBACb;iBACF;gBACD,KAAK,EAAE;oBACL;wBACE,QAAQ,EAAE,SAAS;wBACnB,SAAS,EAAE,YAAY;qBACxB;iBACF;aACF,CAAC,CAAC;YAEH,MAAM,KAAK,GAAe,EAAE,CAAC;YAE7B,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACpC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;gBAClD,IAAI,IAAI,EAAE,CAAC;oBACT,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACnB,CAAC;YACH,CAAC;YAED,OAAO,KAAK,CAAC;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,sCAAsC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;QACpH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,IAAY;QAC9B,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;YACvC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;YAE9C,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,OAAO,IAAI,CAAC;YACd,CAAC;YAED,yBAAyB;YACzB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAE3D,OAAO;gBACL,GAAG,IAAI;gBACP,MAAM;aACP,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,MAAM,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;QACjH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,IAAS;QACzC,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAC1E,MAAM,KAAK,GAAG,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC;YAEpD,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,IAAI,CAAC;YACd,CAAC;YAED,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAEjC,8BAA8B;YAC9B,MAAM,mBAAmB,GAAG,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YACzF,MAAM,WAAW,GAAG,mBAAmB,EAAE,IAAI,EAAE,KAAK,CAAC;YAErD,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAC7C,MAAM,IAAI,GAAG,YAAY,EAAE,YAAY,EAAE,GAAG,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAE3E,OAAO;gBACL,KAAK;gBACL,IAAI;gBACJ,YAAY,EAAE,IAAI,CAAC,EAAE;gBACrB,MAAM,EAAE,EAAE,EAAE,iDAAiD;gBAC7D,WAAW;gBACX,IAAI;aACL,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,wCAAwC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;YACjH,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,MAAc;QACxC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACtD,QAAQ,EAAE,MAAM;gBAChB,SAAS,EAAE,GAAG;aACf,CAAC,CAAC;YAEH,MAAM,MAAM,GAAkB,EAAE,CAAC;YAEjC,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACrC,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,4BAA4B,CAAC,KAAK,CAAC,CAAC;gBACtE,IAAI,cAAc,EAAE,CAAC;oBACnB,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBAC9B,CAAC;YACH,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,mCAAmC,MAAM,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;QAC5H,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,OAAe;QACxC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACtD,QAAQ,EAAE,OAAO;gBACjB,SAAS,EAAE,GAAG;aACf,CAAC,CAAC;YAEH,MAAM,IAAI,GAAG,EAAE,CAAC;YAChB,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACnC,IAAK,GAAW,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;oBACtC,MAAM,KAAK,GAAI,GAAW,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAW,EAAE,EAAE,CAC7D,IAAI,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CACzC,CAAC;oBACF,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;gBACvB,CAAC;YACH,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,kCAAkC,OAAO,GAAG,EAAE,KAAK,CAAC,CAAC;YAClE,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,4BAA4B,CAAC,KAAU;QACnD,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;QAElC,IAAI,CAAC;YACH,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;gBACnB,KAAK,WAAW;oBACd,OAAO;wBACL,GAAG,IAAI;wBACP,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC;wBACtD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS;qBACpC,CAAC;gBAEJ,KAAK,WAAW,CAAC;gBACjB,KAAK,WAAW,CAAC;gBACjB,KAAK,WAAW;oBACd,OAAO;wBACL,GAAG,IAAI;wBACP,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC;wBACxD,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS;qBACtC,CAAC;gBAEJ,KAAK,oBAAoB,CAAC;gBAC1B,KAAK,oBAAoB;oBACvB,OAAO;wBACL,GAAG,IAAI;wBACP,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC;wBACxD,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS;qBACtC,CAAC;gBAEJ,KAAK,OAAO,CAAC,CAAC,CAAC;oBACb,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;oBAC1B,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;oBAC5E,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBACrD,OAAO;wBACL,GAAG,IAAI;wBACP,QAAQ,EAAE,GAAG;wBACb,OAAO;wBACP,GAAG,EAAE,OAAO,IAAI,wBAAwB;qBACzC,CAAC;gBACJ,CAAC;gBAED,KAAK,OAAO;oBACV,OAAO;wBACL,GAAG,IAAI;wBACP,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC;wBAClD,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,SAAS;qBAChC,CAAC;gBAEJ,KAAK,MAAM;oBACT,OAAO;wBACL,GAAG,IAAI;wBACP,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;wBACjD,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,IAAI,MAAM;qBACxC,CAAC;gBAEJ,KAAK,SAAS;oBACZ,OAAO,EAAE,GAAG,IAAI,EAAE,CAAC;gBAErB,KAAK,SAAS;oBACZ,OAAO;wBACL,GAAG,IAAI;wBACP,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;wBACpD,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS;qBAClC,CAAC;gBAEJ,KAAK,mBAAmB,CAAC;gBACzB,KAAK,UAAU,CAAC;gBAChB,KAAK,UAAU;oBACb,OAAO,EAAE,GAAG,IAAI,EAAE,CAAC;gBAErB,KAAK,OAAO,CAAC,CAAC,CAAC;oBACb,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;oBAC1B,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,CAAC;oBACrC,MAAM,eAAe,GAAG,KAAK,CAAC,iBAAiB,CAAC;oBAChD,MAAM,YAAY,GAAG,KAAK,CAAC,cAAc,CAAC;oBAE1C,iBAAiB;oBACjB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;oBAE/C,OAAO;wBACL,GAAG,IAAI;wBACP,UAAU;wBACV,eAAe;wBACf,YAAY;wBACZ,IAAI;qBACL,CAAC;gBACJ,CAAC;gBAED;oBACE,OAAO;wBACL,GAAG,IAAI;wBACP,WAAW,EAAE,IAAI;qBAClB,CAAC;YACN,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,mCAAmC,KAAK,CAAC,IAAI,GAAG,EAAE,KAAK,CAAC,CAAC;YACtE,OAAO;gBACL,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,WAAW,EAAE,IAAI;aAClB,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,gBAAgB,CAAC,WAAkB,EAAE;QAC3C,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAClD,CAAC;IAEO,OAAO,CAAC,GAAW;QACzB,OAAO,GAAG;aACP,WAAW,EAAE;aACb,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;aAC3B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAC7B,CAAC;CACF;AA9PD,oCA8PC"}
@@ -10,8 +10,8 @@ class PluginParser {
10
10
  }
11
11
  parseContent(content, context) {
12
12
  let parsedContent = content;
13
- // Find all plugin syntax in the content - using {{PluginName[params]}} syntax
14
- const pluginRegex = /\{\{(\w+)(?:\[([^\]]*)\])?\}\}/g;
13
+ // Find all plugin syntax in the content - using %%PluginName[params] syntax
14
+ const pluginRegex = /%%(\w+)(?:\[([^\]]*)\])?/g;
15
15
  let match;
16
16
  while ((match = pluginRegex.exec(content)) !== null) {
17
17
  const [fullMatch, pluginName, parameters] = match;
@@ -50,7 +50,7 @@ exports.PluginParser = PluginParser;
50
50
  exports.builtInPlugins = [
51
51
  {
52
52
  name: 'CodePen',
53
- syntax: /\{\{CodePen\[([^\]]+)\]\}\}/g,
53
+ syntax: /%%CodePen\[([^\]]+)\]/g,
54
54
  render: (match, context) => {
55
55
  const penId = match[1];
56
56
  return `<iframe height="300" style="width: 100%;" scrolling="no" title="CodePen Embed" src="https://codepen.io/embed/${penId}?height=300&theme-id=dark&default-tab=result" frameborder="no" loading="lazy" allowtransparency="true" allowfullscreen="true"></iframe>`;
@@ -58,7 +58,7 @@ exports.builtInPlugins = [
58
58
  },
59
59
  {
60
60
  name: 'Tweet',
61
- syntax: /\{\{Tweet\[([^\]]+)\]\}\}/g,
61
+ syntax: /%%Tweet\[([^\]]+)\]/g,
62
62
  render: (match, context) => {
63
63
  const tweetId = match[1];
64
64
  return `<div class="tweet-embed" data-tweet-id="${tweetId}">
@@ -70,15 +70,15 @@ exports.builtInPlugins = [
70
70
  },
71
71
  {
72
72
  name: 'YouTube',
73
- syntax: /\{\{YouTube\[([^\]]+)\]\}\}/g,
73
+ syntax: /%%YouTube\[([^\]]+)\]/g,
74
74
  render: (match, context) => {
75
75
  const videoId = match[1];
76
- return `<div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; background: #000;"><iframe src="https://www.youtube.com/embed/${videoId}" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;" frameborder="0" allowfullscreen></iframe></div>`;
76
+ return `<div class="youtube-embed" style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; background: #000;"><iframe src="https://www.youtube.com/embed/${videoId}" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;" frameborder="0" allowfullscreen></iframe></div>`;
77
77
  }
78
78
  },
79
79
  {
80
80
  name: 'Gallery',
81
- syntax: /\{\{Gallery\[([^\]]+)\]\}\}/g,
81
+ syntax: /%%Gallery\[([^\]]+)\]/g,
82
82
  render: (match, context) => {
83
83
  const folder = match[1];
84
84
  // This would need to be implemented based on your image storage solution
@@ -90,7 +90,7 @@ exports.builtInPlugins = [
90
90
  },
91
91
  {
92
92
  name: 'CommentSection',
93
- syntax: /\{\{CommentSection(?:\[([^\]]*)\])?\}\}/g,
93
+ syntax: /%%CommentSection(?:\[([^\]]*)\])?/g,
94
94
  render: (match, context) => {
95
95
  const config = match[1] || '';
96
96
  return `<div class="comment-section" data-config="${config}">
@@ -104,7 +104,7 @@ exports.builtInPlugins = [
104
104
  },
105
105
  {
106
106
  name: 'TableOfContents',
107
- syntax: /\{\{TableOfContents(?:\[([^\]]*)\])?\}\}/g,
107
+ syntax: /%%TableOfContents(?:\[([^\]]*)\])?/g,
108
108
  render: (match, context) => {
109
109
  // Generate TOC from post headings
110
110
  const headings = context.post.blocks
@@ -130,7 +130,7 @@ exports.builtInPlugins = [
130
130
  },
131
131
  {
132
132
  name: 'ReadingTime',
133
- syntax: /\{\{ReadingTime(?:\[([^\]]*)\])?\}\}/g,
133
+ syntax: /%%ReadingTime(?:\[([^\]]*)\])?/g,
134
134
  render: (match, context) => {
135
135
  const wordsPerMinute = 200;
136
136
  const textContent = context.post.blocks
@@ -147,7 +147,7 @@ exports.builtInPlugins = [
147
147
  },
148
148
  {
149
149
  name: 'Share',
150
- syntax: /\{\{Share(?:\[([^\]]*)\])?\}\}/g,
150
+ syntax: /%%Share(?:\[([^\]]*)\])?/g,
151
151
  render: (match, context) => {
152
152
  const platforms = match[1] ? match[1].split(',') : ['twitter', 'linkedin', 'facebook'];
153
153
  const title = encodeURIComponent(context.post.title);
@@ -1 +1 @@
1
- {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/plugins/parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/plugins/parser.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../src/templates/components.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE7C,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,iBAAiB,GAAG,MAAM,CAEtE;AAubD,wBAAgB,kBAAkB,IAAI,MAAM,CAsI3C"}
1
+ {"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../src/templates/components.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE7C,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,iBAAiB,GAAG,MAAM,CAEtE;AAwlBD,wBAAgB,kBAAkB,IAAI,MAAM,CAsI3C"}
@@ -8,7 +8,9 @@ function generateNotionRenderer(vars) {
8
8
  function generateAppRouterRenderer(vars) {
9
9
  const imageImport = 'import Image from "next/image";';
10
10
  if (vars.hasTailwind) {
11
- return `${vars.hasTypeScript ? 'import React from "react";' : 'import React from "react";'}
11
+ return `"use client";
12
+
13
+ ${vars.hasTypeScript ? 'import React from "react";' : 'import React from "react";'}
12
14
  ${imageImport}
13
15
 
14
16
  interface NotionBlock {
@@ -21,6 +23,13 @@ interface NotionBlock {
21
23
  code?: string;
22
24
  language?: string;
23
25
  unsupported?: boolean;
26
+ // Table properties
27
+ tableWidth?: number;
28
+ hasColumnHeader?: boolean;
29
+ hasRowHeader?: boolean;
30
+ rows?: {
31
+ cells: string[][];
32
+ }[];
24
33
  }
25
34
 
26
35
  interface NotionRendererProps {
@@ -34,7 +43,10 @@ export default function NotionRenderer({ blocks }: NotionRendererProps) {
34
43
  setIsClient(true);
35
44
 
36
45
  // Load Twitter widgets script if tweet embeds exist
37
- if (typeof window !== 'undefined' && !window.twttr) {
46
+ if (
47
+ typeof window !== 'undefined' &&
48
+ !(window as typeof window & { twttr?: any }).twttr
49
+ ) {
38
50
  const script = document.createElement('script');
39
51
  script.src = 'https://platform.twitter.com/widgets.js';
40
52
  script.async = true;
@@ -72,13 +84,19 @@ export default function NotionRenderer({ blocks }: NotionRendererProps) {
72
84
 
73
85
  case "paragraph":
74
86
  return (
75
- <p key={i} className="leading-relaxed mb-4 text-gray-700 dark:text-gray-300">
76
- {block.text && block.text.includes('<') ? (
87
+ <div key={i} className="leading-relaxed mb-4 text-gray-700 dark:text-gray-300">
88
+ {block.text && (block.text.includes('tweet-embed') || block.text.includes('youtube-embed') || block.text.includes('reading-time') || block.text.includes('table-of-contents') || block.text.includes('share-section') || block.text.includes('comment-section') || block.text.includes('image-gallery')) ? (
89
+ isClient ? (
90
+ <div className="flex w-full justify-center" dangerouslySetInnerHTML={{ __html: block.text }} />
91
+ ) : (
92
+ <div className="embed-placeholder">Loading content...</div>
93
+ )
94
+ ) : block.text && block.text.includes('<') ? (
77
95
  <span dangerouslySetInnerHTML={{ __html: block.text }} />
78
96
  ) : (
79
- block.text
97
+ <p>{block.text}</p>
80
98
  )}
81
- </p>
99
+ </div>
82
100
  );
83
101
 
84
102
  case "bulleted_list_item":
@@ -117,6 +135,25 @@ export default function NotionRenderer({ blocks }: NotionRendererProps) {
117
135
  </pre>
118
136
  );
119
137
 
138
+ case "table":
139
+ return (
140
+ <div key={i} className="overflow-x-auto my-6">
141
+ <table className="min-w-full border border-gray-300 dark:border-gray-600 rounded-lg">
142
+ <tbody>
143
+ {block.rows?.map((row, rowIndex) => (
144
+ <tr key={rowIndex} className={rowIndex === 0 && block.hasColumnHeader ? "bg-gray-50 dark:bg-gray-800 font-semibold" : ""}>
145
+ {row.cells.map((cell, cellIndex) => (
146
+ <td key={cellIndex} className="border border-gray-300 dark:border-gray-600 px-4 py-2 text-sm">
147
+ {cell.join(' ')}
148
+ </td>
149
+ ))}
150
+ </tr>
151
+ ))}
152
+ </tbody>
153
+ </table>
154
+ </div>
155
+ );
156
+
120
157
  case "image":
121
158
  return (
122
159
  <figure key={i} className="flex flex-col justify-center items-center my-8">
@@ -154,7 +191,9 @@ export default function NotionRenderer({ blocks }: NotionRendererProps) {
154
191
  }
155
192
  // CSS Modules version
156
193
  if (vars.cssFramework === 'css-modules') {
157
- return `${vars.hasTypeScript ? 'import React from "react";' : ''}
194
+ return `"use client";
195
+
196
+ ${vars.hasTypeScript ? 'import React from "react";' : 'import React from "react";'}
158
197
  ${imageImport}
159
198
  import styles from './NotionRenderer.module.css';
160
199
 
@@ -168,6 +207,13 @@ interface NotionBlock {
168
207
  code?: string;
169
208
  language?: string;
170
209
  unsupported?: boolean;
210
+ // Table properties
211
+ tableWidth?: number;
212
+ hasColumnHeader?: boolean;
213
+ hasRowHeader?: boolean;
214
+ rows?: {
215
+ cells: string[][];
216
+ }[];
171
217
  }
172
218
 
173
219
  interface NotionRendererProps {
@@ -175,6 +221,24 @@ interface NotionRendererProps {
175
221
  }
176
222
 
177
223
  export default function NotionRenderer({ blocks }: NotionRendererProps) {
224
+ const [isClient, setIsClient] = React.useState(false);
225
+
226
+ React.useEffect(() => {
227
+ setIsClient(true);
228
+
229
+ // Load Twitter widgets script if tweet embeds exist
230
+ if (
231
+ typeof window !== 'undefined' &&
232
+ !(window as typeof window & { twttr?: any }).twttr
233
+ ) {
234
+ const script = document.createElement('script');
235
+ script.src = 'https://platform.twitter.com/widgets.js';
236
+ script.async = true;
237
+ script.charset = 'utf-8';
238
+ document.head.appendChild(script);
239
+ }
240
+ }, []);
241
+
178
242
  if (!blocks || blocks.length === 0) return null;
179
243
 
180
244
  return (
@@ -204,9 +268,19 @@ export default function NotionRenderer({ blocks }: NotionRendererProps) {
204
268
 
205
269
  case "paragraph":
206
270
  return (
207
- <p key={i} className={styles.paragraph}>
208
- {block.text}
209
- </p>
271
+ <div key={i} className={styles.paragraph}>
272
+ {block.text && (block.text.includes('tweet-embed') || block.text.includes('youtube-embed') || block.text.includes('reading-time') || block.text.includes('table-of-contents') || block.text.includes('share-section') || block.text.includes('comment-section') || block.text.includes('image-gallery')) ? (
273
+ isClient ? (
274
+ <div className={styles.pluginContent} dangerouslySetInnerHTML={{ __html: block.text }} />
275
+ ) : (
276
+ <div className={styles.embedPlaceholder}>Loading content...</div>
277
+ )
278
+ ) : block.text && block.text.includes('<') ? (
279
+ <span dangerouslySetInnerHTML={{ __html: block.text }} />
280
+ ) : (
281
+ <p>{block.text}</p>
282
+ )}
283
+ </div>
210
284
  );
211
285
 
212
286
  case "quote":
@@ -227,6 +301,25 @@ export default function NotionRenderer({ blocks }: NotionRendererProps) {
227
301
  </pre>
228
302
  );
229
303
 
304
+ case "table":
305
+ return (
306
+ <div key={i} className={styles.tableContainer}>
307
+ <table className={styles.table}>
308
+ <tbody>
309
+ {block.rows?.map((row, rowIndex) => (
310
+ <tr key={rowIndex} className={rowIndex === 0 && block.hasColumnHeader ? styles.tableHeader : ""}>
311
+ {row.cells.map((cell, cellIndex) => (
312
+ <td key={cellIndex} className={styles.tableCell}>
313
+ {cell.join(' ')}
314
+ </td>
315
+ ))}
316
+ </tr>
317
+ ))}
318
+ </tbody>
319
+ </table>
320
+ </div>
321
+ );
322
+
230
323
  case "image":
231
324
  return (
232
325
  <figure key={i}>
@@ -262,7 +355,9 @@ export default function NotionRenderer({ blocks }: NotionRendererProps) {
262
355
  }`;
263
356
  }
264
357
  // Plain CSS/Styled Components version
265
- return `${vars.hasTypeScript ? 'import React from "react";' : ''}
358
+ return `"use client";
359
+
360
+ ${vars.hasTypeScript ? 'import React from "react";' : 'import React from "react";'}
266
361
  ${imageImport}
267
362
 
268
363
  interface NotionBlock {
@@ -275,6 +370,13 @@ interface NotionBlock {
275
370
  code?: string;
276
371
  language?: string;
277
372
  unsupported?: boolean;
373
+ // Table properties
374
+ tableWidth?: number;
375
+ hasColumnHeader?: boolean;
376
+ hasRowHeader?: boolean;
377
+ rows?: {
378
+ cells: string[][];
379
+ }[];
278
380
  }
279
381
 
280
382
  interface NotionRendererProps {
@@ -282,6 +384,24 @@ interface NotionRendererProps {
282
384
  }
283
385
 
284
386
  export default function NotionRenderer({ blocks }: NotionRendererProps) {
387
+ const [isClient, setIsClient] = React.useState(false);
388
+
389
+ React.useEffect(() => {
390
+ setIsClient(true);
391
+
392
+ // Load Twitter widgets script if tweet embeds exist
393
+ if (
394
+ typeof window !== 'undefined' &&
395
+ !(window as typeof window & { twttr?: any }).twttr
396
+ ) {
397
+ const script = document.createElement('script');
398
+ script.src = 'https://platform.twitter.com/widgets.js';
399
+ script.async = true;
400
+ script.charset = 'utf-8';
401
+ document.head.appendChild(script);
402
+ }
403
+ }, []);
404
+
285
405
  if (!blocks || blocks.length === 0) return null;
286
406
 
287
407
  return (
@@ -328,13 +448,23 @@ export default function NotionRenderer({ blocks }: NotionRendererProps) {
328
448
 
329
449
  case "paragraph":
330
450
  return (
331
- <p key={i} style={{
451
+ <div key={i} style={{
332
452
  lineHeight: '1.625',
333
453
  marginBottom: '1rem',
334
454
  color: '#374151'
335
455
  }}>
336
- {block.text}
337
- </p>
456
+ {block.text && (block.text.includes('tweet-embed') || block.text.includes('youtube-embed') || block.text.includes('reading-time') || block.text.includes('table-of-contents') || block.text.includes('share-section') || block.text.includes('comment-section') || block.text.includes('image-gallery')) ? (
457
+ isClient ? (
458
+ <div style={{ display: 'flex', width: '100%', justifyContent: 'center' }} dangerouslySetInnerHTML={{ __html: block.text }} />
459
+ ) : (
460
+ <div style={{ padding: '1rem', textAlign: 'center', color: '#6b7280' }}>Loading content...</div>
461
+ )
462
+ ) : block.text && block.text.includes('<') ? (
463
+ <span dangerouslySetInnerHTML={{ __html: block.text }} />
464
+ ) : (
465
+ <p>{block.text}</p>
466
+ )}
467
+ </div>
338
468
  );
339
469
 
340
470
  case "quote":
@@ -381,6 +511,37 @@ export default function NotionRenderer({ blocks }: NotionRendererProps) {
381
511
  </pre>
382
512
  );
383
513
 
514
+ case "table":
515
+ return (
516
+ <div key={i} style={{ overflowX: 'auto', marginTop: '1.5rem', marginBottom: '1.5rem' }}>
517
+ <table style={{
518
+ minWidth: '100%',
519
+ border: '1px solid #d1d5db',
520
+ borderRadius: '0.5rem',
521
+ borderCollapse: 'collapse'
522
+ }}>
523
+ <tbody>
524
+ {block.rows?.map((row, rowIndex) => (
525
+ <tr key={rowIndex} style={rowIndex === 0 && block.hasColumnHeader ? {
526
+ backgroundColor: '#f9fafb',
527
+ fontWeight: '600'
528
+ } : {}}>
529
+ {row.cells.map((cell, cellIndex) => (
530
+ <td key={cellIndex} style={{
531
+ border: '1px solid #d1d5db',
532
+ padding: '0.5rem 1rem',
533
+ fontSize: '0.875rem'
534
+ }}>
535
+ {cell.join(' ')}
536
+ </td>
537
+ ))}
538
+ </tr>
539
+ ))}
540
+ </tbody>
541
+ </table>
542
+ </div>
543
+ );
544
+
384
545
  case "image":
385
546
  return (
386
547
  <figure key={i} style={{ marginTop: '2rem', marginBottom: '2rem' }}>
@@ -1 +1 @@
1
- {"version":3,"file":"components.js","sourceRoot":"","sources":["../../src/templates/components.ts"],"names":[],"mappings":";;AAEA,wDAEC;AAubD,gDAsIC;AA/jBD,SAAgB,sBAAsB,CAAC,IAAuB;IAC5D,OAAO,yBAAyB,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC;AAED,SAAS,yBAAyB,CAAC,IAAuB;IACxD,MAAM,WAAW,GAAG,iCAAiC,CAAC;IAEtD,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,4BAA4B;EAC5F,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6IX,CAAC;IACD,CAAC;IAED,sBAAsB;IACtB,IAAI,IAAI,CAAC,YAAY,KAAK,aAAa,EAAE,CAAC;QACxC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,EAAE;EAClE,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwGX,CAAC;IACD,CAAC;IAED,sCAAsC;IACtC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,EAAE;EAChE,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6KX,CAAC;AACH,CAAC;AAED,SAAgB,kBAAkB;IAChC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoIP,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"components.js","sourceRoot":"","sources":["../../src/templates/components.ts"],"names":[],"mappings":";;AAEA,wDAEC;AAwlBD,gDAsIC;AAhuBD,SAAgB,sBAAsB,CAAC,IAAuB;IAC5D,OAAO,yBAAyB,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC;AAED,SAAS,yBAAyB,CAAC,IAAuB;IACxD,MAAM,WAAW,GAAG,iCAAiC,CAAC;IAEtD,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,OAAO;;EAET,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,4BAA4B;EAChF,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgLX,CAAC;IACD,CAAC;IAED,sBAAsB;IACtB,IAAI,IAAI,CAAC,YAAY,KAAK,aAAa,EAAE,CAAC;QACxC,OAAO;;EAET,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,4BAA4B;EAChF,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8JX,CAAC;IACD,CAAC;IAED,sCAAsC;IACtC,OAAO;;EAEP,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,4BAA4B;EAChF,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+OX,CAAC;AACH,CAAC;AAED,SAAgB,kBAAkB;IAChC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoIP,CAAC;AACH,CAAC"}
@@ -33,6 +33,13 @@ export interface NotionBlock {
33
33
  code?: string;
34
34
  language?: string;
35
35
  unsupported?: boolean;
36
+ tableWidth?: number;
37
+ hasColumnHeader?: boolean;
38
+ hasRowHeader?: boolean;
39
+ rows?: TableRow[];
40
+ }
41
+ export interface TableRow {
42
+ cells: string[][];
36
43
  }
37
44
  export interface BlogPost {
38
45
  title: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,QAAQ,GAAG,SAAS,GAAG,KAAK,CAAC;IACpC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,CAAC,EAAE;QACR,OAAO,EAAE,OAAO,CAAC;QACjB,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,aAAa,CAAC,EAAE;QACd,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAChC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAChC,CAAC;CACH;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;IACrB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,aAAa,EAAE,OAAO,CAAC;IACvB,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;CACjD;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,gBAAgB,CAAC;IACzB,IAAI,EAAE,QAAQ,CAAC;CAChB;AAED,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,CAAC,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,aAAa,KAAK,MAAM,CAAC;CACrE;AAED,MAAM,WAAW,iBAAiB;IAChC,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,OAAO,CAAC;IACvB,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,UAAU,GAAG,mBAAmB,GAAG,aAAa,GAAG,MAAM,CAAC;CACzE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,QAAQ,GAAG,SAAS,GAAG,KAAK,CAAC;IACpC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,CAAC,EAAE;QACR,OAAO,EAAE,OAAO,CAAC;QACjB,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,aAAa,CAAC,EAAE;QACd,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAChC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAChC,CAAC;CACH;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;IACrB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,aAAa,EAAE,OAAO,CAAC;IACvB,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;CACjD;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,gBAAgB,CAAC;IACzB,IAAI,EAAE,QAAQ,CAAC;CAChB;AAED,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,CAAC,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,aAAa,KAAK,MAAM,CAAC;CACrE;AAED,MAAM,WAAW,iBAAiB;IAChC,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,OAAO,CAAC;IACvB,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,UAAU,GAAG,mBAAmB,GAAG,aAAa,GAAG,MAAM,CAAC;CACzE"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "chalknotes",
3
- "version": "1.0.2",
3
+ "version": "1.0.4",
4
4
  "description": "Transform your Notion pages into beautiful developer blogs with intelligent framework detection and plugin architecture",
5
5
  "main": "dist/index.js",
6
6
  "bin": {