@prosefly/astro-components 0.2.1 → 0.3.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/markdown/callout-directives.d.ts +3 -0
- package/dist/markdown/callout-directives.d.ts.map +1 -0
- package/dist/markdown/callout-directives.js +130 -0
- package/dist/markdown/callout-directives.js.map +1 -0
- package/dist/markdown/index.d.ts +2 -0
- package/dist/markdown/index.d.ts.map +1 -1
- package/dist/markdown/index.js +2 -0
- package/dist/markdown/index.js.map +1 -1
- package/dist/mdx/Callout.astro +2 -2
- package/dist/mdx/Card.astro +1 -1
- package/package.json +5 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"callout-directives.d.ts","sourceRoot":"","sources":["../../src/markdown/callout-directives.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAoC7D,eAAO,MAAM,uBAAuB,EAAE,YA0BrC,CAAC"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import remarkDirective from 'remark-directive';
|
|
2
|
+
const importStatement = "import { Callout as ProseflyDirectiveCallout } from '@prosefly/astro-components';";
|
|
3
|
+
const calloutTypes = new Map([
|
|
4
|
+
['caution', 'warning'],
|
|
5
|
+
['danger', 'danger'],
|
|
6
|
+
['note', 'note'],
|
|
7
|
+
['tip', 'tip'],
|
|
8
|
+
['warning', 'warning'],
|
|
9
|
+
]);
|
|
10
|
+
export const remarkCalloutDirectives = function () {
|
|
11
|
+
this.use(remarkDirective);
|
|
12
|
+
return (tree) => {
|
|
13
|
+
const root = tree;
|
|
14
|
+
let transformed = false;
|
|
15
|
+
visitChildren(root, (node, parent, index) => {
|
|
16
|
+
if (!parent?.children ||
|
|
17
|
+
index === undefined ||
|
|
18
|
+
!isCalloutDirective(node)) {
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
parent.children[index] = createCalloutNode(node);
|
|
22
|
+
transformed = true;
|
|
23
|
+
});
|
|
24
|
+
if (transformed && !hasCalloutDirectiveImport(root)) {
|
|
25
|
+
root.children.unshift(createImportNode());
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
function visitChildren(node, visitor, parent, index) {
|
|
30
|
+
visitor(node, parent, index);
|
|
31
|
+
if (!node.children) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
node.children.forEach((child, childIndex) => {
|
|
35
|
+
visitChildren(child, visitor, node, childIndex);
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
function isCalloutDirective(node) {
|
|
39
|
+
return ((node.type === 'containerDirective' || node.type === 'leafDirective') &&
|
|
40
|
+
typeof node.name === 'string' &&
|
|
41
|
+
calloutTypes.has(node.name) &&
|
|
42
|
+
Array.isArray(node.children));
|
|
43
|
+
}
|
|
44
|
+
function createCalloutNode(node) {
|
|
45
|
+
const { title, children } = getCalloutContent(node);
|
|
46
|
+
const type = calloutTypes.get(node.name) ?? 'note';
|
|
47
|
+
const attributes = [
|
|
48
|
+
{
|
|
49
|
+
type: 'mdxJsxAttribute',
|
|
50
|
+
name: 'type',
|
|
51
|
+
value: type,
|
|
52
|
+
},
|
|
53
|
+
];
|
|
54
|
+
if (title) {
|
|
55
|
+
attributes.push({
|
|
56
|
+
type: 'mdxJsxAttribute',
|
|
57
|
+
name: 'title',
|
|
58
|
+
value: title,
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
return {
|
|
62
|
+
type: 'mdxJsxFlowElement',
|
|
63
|
+
name: 'ProseflyDirectiveCallout',
|
|
64
|
+
attributes,
|
|
65
|
+
children,
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
function getCalloutContent(node) {
|
|
69
|
+
const title = getAttributeTitle(node) ?? getDirectiveLabel(node);
|
|
70
|
+
const children = title
|
|
71
|
+
? node.children.filter((child) => !isDirectiveLabel(child))
|
|
72
|
+
: node.children;
|
|
73
|
+
return { children, title };
|
|
74
|
+
}
|
|
75
|
+
function getAttributeTitle(node) {
|
|
76
|
+
const title = node.attributes?.title;
|
|
77
|
+
return typeof title === 'string' && title.trim() ? title : undefined;
|
|
78
|
+
}
|
|
79
|
+
function getDirectiveLabel(node) {
|
|
80
|
+
const label = node.children.find(isDirectiveLabel);
|
|
81
|
+
if (!label?.children) {
|
|
82
|
+
return undefined;
|
|
83
|
+
}
|
|
84
|
+
const text = label.children.map(getPlainText).join('').trim();
|
|
85
|
+
return text || undefined;
|
|
86
|
+
}
|
|
87
|
+
function isDirectiveLabel(node) {
|
|
88
|
+
return node.type === 'paragraph' && node.data?.directiveLabel === true;
|
|
89
|
+
}
|
|
90
|
+
function getPlainText(node) {
|
|
91
|
+
if (typeof node.value === 'string') {
|
|
92
|
+
return node.value;
|
|
93
|
+
}
|
|
94
|
+
return node.children?.map(getPlainText).join('') ?? '';
|
|
95
|
+
}
|
|
96
|
+
function createImportNode() {
|
|
97
|
+
return {
|
|
98
|
+
type: 'mdxjsEsm',
|
|
99
|
+
value: importStatement,
|
|
100
|
+
data: {
|
|
101
|
+
estree: {
|
|
102
|
+
type: 'Program',
|
|
103
|
+
sourceType: 'module',
|
|
104
|
+
body: [
|
|
105
|
+
{
|
|
106
|
+
type: 'ImportDeclaration',
|
|
107
|
+
specifiers: [
|
|
108
|
+
{
|
|
109
|
+
type: 'ImportSpecifier',
|
|
110
|
+
imported: { type: 'Identifier', name: 'Callout' },
|
|
111
|
+
local: { type: 'Identifier', name: 'ProseflyDirectiveCallout' },
|
|
112
|
+
},
|
|
113
|
+
],
|
|
114
|
+
source: {
|
|
115
|
+
type: 'Literal',
|
|
116
|
+
value: '@prosefly/astro-components',
|
|
117
|
+
raw: "'@prosefly/astro-components'",
|
|
118
|
+
},
|
|
119
|
+
},
|
|
120
|
+
],
|
|
121
|
+
},
|
|
122
|
+
},
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
function hasCalloutDirectiveImport(tree) {
|
|
126
|
+
return tree.children.some((node) => node.type === 'mdxjsEsm' &&
|
|
127
|
+
typeof node.value === 'string' &&
|
|
128
|
+
node.value.includes('ProseflyDirectiveCallout'));
|
|
129
|
+
}
|
|
130
|
+
//# sourceMappingURL=callout-directives.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"callout-directives.js","sourceRoot":"","sources":["../../src/markdown/callout-directives.ts"],"names":[],"mappings":"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"}
|
package/dist/markdown/index.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
export { unified } from '@astrojs/markdown-remark';
|
|
1
2
|
export { rehypeImageGallery } from './image-gallery-plugin.js';
|
|
3
|
+
export { remarkCalloutDirectives } from './callout-directives.js';
|
|
2
4
|
export { remarkPackageManagerTabs } from './package-manager-tabs.js';
|
|
3
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/markdown/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/markdown/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC"}
|
package/dist/markdown/index.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
export { unified } from '@astrojs/markdown-remark';
|
|
1
2
|
export { rehypeImageGallery } from './image-gallery-plugin.js';
|
|
3
|
+
export { remarkCalloutDirectives } from './callout-directives.js';
|
|
2
4
|
export { remarkPackageManagerTabs } from './package-manager-tabs.js';
|
|
3
5
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/markdown/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/markdown/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC"}
|
package/dist/mdx/Callout.astro
CHANGED
|
@@ -16,7 +16,7 @@ const { title, type = 'note' } = Astro.props;
|
|
|
16
16
|
const hasTitle = Boolean(title);
|
|
17
17
|
---
|
|
18
18
|
|
|
19
|
-
<
|
|
19
|
+
<div class="pl-callout" data-has-title={hasTitle ? 'true' : 'false'} data-type={type} role="note">
|
|
20
20
|
<span class="pl-callout__icon" aria-hidden="true">
|
|
21
21
|
<Icon name={iconNames[type]} />
|
|
22
22
|
</span>
|
|
@@ -26,7 +26,7 @@ const hasTitle = Boolean(title);
|
|
|
26
26
|
<slot />
|
|
27
27
|
</div>
|
|
28
28
|
</div>
|
|
29
|
-
</
|
|
29
|
+
</div>
|
|
30
30
|
|
|
31
31
|
<style>
|
|
32
32
|
.pl-callout {
|
package/dist/mdx/Card.astro
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@prosefly/astro-components",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "BSD-3-Clause",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -8,7 +8,8 @@
|
|
|
8
8
|
"build": "node ./scripts/build.mjs",
|
|
9
9
|
"check": "tsc -p ./tsconfig.build.json --noEmit",
|
|
10
10
|
"prepack": "npm run build",
|
|
11
|
-
"prepublishOnly": "npm run check && npm run build"
|
|
11
|
+
"prepublishOnly": "npm run check && npm run build",
|
|
12
|
+
"test": "pnpm run build && node --test test/*.test.mjs"
|
|
12
13
|
},
|
|
13
14
|
"repository": {
|
|
14
15
|
"type": "git",
|
|
@@ -46,7 +47,8 @@
|
|
|
46
47
|
"@astrojs/markdown-remark": "^7.2.1",
|
|
47
48
|
"@iconify/utils": "^3.1.4",
|
|
48
49
|
"rehype": "^13.0.2",
|
|
49
|
-
"rehype-format": "^5.0.1"
|
|
50
|
+
"rehype-format": "^5.0.1",
|
|
51
|
+
"remark-directive": "^4.0.0"
|
|
50
52
|
},
|
|
51
53
|
"devDependencies": {
|
|
52
54
|
"astro": "7.1.0",
|