nodoku-core 0.1.3 → 0.1.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.
Files changed (68) hide show
  1. package/{dist/esm → esm}/bin/generate-component-default-theme.js +0 -1
  2. package/{dist/esm → esm}/bin/generate-component-resolver.js +0 -1
  3. package/{dist/esm → esm}/bin/generate-content-schema.js +0 -1
  4. package/{dist/esm → esm}/bin/generate-skin-schema.js +0 -1
  5. package/{dist/esm → esm}/bin/import-load-hooks.js +0 -1
  6. package/{dist/esm → esm}/bin/manifest-loader.js +0 -1
  7. package/{dist/esm → esm}/bin/manifest.js +0 -1
  8. package/{dist/esm → esm}/bin/mustache/component-resolver.ts.hbs +2 -2
  9. package/{dist/esm → esm}/content/nd-content.js +2 -3
  10. package/{dist/esm → esm}/core/dummy-comp.jsx +2 -3
  11. package/esm/core/providers.js +1 -0
  12. package/{dist/esm → esm}/core/rendering-page-props.js +0 -1
  13. package/{dist/esm → esm}/core/rendering-page.jsx +6 -1
  14. package/{dist/esm → esm}/index.js +2 -3
  15. package/{dist/esm → esm}/providers/content/content-markdown-provider.js +20 -21
  16. package/{dist/esm → esm}/providers/skin/skin-yaml-provider.js +4 -2
  17. package/{dist/esm → esm}/skin/nd-skin.js +0 -1
  18. package/{dist/esm → esm}/theme-utils/extended-theme-style.js +0 -1
  19. package/{dist/esm → esm}/theme-utils/theme-merger.js +0 -1
  20. package/{dist/esm → esm}/theme-utils/theme-style.js +0 -1
  21. package/package.json +9 -15
  22. package/schemas/md-content-block-delimiter.json +26 -0
  23. package/{dist/types → types}/content/nd-content.d.ts +17 -17
  24. package/{dist/types → types}/core/providers.d.ts +2 -2
  25. package/{dist/types → types}/index.d.ts +2 -2
  26. package/LICENSE +0 -21
  27. package/README.md +0 -697
  28. package/dist/esm/bin/generate-component-default-theme.js.map +0 -1
  29. package/dist/esm/bin/generate-component-resolver.js.map +0 -1
  30. package/dist/esm/bin/generate-content-schema.js.map +0 -1
  31. package/dist/esm/bin/generate-skin-schema.js.map +0 -1
  32. package/dist/esm/bin/import-load-hooks.js.map +0 -1
  33. package/dist/esm/bin/manifest-loader.js.map +0 -1
  34. package/dist/esm/bin/manifest.js.map +0 -1
  35. package/dist/esm/content/nd-content.js.map +0 -1
  36. package/dist/esm/core/dummy-comp.jsx.map +0 -1
  37. package/dist/esm/core/providers.js +0 -2
  38. package/dist/esm/core/providers.js.map +0 -1
  39. package/dist/esm/core/rendering-page-props.js.map +0 -1
  40. package/dist/esm/core/rendering-page.jsx.map +0 -1
  41. package/dist/esm/index.js.map +0 -1
  42. package/dist/esm/providers/content/content-markdown-provider.js.map +0 -1
  43. package/dist/esm/providers/skin/skin-yaml-provider.js.map +0 -1
  44. package/dist/esm/skin/nd-skin.js.map +0 -1
  45. package/dist/esm/theme-utils/extended-theme-style.js.map +0 -1
  46. package/dist/esm/theme-utils/theme-merger.js.map +0 -1
  47. package/dist/esm/theme-utils/theme-style.js.map +0 -1
  48. /package/{dist/esm → esm}/bin/mustache/content-schema.json.hbs +0 -0
  49. /package/{dist/esm → esm}/bin/mustache/visual-schema.json.hbs +0 -0
  50. /package/{dist/schemas → schemas}/content-common-schema.json +0 -0
  51. /package/{dist/schemas → schemas}/manifest-schema.json +0 -0
  52. /package/{dist/schemas → schemas}/skin-common-schema.json +0 -0
  53. /package/{dist/types → types}/bin/generate-component-default-theme.d.ts +0 -0
  54. /package/{dist/types → types}/bin/generate-component-resolver.d.ts +0 -0
  55. /package/{dist/types → types}/bin/generate-content-schema.d.ts +0 -0
  56. /package/{dist/types → types}/bin/generate-skin-schema.d.ts +0 -0
  57. /package/{dist/types → types}/bin/import-load-hooks.d.ts +0 -0
  58. /package/{dist/types → types}/bin/manifest-loader.d.ts +0 -0
  59. /package/{dist/types → types}/bin/manifest.d.ts +0 -0
  60. /package/{dist/types → types}/core/dummy-comp.d.ts +0 -0
  61. /package/{dist/types → types}/core/rendering-page-props.d.ts +0 -0
  62. /package/{dist/types → types}/core/rendering-page.d.ts +0 -0
  63. /package/{dist/types → types}/providers/content/content-markdown-provider.d.ts +0 -0
  64. /package/{dist/types → types}/providers/skin/skin-yaml-provider.d.ts +0 -0
  65. /package/{dist/types → types}/skin/nd-skin.d.ts +0 -0
  66. /package/{dist/types → types}/theme-utils/extended-theme-style.d.ts +0 -0
  67. /package/{dist/types → types}/theme-utils/theme-merger.d.ts +0 -0
  68. /package/{dist/types → types}/theme-utils/theme-style.d.ts +0 -0
