@fecommunity/reactpress 4.0.0-beta.14 → 4.0.0-beta.17
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/admin-dist/assets/{admin-bamoE2Tn.js → admin-CF4LIXsB.js} +1 -1
- package/admin-dist/assets/{admin-CrL6Xc9b.js → admin-DYBZ60Ac.js} +1 -1
- package/admin-dist/assets/{cssMode-J2cfgFkq.js → cssMode-BJqbvgLG.js} +1 -1
- package/admin-dist/assets/{freemarker2-L_gr_Wq4.js → freemarker2-CYGOmtYQ.js} +1 -1
- package/admin-dist/assets/{handlebars-D81kzUDC.js → handlebars-qhE4jgvZ.js} +1 -1
- package/admin-dist/assets/{html-Cung-Yr0.js → html-U5gI8Ly8.js} +1 -1
- package/admin-dist/assets/{htmlMode-C6QemWl2.js → htmlMode-DQd5Eb2D.js} +1 -1
- package/admin-dist/assets/{index-DXTkTQ21.js → index-BKNoDtfb.js} +178 -178
- package/admin-dist/assets/{javascript-WUcGtCKt.js → javascript-DU3Ebk7L.js} +1 -1
- package/admin-dist/assets/{jsonMode-Dp0R9P1F.js → jsonMode-D1w8Vhjb.js} +1 -1
- package/admin-dist/assets/{liquid-OFb9c-6B.js → liquid-BPVbnl_K.js} +1 -1
- package/admin-dist/assets/{mdx-CUfjLxA3.js → mdx-CMSYE9vh.js} +1 -1
- package/admin-dist/assets/{python-zxEYY77U.js → python-Dbpms-Xp.js} +1 -1
- package/admin-dist/assets/{razor-DJrSr4ly.js → razor-CWQdYrqP.js} +1 -1
- package/admin-dist/assets/{tsMode-Dtxx1cRn.js → tsMode-DAsZhwU2.js} +1 -1
- package/admin-dist/assets/{typescript-DT11gl4K.js → typescript-7mrVr_47.js} +1 -1
- package/admin-dist/assets/{xml-BIbLvdwx.js → xml-DbPOrhNN.js} +1 -1
- package/admin-dist/assets/{yaml-BEeUZskE.js → yaml-6hDyKyrt.js} +1 -1
- package/admin-dist/index.html +1 -1
- package/out/bin/reactpress.js +4 -0
- package/out/core/services/local-site.js +68 -0
- package/out/lib/i18n/strings.js +2 -0
- package/out/lib/theme-api-proxy-patch.js +62 -17
- package/package.json +2 -1
- package/plugins/hello-world/README.md +104 -0
- package/plugins/hello-world/dist/config.d.ts +4 -0
- package/plugins/hello-world/dist/config.js +17 -0
- package/plugins/hello-world/dist/index.d.ts +10 -0
- package/plugins/hello-world/dist/index.js +15 -0
- package/plugins/hello-world/dist/summary.d.ts +3 -0
- package/plugins/hello-world/dist/summary.js +33 -0
- package/plugins/hello-world/dist/types.d.ts +16 -0
- package/plugins/hello-world/dist/types.js +2 -0
- package/plugins/hello-world/locales/en.json +24 -0
- package/plugins/hello-world/locales/zh.json +24 -0
- package/plugins/hello-world/package.json +20 -0
- package/plugins/hello-world/plugin.json +61 -0
- package/plugins/hello-world/tsconfig.json +16 -0
- package/plugins/image-optimizer/README.md +43 -0
- package/plugins/image-optimizer/admin/OptimizeDashboard.tsx +249 -0
- package/plugins/image-optimizer/admin/api.ts +133 -0
- package/plugins/image-optimizer/admin/index.ts +16 -0
- package/plugins/image-optimizer/admin/locale.ts +68 -0
- package/plugins/image-optimizer/admin/optimize-dashboard.module.css +80 -0
- package/plugins/image-optimizer/dist/config.d.ts +8 -0
- package/plugins/image-optimizer/dist/config.js +13 -0
- package/plugins/image-optimizer/dist/index.d.ts +10 -0
- package/plugins/image-optimizer/dist/index.js +13 -0
- package/plugins/image-optimizer/locales/en.json +51 -0
- package/plugins/image-optimizer/locales/zh.json +53 -0
- package/plugins/image-optimizer/package.json +20 -0
- package/plugins/image-optimizer/plugin.json +58 -0
- package/plugins/image-optimizer/tsconfig.json +16 -0
- package/plugins/package.json +14 -0
- package/plugins/seo/README.md +60 -0
- package/plugins/seo/admin/ArticleEditorSeoPanel.tsx +67 -0
- package/plugins/seo/admin/article-editor-seo-panel.module.css +74 -0
- package/plugins/seo/admin/index.ts +18 -0
- package/plugins/seo/dist/config.d.ts +4 -0
- package/plugins/seo/dist/config.js +19 -0
- package/plugins/seo/dist/index.d.ts +10 -0
- package/plugins/seo/dist/index.js +23 -0
- package/plugins/seo/dist/seo.d.ts +3 -0
- package/plugins/seo/dist/seo.js +79 -0
- package/plugins/seo/dist/slug.d.ts +2 -0
- package/plugins/seo/dist/slug.js +13 -0
- package/plugins/seo/dist/types.d.ts +23 -0
- package/plugins/seo/dist/types.js +2 -0
- package/plugins/seo/locales/en.json +32 -0
- package/plugins/seo/locales/zh.json +32 -0
- package/plugins/seo/package.json +20 -0
- package/plugins/seo/plugin.json +76 -0
- package/plugins/seo/tsconfig.json +16 -0
- package/server/package-lock.json +3 -3
- package/server/package.json +1 -1
- package/toolkit/dist/theme/build/next-config.js +4 -1
- package/toolkit/package.json +1 -1
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "../plugin.manifest.schema.json",
|
|
3
|
+
"id": "seo",
|
|
4
|
+
"name": "SEO 增强",
|
|
5
|
+
"version": "1.0.0",
|
|
6
|
+
"description": "为文章提供 URL 别名、SEO 关键词与 meta 描述,发布时可自动补全。",
|
|
7
|
+
"author": "ReactPress",
|
|
8
|
+
"requires": ">=3.5.0",
|
|
9
|
+
"server": {
|
|
10
|
+
"module": "./dist/index.js",
|
|
11
|
+
"hooks": {
|
|
12
|
+
"subscribe": ["article.beforeCreate", "article.beforePublish"]
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"admin": {
|
|
16
|
+
"slots": {
|
|
17
|
+
"subscribe": ["article.editor.meta.afterSummary"]
|
|
18
|
+
},
|
|
19
|
+
"menu": {
|
|
20
|
+
"title": "SEO 增强",
|
|
21
|
+
"path": "/plugins/seo/settings",
|
|
22
|
+
"permission": "extension:manage",
|
|
23
|
+
"sort": 20
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
"settings": {
|
|
27
|
+
"schema": {
|
|
28
|
+
"type": "object",
|
|
29
|
+
"additionalProperties": false,
|
|
30
|
+
"properties": {
|
|
31
|
+
"enabled": {
|
|
32
|
+
"type": "boolean",
|
|
33
|
+
"title": "启用 SEO 自动补全",
|
|
34
|
+
"description": "关闭后,发布时不再自动写入别名、关键词或描述。",
|
|
35
|
+
"default": true
|
|
36
|
+
},
|
|
37
|
+
"autoSlug": {
|
|
38
|
+
"type": "boolean",
|
|
39
|
+
"title": "自动生成 URL 别名",
|
|
40
|
+
"description": "别名为空时,从文章标题生成 slug。",
|
|
41
|
+
"default": true
|
|
42
|
+
},
|
|
43
|
+
"autoDescription": {
|
|
44
|
+
"type": "boolean",
|
|
45
|
+
"title": "自动生成 SEO 描述",
|
|
46
|
+
"description": "SEO 描述为空时,优先使用摘要,否则从正文截取。",
|
|
47
|
+
"default": true
|
|
48
|
+
},
|
|
49
|
+
"autoKeywords": {
|
|
50
|
+
"type": "boolean",
|
|
51
|
+
"title": "自动生成 SEO 关键词",
|
|
52
|
+
"description": "关键词为空时,使用文章标题与标签名称。",
|
|
53
|
+
"default": true
|
|
54
|
+
},
|
|
55
|
+
"descriptionMaxLength": {
|
|
56
|
+
"type": "integer",
|
|
57
|
+
"title": "描述最大长度",
|
|
58
|
+
"description": "从正文截取 SEO 描述的最大字符数(80–320)。",
|
|
59
|
+
"minimum": 80,
|
|
60
|
+
"maximum": 320,
|
|
61
|
+
"default": 160
|
|
62
|
+
},
|
|
63
|
+
"descriptionSuffix": {
|
|
64
|
+
"type": "string",
|
|
65
|
+
"title": "描述截断后缀",
|
|
66
|
+
"description": "超出最大长度时追加在末尾,例如 …",
|
|
67
|
+
"default": "…"
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
"permissions": ["article:read"],
|
|
73
|
+
"capabilities": {
|
|
74
|
+
"headless": true
|
|
75
|
+
}
|
|
76
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"target": "ES2020",
|
|
4
|
+
"module": "Node16",
|
|
5
|
+
"moduleResolution": "Node16",
|
|
6
|
+
"rootDir": "./src",
|
|
7
|
+
"outDir": "./dist",
|
|
8
|
+
"strict": true,
|
|
9
|
+
"esModuleInterop": true,
|
|
10
|
+
"skipLibCheck": true,
|
|
11
|
+
"declaration": true,
|
|
12
|
+
"forceConsistentCasingInFileNames": true
|
|
13
|
+
},
|
|
14
|
+
"include": ["src/**/*"],
|
|
15
|
+
"exclude": ["node_modules", "dist"]
|
|
16
|
+
}
|
package/server/package-lock.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fecommunity/reactpress-server",
|
|
3
|
-
"version": "4.0.0-beta.
|
|
3
|
+
"version": "4.0.0-beta.16",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "@fecommunity/reactpress-server",
|
|
9
|
-
"version": "4.0.0-beta.
|
|
9
|
+
"version": "4.0.0-beta.16",
|
|
10
10
|
"deprecated": "Bundled in @fecommunity/reactpress CLI from v3.1. Run `npx @fecommunity/reactpress init` for new projects.",
|
|
11
11
|
"license": "MIT",
|
|
12
12
|
"dependencies": {
|
|
@@ -91,7 +91,7 @@
|
|
|
91
91
|
},
|
|
92
92
|
"../toolkit": {
|
|
93
93
|
"name": "@fecommunity/reactpress-toolkit",
|
|
94
|
-
"version": "4.0.0-beta.
|
|
94
|
+
"version": "4.0.0-beta.16",
|
|
95
95
|
"dependencies": {
|
|
96
96
|
"ajv": "^8.17.1",
|
|
97
97
|
"axios": "^1.12.2",
|
package/server/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fecommunity/reactpress-server",
|
|
3
|
-
"version": "4.0.0-beta.
|
|
3
|
+
"version": "4.0.0-beta.17",
|
|
4
4
|
"deprecated": "Bundled in @fecommunity/reactpress CLI from v3.1. Run `npx @fecommunity/reactpress init` for new projects.",
|
|
5
5
|
"description": "ReactPress NestJS REST API (deprecated). Bundled in @fecommunity/reactpress CLI from v3.1. Headless CMS for articles, media, plugins, and themes",
|
|
6
6
|
"author": "fecommunity",
|
|
@@ -41,9 +41,12 @@ function applyThemeWebpackResolve(config, appDir) {
|
|
|
41
41
|
* Pass overrides to extend (your `webpack` runs after the supports-color alias).
|
|
42
42
|
*/
|
|
43
43
|
function createReactPressNextConfig(overrides = {}) {
|
|
44
|
-
const { webpack: userWebpack, eslint, transpilePackages, ...rest } = overrides;
|
|
44
|
+
const { webpack: userWebpack, eslint, transpilePackages, compress, ...rest } = overrides;
|
|
45
45
|
return {
|
|
46
46
|
reactStrictMode: true,
|
|
47
|
+
// Themes rewrite `/api` to Nest. Next's compress middleware decompresses upstream
|
|
48
|
+
// bodies but can still emit `Content-Encoding: br`, breaking admin fetch (ERR_CONTENT_DECODING_FAILED).
|
|
49
|
+
compress: compress ?? false,
|
|
47
50
|
transpilePackages: ['@fecommunity/reactpress-toolkit', ...(transpilePackages ?? [])],
|
|
48
51
|
eslint: {
|
|
49
52
|
ignoreDuringBuilds: true,
|