@refrakt-md/learning 0.8.1 → 0.8.3
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/config.d.ts.map +1 -1
- package/dist/config.js +22 -1
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -4
- package/dist/index.js.map +1 -1
- package/dist/tags/howto.d.ts.map +1 -1
- package/dist/tags/howto.js +5 -3
- package/dist/tags/howto.js.map +1 -1
- package/dist/tags/recipe.d.ts.map +1 -1
- package/dist/tags/recipe.js +107 -38
- package/dist/tags/recipe.js.map +1 -1
- package/package.json +4 -4
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAWxD,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAuD7C,CAAC"}
|
package/dist/config.js
CHANGED
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
import { ratioToFr, resolveValign, resolveGap } from '@refrakt-md/transform';
|
|
2
|
+
const pageSectionAutoLabel = {
|
|
3
|
+
header: 'header',
|
|
4
|
+
eyebrow: 'eyebrow',
|
|
5
|
+
headline: 'headline',
|
|
6
|
+
blurb: 'blurb',
|
|
7
|
+
image: 'image',
|
|
8
|
+
};
|
|
1
9
|
export const config = {
|
|
2
10
|
HowTo: {
|
|
3
11
|
block: 'howto',
|
|
@@ -16,15 +24,26 @@ export const config = {
|
|
|
16
24
|
],
|
|
17
25
|
},
|
|
18
26
|
},
|
|
27
|
+
autoLabel: pageSectionAutoLabel,
|
|
28
|
+
editHints: { headline: 'inline', eyebrow: 'inline', blurb: 'inline', tool: 'inline', step: 'inline' },
|
|
19
29
|
},
|
|
20
30
|
Recipe: {
|
|
21
31
|
block: 'recipe',
|
|
22
|
-
contentWrapper: { tag: 'div', ref: 'content' },
|
|
23
32
|
modifiers: {
|
|
33
|
+
layout: { source: 'meta', default: 'stacked' },
|
|
24
34
|
prepTime: { source: 'meta' },
|
|
25
35
|
cookTime: { source: 'meta' },
|
|
26
36
|
servings: { source: 'meta' },
|
|
27
37
|
difficulty: { source: 'meta', default: 'medium' },
|
|
38
|
+
ratio: { source: 'meta', default: '1 1', noBemClass: true },
|
|
39
|
+
valign: { source: 'meta', default: 'top', noBemClass: true },
|
|
40
|
+
gap: { source: 'meta', default: 'default', noBemClass: true },
|
|
41
|
+
collapse: { source: 'meta', noBemClass: true },
|
|
42
|
+
},
|
|
43
|
+
styles: {
|
|
44
|
+
ratio: { prop: '--split-ratio', transform: ratioToFr },
|
|
45
|
+
valign: { prop: '--split-valign', transform: resolveValign },
|
|
46
|
+
gap: { prop: '--split-gap', transform: resolveGap },
|
|
28
47
|
},
|
|
29
48
|
structure: {
|
|
30
49
|
meta: {
|
|
@@ -38,6 +57,8 @@ export const config = {
|
|
|
38
57
|
],
|
|
39
58
|
},
|
|
40
59
|
},
|
|
60
|
+
autoLabel: { ...pageSectionAutoLabel, media: 'media' },
|
|
61
|
+
editHints: { headline: 'inline', eyebrow: 'inline', blurb: 'inline', ingredient: 'inline', step: 'inline', media: 'image' },
|
|
41
62
|
},
|
|
42
63
|
RecipeIngredient: { block: 'recipe-ingredient', parent: 'Recipe' },
|
|
43
64
|
};
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAKrD,eAAO,MAAM,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAKrD,eAAO,MAAM,QAAQ,EAAE,WA8DtB,CAAC;AAEF,eAAe,QAAQ,CAAC"}
|
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.8.
|
|
7
|
+
version: '0.8.3',
|
|
8
8
|
runes: {
|
|
9
9
|
'howto': {
|
|
10
10
|
transform: howto,
|
|
@@ -28,12 +28,16 @@ export const learning = {
|
|
|
28
28
|
},
|
|
29
29
|
'recipe': {
|
|
30
30
|
transform: recipe,
|
|
31
|
-
description: 'Recipe with ingredients, steps, and chef tips. Lists become ingredients, ordered lists become steps, blockquotes become tips.',
|
|
31
|
+
description: 'Recipe with ingredients, steps, and chef tips. Supports split layout with media zone. Lists become ingredients, ordered lists become steps, blockquotes become tips.',
|
|
32
32
|
seoType: 'Recipe',
|
|
33
|
-
reinterprets: { list: 'ingredients', 'ordered list': 'steps', blockquote: 'chef tips', image: 'recipe photo', heading: 'recipe name' },
|
|
34
|
-
fixture: `{% recipe prepTime="PT15M" cookTime="PT30M" servings="4" difficulty="medium" %}
|
|
33
|
+
reinterprets: { list: 'ingredients', 'ordered list': 'steps', blockquote: 'chef tips', image: 'recipe photo', heading: 'recipe name', 'horizontal rule': 'content/media separator' },
|
|
34
|
+
fixture: `{% recipe prepTime="PT15M" cookTime="PT30M" servings="4" difficulty="medium" layout="split" %}
|
|
35
|
+
Quick weeknight classic
|
|
36
|
+
|
|
35
37
|
# Classic Margherita Pizza
|
|
36
38
|
|
|
39
|
+
A timeless Italian favorite with a crispy crust and fresh toppings.
|
|
40
|
+
|
|
37
41
|
- 500g bread flour
|
|
38
42
|
- 7g dried yeast
|
|
39
43
|
- 1 tsp salt
|
|
@@ -49,6 +53,10 @@ export const learning = {
|
|
|
49
53
|
5. Bake at 250°C for 8-10 minutes
|
|
50
54
|
|
|
51
55
|
> For the best crust, preheat your oven with a pizza stone for at least 30 minutes before baking.
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+

|
|
52
60
|
{% /recipe %}`,
|
|
53
61
|
},
|
|
54
62
|
},
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,CAAC,MAAM,QAAQ,GAAgB;IACnC,IAAI,EAAE,UAAU;IAChB,WAAW,EAAE,UAAU;IACvB,OAAO,EAAE,OAAO;IAChB,KAAK,EAAE;QACL,OAAO,EAAE;YACP,SAAS,EAAE,KAAK;YAChB,OAAO,EAAE,CAAC,QAAQ,CAAC;YACnB,WAAW,EAAE,sEAAsE;YACnF,OAAO,EAAE,OAAO;YAChB,YAAY,EAAE,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,OAAO,EAAE;YACpF,OAAO,EAAE;;;;;;;;;;;;aAYF;SACR;QACD,QAAQ,EAAE;YACR,SAAS,EAAE,MAAM;YACjB,WAAW,EAAE
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,CAAC,MAAM,QAAQ,GAAgB;IACnC,IAAI,EAAE,UAAU;IAChB,WAAW,EAAE,UAAU;IACvB,OAAO,EAAE,OAAO;IAChB,KAAK,EAAE;QACL,OAAO,EAAE;YACP,SAAS,EAAE,KAAK;YAChB,OAAO,EAAE,CAAC,QAAQ,CAAC;YACnB,WAAW,EAAE,sEAAsE;YACnF,OAAO,EAAE,OAAO;YAChB,YAAY,EAAE,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,OAAO,EAAE;YACpF,OAAO,EAAE;;;;;;;;;;;;aAYF;SACR;QACD,QAAQ,EAAE;YACR,SAAS,EAAE,MAAM;YACjB,WAAW,EAAE,sKAAsK;YACnL,OAAO,EAAE,QAAQ;YACjB,YAAY,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,cAAc,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,yBAAyB,EAAE;YACpL,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;cA0BD;SACT;KACF;IACD,KAAK,EAAE;QACL,KAAK,EAAE,MAA4D;KACpE;CACF,CAAC;AAEF,eAAe,QAAQ,CAAC"}
|
package/dist/tags/howto.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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,
|
|
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,gBA0FhB,CAAC"}
|
package/dist/tags/howto.js
CHANGED
|
@@ -18,8 +18,8 @@ const bodyFields = [
|
|
|
18
18
|
];
|
|
19
19
|
export const howto = createContentModelSchema({
|
|
20
20
|
attributes: {
|
|
21
|
-
estimatedTime: { type: String, required: false, default: '' },
|
|
22
|
-
difficulty: { type: String, required: false, matches: difficultyType.slice() },
|
|
21
|
+
estimatedTime: { type: String, required: false, default: '', description: 'Estimated total time to complete all steps (e.g. "30 min")' },
|
|
22
|
+
difficulty: { type: String, required: false, matches: difficultyType.slice(), description: 'Skill level: easy, medium, or hard' },
|
|
23
23
|
},
|
|
24
24
|
contentModel: {
|
|
25
25
|
type: 'sequence',
|
|
@@ -47,6 +47,7 @@ export const howto = createContentModelSchema({
|
|
|
47
47
|
// Annotate tool lis as HowToTool
|
|
48
48
|
for (const li of tools) {
|
|
49
49
|
if (Markdoc.Tag.isTag(li)) {
|
|
50
|
+
li.attributes['data-name'] = 'tool';
|
|
50
51
|
li.attributes.typeof = 'HowToTool';
|
|
51
52
|
li.attributes.property = 'tool';
|
|
52
53
|
li.children.push(new Tag('meta', { property: 'name', content: tagText(li.children) }));
|
|
@@ -55,6 +56,7 @@ export const howto = createContentModelSchema({
|
|
|
55
56
|
// Annotate step lis as HowToStep
|
|
56
57
|
for (const li of steps) {
|
|
57
58
|
if (Markdoc.Tag.isTag(li)) {
|
|
59
|
+
li.attributes['data-name'] = 'step';
|
|
58
60
|
li.attributes.typeof = 'HowToStep';
|
|
59
61
|
li.attributes.property = 'step';
|
|
60
62
|
li.children.push(new Tag('meta', { property: 'text', content: tagText(li.children) }));
|
|
@@ -76,11 +78,11 @@ export const howto = createContentModelSchema({
|
|
|
76
78
|
tag: 'article',
|
|
77
79
|
property: 'contentSection',
|
|
78
80
|
properties: {
|
|
79
|
-
...sectionProps,
|
|
80
81
|
estimatedTime: estimatedTimeMeta,
|
|
81
82
|
difficulty: difficultyMeta,
|
|
82
83
|
},
|
|
83
84
|
refs: {
|
|
85
|
+
...sectionProps,
|
|
84
86
|
tools: toolsList,
|
|
85
87
|
steps: stepsList,
|
|
86
88
|
},
|
package/dist/tags/howto.js.map
CHANGED
|
@@ -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,OAAO,CAAC;AACxB,OAAO,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC9I,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,SAAS,OAAO,CAAC,KAAY;IAC5B,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE;QAC3B,IAAI,OAAO,CAAC,KAAK,QAAQ;YAAE,OAAO,CAAC,CAAC;QACpC,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;YAAE,OAAO,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACrD,OAAO,EAAE,CAAC;IACX,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AACpB,CAAC;AAED,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAU,CAAC;AAE3D,MAAM,UAAU,GAAG;IAClB,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,yBAAkC,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC3F,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,UAAmB,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;CAC1E,CAAC;AAEF,MAAM,CAAC,MAAM,KAAK,GAAG,wBAAwB,CAAC;IAC7C,UAAU,EAAE;QACX,aAAa,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE;
|
|
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;
|
|
1
|
+
{"version":3,"file":"recipe.d.ts","sourceRoot":"","sources":["../../src/tags/recipe.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAiBvC,eAAO,MAAM,MAAM,gBAkMjB,CAAC"}
|
package/dist/tags/recipe.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import Markdoc from '@markdoc/markdoc';
|
|
2
2
|
const { Tag } = Markdoc;
|
|
3
|
-
import { createContentModelSchema, createComponentRenderable, asNodes, RenderableNodeCursor, pageSectionProperties } from '@refrakt-md/runes';
|
|
3
|
+
import { createContentModelSchema, createComponentRenderable, asNodes, RenderableNodeCursor, SplitLayoutModel, pageSectionProperties } from '@refrakt-md/runes';
|
|
4
4
|
import { schema } from '../types.js';
|
|
5
5
|
function tagText(nodes) {
|
|
6
6
|
return nodes.map((n) => {
|
|
@@ -13,88 +13,156 @@ function tagText(nodes) {
|
|
|
13
13
|
}
|
|
14
14
|
const difficultyType = ['easy', 'medium', 'hard'];
|
|
15
15
|
export const recipe = createContentModelSchema({
|
|
16
|
+
base: SplitLayoutModel,
|
|
16
17
|
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' },
|
|
18
|
+
prepTime: { type: String, required: false, default: '', description: 'Time needed for preparation before cooking (e.g. "15 min")' },
|
|
19
|
+
cookTime: { type: String, required: false, default: '', description: 'Active cooking or baking time (e.g. "45 min")' },
|
|
20
|
+
servings: { type: Number, required: false, description: 'Number of portions the recipe yields' },
|
|
21
|
+
difficulty: { type: String, required: false, matches: difficultyType.slice(), default: 'medium', description: 'Skill level: easy, medium, or hard' },
|
|
21
22
|
},
|
|
22
23
|
contentModel: {
|
|
23
|
-
type: '
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
{
|
|
24
|
+
type: 'delimited',
|
|
25
|
+
delimiter: 'hr',
|
|
26
|
+
zones: [
|
|
27
|
+
{
|
|
28
|
+
name: 'content',
|
|
29
|
+
type: 'sequence',
|
|
30
|
+
fields: [
|
|
31
|
+
{ name: 'eyebrow', match: 'paragraph', optional: true },
|
|
32
|
+
{ name: 'headline', match: 'heading', optional: true },
|
|
33
|
+
{ name: 'blurb', match: 'paragraph', optional: true },
|
|
34
|
+
{ name: 'ingredients', match: 'list:unordered', optional: true, template: '- Ingredient' },
|
|
35
|
+
{ name: 'steps', match: 'list:ordered', optional: true, template: '1. Step' },
|
|
36
|
+
{ name: 'tips', match: 'blockquote', greedy: true, optional: true },
|
|
37
|
+
],
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
name: 'media',
|
|
41
|
+
type: 'sequence',
|
|
42
|
+
fields: [
|
|
43
|
+
{ name: 'media', match: 'any', optional: true, greedy: true },
|
|
44
|
+
],
|
|
45
|
+
},
|
|
27
46
|
],
|
|
28
47
|
},
|
|
29
48
|
transform(resolved, attrs, config) {
|
|
30
|
-
const
|
|
31
|
-
const
|
|
32
|
-
|
|
33
|
-
const
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
49
|
+
const contentZone = (resolved.content ?? {});
|
|
50
|
+
const mediaZone = (resolved.media ?? {});
|
|
51
|
+
// Collect header AST nodes (eyebrow, headline, blurb) and transform
|
|
52
|
+
const headerAstNodes = [
|
|
53
|
+
contentZone.eyebrow,
|
|
54
|
+
contentZone.headline,
|
|
55
|
+
contentZone.blurb,
|
|
56
|
+
].filter(Boolean);
|
|
57
|
+
const header = new RenderableNodeCursor(Markdoc.transform(headerAstNodes, config));
|
|
58
|
+
// Transform ingredients (single unordered list node)
|
|
59
|
+
const ingredientsRendered = Markdoc.transform(contentZone.ingredients ? [contentZone.ingredients] : [], config);
|
|
38
60
|
const ingredients = [];
|
|
61
|
+
for (const node of ingredientsRendered) {
|
|
62
|
+
if (Markdoc.Tag.isTag(node) && node.name === 'ul') {
|
|
63
|
+
ingredients.push(...(node.children || []));
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
// Transform steps (single ordered list node)
|
|
67
|
+
const stepsRendered = Markdoc.transform(contentZone.steps ? [contentZone.steps] : [], config);
|
|
39
68
|
const steps = [];
|
|
40
|
-
const
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
if (node.name === 'ul' && ingredients.length === 0) {
|
|
44
|
-
ingredients.push(...(node.children || []));
|
|
45
|
-
}
|
|
46
|
-
else if (node.name === 'ol' && steps.length === 0) {
|
|
47
|
-
steps.push(...(node.children || []));
|
|
48
|
-
}
|
|
49
|
-
else if (node.name === 'blockquote') {
|
|
50
|
-
tips.push(node);
|
|
51
|
-
}
|
|
69
|
+
for (const node of stepsRendered) {
|
|
70
|
+
if (Markdoc.Tag.isTag(node) && node.name === 'ol') {
|
|
71
|
+
steps.push(...(node.children || []));
|
|
52
72
|
}
|
|
53
73
|
}
|
|
54
|
-
//
|
|
74
|
+
// Transform tips (greedy blockquotes)
|
|
75
|
+
const tipsRendered = Markdoc.transform(asNodes(contentZone.tips), config);
|
|
76
|
+
const tips = tipsRendered.filter((n) => Markdoc.Tag.isTag(n) && n.name === 'blockquote');
|
|
77
|
+
// Transform media AST nodes
|
|
78
|
+
const mediaAstNodes = (Array.isArray(mediaZone.media) ? mediaZone.media : []);
|
|
79
|
+
const side = new RenderableNodeCursor(Markdoc.transform(mediaAstNodes, config));
|
|
80
|
+
// Recipe attribute meta tags
|
|
81
|
+
const prepTimeMeta = new Tag('meta', { content: attrs.prepTime });
|
|
82
|
+
const cookTimeMeta = new Tag('meta', { content: attrs.cookTime });
|
|
83
|
+
const servingsMeta = new Tag('meta', { content: attrs.servings != null ? String(attrs.servings) : '' });
|
|
84
|
+
const difficultyMeta = new Tag('meta', { content: attrs.difficulty });
|
|
85
|
+
// Annotate ingredient lis with data-name and recipeIngredient property
|
|
55
86
|
for (const li of ingredients) {
|
|
56
87
|
if (Markdoc.Tag.isTag(li)) {
|
|
88
|
+
li.attributes['data-name'] = 'ingredient';
|
|
57
89
|
li.attributes.property = 'recipeIngredient';
|
|
58
90
|
}
|
|
59
91
|
}
|
|
60
|
-
// Annotate step lis
|
|
92
|
+
// Annotate step lis with data-name and HowToStep schema
|
|
61
93
|
for (const li of steps) {
|
|
62
94
|
if (Markdoc.Tag.isTag(li)) {
|
|
95
|
+
li.attributes['data-name'] = 'step';
|
|
63
96
|
li.attributes.typeof = 'HowToStep';
|
|
64
97
|
li.attributes.property = 'recipeInstructions';
|
|
65
98
|
li.children.push(new Tag('meta', { property: 'text', content: tagText(li.children) }));
|
|
66
99
|
}
|
|
67
100
|
}
|
|
101
|
+
// Layout meta tags (following hero pattern)
|
|
102
|
+
const layout = attrs.layout || 'stacked';
|
|
103
|
+
const ratio = attrs.ratio || '1 1';
|
|
104
|
+
const valign = attrs.valign || 'top';
|
|
105
|
+
const gap = attrs.gap || 'default';
|
|
106
|
+
const collapse = attrs.collapse;
|
|
107
|
+
const layoutMeta = new Tag('meta', { content: layout });
|
|
108
|
+
const ratioMeta = layout !== 'stacked' ? new Tag('meta', { content: ratio }) : undefined;
|
|
109
|
+
const valignMeta = layout !== 'stacked' ? new Tag('meta', { content: valign }) : undefined;
|
|
110
|
+
const gapMeta = gap !== 'default' ? new Tag('meta', { content: gap }) : undefined;
|
|
111
|
+
const collapseMeta = collapse ? new Tag('meta', { content: collapse }) : undefined;
|
|
112
|
+
// Structural wrapping
|
|
68
113
|
const sectionProps = pageSectionProperties(header);
|
|
69
114
|
const ingredientsList = new Tag('ul', {}, ingredients);
|
|
70
115
|
const stepsList = new Tag('ol', {}, steps);
|
|
71
116
|
const tipsDiv = new Tag('div', {}, tips);
|
|
117
|
+
const headerContent = header.count() > 0 ? [header.wrap('header').next()] : [];
|
|
118
|
+
const bodyChildren = [ingredientsList, stepsList];
|
|
119
|
+
if (tips.length > 0) {
|
|
120
|
+
bodyChildren.push(tipsDiv);
|
|
121
|
+
}
|
|
122
|
+
const mainContent = new RenderableNodeCursor([
|
|
123
|
+
...headerContent,
|
|
124
|
+
...bodyChildren,
|
|
125
|
+
]).wrap('div');
|
|
126
|
+
const mediaDiv = side.wrap('div');
|
|
127
|
+
const hasMedia = side.toArray().length > 0;
|
|
128
|
+
// Find first image in media zone for SEO structured data
|
|
129
|
+
const seoImage = side.toArray().find((n) => Markdoc.Tag.isTag(n) && n.name === 'img');
|
|
72
130
|
const children = [
|
|
73
131
|
prepTimeMeta,
|
|
74
132
|
cookTimeMeta,
|
|
75
133
|
servingsMeta,
|
|
76
134
|
difficultyMeta,
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
135
|
+
layoutMeta,
|
|
136
|
+
...(ratioMeta ? [ratioMeta] : []),
|
|
137
|
+
...(valignMeta ? [valignMeta] : []),
|
|
138
|
+
...(gapMeta ? [gapMeta] : []),
|
|
139
|
+
...(collapseMeta ? [collapseMeta] : []),
|
|
140
|
+
// Media before content so the image appears at the top in stacked layout.
|
|
141
|
+
// In split layouts, CSS grid explicit placement controls the visual order.
|
|
142
|
+
...(hasMedia ? [mediaDiv.next()] : []),
|
|
143
|
+
mainContent.next(),
|
|
80
144
|
];
|
|
81
|
-
if (tips.length > 0) {
|
|
82
|
-
children.push(tipsDiv);
|
|
83
|
-
}
|
|
84
145
|
return createComponentRenderable(schema.Recipe, {
|
|
85
146
|
tag: 'article',
|
|
86
147
|
property: 'contentSection',
|
|
87
148
|
properties: {
|
|
88
|
-
...sectionProps,
|
|
89
149
|
prepTime: prepTimeMeta,
|
|
90
150
|
cookTime: cookTimeMeta,
|
|
91
151
|
servings: servingsMeta,
|
|
92
152
|
difficulty: difficultyMeta,
|
|
153
|
+
layout: layoutMeta,
|
|
154
|
+
ratio: ratioMeta,
|
|
155
|
+
valign: valignMeta,
|
|
156
|
+
gap: gapMeta,
|
|
157
|
+
collapse: collapseMeta,
|
|
93
158
|
},
|
|
94
159
|
refs: {
|
|
160
|
+
...sectionProps,
|
|
95
161
|
ingredients: ingredientsList,
|
|
96
162
|
steps: stepsList,
|
|
97
163
|
tips: tipsDiv,
|
|
164
|
+
content: mainContent,
|
|
165
|
+
media: mediaDiv,
|
|
98
166
|
},
|
|
99
167
|
schema: {
|
|
100
168
|
name: sectionProps.headline,
|
|
@@ -102,6 +170,7 @@ export const recipe = createContentModelSchema({
|
|
|
102
170
|
prepTime: prepTimeMeta,
|
|
103
171
|
cookTime: cookTimeMeta,
|
|
104
172
|
recipeYield: servingsMeta,
|
|
173
|
+
...(seoImage ? { image: seoImage } : {}),
|
|
105
174
|
},
|
|
106
175
|
children,
|
|
107
176
|
});
|
package/dist/tags/recipe.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recipe.js","sourceRoot":"","sources":["../../src/tags/recipe.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"recipe.js","sourceRoot":"","sources":["../../src/tags/recipe.ts"],"names":[],"mappings":"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"}
|
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.8.
|
|
4
|
+
"version": "0.8.3",
|
|
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.8.
|
|
25
|
-
"@refrakt-md/transform": "0.8.
|
|
26
|
-
"@refrakt-md/runes": "0.8.
|
|
24
|
+
"@refrakt-md/types": "0.8.3",
|
|
25
|
+
"@refrakt-md/transform": "0.8.3",
|
|
26
|
+
"@refrakt-md/runes": "0.8.3",
|
|
27
27
|
"@markdoc/markdoc": "0.4.0",
|
|
28
28
|
"reflect-metadata": "^0.2.0"
|
|
29
29
|
}
|