@@ -21,4 +21,3 @@ async function generateComponentDefaultTheme() {
21
21
  }));
22
22
  }
23
23
  await generateComponentDefaultTheme();
24
- //# sourceMappingURL=generate-component-default-theme.js.map
@@ -61,4 +61,3 @@ export function generateComponentResolver() {
61
61
  });
62
62
  }
63
63
  generateComponentResolver();
64
- //# sourceMappingURL=generate-component-resolver.js.map
@@ -28,4 +28,3 @@ export function generateContentSchema() {
28
28
  });
29
29
  }
30
30
  generateContentSchema();
31
- //# sourceMappingURL=generate-content-schema.js.map
@@ -186,4 +186,3 @@ export function generateSkinSchema() {
186
186
  });
187
187
  }
188
188
  generateSkinSchema();
189
- //# sourceMappingURL=generate-skin-schema.js.map
@@ -28,4 +28,3 @@ export async function load(url, context, nextLoad) {
28
28
  }
29
29
  return nextLoad(url, context, nextLoad);
30
30
  }
31
- //# sourceMappingURL=import-load-hooks.js.map
@@ -47,4 +47,3 @@ function loadComponentsByManifest(dir, moduleName) {
47
47
  }
48
48
  return undefined;
49
49
  }
50
- //# sourceMappingURL=manifest-loader.js.map
@@ -22,4 +22,3 @@ export class Manifest {
22
22
  this.moduleDir = moduleDir;
23
23
  }
24
24
  }
