@wpnuxt/blocks 0.0.2
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/README.md +84 -0
- package/dist/module.cjs +5 -0
- package/dist/module.d.mts +7 -0
- package/dist/module.d.ts +7 -0
- package/dist/module.json +9 -0
- package/dist/module.mjs +75 -0
- package/dist/runtime/components/BlockComponent.vue +39 -0
- package/dist/runtime/components/BlockRenderer.vue +18 -0
- package/dist/runtime/components/blocks/CoreButton.vue +14 -0
- package/dist/runtime/components/blocks/CoreButtons.vue +23 -0
- package/dist/runtime/components/blocks/CoreGallery.vue +39 -0
- package/dist/runtime/components/blocks/CoreImage.vue +25 -0
- package/dist/runtime/components/blocks/CoreParagraph.vue +13 -0
- package/dist/runtime/components/blocks/CoreQuote.vue +20 -0
- package/dist/runtime/components/blocks/EditorBlock.vue +11 -0
- package/dist/runtime/queries/fragments/CoreButton.fragment.gql +26 -0
- package/dist/runtime/queries/fragments/CoreGallery.fragment.gql +31 -0
- package/dist/runtime/queries/fragments/CoreImage.fragment.gql +29 -0
- package/dist/runtime/queries/fragments/CoreParagraph.fragment.gql +20 -0
- package/dist/runtime/queries/fragments/CoreQuote.fragment.gql +18 -0
- package/dist/runtime/queries/fragments/EditorBlock.fragment.gql +21 -0
- package/dist/runtime/queries/fragments/EditorBlocks.fragment.gql +10 -0
- package/dist/runtime/queries/fragments/Page.fragment.gql +17 -0
- package/dist/runtime/queries/fragments/Post.fragment.gql +13 -0
- package/dist/runtime/server/tsconfig.json +3 -0
- package/dist/types.d.mts +1 -0
- package/dist/types.d.ts +1 -0
- package/package.json +59 -0
package/README.md
ADDED
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
Get your module up and running quickly.
|
|
3
|
+
|
|
4
|
+
Find and replace all on all files (CMD+SHIFT+F):
|
|
5
|
+
- Name: My Module
|
|
6
|
+
- Package name: my-module
|
|
7
|
+
- Description: My new Nuxt module
|
|
8
|
+
-->
|
|
9
|
+
|
|
10
|
+
# My Module
|
|
11
|
+
|
|
12
|
+
[![npm version][npm-version-src]][npm-version-href]
|
|
13
|
+
[![npm downloads][npm-downloads-src]][npm-downloads-href]
|
|
14
|
+
[![License][license-src]][license-href]
|
|
15
|
+
[![Nuxt][nuxt-src]][nuxt-href]
|
|
16
|
+
|
|
17
|
+
My new Nuxt module for doing amazing things.
|
|
18
|
+
|
|
19
|
+
- [✨ Release Notes](/CHANGELOG.md)
|
|
20
|
+
<!-- - [🏀 Online playground](https://stackblitz.com/github/your-org/my-module?file=playground%2Fapp.vue) -->
|
|
21
|
+
<!-- - [📖 Documentation](https://example.com) -->
|
|
22
|
+
|
|
23
|
+
## Features
|
|
24
|
+
|
|
25
|
+
<!-- Highlight some of the features your module provide here -->
|
|
26
|
+
- ⛰ Foo
|
|
27
|
+
- 🚠 Bar
|
|
28
|
+
- 🌲 Baz
|
|
29
|
+
|
|
30
|
+
## Quick Setup
|
|
31
|
+
|
|
32
|
+
Install the module to your Nuxt application with one command:
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
npx nuxi module add my-module
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
That's it! You can now use My Module in your Nuxt app ✨
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
## Contribution
|
|
42
|
+
|
|
43
|
+
<details>
|
|
44
|
+
<summary>Local development</summary>
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
# Install dependencies
|
|
48
|
+
npm install
|
|
49
|
+
|
|
50
|
+
# Generate type stubs
|
|
51
|
+
npm run dev:prepare
|
|
52
|
+
|
|
53
|
+
# Develop with the playground
|
|
54
|
+
npm run dev
|
|
55
|
+
|
|
56
|
+
# Build the playground
|
|
57
|
+
npm run dev:build
|
|
58
|
+
|
|
59
|
+
# Run ESLint
|
|
60
|
+
npm run lint
|
|
61
|
+
|
|
62
|
+
# Run Vitest
|
|
63
|
+
npm run test
|
|
64
|
+
npm run test:watch
|
|
65
|
+
|
|
66
|
+
# Release new version
|
|
67
|
+
npm run release
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
</details>
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
<!-- Badges -->
|
|
74
|
+
[npm-version-src]: https://img.shields.io/npm/v/my-module/latest.svg?style=flat&colorA=020420&colorB=00DC82
|
|
75
|
+
[npm-version-href]: https://npmjs.com/package/my-module
|
|
76
|
+
|
|
77
|
+
[npm-downloads-src]: https://img.shields.io/npm/dm/my-module.svg?style=flat&colorA=020420&colorB=00DC82
|
|
78
|
+
[npm-downloads-href]: https://npmjs.com/package/my-module
|
|
79
|
+
|
|
80
|
+
[license-src]: https://img.shields.io/npm/l/my-module.svg?style=flat&colorA=020420&colorB=00DC82
|
|
81
|
+
[license-href]: https://npmjs.com/package/my-module
|
|
82
|
+
|
|
83
|
+
[nuxt-src]: https://img.shields.io/badge/Nuxt-020420?logo=nuxt.js
|
|
84
|
+
[nuxt-href]: https://nuxt.com
|
package/dist/module.cjs
ADDED
package/dist/module.d.ts
ADDED
package/dist/module.json
ADDED
package/dist/module.mjs
ADDED
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
import { defineNuxtModule, createResolver, addComponentsDir, addComponent, addTemplate } from '@nuxt/kit';
|
|
3
|
+
import { genDynamicImport } from 'knitwork';
|
|
4
|
+
|
|
5
|
+
const name = "@wpnuxt/blocks";
|
|
6
|
+
const version = "0.0.2";
|
|
7
|
+
|
|
8
|
+
const module = defineNuxtModule({
|
|
9
|
+
meta: {
|
|
10
|
+
name,
|
|
11
|
+
version,
|
|
12
|
+
configKey: "wpNuxtBlocks"
|
|
13
|
+
},
|
|
14
|
+
// Default configuration options of the Nuxt module
|
|
15
|
+
defaults: {},
|
|
16
|
+
async setup(_options, nuxt) {
|
|
17
|
+
const { resolve } = createResolver(import.meta.url);
|
|
18
|
+
const resolveRuntimeModule = (path) => resolve("./runtime", path);
|
|
19
|
+
console.log("!!! Setup @wpnuxt/blocks module");
|
|
20
|
+
nuxt.options.alias["#wpnuxt/blocks"] = resolve(nuxt.options.buildDir, "wpnuxt/blocks");
|
|
21
|
+
addComponentsDir({
|
|
22
|
+
path: resolveRuntimeModule("./components/blocks"),
|
|
23
|
+
pathPrefix: false,
|
|
24
|
+
prefix: "",
|
|
25
|
+
global: true
|
|
26
|
+
});
|
|
27
|
+
const _layers = [...nuxt.options._layers].reverse();
|
|
28
|
+
for (const layer of _layers) {
|
|
29
|
+
const srcDir = layer.config.srcDir;
|
|
30
|
+
const blockComponents = resolve(srcDir, "components/blocks");
|
|
31
|
+
const dirStat = await fs.promises.stat(blockComponents).catch(() => null);
|
|
32
|
+
if (dirStat && dirStat.isDirectory()) {
|
|
33
|
+
nuxt.hook("components:dirs", (dirs) => {
|
|
34
|
+
dirs.unshift({
|
|
35
|
+
path: blockComponents,
|
|
36
|
+
global: true,
|
|
37
|
+
pathPrefix: false,
|
|
38
|
+
prefix: ""
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
addComponent({ name: "BlockComponent", filePath: resolveRuntimeModule("./components/BlockComponent") });
|
|
44
|
+
addComponent({ name: "BlockInfo", filePath: resolveRuntimeModule("./components/BlockInfo") });
|
|
45
|
+
addComponent({ name: "BlockRenderer", filePath: resolveRuntimeModule("./components/BlockRenderer") });
|
|
46
|
+
const componentsContext = { components: [] };
|
|
47
|
+
nuxt.hook("components:extend", (newComponents) => {
|
|
48
|
+
const moduleBlocksDir = resolveRuntimeModule("./components/blocks");
|
|
49
|
+
const userBlocksDir = (nuxt.options.srcDir || nuxt.options.rootDir) + "/components/blocks";
|
|
50
|
+
componentsContext.components = newComponents.filter((c) => {
|
|
51
|
+
if (c.filePath.startsWith(moduleBlocksDir) || c.filePath.startsWith(userBlocksDir)) {
|
|
52
|
+
return true;
|
|
53
|
+
}
|
|
54
|
+
return false;
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
addTemplate({
|
|
58
|
+
write: true,
|
|
59
|
+
filename: "wpnuxt/blocks.mjs",
|
|
60
|
+
getContents({ options }) {
|
|
61
|
+
const components = options.getComponents().filter((c) => !c.island).flatMap((c) => {
|
|
62
|
+
const exp = c.export === "default" ? "c.default || c" : `c['${c.export}']`;
|
|
63
|
+
const isClient = c.mode === "client";
|
|
64
|
+
const definitions = [];
|
|
65
|
+
definitions.push(`export const ${c.pascalName} = ${genDynamicImport(c.filePath)}.then(c => ${isClient ? `createClientOnly(${exp})` : exp})`);
|
|
66
|
+
return definitions;
|
|
67
|
+
});
|
|
68
|
+
return components.join("\n");
|
|
69
|
+
},
|
|
70
|
+
options: { getComponents: () => componentsContext.components }
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
|
|
75
|
+
export { module as default };
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import { pascalCase } from 'scule'
|
|
3
|
+
import { resolveComponent, useRuntimeConfig } from '#imports'
|
|
4
|
+
import type { EditorBlock } from '#wpnuxt/blocks'
|
|
5
|
+
|
|
6
|
+
const manifest = await import('#wpnuxt/blocks').catch(() => ({}))
|
|
7
|
+
|
|
8
|
+
const config = useRuntimeConfig()
|
|
9
|
+
|
|
10
|
+
const props = defineProps<{
|
|
11
|
+
block: EditorBlock
|
|
12
|
+
}>()
|
|
13
|
+
const findComponentToRender = async () => {
|
|
14
|
+
// only process top level blocks
|
|
15
|
+
if (props.block.parentClientId === null || props.block.parentClientId === undefined) {
|
|
16
|
+
if (config.public.wpNuxt.blocks && props.block.name) {
|
|
17
|
+
const componentName = pascalCase(props.block.name)
|
|
18
|
+
const componentImporter = manifest[componentName]
|
|
19
|
+
if (typeof componentImporter === 'function') {
|
|
20
|
+
return await componentImporter()
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return resolveComponent('EditorBlock')
|
|
24
|
+
} else {
|
|
25
|
+
return undefined
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
const componentToRender = await findComponentToRender()
|
|
29
|
+
</script>
|
|
30
|
+
|
|
31
|
+
<template>
|
|
32
|
+
<div>
|
|
33
|
+
<component
|
|
34
|
+
:is="componentToRender"
|
|
35
|
+
v-if="componentToRender"
|
|
36
|
+
:block="block"
|
|
37
|
+
/>
|
|
38
|
+
</div>
|
|
39
|
+
</template>
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import BlockComponent from './BlockComponent.vue'
|
|
3
|
+
import type { EditorBlock } from '#wpnuxt/blocks'
|
|
4
|
+
|
|
5
|
+
defineProps<{
|
|
6
|
+
blocks: EditorBlock[]
|
|
7
|
+
}>()
|
|
8
|
+
</script>
|
|
9
|
+
|
|
10
|
+
<template>
|
|
11
|
+
<div>
|
|
12
|
+
<BlockComponent
|
|
13
|
+
v-for="block, index in blocks"
|
|
14
|
+
:key="index"
|
|
15
|
+
:block="block"
|
|
16
|
+
/>
|
|
17
|
+
</div>
|
|
18
|
+
</template>
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import type { CoreButtons, EditorBlock } from '#wpnuxt/blocks'
|
|
3
|
+
|
|
4
|
+
defineProps<{
|
|
5
|
+
block: CoreButtons
|
|
6
|
+
}>()
|
|
7
|
+
</script>
|
|
8
|
+
|
|
9
|
+
<template>
|
|
10
|
+
<div
|
|
11
|
+
v-for="innerBlock, index in block.innerBlocks"
|
|
12
|
+
:key="index"
|
|
13
|
+
>
|
|
14
|
+
<CoreButton
|
|
15
|
+
v-if="innerBlock.name === 'core/button'"
|
|
16
|
+
:block="innerBlock"
|
|
17
|
+
/>
|
|
18
|
+
<EditorBlock
|
|
19
|
+
v-else
|
|
20
|
+
:block="innerBlock"
|
|
21
|
+
/>
|
|
22
|
+
</div>
|
|
23
|
+
</template>
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import type { CoreGallery, CoreImage } from '#wpnuxt/blocks'
|
|
3
|
+
|
|
4
|
+
const props = defineProps<{
|
|
5
|
+
block: CoreGallery
|
|
6
|
+
}>()
|
|
7
|
+
const imageBlocks: CoreImage[] = []
|
|
8
|
+
props.block?.innerBlocks?.forEach((innerBlock) => {
|
|
9
|
+
if (innerBlock && innerBlock.name === 'core/image') {
|
|
10
|
+
const imgBlock = innerBlock as CoreImage
|
|
11
|
+
imageBlocks.push(imgBlock)
|
|
12
|
+
}
|
|
13
|
+
})
|
|
14
|
+
</script>
|
|
15
|
+
|
|
16
|
+
<template>
|
|
17
|
+
<div class="columns-2 md:columns-3 lg:columns-4 mx-[-8px] mb-20">
|
|
18
|
+
<div
|
|
19
|
+
v-for="(imgBlock, index) in imageBlocks"
|
|
20
|
+
:key="index"
|
|
21
|
+
class="px-0 md:px-1"
|
|
22
|
+
>
|
|
23
|
+
<div
|
|
24
|
+
v-if="imgBlock"
|
|
25
|
+
class="galleryImgWrapper rounded-lg overflow-hidden relative mb-4 md:mb-6 shadow-md hover:shadow-xl"
|
|
26
|
+
>
|
|
27
|
+
<CoreImage
|
|
28
|
+
:block="imgBlock"
|
|
29
|
+
class="rounded-lg cursor-pointer w-full"
|
|
30
|
+
width="300"
|
|
31
|
+
/>
|
|
32
|
+
</div>
|
|
33
|
+
</div>
|
|
34
|
+
</div>
|
|
35
|
+
</template>
|
|
36
|
+
|
|
37
|
+
<style>
|
|
38
|
+
.galleryImgWrapper{overflow:hidden;position:relative}.galleryImgWrapper img{height:auto;margin:0;max-width:100%;transition:all .5s}.galleryImgWrapper:hover img{transform:scale(1.02)}
|
|
39
|
+
</style>
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import { getRelativeImagePath } from '../../util/images'
|
|
3
|
+
import type { CoreImage } from '#graphql-operations'
|
|
4
|
+
|
|
5
|
+
const props = defineProps<{
|
|
6
|
+
block: CoreImage
|
|
7
|
+
}>()
|
|
8
|
+
const imgUrl = getRelativeImagePath(props.block?.attributes?.url)
|
|
9
|
+
</script>
|
|
10
|
+
|
|
11
|
+
<template>
|
|
12
|
+
<div>
|
|
13
|
+
<NuxtImg
|
|
14
|
+
v-if="imgUrl"
|
|
15
|
+
:src="imgUrl"
|
|
16
|
+
:alt="block?.attributes?.alt"
|
|
17
|
+
:width="block?.attributes?.width"
|
|
18
|
+
:height="block?.attributes?.height"
|
|
19
|
+
/>
|
|
20
|
+
<div
|
|
21
|
+
v-else
|
|
22
|
+
v-sanitize="block?.renderedHtml"
|
|
23
|
+
/>
|
|
24
|
+
</div>
|
|
25
|
+
</template>
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import type { CoreQuote, CoreParagraph } from '#wpnuxt/blocks'
|
|
3
|
+
|
|
4
|
+
defineProps<{
|
|
5
|
+
block: CoreQuote
|
|
6
|
+
}>()
|
|
7
|
+
</script>
|
|
8
|
+
|
|
9
|
+
<template>
|
|
10
|
+
<blockquote
|
|
11
|
+
v-for="innerBlock, index in block.innerBlocks"
|
|
12
|
+
:key="index"
|
|
13
|
+
>
|
|
14
|
+
<CoreParagraph
|
|
15
|
+
v-if="innerBlock.name === 'core/paragraph'"
|
|
16
|
+
class="text-sm text-primary-500"
|
|
17
|
+
:block="innerBlock"
|
|
18
|
+
/>
|
|
19
|
+
</blockquote>
|
|
20
|
+
</template>
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
fragment CoreButton on CoreButton {
|
|
2
|
+
attributes {
|
|
3
|
+
anchor
|
|
4
|
+
backgroundColor
|
|
5
|
+
borderColor
|
|
6
|
+
className
|
|
7
|
+
cssClassName
|
|
8
|
+
fontFamily
|
|
9
|
+
fontSize
|
|
10
|
+
gradient
|
|
11
|
+
linkClassName
|
|
12
|
+
linkTarget
|
|
13
|
+
lock
|
|
14
|
+
metadata
|
|
15
|
+
placeholder
|
|
16
|
+
rel
|
|
17
|
+
style
|
|
18
|
+
tagName
|
|
19
|
+
text
|
|
20
|
+
textAlign
|
|
21
|
+
textColor
|
|
22
|
+
title
|
|
23
|
+
type
|
|
24
|
+
url
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
fragment CoreGallery on CoreGallery {
|
|
2
|
+
attributes {
|
|
3
|
+
align
|
|
4
|
+
allowResize
|
|
5
|
+
anchor
|
|
6
|
+
backgroundColor
|
|
7
|
+
caption
|
|
8
|
+
className
|
|
9
|
+
columns
|
|
10
|
+
fixedHeight
|
|
11
|
+
gradient
|
|
12
|
+
ids
|
|
13
|
+
imageCrop
|
|
14
|
+
layout
|
|
15
|
+
linkTarget
|
|
16
|
+
linkTo
|
|
17
|
+
lock
|
|
18
|
+
metadata
|
|
19
|
+
randomOrder
|
|
20
|
+
shortCodeTransforms
|
|
21
|
+
style
|
|
22
|
+
images {
|
|
23
|
+
alt
|
|
24
|
+
caption
|
|
25
|
+
fullUrl
|
|
26
|
+
id
|
|
27
|
+
link
|
|
28
|
+
url
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
fragment CoreImage on CoreImage {
|
|
2
|
+
attributes {
|
|
3
|
+
align
|
|
4
|
+
alt
|
|
5
|
+
anchor
|
|
6
|
+
aspectRatio
|
|
7
|
+
borderColor
|
|
8
|
+
className
|
|
9
|
+
cssClassName
|
|
10
|
+
height
|
|
11
|
+
href
|
|
12
|
+
id
|
|
13
|
+
linkClass
|
|
14
|
+
linkDestination
|
|
15
|
+
linkTarget
|
|
16
|
+
lock
|
|
17
|
+
rel
|
|
18
|
+
scale
|
|
19
|
+
sizeSlug
|
|
20
|
+
src
|
|
21
|
+
style
|
|
22
|
+
title
|
|
23
|
+
url
|
|
24
|
+
width
|
|
25
|
+
caption
|
|
26
|
+
lightbox
|
|
27
|
+
metadata
|
|
28
|
+
}
|
|
29
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
fragment CoreParagraph on CoreParagraph {
|
|
2
|
+
attributes {
|
|
3
|
+
align
|
|
4
|
+
anchor
|
|
5
|
+
backgroundColor
|
|
6
|
+
className
|
|
7
|
+
content
|
|
8
|
+
cssClassName
|
|
9
|
+
direction
|
|
10
|
+
dropCap
|
|
11
|
+
fontFamily
|
|
12
|
+
fontSize
|
|
13
|
+
gradient
|
|
14
|
+
lock
|
|
15
|
+
metadata
|
|
16
|
+
placeholder
|
|
17
|
+
style
|
|
18
|
+
textColor
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
#import '~/.queries/fragments/CoreButton.fragment.gql';
|
|
2
|
+
#import '~/.queries/fragments/CoreGallery.fragment.gql';
|
|
3
|
+
#import '~/.queries/fragments/CoreImage.fragment.gql';
|
|
4
|
+
#import '~/.queries/fragments/CoreParagraph.fragment.gql';
|
|
5
|
+
#import '~/.queries/fragments/CoreQuote.fragment.gql';
|
|
6
|
+
|
|
7
|
+
fragment EditorBlock on EditorBlock {
|
|
8
|
+
apiVersion
|
|
9
|
+
blockEditorCategoryName
|
|
10
|
+
clientId
|
|
11
|
+
cssClassNames
|
|
12
|
+
isDynamic
|
|
13
|
+
name
|
|
14
|
+
parentClientId
|
|
15
|
+
renderedHtml
|
|
16
|
+
...CoreButton
|
|
17
|
+
...CoreGallery
|
|
18
|
+
...CoreImage
|
|
19
|
+
...CoreParagraph
|
|
20
|
+
...CoreQuote
|
|
21
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
#import '~/.queries/fragments/ContentNode.fragment.gql';
|
|
2
|
+
#import '~/.queries/fragments/NodeWithFeaturedImage.fragment.gql';
|
|
3
|
+
#import '~/.queries/fragments/EditorBlocks.fragment.gql';
|
|
4
|
+
|
|
5
|
+
fragment Page on Page {
|
|
6
|
+
...ContentNode
|
|
7
|
+
...NodeWithFeaturedImage
|
|
8
|
+
content
|
|
9
|
+
isFrontPage
|
|
10
|
+
isPostsPage
|
|
11
|
+
isPreview
|
|
12
|
+
isPrivacyPage
|
|
13
|
+
isRestricted
|
|
14
|
+
isRevision
|
|
15
|
+
title
|
|
16
|
+
...EditorBlocks
|
|
17
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
#import "~/.queries/fragments/NodeWithExcerpt.fragment.gql";
|
|
2
|
+
#import '~/.queries/fragments/ContentNode.fragment.gql';
|
|
3
|
+
#import '~/.queries/fragments/NodeWithFeaturedImage.fragment.gql';
|
|
4
|
+
#import '~/.queries/fragments/EditorBlocks.fragment.gql';
|
|
5
|
+
|
|
6
|
+
fragment Post on Post {
|
|
7
|
+
...NodeWithExcerpt
|
|
8
|
+
...ContentNode
|
|
9
|
+
...NodeWithFeaturedImage
|
|
10
|
+
content
|
|
11
|
+
title
|
|
12
|
+
...EditorBlocks
|
|
13
|
+
}
|
package/dist/types.d.mts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { type ModuleOptions, default } from './module.js'
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { type ModuleOptions, default } from './module'
|
package/package.json
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@wpnuxt/blocks",
|
|
3
|
+
"version": "0.0.2",
|
|
4
|
+
"description": "WPNuxt Blocks",
|
|
5
|
+
"repository": "wpnuxt/wpnuxt-blocks",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"type": "module",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/types.d.ts",
|
|
11
|
+
"import": "./dist/module.mjs",
|
|
12
|
+
"require": "./dist/module.cjs"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"main": "./dist/module.cjs",
|
|
16
|
+
"types": "./dist/types.d.ts",
|
|
17
|
+
"files": [
|
|
18
|
+
"dist"
|
|
19
|
+
],
|
|
20
|
+
"publishConfig": {
|
|
21
|
+
"access": "public"
|
|
22
|
+
},
|
|
23
|
+
"scripts": {
|
|
24
|
+
"prepack": "nuxt-module-build build",
|
|
25
|
+
"dev": "nuxi dev playground",
|
|
26
|
+
"dev:build": "nuxi build playground",
|
|
27
|
+
"dev:prepare": "nuxt-module-build build --stub && nuxt-module-build prepare && nuxi prepare playground",
|
|
28
|
+
"release": "npm run lint && npm run test && npm run prepack; release-it --git.tagExclude='*[-edge]*'",
|
|
29
|
+
"release-edge": "npm run lint; release-it --no-github --preRelease=edge --config .release-it-edge.json",
|
|
30
|
+
"lint": "eslint .",
|
|
31
|
+
"lint:fix": "eslint . --fix",
|
|
32
|
+
"test": "vitest run",
|
|
33
|
+
"test:watch": "vitest watch",
|
|
34
|
+
"test:types": "vue-tsc --noEmit && cd playground && vue-tsc --noEmit"
|
|
35
|
+
},
|
|
36
|
+
"dependencies": {
|
|
37
|
+
"@nuxt/kit": "^3.12.4",
|
|
38
|
+
"@vernaillen/wpnuxt": "^0.6.0-edge.0"
|
|
39
|
+
},
|
|
40
|
+
"devDependencies": {
|
|
41
|
+
"@nuxt/devtools": "^1.3.9",
|
|
42
|
+
"@nuxt/eslint-config": "^0.3.13",
|
|
43
|
+
"@nuxt/module-builder": "^0.8.1",
|
|
44
|
+
"@nuxt/schema": "^3.12.4",
|
|
45
|
+
"@nuxt/test-utils": "^3.13.1",
|
|
46
|
+
"@types/node": "^20.14.11",
|
|
47
|
+
"changelogen": "^0.5.5",
|
|
48
|
+
"eslint": "^9.7.0",
|
|
49
|
+
"nuxt": "^3.12.4",
|
|
50
|
+
"release-it": "^17.6.0",
|
|
51
|
+
"typescript": "latest",
|
|
52
|
+
"vitest": "^2.0.3",
|
|
53
|
+
"vue-tsc": "^2.0.26"
|
|
54
|
+
},
|
|
55
|
+
"peerDependencies": {
|
|
56
|
+
"knitwork": "^1.1.0",
|
|
57
|
+
"pathe": "^1.1.2"
|
|
58
|
+
}
|
|
59
|
+
}
|