@refrakt-md/learning 0.7.1 → 0.8.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/index.js CHANGED
@@ -4,7 +4,7 @@ import { config } from './config.js';
4
4
  export const learning = {
5
5
  name: 'learning',
6
6
  displayName: 'Learning',
7
- version: '0.6.0',
7
+ version: '0.8.0',
8
8
  runes: {
9
9
  'howto': {
10
10
  transform: howto,
@@ -1,18 +1,6 @@
1
- import { ComponentType, PageSection, PageSectionProperties } from "@refrakt-md/types";
1
+ import { PageSection } from "@refrakt-md/types";
2
2
  export declare class HowTo extends PageSection {
3
3
  estimatedTime: string;
4
4
  difficulty: string;
5
5
  }
6
- export interface HowToProperties extends PageSectionProperties {
7
- estimatedTime: 'meta';
8
- difficulty: 'meta';
9
- }
10
- export interface HowToComponent extends ComponentType<HowTo> {
11
- tag: 'article';
12
- properties: HowToProperties;
13
- refs: {
14
- tools: 'ul';
15
- steps: 'ol';
16
- };
17
- }
18
6
  //# sourceMappingURL=howto.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"howto.d.ts","sourceRoot":"","sources":["../../src/schema/howto.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAEtF,qBAAa,KAAM,SAAQ,WAAW;IACrC,aAAa,EAAE,MAAM,CAAM;IAC3B,UAAU,EAAE,MAAM,CAAM;CACxB;AAED,MAAM,WAAW,eAAgB,SAAQ,qBAAqB;IAC7D,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAe,SAAQ,aAAa,CAAC,KAAK,CAAC;IAC3D,GAAG,EAAE,SAAS,CAAC;IACf,UAAU,EAAE,eAAe,CAAC;IAC5B,IAAI,EAAE;QACL,KAAK,EAAE,IAAI,CAAC;QACZ,KAAK,EAAE,IAAI,CAAC;KACZ,CAAA;CACD"}
1
+ {"version":3,"file":"howto.d.ts","sourceRoot":"","sources":["../../src/schema/howto.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,qBAAa,KAAM,SAAQ,WAAW;IACrC,aAAa,EAAE,MAAM,CAAM;IAC3B,UAAU,EAAE,MAAM,CAAM;CACxB"}
@@ -1 +1 @@
1
- {"version":3,"file":"howto.js","sourceRoot":"","sources":["../../src/schema/howto.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,WAAW,EAAyB,MAAM,mBAAmB,CAAC;AAEtF,MAAM,OAAO,KAAM,SAAQ,WAAW;IAAtC;;QACC,kBAAa,GAAW,EAAE,CAAC;QAC3B,eAAU,GAAW,EAAE,CAAC;IACzB,CAAC;CAAA"}
1
+ {"version":3,"file":"howto.js","sourceRoot":"","sources":["../../src/schema/howto.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,OAAO,KAAM,SAAQ,WAAW;IAAtC;;QACC,kBAAa,GAAW,EAAE,CAAC;QAC3B,eAAU,GAAW,EAAE,CAAC;IACzB,CAAC;CAAA"}
@@ -1,37 +1,13 @@
1
- import { ComponentType, PageSection, PageSectionProperties } from "@refrakt-md/types";
1
+ import { PageSection } from "@refrakt-md/types";
2
2
  export declare class RecipeIngredient {
3
3
  amount: string;
4
4
  unit: string;
5
5
  name: string;
6
6
  }
7
- export interface RecipeIngredientComponent extends ComponentType<RecipeIngredient> {
8
- tag: 'li';
9
- properties: {
10
- amount: 'span';
11
- unit: 'span';
12
- name: 'span';
13
- };
14
- refs: {};
15
- }
16
7
  export declare class Recipe extends PageSection {
17
8
  prepTime: string;
18
9
  cookTime: string;
19
10
  servings: number | undefined;
20
11
  difficulty: string;
21
12
  }
22
- export interface RecipeProperties extends PageSectionProperties {
23
- prepTime: 'meta';
24
- cookTime: 'meta';
25
- servings: 'meta';
26
- difficulty: 'meta';
27
- }
28
- export interface RecipeComponent extends ComponentType<Recipe> {
29
- tag: 'article';
30
- properties: RecipeProperties;
31
- refs: {
32
- ingredients: 'ul';
33
- steps: 'ol';
34
- tips: 'div';
35
- };
36
- }
37
13
  //# sourceMappingURL=recipe.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"recipe.d.ts","sourceRoot":"","sources":["../../src/schema/recipe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAEtF,qBAAa,gBAAgB;IAC5B,MAAM,EAAE,MAAM,CAAM;IACpB,IAAI,EAAE,MAAM,CAAM;IAClB,IAAI,EAAE,MAAM,CAAM;CAClB;AAED,MAAM,WAAW,yBAA0B,SAAQ,aAAa,CAAC,gBAAgB,CAAC;IACjF,GAAG,EAAE,IAAI,CAAC;IACV,UAAU,EAAE;QACX,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;KACb,CAAC;IACF,IAAI,EAAE,EAAE,CAAA;CACR;AAED,qBAAa,MAAO,SAAQ,WAAW;IACtC,QAAQ,EAAE,MAAM,CAAM;IACtB,QAAQ,EAAE,MAAM,CAAM;IACtB,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAa;IACzC,UAAU,EAAE,MAAM,CAAY;CAC9B;AAED,MAAM,WAAW,gBAAiB,SAAQ,qBAAqB;IAC9D,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAgB,SAAQ,aAAa,CAAC,MAAM,CAAC;IAC7D,GAAG,EAAE,SAAS,CAAC;IACf,UAAU,EAAE,gBAAgB,CAAC;IAC7B,IAAI,EAAE;QACL,WAAW,EAAE,IAAI,CAAC;QAClB,KAAK,EAAE,IAAI,CAAC;QACZ,IAAI,EAAE,KAAK,CAAC;KACZ,CAAA;CACD"}
1
+ {"version":3,"file":"recipe.d.ts","sourceRoot":"","sources":["../../src/schema/recipe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,qBAAa,gBAAgB;IAC5B,MAAM,EAAE,MAAM,CAAM;IACpB,IAAI,EAAE,MAAM,CAAM;IAClB,IAAI,EAAE,MAAM,CAAM;CAClB;AAED,qBAAa,MAAO,SAAQ,WAAW;IACtC,QAAQ,EAAE,MAAM,CAAM;IACtB,QAAQ,EAAE,MAAM,CAAM;IACtB,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAa;IACzC,UAAU,EAAE,MAAM,CAAY;CAC9B"}
@@ -1 +1 @@
1
- {"version":3,"file":"recipe.js","sourceRoot":"","sources":["../../src/schema/recipe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,WAAW,EAAyB,MAAM,mBAAmB,CAAC;AAEtF,MAAM,OAAO,gBAAgB;IAA7B;QACC,WAAM,GAAW,EAAE,CAAC;QACpB,SAAI,GAAW,EAAE,CAAC;QAClB,SAAI,GAAW,EAAE,CAAC;IACnB,CAAC;CAAA;AAYD,MAAM,OAAO,MAAO,SAAQ,WAAW;IAAvC;;QACC,aAAQ,GAAW,EAAE,CAAC;QACtB,aAAQ,GAAW,EAAE,CAAC;QACtB,aAAQ,GAAuB,SAAS,CAAC;QACzC,eAAU,GAAW,QAAQ,CAAC;IAC/B,CAAC;CAAA"}
1
+ {"version":3,"file":"recipe.js","sourceRoot":"","sources":["../../src/schema/recipe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,OAAO,gBAAgB;IAA7B;QACC,WAAM,GAAW,EAAE,CAAC;QACpB,SAAI,GAAW,EAAE,CAAC;QAClB,SAAI,GAAW,EAAE,CAAC;IACnB,CAAC;CAAA;AAED,MAAM,OAAO,MAAO,SAAQ,WAAW;IAAvC;;QACC,aAAQ,GAAW,EAAE,CAAC;QACtB,aAAQ,GAAW,EAAE,CAAC;QACtB,aAAQ,GAAuB,SAAS,CAAC;QACzC,eAAU,GAAW,QAAQ,CAAC;IAC/B,CAAC;CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"howto.d.ts","sourceRoot":"","sources":["../../src/tags/howto.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAoFvC,eAAO,MAAM,KAAK,gBAA2B,CAAC"}
1
+ {"version":3,"file":"howto.d.ts","sourceRoot":"","sources":["../../src/tags/howto.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAqBvC,eAAO,MAAM,KAAK,gBAmGhB,CAAC"}
@@ -1,35 +1,45 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- var __metadata = (this && this.__metadata) || function (k, v) {
8
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
- };
10
1
  import Markdoc from '@markdoc/markdoc';
11
- const { Ast, Tag } = Markdoc;
12
- import { attribute, group, Model, createComponentRenderable, createSchema, NodeStream, pageSectionProperties, headingsToList } from '@refrakt-md/runes';
2
+ const { Tag } = Markdoc;
3
+ import { createContentModelSchema, createComponentRenderable, asNodes, resolveSequence, RenderableNodeCursor, pageSectionProperties, headingsToList } from '@refrakt-md/runes';
13
4
  import { schema } from '../types.js';
5
+ function tagText(nodes) {
6
+ return nodes.map((n) => {
7
+ if (typeof n === 'string')
8
+ return n;
9
+ if (Markdoc.Tag.isTag(n))
10
+ return tagText(n.children);
11
+ return '';
12
+ }).join('').trim();
13
+ }
14
14
  const difficultyType = ['easy', 'medium', 'hard'];
15
- class HowToModel extends Model {
16
- constructor() {
17
- super(...arguments);
18
- this.estimatedTime = '';
19
- this.difficulty = '';
20
- this.headingLevel = undefined;
21
- }
22
- processChildren(nodes) {
23
- if (this.headingLevel !== undefined) {
24
- return super.processChildren(headingsToList({ level: this.headingLevel })(nodes));
25
- }
26
- return super.processChildren(nodes);
27
- }
28
- transform() {
29
- const header = this.header.transform();
30
- const body = this.body.transform();
31
- const estimatedTimeMeta = new Tag('meta', { content: this.estimatedTime });
32
- const difficultyMeta = new Tag('meta', { content: this.difficulty });
15
+ const bodyFields = [
16
+ { name: 'header', match: 'heading|paragraph|image', greedy: true, optional: true },
17
+ { name: 'body', match: 'list|tag', greedy: true, optional: true },
18
+ ];
19
+ export const howto = createContentModelSchema({
20
+ attributes: {
21
+ estimatedTime: { type: String, required: false, default: '' },
22
+ difficulty: { type: String, required: false, matches: difficultyType.slice() },
23
+ headingLevel: { type: Number, required: false },
24
+ },
25
+ contentModel: {
26
+ type: 'custom',
27
+ description: 'Optionally converts headings to list items, then resolves header/body sequence',
28
+ processChildren(nodes, attrs) {
29
+ let processed = nodes;
30
+ if (attrs.headingLevel != null) {
31
+ processed = headingsToList({ level: attrs.headingLevel })(processed);
32
+ }
33
+ return processed;
34
+ },
35
+ },
36
+ transform(resolved, attrs, config) {
37
+ // Custom model gives us raw children — resolve the header/body sequence manually
38
+ const inner = resolveSequence(resolved.children, bodyFields);
39
+ const header = new RenderableNodeCursor(Markdoc.transform(asNodes(inner.header), config));
40
+ const body = new RenderableNodeCursor(Markdoc.transform(asNodes(inner.body), config));
41
+ const estimatedTimeMeta = new Tag('meta', { content: attrs.estimatedTime });
42
+ const difficultyMeta = new Tag('meta', { content: attrs.difficulty ?? '' });
33
43
  // Separate unordered lists (tools/materials) and ordered lists (steps)
34
44
  const allNodes = body.toArray();
35
45
  const tools = [];
@@ -44,6 +54,23 @@ class HowToModel extends Model {
44
54
  }
45
55
  }
46
56
  }
57
+ // Annotate tool lis as HowToTool
58
+ for (const li of tools) {
59
+ if (Markdoc.Tag.isTag(li)) {
60
+ li.attributes.typeof = 'HowToTool';
61
+ li.attributes.property = 'tool';
62
+ li.children.push(new Tag('meta', { property: 'name', content: tagText(li.children) }));
63
+ }
64
+ }
65
+ // Annotate step lis as HowToStep
66
+ for (const li of steps) {
67
+ if (Markdoc.Tag.isTag(li)) {
68
+ li.attributes.typeof = 'HowToStep';
69
+ li.attributes.property = 'step';
70
+ li.children.push(new Tag('meta', { property: 'text', content: tagText(li.children) }));
71
+ }
72
+ }
73
+ const sectionProps = pageSectionProperties(header);
47
74
  const toolsList = new Tag('ul', {}, tools);
48
75
  const stepsList = new Tag('ol', {}, steps);
49
76
  const children = [
@@ -59,7 +86,7 @@ class HowToModel extends Model {
59
86
  tag: 'article',
60
87
  property: 'contentSection',
61
88
  properties: {
62
- ...pageSectionProperties(header),
89
+ ...sectionProps,
63
90
  estimatedTime: estimatedTimeMeta,
64
91
  difficulty: difficultyMeta,
65
92
  },
@@ -67,29 +94,13 @@ class HowToModel extends Model {
67
94
  tools: toolsList,
68
95
  steps: stepsList,
69
96
  },
97
+ schema: {
98
+ name: sectionProps.headline,
99
+ description: sectionProps.blurb,
100
+ totalTime: estimatedTimeMeta,
101
+ },
70
102
  children,
71
103
  });
72
- }
73
- }
74
- __decorate([
75
- attribute({ type: String, required: false }),
76
- __metadata("design:type", String)
77
- ], HowToModel.prototype, "estimatedTime", void 0);
78
- __decorate([
79
- attribute({ type: String, required: false, matches: difficultyType.slice() }),
80
- __metadata("design:type", String)
81
- ], HowToModel.prototype, "difficulty", void 0);
82
- __decorate([
83
- attribute({ type: Number, required: false }),
84
- __metadata("design:type", Object)
85
- ], HowToModel.prototype, "headingLevel", void 0);
86
- __decorate([
87
- group({ include: ['heading', 'paragraph', 'image'] }),
88
- __metadata("design:type", NodeStream)
89
- ], HowToModel.prototype, "header", void 0);
90
- __decorate([
91
- group({ include: ['list', 'tag'] }),
92
- __metadata("design:type", NodeStream)
93
- ], HowToModel.prototype, "body", void 0);
94
- export const howto = createSchema(HowToModel);
104
+ },
105
+ });
95
106
  //# sourceMappingURL=howto.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"howto.js","sourceRoot":"","sources":["../../src/tags/howto.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAEvC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,yBAAyB,EAAE,YAAY,EAAE,UAAU,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxJ,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAU,CAAC;AAE3D,MAAM,UAAW,SAAQ,KAAK;IAA9B;;QAEC,kBAAa,GAAW,EAAE,CAAC;QAG3B,eAAU,GAAW,EAAE,CAAC;QAGxB,iBAAY,GAAuB,SAAS,CAAC;IAkE9C,CAAC;IA1DA,eAAe,CAAC,KAAa;QAC5B,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;YACrC,OAAO,KAAK,CAAC,eAAe,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QACnF,CAAC;QACD,OAAO,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IAED,SAAS;QACR,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QACvC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;QAEnC,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QAC3E,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QAErE,uEAAuE;QACvE,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAChC,MAAM,KAAK,GAAU,EAAE,CAAC;QACxB,MAAM,KAAK,GAAU,EAAE,CAAC;QAExB,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;YAC7B,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC7B,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;oBACxB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC;gBACtC,CAAC;qBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;oBAC/B,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC;gBACtC,CAAC;YACF,CAAC;QACF,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;QAC3C,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;QAE3C,MAAM,QAAQ,GAAU;YACvB,iBAAiB;YACjB,cAAc;YACd,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE;SAC5B,CAAC;QAEF,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC1B,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEzB,OAAO,yBAAyB,CAAC,MAAM,CAAC,KAAK,EAAE;YAC9C,GAAG,EAAE,SAAS;YACd,QAAQ,EAAE,gBAAgB;YAC1B,UAAU,EAAE;gBACX,GAAG,qBAAqB,CAAC,MAAM,CAAC;gBAChC,aAAa,EAAE,iBAAiB;gBAChC,UAAU,EAAE,cAAc;aAC1B;YACD,IAAI,EAAE;gBACL,KAAK,EAAE,SAAS;gBAChB,KAAK,EAAE,SAAS;aAChB;YACD,QAAQ;SACR,CAAC,CAAC;IACJ,CAAC;CACD;AAxEA;IADC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;;iDAClB;AAG3B;IADC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC;;8CACtD;AAGxB;IADC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;;gDACA;AAG7C;IADC,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,CAAC;8BAC9C,UAAU;0CAAC;AAGnB;IADC,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC;8BAC9B,UAAU;wCAAC;AA8DlB,MAAM,CAAC,MAAM,KAAK,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC"}
1
+ {"version":3,"file":"howto.js","sourceRoot":"","sources":["../../src/tags/howto.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"recipe.d.ts","sourceRoot":"","sources":["../../src/tags/recipe.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AA4FvC,eAAO,MAAM,MAAM,gBAA4B,CAAC"}
1
+ {"version":3,"file":"recipe.d.ts","sourceRoot":"","sources":["../../src/tags/recipe.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAgBvC,eAAO,MAAM,MAAM,gBAyGjB,CAAC"}
@@ -1,32 +1,38 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- var __metadata = (this && this.__metadata) || function (k, v) {
8
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
- };
10
1
  import Markdoc from '@markdoc/markdoc';
11
2
  const { Tag } = Markdoc;
12
- import { attribute, group, Model, createComponentRenderable, createSchema, NodeStream, pageSectionProperties } from '@refrakt-md/runes';
3
+ import { createContentModelSchema, createComponentRenderable, asNodes, RenderableNodeCursor, pageSectionProperties } from '@refrakt-md/runes';
13
4
  import { schema } from '../types.js';
5
+ function tagText(nodes) {
6
+ return nodes.map((n) => {
7
+ if (typeof n === 'string')
8
+ return n;
9
+ if (Markdoc.Tag.isTag(n))
10
+ return tagText(n.children);
11
+ return '';
12
+ }).join('').trim();
13
+ }
14
14
  const difficultyType = ['easy', 'medium', 'hard'];
15
- class RecipeModel extends Model {
16
- constructor() {
17
- super(...arguments);
18
- this.prepTime = '';
19
- this.cookTime = '';
20
- this.servings = undefined;
21
- this.difficulty = 'medium';
22
- }
23
- transform() {
24
- const header = this.header.transform();
25
- const body = this.body.transform();
26
- const prepTimeMeta = new Tag('meta', { content: this.prepTime });
27
- const cookTimeMeta = new Tag('meta', { content: this.cookTime });
28
- const servingsMeta = new Tag('meta', { content: this.servings != null ? String(this.servings) : '' });
29
- const difficultyMeta = new Tag('meta', { content: this.difficulty });
15
+ export const recipe = createContentModelSchema({
16
+ attributes: {
17
+ prepTime: { type: String, required: false, default: '' },
18
+ cookTime: { type: String, required: false, default: '' },
19
+ servings: { type: Number, required: false },
20
+ difficulty: { type: String, required: false, matches: difficultyType.slice(), default: 'medium' },
21
+ },
22
+ contentModel: {
23
+ type: 'sequence',
24
+ fields: [
25
+ { name: 'header', match: 'heading|paragraph|image', greedy: true, optional: true },
26
+ { name: 'body', match: 'list|tag|blockquote', greedy: true, optional: true },
27
+ ],
28
+ },
29
+ transform(resolved, attrs, config) {
30
+ const header = new RenderableNodeCursor(Markdoc.transform(asNodes(resolved.header), config));
31
+ const body = new RenderableNodeCursor(Markdoc.transform(asNodes(resolved.body), config));
32
+ const prepTimeMeta = new Tag('meta', { content: attrs.prepTime });
33
+ const cookTimeMeta = new Tag('meta', { content: attrs.cookTime });
34
+ const servingsMeta = new Tag('meta', { content: attrs.servings != null ? String(attrs.servings) : '' });
35
+ const difficultyMeta = new Tag('meta', { content: attrs.difficulty });
30
36
  // Separate unordered lists (ingredients), ordered lists (steps), and blockquotes (tips)
31
37
  const allNodes = body.toArray();
32
38
  const ingredients = [];
@@ -45,6 +51,21 @@ class RecipeModel extends Model {
45
51
  }
46
52
  }
47
53
  }
54
+ // Annotate ingredient lis with recipeIngredient property
55
+ for (const li of ingredients) {
56
+ if (Markdoc.Tag.isTag(li)) {
57
+ li.attributes.property = 'recipeIngredient';
58
+ }
59
+ }
60
+ // Annotate step lis as HowToStep with recipeInstructions property
61
+ for (const li of steps) {
62
+ if (Markdoc.Tag.isTag(li)) {
63
+ li.attributes.typeof = 'HowToStep';
64
+ li.attributes.property = 'recipeInstructions';
65
+ li.children.push(new Tag('meta', { property: 'text', content: tagText(li.children) }));
66
+ }
67
+ }
68
+ const sectionProps = pageSectionProperties(header);
48
69
  const ingredientsList = new Tag('ul', {}, ingredients);
49
70
  const stepsList = new Tag('ol', {}, steps);
50
71
  const tipsDiv = new Tag('div', {}, tips);
@@ -64,7 +85,7 @@ class RecipeModel extends Model {
64
85
  tag: 'article',
65
86
  property: 'contentSection',
66
87
  properties: {
67
- ...pageSectionProperties(header),
88
+ ...sectionProps,
68
89
  prepTime: prepTimeMeta,
69
90
  cookTime: cookTimeMeta,
70
91
  servings: servingsMeta,
@@ -75,33 +96,15 @@ class RecipeModel extends Model {
75
96
  steps: stepsList,
76
97
  tips: tipsDiv,
77
98
  },
99
+ schema: {
100
+ name: sectionProps.headline,
101
+ description: sectionProps.blurb,
102
+ prepTime: prepTimeMeta,
103
+ cookTime: cookTimeMeta,
104
+ recipeYield: servingsMeta,
105
+ },
78
106
  children,
79
107
  });
80
- }
81
- }
82
- __decorate([
83
- attribute({ type: String, required: false }),
84
- __metadata("design:type", String)
85
- ], RecipeModel.prototype, "prepTime", void 0);
86
- __decorate([
87
- attribute({ type: String, required: false }),
88
- __metadata("design:type", String)
89
- ], RecipeModel.prototype, "cookTime", void 0);
90
- __decorate([
91
- attribute({ type: Number, required: false }),
92
- __metadata("design:type", Object)
93
- ], RecipeModel.prototype, "servings", void 0);
94
- __decorate([
95
- attribute({ type: String, required: false, matches: difficultyType.slice() }),
96
- __metadata("design:type", Object)
97
- ], RecipeModel.prototype, "difficulty", void 0);
98
- __decorate([
99
- group({ include: ['heading', 'paragraph', 'image'] }),
100
- __metadata("design:type", NodeStream)
101
- ], RecipeModel.prototype, "header", void 0);
102
- __decorate([
103
- group({ include: ['list', 'tag', 'blockquote'] }),
104
- __metadata("design:type", NodeStream)
105
- ], RecipeModel.prototype, "body", void 0);
106
- export const recipe = createSchema(RecipeModel);
108
+ },
109
+ });
107
110
  //# sourceMappingURL=recipe.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"recipe.js","sourceRoot":"","sources":["../../src/tags/recipe.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"recipe.js","sourceRoot":"","sources":["../../src/tags/recipe.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -1,8 +1,8 @@
1
- import { RecipeComponent, RecipeIngredientComponent } from './schema/recipe.js';
2
- import { HowToComponent } from './schema/howto.js';
1
+ import { Recipe, RecipeIngredient } from './schema/recipe.js';
2
+ import { HowTo } from './schema/howto.js';
3
3
  export declare const schema: {
4
- Recipe: import("@refrakt-md/types").Type<RecipeComponent>;
5
- RecipeIngredient: import("@refrakt-md/types").Type<RecipeIngredientComponent>;
6
- HowTo: import("@refrakt-md/types").Type<HowToComponent>;
4
+ Recipe: import("@refrakt-md/types").Type<Recipe>;
5
+ RecipeIngredient: import("@refrakt-md/types").Type<RecipeIngredient>;
6
+ HowTo: import("@refrakt-md/types").Type<HowTo>;
7
7
  };
8
8
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AACA,OAAO,EAAU,eAAe,EAAoB,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAC1G,OAAO,EAAS,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAE1D,eAAO,MAAM,MAAM;;;;CAIlB,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,MAAM,EAAE,gBAAgB,EAAC,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAC,KAAK,EAAC,MAAM,mBAAmB,CAAC;AAExC,eAAO,MAAM,MAAM;;;;CAIlB,CAAC"}
package/dist/types.js CHANGED
@@ -2,8 +2,8 @@ import { useSchema } from '@refrakt-md/types';
2
2
  import { Recipe, RecipeIngredient } from './schema/recipe.js';
3
3
  import { HowTo } from './schema/howto.js';
4
4
  export const schema = {
5
- Recipe: useSchema(Recipe).defineType('Recipe'),
5
+ Recipe: useSchema(Recipe).defineType('Recipe', {}, 'Recipe'),
6
6
  RecipeIngredient: useSchema(RecipeIngredient).defineType('RecipeIngredient'),
7
- HowTo: useSchema(HowTo).defineType('HowTo'),
7
+ HowTo: useSchema(HowTo).defineType('HowTo', {}, 'HowTo'),
8
8
  };
9
9
  //# sourceMappingURL=types.js.map
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAmB,gBAAgB,EAA6B,MAAM,oBAAoB,CAAC;AAC1G,OAAO,EAAE,KAAK,EAAkB,MAAM,mBAAmB,CAAC;AAE1D,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,UAAU,CAAkB,QAAQ,CAAC;IAC/D,gBAAgB,EAAE,SAAS,CAAC,gBAAgB,CAAC,CAAC,UAAU,CAA4B,kBAAkB,CAAC;IACvG,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,UAAU,CAAiB,OAAO,CAAC;CAC5D,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAC,MAAM,EAAE,gBAAgB,EAAC,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAC,KAAK,EAAC,MAAM,mBAAmB,CAAC;AAExC,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,EAAE,QAAQ,CAAC;IAC5D,gBAAgB,EAAE,SAAS,CAAC,gBAAgB,CAAC,CAAC,UAAU,CAAC,kBAAkB,CAAC;IAC5E,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,EAAE,OAAO,CAAC;CACzD,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@refrakt-md/learning",
3
3
  "description": "Learning runes for refrakt.md — how-to guides and recipes",
4
- "version": "0.7.1",
4
+ "version": "0.8.0",
5
5
  "type": "module",
6
6
  "license": "MIT",
7
7
  "repository": {
@@ -21,9 +21,9 @@
21
21
  "build": "tsc"
22
22
  },
23
23
  "dependencies": {
24
- "@refrakt-md/types": "0.7.1",
25
- "@refrakt-md/transform": "0.7.1",
26
- "@refrakt-md/runes": "0.7.1",
24
+ "@refrakt-md/types": "0.8.0",
25
+ "@refrakt-md/transform": "0.8.0",
26
+ "@refrakt-md/runes": "0.8.0",
27
27
  "@markdoc/markdoc": "0.4.0",
28
28
  "reflect-metadata": "^0.2.0"
29
29
  }