@refrakt-md/media 0.34.0 → 0.35.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.d.ts.map +1 -1
- package/dist/index.js +19 -7
- package/dist/index.js.map +1 -1
- package/dist/tags/playlist.d.ts +137 -0
- package/dist/tags/playlist.d.ts.map +1 -1
- package/dist/tags/playlist.js +223 -15
- package/dist/tags/playlist.js.map +1 -1
- package/dist/tags/track.d.ts +80 -0
- package/dist/tags/track.d.ts.map +1 -1
- package/dist/tags/track.js +82 -12
- package/dist/tags/track.js.map +1 -1
- package/package.json +4 -4
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,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAMhD,eAAO,MAAM,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAMhD,eAAO,MAAM,KAAK,EAAE,MA+EnB,CAAC;AAEF,eAAe,KAAK,CAAC;AAErB,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -5,7 +5,7 @@ import { config } from './config.js';
|
|
|
5
5
|
export const media = {
|
|
6
6
|
name: 'media',
|
|
7
7
|
displayName: 'Media',
|
|
8
|
-
version: '0.
|
|
8
|
+
version: '0.35.0',
|
|
9
9
|
runes: {
|
|
10
10
|
playlist: {
|
|
11
11
|
transform: playlist,
|
|
@@ -26,14 +26,23 @@ export const media = {
|
|
|
26
26
|
'- **${6:Track Two}** (${7:4:20})',
|
|
27
27
|
'{% /playlist %}',
|
|
28
28
|
],
|
|
29
|
-
fixture
|
|
29
|
+
// WORK-569 — the fixture is also the review surface for `playlistSchema`
|
|
30
|
+
// (`refrakt inspect playlist`), so it exercises every source the child
|
|
31
|
+
// row names: a date, a per-track link, and one `{% track %}` child,
|
|
32
|
+
// which is the only form that can carry a position.
|
|
33
|
+
fixture: `{% playlist type="album" artist="Pink Floyd" media-position="start" %}
|
|
34
|
+

|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
30
38
|
# The Dark Side of the Moon
|
|
31
39
|
|
|
32
|
-
|
|
40
|
+
1. **Speak to Me** (1:13) — March 1973
|
|
41
|
+
2. **[Breathe](/tracks/breathe)** (2:43) — March 1973
|
|
33
42
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
43
|
+
{% track number=3 duration="3:36" date="March 1973" url="/tracks/on-the-run" %}
|
|
44
|
+
# On the Run
|
|
45
|
+
{% /track %}
|
|
37
46
|
{% /playlist %}`,
|
|
38
47
|
},
|
|
39
48
|
track: {
|
|
@@ -48,7 +57,10 @@ export const media = {
|
|
|
48
57
|
'# ${4:Track Name}',
|
|
49
58
|
'{% /track %}',
|
|
50
59
|
],
|
|
51
|
-
|
|
60
|
+
// WORK-569 — every source `trackSchema`'s rows name, so
|
|
61
|
+
// `refrakt inspect track --type=all` reviews a fully resolved row rather
|
|
62
|
+
// than one the example happens not to exercise.
|
|
63
|
+
fixture: `{% track src="/audio/breathe.mp3" artist="Pink Floyd" duration="PT2M43S" number=2 date="March 1973" url="/tracks/breathe" %}
|
|
52
64
|
Breathe
|
|
53
65
|
{% /track %}`,
|
|
54
66
|
},
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,CAAC,MAAM,KAAK,GAAW;IAC5B,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,OAAO;IACpB,OAAO,EAAE,QAAQ;IACjB,KAAK,EAAE;QACN,QAAQ,EAAE;YACT,SAAS,EAAE,QAAQ;YACnB,4EAA4E;YAC5E,2EAA2E;YAC3E,6EAA6E;YAC7E,0EAA0E;YAC1E,2EAA2E;YAC3E,OAAO,EAAE,CAAC,gBAAgB,CAAC;YAC3B,WAAW,EAAE,mEAAmE;YAChF,OAAO,EAAE,eAAe;YACxB,QAAQ,EAAE,UAAU;YACpB,OAAO,EAAE;gBACR,qFAAqF;gBACrF,sBAAsB;gBACtB,EAAE;gBACF,kCAAkC;gBAClC,kCAAkC;gBAClC,iBAAiB;aACjB;YACD,OAAO,EAAE
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,CAAC,MAAM,KAAK,GAAW;IAC5B,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,OAAO;IACpB,OAAO,EAAE,QAAQ;IACjB,KAAK,EAAE;QACN,QAAQ,EAAE;YACT,SAAS,EAAE,QAAQ;YACnB,4EAA4E;YAC5E,2EAA2E;YAC3E,6EAA6E;YAC7E,0EAA0E;YAC1E,2EAA2E;YAC3E,OAAO,EAAE,CAAC,gBAAgB,CAAC;YAC3B,WAAW,EAAE,mEAAmE;YAChF,OAAO,EAAE,eAAe;YACxB,QAAQ,EAAE,UAAU;YACpB,OAAO,EAAE;gBACR,qFAAqF;gBACrF,sBAAsB;gBACtB,EAAE;gBACF,kCAAkC;gBAClC,kCAAkC;gBAClC,iBAAiB;aACjB;YACD,yEAAyE;YACzE,uEAAuE;YACvE,oEAAoE;YACpE,oDAAoD;YACpD,OAAO,EAAE;;;;;;;;;;;;;gBAaI;SACb;QACD,KAAK,EAAE;YACN,SAAS,EAAE,KAAK;YAChB,iFAAiF;YACjF,OAAO,EAAE,CAAC,iBAAiB,CAAC;YAC5B,WAAW,EAAE,wEAAwE;YACrF,OAAO,EAAE,gBAAgB;YACzB,QAAQ,EAAE,UAAU;YACpB,OAAO,EAAE;gBACR,4EAA4E;gBAC5E,mBAAmB;gBACnB,cAAc;aACd;YACD,wDAAwD;YACxD,yEAAyE;YACzE,gDAAgD;YAChD,OAAO,EAAE;;aAEC;SACV;QACD,KAAK,EAAE;YACN,SAAS,EAAE,KAAK;YAChB,WAAW,EAAE,sDAAsD;YACnE,QAAQ,EAAE,UAAU;YACpB,OAAO,EAAE,CAAC,sDAAsD,CAAC;YACjE,OAAO,EAAE;;;;;;aAMC;SACV;KACD;IACD,KAAK,EAAE;QACN,KAAK,EAAE,MAA4D;KACnE;CACD,CAAC;AAEF,eAAe,KAAK,CAAC"}
|
package/dist/tags/playlist.d.ts
CHANGED
|
@@ -1,4 +1,141 @@
|
|
|
1
1
|
import Markdoc from '@markdoc/markdoc';
|
|
2
|
+
export declare const playlistSchema: {
|
|
3
|
+
by: string;
|
|
4
|
+
rows: {
|
|
5
|
+
album: {
|
|
6
|
+
type: string;
|
|
7
|
+
properties: {
|
|
8
|
+
headline: string;
|
|
9
|
+
mediaImage: string;
|
|
10
|
+
artist: string;
|
|
11
|
+
};
|
|
12
|
+
lists: string[];
|
|
13
|
+
children: {
|
|
14
|
+
track: {
|
|
15
|
+
type: string;
|
|
16
|
+
property: string;
|
|
17
|
+
properties: {
|
|
18
|
+
readonly 'track-name': "name";
|
|
19
|
+
readonly 'track-artist': "byArtist";
|
|
20
|
+
readonly duration: "duration";
|
|
21
|
+
readonly 'track-meta': "datePublished";
|
|
22
|
+
readonly url: "url";
|
|
23
|
+
readonly position: "position";
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
mix: {
|
|
29
|
+
type: string;
|
|
30
|
+
properties: {
|
|
31
|
+
headline: string;
|
|
32
|
+
mediaImage: string;
|
|
33
|
+
artist: string;
|
|
34
|
+
};
|
|
35
|
+
lists: string[];
|
|
36
|
+
children: {
|
|
37
|
+
track: {
|
|
38
|
+
type: string;
|
|
39
|
+
property: string;
|
|
40
|
+
properties: {
|
|
41
|
+
readonly 'track-name': "name";
|
|
42
|
+
readonly 'track-artist': "byArtist";
|
|
43
|
+
readonly duration: "duration";
|
|
44
|
+
readonly 'track-meta': "datePublished";
|
|
45
|
+
readonly url: "url";
|
|
46
|
+
readonly position: "position";
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
podcast: {
|
|
52
|
+
type: string;
|
|
53
|
+
properties: {
|
|
54
|
+
headline: string;
|
|
55
|
+
mediaImage: string;
|
|
56
|
+
};
|
|
57
|
+
lists: string[];
|
|
58
|
+
children: {
|
|
59
|
+
track: {
|
|
60
|
+
type: string;
|
|
61
|
+
property: string;
|
|
62
|
+
properties: {
|
|
63
|
+
readonly 'track-name': "name";
|
|
64
|
+
readonly duration: "duration";
|
|
65
|
+
readonly 'track-meta': "datePublished";
|
|
66
|
+
readonly url: "url";
|
|
67
|
+
readonly position: "position";
|
|
68
|
+
};
|
|
69
|
+
};
|
|
70
|
+
};
|
|
71
|
+
};
|
|
72
|
+
audiobook: {
|
|
73
|
+
type: string;
|
|
74
|
+
properties: {
|
|
75
|
+
headline: string;
|
|
76
|
+
mediaImage: string;
|
|
77
|
+
};
|
|
78
|
+
lists: string[];
|
|
79
|
+
children: {
|
|
80
|
+
track: {
|
|
81
|
+
type: string;
|
|
82
|
+
property: string;
|
|
83
|
+
properties: {
|
|
84
|
+
readonly 'track-name': "name";
|
|
85
|
+
readonly duration: "duration";
|
|
86
|
+
readonly 'track-meta': "datePublished";
|
|
87
|
+
readonly url: "url";
|
|
88
|
+
readonly position: "position";
|
|
89
|
+
};
|
|
90
|
+
};
|
|
91
|
+
};
|
|
92
|
+
};
|
|
93
|
+
series: {
|
|
94
|
+
type: string;
|
|
95
|
+
properties: {
|
|
96
|
+
headline: string;
|
|
97
|
+
mediaImage: string;
|
|
98
|
+
};
|
|
99
|
+
lists: string[];
|
|
100
|
+
children: {
|
|
101
|
+
track: {
|
|
102
|
+
type: string;
|
|
103
|
+
property: string;
|
|
104
|
+
properties: {
|
|
105
|
+
readonly 'track-name': "name";
|
|
106
|
+
readonly duration: "duration";
|
|
107
|
+
readonly 'track-meta': "datePublished";
|
|
108
|
+
readonly url: "url";
|
|
109
|
+
readonly position: "position";
|
|
110
|
+
};
|
|
111
|
+
};
|
|
112
|
+
};
|
|
113
|
+
};
|
|
114
|
+
};
|
|
115
|
+
fallback: {
|
|
116
|
+
type: string;
|
|
117
|
+
properties: {
|
|
118
|
+
headline: string;
|
|
119
|
+
mediaImage: string;
|
|
120
|
+
artist: string;
|
|
121
|
+
};
|
|
122
|
+
lists: string[];
|
|
123
|
+
children: {
|
|
124
|
+
track: {
|
|
125
|
+
type: string;
|
|
126
|
+
property: string;
|
|
127
|
+
properties: {
|
|
128
|
+
readonly 'track-name': "name";
|
|
129
|
+
readonly 'track-artist': "byArtist";
|
|
130
|
+
readonly duration: "duration";
|
|
131
|
+
readonly 'track-meta': "datePublished";
|
|
132
|
+
readonly url: "url";
|
|
133
|
+
readonly position: "position";
|
|
134
|
+
};
|
|
135
|
+
};
|
|
136
|
+
};
|
|
137
|
+
};
|
|
138
|
+
};
|
|
2
139
|
export declare const playlistSections: {
|
|
3
140
|
readonly preamble: "preamble";
|
|
4
141
|
readonly headline: "title";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"playlist.d.ts","sourceRoot":"","sources":["../../src/tags/playlist.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"playlist.d.ts","sourceRoot":"","sources":["../../src/tags/playlist.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AA+FvC,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAa1B,CAAC;AAUF,eAAO,MAAM,gBAAgB;;;;;;CAMnB,CAAC;AACX,eAAO,MAAM,kBAAkB;;CAA8B,CAAC;AAE9D,eAAO,MAAM,QAAQ,gBA4UnB,CAAC"}
|
package/dist/tags/playlist.js
CHANGED
|
@@ -2,8 +2,92 @@ import Markdoc from '@markdoc/markdoc';
|
|
|
2
2
|
const { Tag } = Markdoc;
|
|
3
3
|
import { createContentModelSchema, createComponentRenderable, asNodes, pageSectionProperties, RenderableNodeCursor, SplitLayoutModel, buildLayoutMetas, extractMediaImage, } from '@refrakt-md/runes';
|
|
4
4
|
import { parseDuration } from '../duration.js';
|
|
5
|
+
import { TYPE_IMPLICIT } from './track.js';
|
|
5
6
|
const playlistType = ['album', 'podcast', 'audiobook', 'series', 'mix'];
|
|
7
|
+
/**
|
|
8
|
+
* The track kind a playlist gives a nested `{% track %}` that states none
|
|
9
|
+
* (WORK-572). The parent retypes its children; a child never declares its
|
|
10
|
+
* context (SPEC-130 D9), and Markdoc's bottom-up transform order means a child
|
|
11
|
+
* could not see its parent even if it wanted to.
|
|
12
|
+
*/
|
|
13
|
+
const CHILD_KIND = {
|
|
14
|
+
album: 'song',
|
|
15
|
+
mix: 'song',
|
|
16
|
+
podcast: 'episode',
|
|
17
|
+
audiobook: 'chapter',
|
|
18
|
+
series: 'episode',
|
|
19
|
+
};
|
|
6
20
|
const contentType = ['auto', 'lyrics', 'chapters'];
|
|
21
|
+
/**
|
|
22
|
+
* SPEC-130 / WORK-569 — the driving case, and the other half of BUG-013.
|
|
23
|
+
*
|
|
24
|
+
* `playlist` declared five kinds and published `MusicPlaylist` with
|
|
25
|
+
* `MusicRecording` items for every one of them, so `{% playlist type="podcast" %}`
|
|
26
|
+
* announced a podcast as a music playlist whose episodes were music recordings.
|
|
27
|
+
* The rune already knew what its content was and emitted the wrong schema anyway.
|
|
28
|
+
*
|
|
29
|
+
* | `type` | was | is |
|
|
30
|
+
* |-------------|-------------------------|--------------------------------|
|
|
31
|
+
* | `album` | `MusicPlaylist`/`track` | `MusicAlbum`/`track` |
|
|
32
|
+
* | `mix` | `MusicPlaylist`/`track` | unchanged |
|
|
33
|
+
* | `podcast` | `MusicPlaylist`/`track` | `PodcastSeries`/`hasPart` |
|
|
34
|
+
* | `audiobook` | `MusicPlaylist`/`track` | `Audiobook`/`hasPart` |
|
|
35
|
+
* | `series` | `MusicPlaylist`/`track` | `CreativeWorkSeries`/`hasPart` |
|
|
36
|
+
*
|
|
37
|
+
* **A child row is a type and a property map, not a type alone.** Retyping the
|
|
38
|
+
* item and leaving its stamps would put `byArtist` on a `PodcastEpisode`, which
|
|
39
|
+
* does not have that property — worse than the `MusicRecording` it replaced,
|
|
40
|
+
* which was at least coherently wrong. So the parent's map is the whole truth
|
|
41
|
+
* for a child it retypes, and the applier clears what it does not name.
|
|
42
|
+
*
|
|
43
|
+
* `Chapter` for an `Audiobook` and `CreativeWork` for a `CreativeWorkSeries` are
|
|
44
|
+
* the rows worth a second opinion. Nothing validates them (D5) — read them in
|
|
45
|
+
* `refrakt inspect playlist --type=all` and disagree there.
|
|
46
|
+
*/
|
|
47
|
+
const MUSIC_ITEM = {
|
|
48
|
+
'track-name': 'name',
|
|
49
|
+
'track-artist': 'byArtist',
|
|
50
|
+
duration: 'duration',
|
|
51
|
+
'track-meta': 'datePublished',
|
|
52
|
+
url: 'url',
|
|
53
|
+
position: 'position',
|
|
54
|
+
};
|
|
55
|
+
// Everything but the artist: `byArtist` is a `MusicRecording` property, and a
|
|
56
|
+
// series carries its publisher rather than each item doing so.
|
|
57
|
+
const SPOKEN_ITEM = {
|
|
58
|
+
'track-name': 'name',
|
|
59
|
+
duration: 'duration',
|
|
60
|
+
'track-meta': 'datePublished',
|
|
61
|
+
url: 'url',
|
|
62
|
+
position: 'position',
|
|
63
|
+
};
|
|
64
|
+
const musicRow = (type) => ({
|
|
65
|
+
type,
|
|
66
|
+
properties: { headline: 'name', mediaImage: 'image', artist: 'byArtist' },
|
|
67
|
+
lists: ['track'],
|
|
68
|
+
children: { track: { type: 'MusicRecording', property: 'track', properties: MUSIC_ITEM } },
|
|
69
|
+
});
|
|
70
|
+
const spokenRow = (type, itemType) => ({
|
|
71
|
+
type,
|
|
72
|
+
// No `byArtist` here either, for the same reason it is absent from the item.
|
|
73
|
+
properties: { headline: 'name', mediaImage: 'image' },
|
|
74
|
+
lists: ['hasPart'],
|
|
75
|
+
children: { track: { type: itemType, property: 'hasPart', properties: SPOKEN_ITEM } },
|
|
76
|
+
});
|
|
77
|
+
export const playlistSchema = {
|
|
78
|
+
by: 'type',
|
|
79
|
+
rows: {
|
|
80
|
+
album: musicRow('MusicAlbum'),
|
|
81
|
+
mix: musicRow('MusicPlaylist'),
|
|
82
|
+
podcast: spokenRow('PodcastSeries', 'PodcastEpisode'),
|
|
83
|
+
audiobook: spokenRow('Audiobook', 'Chapter'),
|
|
84
|
+
series: spokenRow('CreativeWorkSeries', 'CreativeWork'),
|
|
85
|
+
},
|
|
86
|
+
// The attribute defaults to `album` in the transform, so the absent case is
|
|
87
|
+
// an album — and `MusicAlbum`, a subtype of `MusicPlaylist`, has been
|
|
88
|
+
// available and unused the whole time.
|
|
89
|
+
fallback: musicRow('MusicAlbum'),
|
|
90
|
+
};
|
|
7
91
|
// SPEC-125 Phase 2 — join tables the rune declares about itself. Referenced
|
|
8
92
|
// from the theme config rather than owned by it: a theme may not redefine
|
|
9
93
|
// what a section *is* (ADR-028).
|
|
@@ -21,6 +105,7 @@ export const playlistSections = {
|
|
|
21
105
|
};
|
|
22
106
|
export const playlistMediaSlots = { media: 'cover' };
|
|
23
107
|
export const playlist = createContentModelSchema({
|
|
108
|
+
schema: playlistSchema,
|
|
24
109
|
sections: playlistSections,
|
|
25
110
|
provides: ['prose'],
|
|
26
111
|
mediaSlots: playlistMediaSlots,
|
|
@@ -85,8 +170,14 @@ export const playlist = createContentModelSchema({
|
|
|
85
170
|
description: 'Playlist description',
|
|
86
171
|
},
|
|
87
172
|
{
|
|
173
|
+
// WORK-572 — `tag:track` alongside `list` so the composition the
|
|
174
|
+
// docs promise works. Greedy because the two forms may alternate,
|
|
175
|
+
// and greedy collection is *consecutive*: prose between two tracks
|
|
176
|
+
// ends the run and pushes the rest to `body`. Documented on the
|
|
177
|
+
// rune page rather than left for an author to discover.
|
|
88
178
|
name: 'tracks',
|
|
89
|
-
match: 'list',
|
|
179
|
+
match: 'list|tag:track',
|
|
180
|
+
greedy: true,
|
|
90
181
|
optional: false,
|
|
91
182
|
description: 'Track listing',
|
|
92
183
|
template: '- **Track Name** (3:45)\n- **Another Track** (4:20)',
|
|
@@ -152,18 +243,26 @@ export const playlist = createContentModelSchema({
|
|
|
152
243
|
const duration = track.duration ?? '';
|
|
153
244
|
const date = track.date?.trim() ?? '';
|
|
154
245
|
const cuePoints = track.cuePoints ?? [];
|
|
155
|
-
|
|
246
|
+
// WORK-569 — no `property=` here any more: `playlistSchema`'s child row
|
|
247
|
+
// stamps both populations, so the list form and a nested `{% track %}`
|
|
248
|
+
// take the same mapping instead of one being declared and one written
|
|
249
|
+
// out by hand.
|
|
250
|
+
const trackNameTag = new Tag('span', { 'data-name': 'track-name' }, [name]);
|
|
156
251
|
const trackChildrenArr = [trackNameTag];
|
|
157
252
|
if (artist) {
|
|
158
|
-
trackChildrenArr.push(new Tag('span', { 'data-name': 'track-artist'
|
|
253
|
+
trackChildrenArr.push(new Tag('span', { 'data-name': 'track-artist' }, [artist]));
|
|
159
254
|
}
|
|
160
255
|
if (duration) {
|
|
161
256
|
trackChildrenArr.push(new Tag('span', { 'data-name': 'track-duration' }, [duration]));
|
|
162
257
|
const durationSeconds = parseDuration(duration);
|
|
163
|
-
|
|
258
|
+
// Named `duration`, matching what `{% track %}` calls its ISO carrier,
|
|
259
|
+
// so one source reaches both forms. `track-duration` beside it is the
|
|
260
|
+
// *rendered* value ("3:45") and stays unmapped — publishing that as a
|
|
261
|
+
// schema.org duration is what naming them apart prevents.
|
|
262
|
+
trackChildrenArr.push(new Tag('meta', { 'data-name': 'duration', content: `PT${durationSeconds}S` }));
|
|
164
263
|
}
|
|
165
264
|
if (date) {
|
|
166
|
-
trackChildrenArr.push(new Tag('span', { 'data-name': 'track-meta'
|
|
265
|
+
trackChildrenArr.push(new Tag('span', { 'data-name': 'track-meta' }, [date]));
|
|
167
266
|
}
|
|
168
267
|
// Build cue point elements
|
|
169
268
|
if (cuePoints.length > 0) {
|
|
@@ -171,12 +270,51 @@ export const playlist = createContentModelSchema({
|
|
|
171
270
|
if (cueListTag)
|
|
172
271
|
trackChildrenArr.push(cueListTag);
|
|
173
272
|
}
|
|
174
|
-
|
|
273
|
+
// No `typeof` either — the child row types these. A list item states no
|
|
274
|
+
// kind of its own, so the parent is the only authority on what it is.
|
|
275
|
+
const trackAttrs = {};
|
|
175
276
|
if (src)
|
|
176
277
|
trackAttrs['data-src'] = src;
|
|
177
278
|
return new Tag('li', trackAttrs, trackChildrenArr);
|
|
178
279
|
});
|
|
179
|
-
|
|
280
|
+
// WORK-572 / BUG-016 — merge nested `{% track %}` children with the list
|
|
281
|
+
// items, in document order.
|
|
282
|
+
//
|
|
283
|
+
// `resolved.tracks` holds the matched nodes in source order; `tracksData`
|
|
284
|
+
// is the flat itemModel extraction across every list among them. Walking
|
|
285
|
+
// the nodes and consuming `tracksData` by list length is what keeps the two
|
|
286
|
+
// forms interleaved correctly, rather than appending one block after the
|
|
287
|
+
// other.
|
|
288
|
+
//
|
|
289
|
+
// Before this, a `{% track %}` inside a `{% playlist %}` fell through to the
|
|
290
|
+
// greedy `body` field: it rendered as an `<li>` outside any list and floated
|
|
291
|
+
// up as a detached top-level entity, while the docs recommended the
|
|
292
|
+
// composition.
|
|
293
|
+
const trackNodes = (contentZone.tracks ?? []);
|
|
294
|
+
const childKind = CHILD_KIND[playlistTypeValue] ?? 'song';
|
|
295
|
+
const orderedTracks = [];
|
|
296
|
+
let listCursor = 0;
|
|
297
|
+
for (const node of Array.isArray(trackNodes) ? trackNodes : [trackNodes]) {
|
|
298
|
+
if (!node || typeof node !== 'object')
|
|
299
|
+
continue;
|
|
300
|
+
if (node.type === 'list') {
|
|
301
|
+
const count = (node.children ?? []).length;
|
|
302
|
+
orderedTracks.push(...trackChildren.slice(listCursor, listCursor + count));
|
|
303
|
+
listCursor += count;
|
|
304
|
+
continue;
|
|
305
|
+
}
|
|
306
|
+
const transformed = new RenderableNodeCursor(Markdoc.transform([node], config))
|
|
307
|
+
.tag('li')
|
|
308
|
+
.toArray();
|
|
309
|
+
for (const li of transformed) {
|
|
310
|
+
orderedTracks.push(adoptNestedTrack(li, childKind, artistValue));
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
// Any list items a node walk missed (defensive: a shape the resolver
|
|
314
|
+
// collected but this loop did not recognise) still belong in the listing.
|
|
315
|
+
if (listCursor < trackChildren.length)
|
|
316
|
+
orderedTracks.push(...trackChildren.slice(listCursor));
|
|
317
|
+
const tracksOl = new Tag('ol', { 'data-name': 'tracks' }, orderedTracks);
|
|
180
318
|
// Build player element (when player attribute is set)
|
|
181
319
|
let playerEl = null;
|
|
182
320
|
if (hasPlayer) {
|
|
@@ -242,10 +380,12 @@ export const playlist = createContentModelSchema({
|
|
|
242
380
|
children.push(tracksOl);
|
|
243
381
|
if (bodyDiv)
|
|
244
382
|
children.push(bodyDiv.next());
|
|
245
|
-
|
|
383
|
+
// WORK-572 — the merged, ordered set, not just the list items: this is the
|
|
384
|
+
// cursor `schema: { track }` stamps `property="track"` onto, and an unstamped
|
|
385
|
+
// child floats up as a detached top-level entity (BUG-016 symptom 2).
|
|
386
|
+
const trackItems = new RenderableNodeCursor(orderedTracks);
|
|
246
387
|
return createComponentRenderable({
|
|
247
388
|
rune: 'playlist',
|
|
248
|
-
schemaOrgType: 'MusicPlaylist',
|
|
249
389
|
tag: 'section',
|
|
250
390
|
property: 'contentSection',
|
|
251
391
|
properties: {
|
|
@@ -262,17 +402,85 @@ export const playlist = createContentModelSchema({
|
|
|
262
402
|
...sectionProps,
|
|
263
403
|
...(bodyDiv ? { body: bodyDiv } : {}),
|
|
264
404
|
media: mediaDiv,
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
...(seoImage ? { image: seoImage } : {}),
|
|
269
|
-
...(artistMeta ? { byArtist: artistMeta } : {}),
|
|
270
|
-
track: trackItems,
|
|
405
|
+
// WORK-561 — see the note on `recipe`: `image` is taken by
|
|
406
|
+
// `sectionProps`, so the media slot's image is `mediaImage`.
|
|
407
|
+
...(seoImage ? { mediaImage: seoImage } : {}),
|
|
271
408
|
},
|
|
272
409
|
children,
|
|
273
410
|
});
|
|
274
411
|
},
|
|
275
412
|
});
|
|
413
|
+
/**
|
|
414
|
+
* Adopt a nested `{% track %}` into its playlist (WORK-572).
|
|
415
|
+
*
|
|
416
|
+
* Two channels, and they behave differently (SPEC-130 D9):
|
|
417
|
+
*
|
|
418
|
+
* - **`typeof` — what the child *is* — is the child's when stated, else the
|
|
419
|
+
* parent's child-row default.** The `TYPE_IMPLICIT` marker is how the parent
|
|
420
|
+
* tells those apart; without it an absent `type` and an explicit
|
|
421
|
+
* `type="song"` are the same value by transform time.
|
|
422
|
+
* - **`property` — which collection it joins — is always the parent's**, and it
|
|
423
|
+
* is stamped by `createComponentRenderable`'s `schema:` map further down, not
|
|
424
|
+
* here. `collectJsonLd` nests a typed node only when it carries both `typeof`
|
|
425
|
+
* and `property`, so a child the parent never stamps floats free whatever type
|
|
426
|
+
* it has.
|
|
427
|
+
*
|
|
428
|
+
* The artist default rides along for the same reason the type does: the list
|
|
429
|
+
* form does `track.artist ?? playlistArtist`, so without it the two forms would
|
|
430
|
+
* disagree on `byArtist` and the equivalence would be false.
|
|
431
|
+
*/
|
|
432
|
+
function adoptNestedTrack(li, childKind, playlistArtist) {
|
|
433
|
+
if (!li || typeof li !== 'object')
|
|
434
|
+
return li;
|
|
435
|
+
if (!li[TYPE_IMPLICIT]) {
|
|
436
|
+
// The marker means "the author stated this type" (WORK-569), so its absence
|
|
437
|
+
// is what licenses adoption. The schema type is the applier's to set from
|
|
438
|
+
// `playlistSchema`'s child row, and the marker stays on the node for it to
|
|
439
|
+
// read; what is left here is the *rendered* modifier, so a podcast's nested
|
|
440
|
+
// track does not present itself as a song.
|
|
441
|
+
const raw = li.attributes['data-rune-fields'];
|
|
442
|
+
if (typeof raw === 'string') {
|
|
443
|
+
try {
|
|
444
|
+
const bag = JSON.parse(raw);
|
|
445
|
+
bag.type = childKind;
|
|
446
|
+
li.attributes['data-rune-fields'] = JSON.stringify(bag);
|
|
447
|
+
}
|
|
448
|
+
catch {
|
|
449
|
+
// A malformed bag is not this function's to repair.
|
|
450
|
+
}
|
|
451
|
+
}
|
|
452
|
+
for (const child of li.children ?? []) {
|
|
453
|
+
if (child?.name === 'meta' && child.attributes?.['data-field'] === 'type') {
|
|
454
|
+
child.attributes.content = childKind;
|
|
455
|
+
}
|
|
456
|
+
}
|
|
457
|
+
}
|
|
458
|
+
if (playlistArtist && !hasArtist(li)) {
|
|
459
|
+
// Named rather than stamped, so the child row decides whether a playlist's
|
|
460
|
+
// artist reaches the item at all — on a podcast or an audiobook it does
|
|
461
|
+
// not, because the series carries its publisher.
|
|
462
|
+
const artistMeta = new Markdoc.Tag('meta', {
|
|
463
|
+
content: playlistArtist,
|
|
464
|
+
'data-name': 'track-artist',
|
|
465
|
+
});
|
|
466
|
+
li.children = [...(li.children ?? []), artistMeta];
|
|
467
|
+
}
|
|
468
|
+
return li;
|
|
469
|
+
}
|
|
470
|
+
/** Whether a track already carries its own artist. */
|
|
471
|
+
function hasArtist(li) {
|
|
472
|
+
const raw = li.attributes?.['data-rune-fields'];
|
|
473
|
+
if (typeof raw === 'string') {
|
|
474
|
+
try {
|
|
475
|
+
if (JSON.parse(raw).artist)
|
|
476
|
+
return true;
|
|
477
|
+
}
|
|
478
|
+
catch {
|
|
479
|
+
// fall through to the node scan
|
|
480
|
+
}
|
|
481
|
+
}
|
|
482
|
+
return (li.children ?? []).some((c) => c?.attributes?.property === 'byArtist' || c?.attributes?.['data-name'] === 'track-artist');
|
|
483
|
+
}
|
|
276
484
|
/**
|
|
277
485
|
* Build cue point list (chapters or lyrics) from extracted itemModel data.
|
|
278
486
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"playlist.js","sourceRoot":"","sources":["../../src/tags/playlist.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"playlist.js","sourceRoot":"","sources":["../../src/tags/playlist.ts"],"names":[],"mappings":"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"}
|
package/dist/tags/track.d.ts
CHANGED
|
@@ -1,3 +1,83 @@
|
|
|
1
1
|
import Markdoc from '@markdoc/markdoc';
|
|
2
|
+
/**
|
|
3
|
+
* Marks a track whose `type` the author **did** state (WORK-572 / WORK-569).
|
|
4
|
+
*
|
|
5
|
+
* WORK-572 introduced this the other way round, as "the author stated nothing",
|
|
6
|
+
* because `playlist` was the only reader and adoption was the special case.
|
|
7
|
+
* WORK-569 moved it into the applier and inverted it: D9's default is that a
|
|
8
|
+
* parent retypes its children, so what needs marking is the exception — a type
|
|
9
|
+
* the author wrote, which no parent may overrule.
|
|
10
|
+
*
|
|
11
|
+
* Re-exported under the old name because `playlist` also reads it to decide
|
|
12
|
+
* whether to adopt the *rendered* kind, which is not a schema concern.
|
|
13
|
+
*/
|
|
14
|
+
export declare const TYPE_IMPLICIT: symbol;
|
|
15
|
+
export declare const trackSchema: {
|
|
16
|
+
by: string;
|
|
17
|
+
rows: {
|
|
18
|
+
song: {
|
|
19
|
+
type: string;
|
|
20
|
+
properties: {
|
|
21
|
+
artist: string;
|
|
22
|
+
name: "name";
|
|
23
|
+
duration: "duration";
|
|
24
|
+
url: "url";
|
|
25
|
+
position: "position";
|
|
26
|
+
datePublished: "datePublished";
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
episode: {
|
|
30
|
+
type: string;
|
|
31
|
+
properties: {
|
|
32
|
+
readonly name: "name";
|
|
33
|
+
readonly duration: "duration";
|
|
34
|
+
readonly url: "url";
|
|
35
|
+
readonly position: "position";
|
|
36
|
+
readonly datePublished: "datePublished";
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
chapter: {
|
|
40
|
+
type: string;
|
|
41
|
+
properties: {
|
|
42
|
+
readonly name: "name";
|
|
43
|
+
readonly duration: "duration";
|
|
44
|
+
readonly url: "url";
|
|
45
|
+
readonly position: "position";
|
|
46
|
+
readonly datePublished: "datePublished";
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
talk: {
|
|
50
|
+
type: string;
|
|
51
|
+
properties: {
|
|
52
|
+
readonly name: "name";
|
|
53
|
+
readonly duration: "duration";
|
|
54
|
+
readonly url: "url";
|
|
55
|
+
readonly position: "position";
|
|
56
|
+
readonly datePublished: "datePublished";
|
|
57
|
+
};
|
|
58
|
+
};
|
|
59
|
+
video: {
|
|
60
|
+
type: string;
|
|
61
|
+
properties: {
|
|
62
|
+
readonly name: "name";
|
|
63
|
+
readonly duration: "duration";
|
|
64
|
+
readonly url: "url";
|
|
65
|
+
readonly position: "position";
|
|
66
|
+
readonly datePublished: "datePublished";
|
|
67
|
+
};
|
|
68
|
+
};
|
|
69
|
+
};
|
|
70
|
+
fallback: {
|
|
71
|
+
type: string;
|
|
72
|
+
properties: {
|
|
73
|
+
artist: string;
|
|
74
|
+
name: "name";
|
|
75
|
+
duration: "duration";
|
|
76
|
+
url: "url";
|
|
77
|
+
position: "position";
|
|
78
|
+
datePublished: "datePublished";
|
|
79
|
+
};
|
|
80
|
+
};
|
|
81
|
+
};
|
|
2
82
|
export declare const track: Markdoc.Schema;
|
|
3
83
|
//# sourceMappingURL=track.d.ts.map
|
package/dist/tags/track.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"track.d.ts","sourceRoot":"","sources":["../../src/tags/track.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"track.d.ts","sourceRoot":"","sources":["../../src/tags/track.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAcvC;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,aAAa,QAAuB,CAAC;AA+BlD,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAavB,CAAC;AAEF,eAAO,MAAM,KAAK,gBA4JhB,CAAC"}
|
package/dist/tags/track.js
CHANGED
|
@@ -1,9 +1,65 @@
|
|
|
1
1
|
import Markdoc from '@markdoc/markdoc';
|
|
2
2
|
const { Tag } = Markdoc;
|
|
3
|
-
import { createContentModelSchema, createComponentRenderable, asNodes, RenderableNodeCursor, } from '@refrakt-md/runes';
|
|
3
|
+
import { createContentModelSchema, createComponentRenderable, asNodes, RenderableNodeCursor, SCHEMA_TYPE_EXPLICIT, } from '@refrakt-md/runes';
|
|
4
4
|
import { parseDuration, formatDuration } from '../duration.js';
|
|
5
5
|
const trackType = ['song', 'episode', 'chapter', 'talk', 'video'];
|
|
6
|
+
/**
|
|
7
|
+
* Marks a track whose `type` the author **did** state (WORK-572 / WORK-569).
|
|
8
|
+
*
|
|
9
|
+
* WORK-572 introduced this the other way round, as "the author stated nothing",
|
|
10
|
+
* because `playlist` was the only reader and adoption was the special case.
|
|
11
|
+
* WORK-569 moved it into the applier and inverted it: D9's default is that a
|
|
12
|
+
* parent retypes its children, so what needs marking is the exception — a type
|
|
13
|
+
* the author wrote, which no parent may overrule.
|
|
14
|
+
*
|
|
15
|
+
* Re-exported under the old name because `playlist` also reads it to decide
|
|
16
|
+
* whether to adopt the *rendered* kind, which is not a schema concern.
|
|
17
|
+
*/
|
|
18
|
+
export const TYPE_IMPLICIT = SCHEMA_TYPE_EXPLICIT;
|
|
19
|
+
/**
|
|
20
|
+
* SPEC-130 / WORK-569 — `track` keys off the enum its author already set.
|
|
21
|
+
*
|
|
22
|
+
* The rune declared five kinds and emitted `MusicRecording` for all of them, so
|
|
23
|
+
* `{% track type="episode" %}` published a podcast episode as a music
|
|
24
|
+
* recording. Half of BUG-013; `playlist` is the other half, and the two tables
|
|
25
|
+
* are independent — neither rune declares anything about the other (D9).
|
|
26
|
+
*
|
|
27
|
+
* **`byArtist` is on the music row only.** It belongs to `MusicRecording`; a
|
|
28
|
+
* `PodcastEpisode`, `Chapter`, `CreativeWork` or `VideoObject` does not have it,
|
|
29
|
+
* and carrying it across would be worse than the type it replaced, which was at
|
|
30
|
+
* least coherently wrong. Mapping the artist to `author` on those rows is
|
|
31
|
+
* arguable and deliberately not done here: `author` expects a Person or
|
|
32
|
+
* Organization and the value is a bare string, so it is a new claim rather than
|
|
33
|
+
* a relocation. Nothing checks either judgement (D5) — read the row in
|
|
34
|
+
* `refrakt inspect` and disagree there.
|
|
35
|
+
*
|
|
36
|
+
* `talk` is the row with no obvious type. `CreativeWork` is the honest answer:
|
|
37
|
+
* schema.org has no talk, and `PresentationDigitalDocument` describes the slides
|
|
38
|
+
* rather than the talk.
|
|
39
|
+
*/
|
|
40
|
+
const trackCommon = {
|
|
41
|
+
name: 'name',
|
|
42
|
+
duration: 'duration',
|
|
43
|
+
url: 'url',
|
|
44
|
+
position: 'position',
|
|
45
|
+
datePublished: 'datePublished',
|
|
46
|
+
};
|
|
47
|
+
export const trackSchema = {
|
|
48
|
+
by: 'type',
|
|
49
|
+
rows: {
|
|
50
|
+
song: { type: 'MusicRecording', properties: { ...trackCommon, artist: 'byArtist' } },
|
|
51
|
+
episode: { type: 'PodcastEpisode', properties: trackCommon },
|
|
52
|
+
chapter: { type: 'Chapter', properties: trackCommon },
|
|
53
|
+
talk: { type: 'CreativeWork', properties: trackCommon },
|
|
54
|
+
video: { type: 'VideoObject', properties: trackCommon },
|
|
55
|
+
},
|
|
56
|
+
// A standalone track with no stated kind is a song, matching the `'song'`
|
|
57
|
+
// fallback the transform has always used. Nested, the marker above lets its
|
|
58
|
+
// playlist replace this.
|
|
59
|
+
fallback: { type: 'MusicRecording', properties: { ...trackCommon, artist: 'byArtist' } },
|
|
60
|
+
};
|
|
6
61
|
export const track = createContentModelSchema({
|
|
62
|
+
schema: trackSchema,
|
|
7
63
|
attributes: {
|
|
8
64
|
src: {
|
|
9
65
|
type: String,
|
|
@@ -56,7 +112,14 @@ export const track = createContentModelSchema({
|
|
|
56
112
|
const number = attrs.number;
|
|
57
113
|
const date = attrs.date ?? '';
|
|
58
114
|
const url = attrs.url ?? '';
|
|
59
|
-
|
|
115
|
+
// WORK-572 — an absent `type` and an explicit `type="song"` must stay
|
|
116
|
+
// distinguishable. Coalescing here made them identical by transform time,
|
|
117
|
+
// so "no explicit type → inherit the playlist's" could never fire. The
|
|
118
|
+
// `'song'` default is now the *standalone* fallback only; a nested track
|
|
119
|
+
// with no explicit type is retyped by its parent (SPEC-130 D9 — the parent
|
|
120
|
+
// retypes its children; a child never declares its context).
|
|
121
|
+
const explicitType = attrs.type;
|
|
122
|
+
const typeValue = explicitType ?? 'song';
|
|
60
123
|
// Transform title
|
|
61
124
|
const titleNodes = new RenderableNodeCursor(Markdoc.transform(asNodes(resolved.title), config));
|
|
62
125
|
// Extract track name from title heading or paragraph
|
|
@@ -106,15 +169,24 @@ export const track = createContentModelSchema({
|
|
|
106
169
|
const urlMeta = url ? new Tag('meta', { content: url }) : undefined;
|
|
107
170
|
const numberMeta = number !== undefined ? new Tag('meta', { content: String(number) }) : undefined;
|
|
108
171
|
const dateMeta = date ? new Tag('meta', { content: date }) : undefined;
|
|
172
|
+
// WORK-572 — `artistMeta` and `durationMeta` were declared in `properties`
|
|
173
|
+
// and `schema` but never pushed here, so they were stamped onto nodes that
|
|
174
|
+
// were not in the tree: a standalone `{% track artist="Radiohead"
|
|
175
|
+
// duration="4:01" %}` published its name and nothing else. The visible
|
|
176
|
+
// `track-artist` / `track-duration` spans carry no `property=`, so
|
|
177
|
+
// `collectProperties` never saw a value either.
|
|
178
|
+
if (artistMeta)
|
|
179
|
+
children.push(artistMeta);
|
|
180
|
+
if (durationMeta)
|
|
181
|
+
children.push(durationMeta);
|
|
109
182
|
if (urlMeta)
|
|
110
183
|
children.push(urlMeta);
|
|
111
184
|
if (numberMeta)
|
|
112
185
|
children.push(numberMeta);
|
|
113
186
|
if (dateMeta)
|
|
114
187
|
children.push(dateMeta);
|
|
115
|
-
|
|
188
|
+
const renderable = createComponentRenderable({
|
|
116
189
|
rune: 'track',
|
|
117
|
-
schemaOrgType: 'MusicRecording',
|
|
118
190
|
tag: 'li',
|
|
119
191
|
properties: {
|
|
120
192
|
name: nameTag,
|
|
@@ -125,16 +197,14 @@ export const track = createContentModelSchema({
|
|
|
125
197
|
...(dateMeta ? { datePublished: dateMeta } : {}),
|
|
126
198
|
type: typeMeta,
|
|
127
199
|
},
|
|
128
|
-
schema: {
|
|
129
|
-
name: nameTag,
|
|
130
|
-
...(artistMeta ? { byArtist: artistMeta } : {}),
|
|
131
|
-
...(durationMeta ? { duration: durationMeta } : {}),
|
|
132
|
-
...(urlMeta ? { url: urlMeta } : {}),
|
|
133
|
-
...(numberMeta ? { position: numberMeta } : {}),
|
|
134
|
-
...(dateMeta ? { datePublished: dateMeta } : {}),
|
|
135
|
-
},
|
|
136
200
|
children,
|
|
137
201
|
});
|
|
202
|
+
// `rootAttrs` was assembled and then never applied, so `src` was dropped on
|
|
203
|
+
// a standalone track — the audio file the author pointed at reached nothing.
|
|
204
|
+
Object.assign(renderable.attributes, rootAttrs);
|
|
205
|
+
if (explicitType !== undefined)
|
|
206
|
+
renderable[TYPE_IMPLICIT] = true;
|
|
207
|
+
return renderable;
|
|
138
208
|
},
|
|
139
209
|
});
|
|
140
210
|
function extractText(tag) {
|
package/dist/tags/track.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"track.js","sourceRoot":"","sources":["../../src/tags/track.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAEvC,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;AACxB,OAAO,EACN,wBAAwB,EACxB,yBAAyB,EACzB,OAAO,EACP,oBAAoB,GACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAE/D,MAAM,SAAS,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAU,CAAC;AAE3E,MAAM,CAAC,MAAM,KAAK,GAAG,wBAAwB,CAAC;IAC7C,UAAU,EAAE;QACX,GAAG,EAAE;YACJ,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,KAAK;YACf,WAAW,EAAE,gDAAgD;SAC7D;QACD,MAAM,EAAE;YACP,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,KAAK;YACf,WAAW,EAAE,2CAA2C;SACxD;QACD,QAAQ,EAAE;YACT,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,KAAK;YACf,WAAW,EAAE,6DAA6D;SAC1E;QACD,MAAM,EAAE;YACP,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,KAAK;YACf,WAAW,EAAE,qDAAqD;SAClE;QACD,IAAI,EAAE;YACL,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,KAAK;YACf,WAAW,EAAE,4CAA4C;SACzD;QACD,GAAG,EAAE;YACJ,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,KAAK;YACf,WAAW,EAAE,gEAAgE;SAC7E;QACD,IAAI,EAAE;YACL,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,SAAS,CAAC,KAAK,EAAE;YAC1B,WAAW,EAAE,yDAAyD;SACtE;KACD;IACD,YAAY,EAAE;QACb,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE;YACP,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,mBAAmB,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC7D,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;SAC5D;KACD;IACD,SAAS,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM;QAChC,MAAM,GAAG,GAAI,KAAK,CAAC,GAAc,IAAI,EAAE,CAAC;QACxC,MAAM,MAAM,GAAI,KAAK,CAAC,MAAiB,IAAI,EAAE,CAAC;QAC9C,MAAM,QAAQ,GAAI,KAAK,CAAC,QAAmB,IAAI,EAAE,CAAC;QAClD,MAAM,MAAM,GAAG,KAAK,CAAC,MAA4B,CAAC;QAClD,MAAM,IAAI,GAAI,KAAK,CAAC,IAAe,IAAI,EAAE,CAAC;QAC1C,MAAM,GAAG,GAAI,KAAK,CAAC,GAAc,IAAI,EAAE,CAAC;QACxC,MAAM,
|
|
1
|
+
{"version":3,"file":"track.js","sourceRoot":"","sources":["../../src/tags/track.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@refrakt-md/media",
|
|
3
3
|
"description": "Media runes for refrakt.md — music playlists and recordings",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.35.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.
|
|
25
|
-
"@refrakt-md/transform": "0.
|
|
26
|
-
"@refrakt-md/runes": "0.
|
|
24
|
+
"@refrakt-md/types": "0.35.0",
|
|
25
|
+
"@refrakt-md/transform": "0.35.0",
|
|
26
|
+
"@refrakt-md/runes": "0.35.0",
|
|
27
27
|
"@markdoc/markdoc": "0.4.0",
|
|
28
28
|
"iso8601-duration": "2.1.2",
|
|
29
29
|
"reflect-metadata": "^0.2.0"
|