25
- //# sourceMappingURL=manifest.js.map
@@ -10,7 +10,7 @@ const components: Map<string, {compo: AsyncFunctionComponent, compoDef: NdCompon
10
10
  components.set("{{{name}}}", {compo: {{impl}}, compoDef: new NdComponentDefinition({{{numBlocks}}}, "{{{defaultThemeFile}}}")});
11
11
  {{/comps}}
12
12
 
13
- export function nodokuComponentResolver(componentName: string): Promise<{compo: AsyncFunctionComponent, compoDef: NdComponentDefinition}> {
13
+ export async function nodokuComponentResolver(componentName: string): Promise<{compo: AsyncFunctionComponent, compoDef: NdComponentDefinition}> {
14
14
  const f: {compo: AsyncFunctionComponent, compoDef: NdComponentDefinition} | undefined = components.get(componentName);
15
- return Promise.resolve(f ? f : {compo: DummyComp, compoDef: new NdComponentDefinition(1)});
15
+ return f ? f : {compo: DummyComp, compoDef: new NdComponentDefinition(1)};
16
16
  }
@@ -3,7 +3,7 @@ export class NdContentImage {
3
3
  title;
4
4
  alt;
5
5
  }
6
- export class NdTranslatedText {
6
+ export class NdTranslatableText {
7
7
  key = "";
8
8
  ns = "";
9
9
  text = "";
@@ -75,7 +75,7 @@ export class NdContentBlock {
75
75
  }
76
76
  function getPropertyFromObjectRecursively(obj, path) {
77
77
  // console.log(`getting path from obj >>${path}<<`, obj)
78
- if (obj instanceof NdTranslatedText) {
78
+ if (obj instanceof NdTranslatableText) {
79
79
  return obj.text;
80
80
  }
81
81
  if (path.length == 0) {
@@ -93,4 +93,3 @@ function getPropertyFromObjectRecursively(obj, path) {
93
93
  }
94
94
  return undefined;
95
95
  }
96
- //# sourceMappingURL=nd-content.js.map
@@ -1,4 +1,4 @@
1
- import { NdCode, NdTranslatedText } from "../content/nd-content";
1
+ import { NdCode, NdTranslatableText } from "../content/nd-content";
2
2
  // import {CodeComp} from "./code-comp";
3
3
  export async function DummyComp(props) {
4
4
  // console.log("content dummy comp", props.theme)
@@ -33,7 +33,7 @@ async function render(rowIndex, componentIndex, block, t) {
33
33
 
34
34
  paragraphs:
35
35
  {await Promise.all(block.paragraphs.map(async (p, ip) => {
36
- if (p instanceof NdTranslatedText) {
36
+ if (p instanceof NdTranslatableText) {
37
37
  return (<div>
38
38
  {p && p.key}
39
39
  <p key={ip} className={"mb-3 font-normal text-gray-700 dark:text-gray-400"}>
@@ -92,4 +92,3 @@ async function render(rowIndex, componentIndex, block, t) {
92
92
 
93
93
  </div>);
94
94
  }
95
- //# sourceMappingURL=dummy-comp.jsx.map
@@ -0,0 +1 @@
1
+ export {};
@@ -33,4 +33,3 @@ export class RenderingPageProps {
33
33
  this.i18nextProvider = i18nextProvider;
34
34
  }
35
35
  }
36
- //# sourceMappingURL=rendering-page-props.js.map
@@ -71,6 +71,9 @@ async function createRow(row, iRow, blocks, lng, imageUrlProvider, i18nProvider,
71
71
  l = await Promise.all(blocks.map(async (block, iComp) => await createRowComponents(iRow, iComp, undefined, [block], lng, imageUrlProvider, i18nProvider, componentResolver)));
72
72
  }
73
73
  const rowComponents = l.flatMap((p) => p);
74
+ if (rowComponents.length == 0) {
75
+ return <></>;
76
+ }
74
77
  const numComponents = rowComponents.length;
75
78
  const rowEffectiveTheme = mergeTheme(row?.theme, NdRow.defaultRowTheme);
76
79
  const maxCols = row?.maxCols ? row.maxCols : 3;
@@ -121,6 +124,9 @@ async function createRow(row, iRow, blocks, lng, imageUrlProvider, i18nProvider,
121
124
  async function createRowComponents(rowIndex, blockIndex, skinComponent, pageContent, lng, imageUrlProvide, i18nProvider, componentResolver) {
122
125
  // console.log("before component", skinComponent)
123
126
  const filteredBlocks = skinComponent ? skinComponent.selector.filterBlocks(pageContent) : pageContent;
127
+ if (filteredBlocks.length == 0) {
128
+ return [];
129
+ }
124
130
  // console.log("retrieving comp", rowIndex, blockIndex, filteredBlocks.map(fb => JSON.stringify(fb.attributes)).join(", "));
125
131
  const { compo, compoDef } = await componentResolver(skinComponent ? skinComponent.componentName : "default");
126
132
  // console.log("start rendering comp", rowIndex, blockIndex, skinComponent);
@@ -185,4 +191,3 @@ async function renderSingleComponent(rowIndex, componentIndex, component, blocks
185
191
  return res;
186
192
  }
187
193
  export { RenderingPage };
188
- //# sourceMappingURL=rendering-page.jsx.map
@@ -1,14 +1,13 @@
1
- import { NdContentImage, NdTranslatedText, NdList, NdCode, NdContentBlock } from "./content/nd-content";
1
+ import { NdContentImage, NdTranslatableText, NdList, NdCode, NdContentBlock } from "./content/nd-content";
2
2
  import { NdSkinComponent, NdRow, NdPageSkin, NdSkinComponentProps, NdContentSelector, NdComponentDefinition, NdThemeHierarchy } from "./skin/nd-skin";
3
3
  import { RenderingPageProps, RenderingPriority } from "./core/rendering-page-props";
4
4
  import { RenderingPage } from "./core/rendering-page";
5
5
  import { mergeTheme } from "./theme-utils/theme-merger";
6
6
  import { ThemeStyle } from "./theme-utils/theme-style";
7
7
  import { ExtendedThemeStyle } from "./theme-utils/extended-theme-style";
8
- export { NdContentImage, NdTranslatedText, NdList, NdCode, NdContentBlock, NdSkinComponent, NdRow, NdPageSkin, NdSkinComponentProps, NdContentSelector, NdComponentDefinition, NdThemeHierarchy };
8
+ export { NdContentImage, NdTranslatableText, NdList, NdCode, NdContentBlock, NdSkinComponent, NdRow, NdPageSkin, NdSkinComponentProps, NdContentSelector, NdComponentDefinition, NdThemeHierarchy };
9
9
  export { RenderingPageProps, RenderingPriority, RenderingPage };
10
10
  export { mergeTheme, ThemeStyle, ExtendedThemeStyle };
11
11
  export { DummyComp } from "./core/dummy-comp";
12
12
  export { contentMarkdownProvider, parseMarkdownAsContent } from "./providers/content/content-markdown-provider";
13
13
  export { skinYamlProvider, parseYamlContentAsSkin } from "./providers/skin/skin-yaml-provider";
14
- //# sourceMappingURL=index.js.map
@@ -1,4 +1,4 @@
1
- import { NdTranslatedText, NdList, NdContentBlock, NdContentImage, NdCode } from "nodoku-core";
1
+ import { NdTranslatableText, NdList, NdContentBlock, NdContentImage, NdCode } from "nodoku-core";
2
2
  import { Marked } from '@ts-stack/markdown';
3
3
  import { parse } from 'node-html-parser';
4
4
  import yaml from "js-yaml";
@@ -171,27 +171,27 @@ class BlockHolder {
171
171
  this.blockContent.htmlStream.forEach((htmlElem, i) => {
172
172
  let text = undefined;
173
173
  if (i === this.blockContent.titleIndex) {
174
- newBlock.title = new NdTranslatedText(this.ns, `${blockId}.title`, htmlElem.innerHTML);
174
+ newBlock.title = new NdTranslatableText(this.ns, `${blockId}.title`, htmlElem.innerHTML);
175
175
  text = newBlock.title;
176
176
  }
177
177
  else if (i === this.blockContent.subTitleIndex) {
178
- newBlock.subTitle = new NdTranslatedText(this.ns, `${blockId}.subTitle`, htmlElem.innerHTML);
178
+ newBlock.subTitle = new NdTranslatableText(this.ns, `${blockId}.subTitle`, htmlElem.innerHTML);
179
179
  text = newBlock.subTitle;
180
180
  }
181
181
  else if (i === this.blockContent.h3Index) {
182
- newBlock.h3 = new NdTranslatedText(this.ns, `${blockId}.h3`, htmlElem.innerHTML);
182
+ newBlock.h3 = new NdTranslatableText(this.ns, `${blockId}.h3`, htmlElem.innerHTML);
183
183
  text = newBlock.h3;
184
184
  }
185
185
  else if (i === this.blockContent.h4Index) {
186
- newBlock.h4 = new NdTranslatedText(this.ns, `${blockId}.h4`, htmlElem.innerHTML);
186
+ newBlock.h4 = new NdTranslatableText(this.ns, `${blockId}.h4`, htmlElem.innerHTML);
187
187
  text = newBlock.h4;
188
188
  }
189
189
  else if (i === this.blockContent.h5Index) {
190
- newBlock.h5 = new NdTranslatedText(this.ns, `${blockId}.h5`, htmlElem.innerHTML);
190
+ newBlock.h5 = new NdTranslatableText(this.ns, `${blockId}.h5`, htmlElem.innerHTML);
191
191
  text = newBlock.h5;
192
192
  }
193
193
  else if (i === this.blockContent.h6Index) {
194
- newBlock.h6 = new NdTranslatedText(this.ns, `${blockId}.h6`, htmlElem.innerHTML);
194
+ newBlock.h6 = new NdTranslatableText(this.ns, `${blockId}.h6`, htmlElem.innerHTML);
195
195
  text = newBlock.h6;
196
196
  }
197
197
  else if (this.blockContent.paragraphsIndex.indexOf(i) >= 0) {
@@ -213,16 +213,16 @@ class BlockHolder {
213
213
  const imgHtmlElem = cn;
214
214
  if (imgHtmlElem.rawTagName == "img") {
215
215
  img = new NdContentImage();
216
- img.url = new NdTranslatedText(this.ns, `${blockId}.images.${imi}.url`, imgHtmlElem.attributes["src"], true);
217
- img.alt = new NdTranslatedText(this.ns, `${blockId}.images.${imi}.alt`, imgHtmlElem.attributes["alt"]);
218
- img.title = new NdTranslatedText(this.ns, `${blockId}.images.${imi}.title`, imgHtmlElem.attributes["title"]);
216
+ img.url = new NdTranslatableText(this.ns, `${blockId}.images.${imi}.url`, imgHtmlElem.attributes["src"], true);
217
+ img.alt = new NdTranslatableText(this.ns, `${blockId}.images.${imi}.alt`, imgHtmlElem.attributes["alt"]);
218
+ img.title = new NdTranslatableText(this.ns, `${blockId}.images.${imi}.title`, imgHtmlElem.attributes["title"]);
219
219
  }
220
220
  });
221
221
  if (img) {
222
222
  htmlElem.childNodes
223
223
  .forEach((cn) => {
224
224
  if (cn.rawTagName == "figcaption") {
225
- img.title = new NdTranslatedText(this.ns, `${blockId}.images.${imi}.title`, cn.innerHTML);
225
+ img.title = new NdTranslatableText(this.ns, `${blockId}.images.${imi}.title`, cn.innerHTML);
226
226
  }
227
227
  });
228
228
  }
@@ -232,9 +232,9 @@ class BlockHolder {
232
232
  * extract image from <img>
233
233
  */
234
234
  img = new NdContentImage();
235
- img.url = new NdTranslatedText(this.ns, `${blockId}.images.${imi}.url`, htmlElem.attributes["src"], true);
236
- img.alt = new NdTranslatedText(this.ns, `${blockId}.images.${imi}.alt`, htmlElem.attributes["alt"]);
237
- img.title = new NdTranslatedText(this.ns, `${blockId}.images.${imi}.title`, htmlElem.attributes["title"]);
235
+ img.url = new NdTranslatableText(this.ns, `${blockId}.images.${imi}.url`, htmlElem.attributes["src"], true);
236
+ img.alt = new NdTranslatableText(this.ns, `${blockId}.images.${imi}.alt`, htmlElem.attributes["alt"]);
237
+ img.title = new NdTranslatableText(this.ns, `${blockId}.images.${imi}.title`, htmlElem.attributes["title"]);
238
238
  }
239
239
  if (img) {
240
240
  newBlock.images.push(img);
@@ -243,22 +243,22 @@ class BlockHolder {
243
243
  }
244
244
  }
245
245
  else {
246
- text = new NdTranslatedText(this.ns, `${blockId}.htmlElements.${newBlock.htmlElements.length}`, "");
246
+ text = new NdTranslatableText(this.ns, `${blockId}.htmlElements.${newBlock.htmlElements.length}`, "");
247
247
  }
248
248
  newBlock.htmlElements.push({ htmlElem: htmlElem, translatedText: text });
249
249
  });
250
250
  if (this.blockContent.footer && this.blockContent.footer.trim().length > 0) {
251
- newBlock.footer = new NdTranslatedText(this.ns, `${blockId}.footer`, this.blockContent.footer);
251
+ newBlock.footer = new NdTranslatableText(this.ns, `${blockId}.footer`, this.blockContent.footer);
252
252
  }
253
253
  if (this.blockContent.bgImage && this.blockContent.bgImage.getAttribute("src")) {
254
- newBlock.bgImageUrl = new NdTranslatedText(this.ns, `${blockId}.bgImageUrl`, this.blockContent.bgImage.getAttribute("src"), true);
254
+ newBlock.bgImageUrl = new NdTranslatableText(this.ns, `${blockId}.bgImageUrl`, this.blockContent.bgImage.getAttribute("src"), true);
255
255
  }
256
256
  // console.log("added block", newBlock)
257
257
  return newBlock;
258
258
  }
259
259
  parseParagraph(blockId, p, pi) {
260
260
  if (p.rawTagName === "p" || p.rawTagName === "blockquote") {
261
- return new NdTranslatedText(this.ns, `${blockId}.paragraphs.${pi}`, p.innerHTML);
261
+ return new NdTranslatableText(this.ns, `${blockId}.paragraphs.${pi}`, p.innerHTML);
262
262
  }
263
263
  else if (p.rawTagName === "pre") {
264
264
  const codeHtml = p.childNodes[0];
@@ -276,7 +276,7 @@ class BlockHolder {
276
276
  .filter(lin => lin.innerText && lin.innerText.trim().length > 0)
277
277
  .map((lin, k) => {
278
278
  const li = lin;
279
- return new NdTranslatedText(this.ns, `${blockId}.paragraphs.${pi}.items.${k}`, li.innerHTML);
279
+ return new NdTranslatableText(this.ns, `${blockId}.paragraphs.${pi}.items.${k}`, li.innerHTML);
280
280
  }));
281
281
  }
282
282
  else if (p.rawTagName === "ul") {
@@ -284,7 +284,7 @@ class BlockHolder {
284
284
  .filter(lin => lin.innerText && lin.innerText.trim().length > 0)
285
285
  .map((lin, k) => {
286
286
  const li = lin;
287
- return new NdTranslatedText(this.ns, `${blockId}.paragraphs.${pi}.items.${k}`, li.innerHTML);
287
+ return new NdTranslatableText(this.ns, `${blockId}.paragraphs.${pi}.items.${k}`, li.innerHTML);
288
288
  }));
289
289
  }
290
290
  console.log("couldn't parse paragraph: ", p);
@@ -372,4 +372,3 @@ export function parseMarkdownAsContent(fileContents, contentLng, ns) {
372
372
  }
373
373
  return res;
374
374
  }
375
- //# sourceMappingURL=content-markdown-provider.js.map
@@ -1,5 +1,5 @@
1
1
  import yaml from "js-yaml";
2
- import { NdContentSelector, NdRow, NdSkinComponent, NdThemeHierarchy } from "../../skin/nd-skin";
2
+ import { NdContentSelector, NdPageSkin, NdRow, NdSkinComponent, NdThemeHierarchy } from "../../skin/nd-skin";
3
3
  export async function skinYamlProvider(yamlFileUrl) {
4
4
  return await fetch(yamlFileUrl)
5
5
  .then(response => response.text())
@@ -7,6 +7,9 @@ export async function skinYamlProvider(yamlFileUrl) {
7
7
  }
8
8
  export function parseYamlContentAsSkin(fileContents) {
9
9
  const data = yaml.load(fileContents);
10
+ if (!data) {
11
+ return new NdPageSkin();
12
+ }
10
13
  let defaultThemeName = "light";
11
14
  let globalTheme = {};
12
15
  let globalThemes = [];
@@ -50,4 +53,3 @@ export function parseYamlContentAsSkin(fileContents) {
50
53
  }))
51
54
  } : { renderingPage: renderingPage, rows: [] };
52
55
  }
53
- //# sourceMappingURL=skin-yaml-provider.js.map
@@ -136,4 +136,3 @@ export class NdSkinComponentProps {
136
136
  this.i18nextProvider = i18nextProvider;
137
137
  }
138
138
  }
139
- //# sourceMappingURL=nd-skin.js.map
@@ -2,4 +2,3 @@ import { ThemeStyle } from "./theme-style";
2
2
  export class ExtendedThemeStyle extends ThemeStyle {
3
3
  css;
4
4
  }
5
- //# sourceMappingURL=extended-theme-style.js.map
@@ -115,4 +115,3 @@ function deepCopy(obj) {
115
115
  }
116
116
  return copy;
117
117
  }
118
- //# sourceMappingURL=theme-merger.js.map
@@ -6,4 +6,3 @@ export class ThemeStyle {
6
6
  this.decoration = decoration;
7
7
  }
8
8
  }
9
- //# sourceMappingURL=theme-style.js.map
package/package.json CHANGED
@@ -1,25 +1,22 @@
1
1
  {
2
2
  "name": "nodoku-core",
3
- "version": "0.1.3",
3
+ "version": "0.1.4",
4
4
  "description": "basic foundation for nodoku static site generator",
5
5
  "exports": {
6
6
  ".": {
7
- "types": "./dist/types/index.d.ts",
8
- "import": "./dist/esm/index.js"
7
+ "types": "./types/index.d.ts",
8
+ "import": "./esm/index.js"
9
9
  },
10
10
  "./package.json": "./package.json"
11
11
  },
12
- "module": "dist/esm/index.js",
13
- "types": "dist/types/index.d.ts",
14
- "files": [
15
- "dist"
16
- ],
12
+ "module": "esm/index.js",
13
+ "types": "types/index.d.ts",
17
14
  "type": "module",
18
15
  "bin": {
19
- "nodoku-gen-component-resolver": "./dist/esm/bin/generate-component-resolver.js",
20
- "nodoku-gen-content-schema": "./dist/esm/bin/generate-content-schema.js",
21
- "nodoku-gen-skin-schema": "./dist/esm/bin/generate-skin-schema.js",
22
- "nodoku-gen-component-default-theme": "./dist/esm/bin/generate-component-default-theme.js"
16
+ "nodoku-gen-component-resolver": "./esm/bin/generate-component-resolver.js",
17
+ "nodoku-gen-content-schema": "./esm/bin/generate-content-schema.js",
18
+ "nodoku-gen-skin-schema": "./esm/bin/generate-skin-schema.js",
19
+ "nodoku-gen-component-default-theme": "./esm/bin/generate-component-default-theme.js"
23
20
  },
24
21
  "dependencies": {
25
22
  },
@@ -47,8 +44,5 @@
47
44
  "react-dom": "^18.3.1",
48
45
  "typescript": "^5.5.3",
49
46
  "shx": "^0.3.4"
50
- },
51
- "scripts": {
52
- "dist": "shx rm -rf dist && tsc && shx cp -r src/bin/mustache dist/esm/bin/ && shx cp -r schemas dist"
53
47
  }
54
48
  }
@@ -0,0 +1,26 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "type": "object",
4
+ "properties": {
5
+ "id": {
6
+ "type": "string"
7
+ },
8
+ "namespace": {
9
+ "type": "string"
10
+ },
11
+ "tags": {
12
+ "type": "array",
13
+ "items": {
14
+ "type": "string"
15
+ }
16
+ },
17
+ "attributes": {
18
+ "type": "object",
19
+ "additionalProperties": {
20
+ "type": "string"
21
+ }
22
+ }
23
+ },
24
+ "additionalProperties": false,
25
+ "additionalItems": false
26
+ }
@@ -1,10 +1,10 @@
1
1
  import HTMLElement from "node-html-parser/dist/nodes/html";
2
2
  export declare class NdContentImage {
3
- url: NdTranslatedText;
4
- title?: NdTranslatedText;
5
- alt?: NdTranslatedText;
3
+ url: NdTranslatableText;
4
+ title?: NdTranslatableText;
5
+ alt?: NdTranslatableText;
6
6
  }
7
- export declare class NdTranslatedText {
7
+ export declare class NdTranslatableText {
8
8
  key: string;
9
9
  ns: string;
10
10
  text: string;
@@ -12,11 +12,11 @@ export declare class NdTranslatedText {
12
12
  constructor(ns: string, key?: string, text?: string, excludeFromTranslation?: boolean);
13
13
  }
14
14
  export declare class NdList {
15
- items: NdTranslatedText[];
15
+ items: NdTranslatableText[];
16
16
  ordered: boolean;
17
17
  private constructor();
18
- static createOrdered(items: NdTranslatedText[]): NdList;
19
- static createUnOrdered(items: NdTranslatedText[]): NdList;
18
+ static createOrdered(items: NdTranslatableText[]): NdList;
19
+ static createUnOrdered(items: NdTranslatableText[]): NdList;
20
20
  }
21
21
  export declare class NdCode {
22
22
  lang: string;
@@ -32,19 +32,19 @@ export declare class NdContentBlock {
32
32
  }[];
33
33
  tags: string[];
34
34
  namespace: string;
35
- title?: NdTranslatedText;
36
- subTitle?: NdTranslatedText;
37
- h3?: NdTranslatedText;
38
- h4?: NdTranslatedText;
39
- h5?: NdTranslatedText;
40
- h6?: NdTranslatedText;
41
- footer?: NdTranslatedText;
42
- paragraphs: (NdTranslatedText | NdList | NdCode)[];
43
- bgImageUrl?: NdTranslatedText;
35
+ title?: NdTranslatableText;
36
+ subTitle?: NdTranslatableText;
37
+ h3?: NdTranslatableText;
38
+ h4?: NdTranslatableText;
39
+ h5?: NdTranslatableText;
40
+ h6?: NdTranslatableText;
41
+ footer?: NdTranslatableText;
42
+ paragraphs: (NdTranslatableText | NdList | NdCode)[];
43
+ bgImageUrl?: NdTranslatableText;
44
44
  images: NdContentImage[];
45
45
  htmlElements: {
46
46
  htmlElem: HTMLElement;
47
- translatedText: (NdTranslatedText | NdContentImage | NdList | NdCode);
47
+ translatedText: (NdTranslatableText | NdContentImage | NdList | NdCode);
48
48
  }[];
49
49
  constructor(id: string, ns: string, lng: string);
50
50
  getByKey(key: string, ns: string): string | undefined;
@@ -1,12 +1,12 @@
1
1
  import { JSX } from "react";
2
2
  import { NdComponentDefinition, NdSkinComponentProps } from "../skin/nd-skin";
3
- import { NdTranslatedText } from "../content/nd-content";
3
+ import { NdTranslatableText } from "../content/nd-content";
4
4
  export type AsyncFunctionComponent = (props: NdSkinComponentProps) => Promise<JSX.Element>;
5
5
  export type ComponentResolver = (componentName: string) => Promise<{
6
6
  compo: AsyncFunctionComponent;
7
7
  compoDef: NdComponentDefinition;
8
8
  }>;
9
9
  export type I18nextProvider = (lng: string) => Promise<{
10
- t: (text: NdTranslatedText) => string;
10
+ t: (text: NdTranslatableText) => string;
11
11
  }>;
12
12
  export type ImageUrlProvider = (imageUrl: string) => Promise<string>;
@@ -1,4 +1,4 @@
1
- import { NdContentImage, NdTranslatedText, NdList, NdCode, NdContentBlock } from "./content/nd-content";
1
+ import { NdContentImage, NdTranslatableText, NdList, NdCode, NdContentBlock } from "./content/nd-content";
2
2
  import { NdSkinComponent, NdRow, NdPageSkin, NdSkinComponentProps, NdContentSelector, NdComponentDefinition, NdThemeHierarchy, NdDefaultThemeName } from "./skin/nd-skin";
3
3
  import { RenderingPageProps, RenderingPriority } from "./core/rendering-page-props";
4
4
  import { RenderingPage } from "./core/rendering-page";
@@ -6,7 +6,7 @@ import { I18nextProvider, AsyncFunctionComponent, ImageUrlProvider } from "./cor
6
6
  import { mergeTheme } from "./theme-utils/theme-merger";
7
7
  import { ThemeStyle } from "./theme-utils/theme-style";
8
8
  import { ExtendedThemeStyle } from "./theme-utils/extended-theme-style";
9
- export { NdContentImage, NdTranslatedText, NdList, NdCode, NdContentBlock, NdSkinComponent, NdRow, NdPageSkin, NdSkinComponentProps, NdContentSelector, NdComponentDefinition, NdThemeHierarchy, type NdDefaultThemeName };
9
+ export { NdContentImage, NdTranslatableText, NdList, NdCode, NdContentBlock, NdSkinComponent, NdRow, NdPageSkin, NdSkinComponentProps, NdContentSelector, NdComponentDefinition, NdThemeHierarchy, type NdDefaultThemeName };
10
10
  export { RenderingPageProps, RenderingPriority, RenderingPage };
11
11
  export { mergeTheme, ThemeStyle, ExtendedThemeStyle };
12
12
  export type { I18nextProvider, AsyncFunctionComponent, ImageUrlProvider };
package/LICENSE DELETED
@@ -1,21 +0,0 @@
1
- MIT License
2
-
3
- Copyright (c) 2024 nodoku
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.