@stylewx/mcp-server 0.1.1 → 0.1.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/dist/index.js +7 -4
- package/dist/index.js.map +1 -1
- package/editor.html +138 -20
- package/package.json +6 -6
package/dist/index.js
CHANGED
|
@@ -162,7 +162,10 @@ async function handleEditorApi(req, res, path, url, deps) {
|
|
|
162
162
|
return sendErr(res, { code: 'missing_llm_config', message: '需要 LLM 配置。', hint: '请配置 LLM_BASE_URL / LLM_API_KEY / LLM_MODEL 后重启服务。' });
|
|
163
163
|
const b = await readJsonBody(req);
|
|
164
164
|
const markdown = typeof b.markdown === 'string' ? b.markdown : '';
|
|
165
|
-
const
|
|
165
|
+
const prompt = typeof b.prompt === 'string' && b.prompt.trim() ? b.prompt.trim() : undefined;
|
|
166
|
+
const sel = b.selection;
|
|
167
|
+
const selection = sel && typeof sel.start === 'number' && typeof sel.end === 'number' ? { start: sel.start, end: sel.end } : undefined;
|
|
168
|
+
const r = await optimizeArticle(markdown, deps.llm, { prompt, selection });
|
|
166
169
|
return sendJson(res, { markdown: r.markdown });
|
|
167
170
|
}
|
|
168
171
|
return sendErr(res, { code: 'not_found', message: '未知 /editor/api 端点:' + path, hint: '请检查路径。' }, 404);
|
|
@@ -181,14 +184,14 @@ async function runStdio() {
|
|
|
181
184
|
async function runHttp(port) {
|
|
182
185
|
const transports = new Map();
|
|
183
186
|
const deps = buildDeps();
|
|
184
|
-
const
|
|
187
|
+
const editorHtmlPath = resolve(dirname(fileURLToPath(import.meta.url)), '../editor.html');
|
|
185
188
|
const server = createServer(async (req, res) => {
|
|
186
189
|
const url = new URL(req.url ?? '/', 'http://localhost');
|
|
187
190
|
const path = url.pathname;
|
|
188
|
-
// 本地 Web 编辑器(WeMD
|
|
191
|
+
// 本地 Web 编辑器(WeMD 风格);每次读取,改 editor.html 后即时生效
|
|
189
192
|
if (path === '/editor') {
|
|
190
193
|
res.writeHead(200, { 'content-type': 'text/html; charset=utf-8' });
|
|
191
|
-
res.end(
|
|
194
|
+
res.end(readFileSync(editorHtmlPath, 'utf8'));
|
|
192
195
|
return;
|
|
193
196
|
}
|
|
194
197
|
if (path.startsWith('/editor/api/')) {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAA;AAChF,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAA;AAClG,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EACL,oBAAoB,EACpB,SAAS,EACT,UAAU,EACV,eAAe,EACf,aAAa,EACb,aAAa,EACb,SAAS,EACT,WAAW,EACX,eAAe,EACf,YAAY,EACZ,eAAe,EACf,cAAc,GACf,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,YAAY,IAAI,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAQ3G,SAAS,SAAS,CAAC,IAAc;IAC/B,IAAI,SAAS,GAAqB,OAAO,CAAA;IACzC,IAAI,IAAI,GAAG,IAAI,CAAA;IACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;QACnB,IAAI,GAAG,KAAK,aAAa,EAAE,CAAC;YAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;YACxB,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,OAAO;gBAAE,SAAS,GAAG,IAAI,CAAA;QAC3D,CAAC;aAAM,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;YAChC,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAAE,IAAI,GAAG,IAAI,CAAA;QACxC,CAAC;IACH,CAAC;IACD,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAA;AAC5B,CAAC;AAED,kDAAkD;AAClD,SAAS,SAAS;IAChB,MAAM,IAAI,GAAa,EAAE,CAAA;IACzB,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,oBAAoB,EAAE,CAAA;QACxC,IAAI,CAAC,GAAG,GAAG,IAAI,SAAS,CAAC,SAAS,CAAC,CAAA;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,4CAA4C;QAC5C,IAAI,CAAC,GAAG,GAAG,SAAS,CAAA;IACtB,CAAC;IACD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,iBAAiB,EAAE,CAAA;QACpC,IAAI,CAAC,MAAM,GAAG,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAA;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,8BAA8B;QAC9B,IAAI,CAAC,MAAM,GAAG,SAAS,CAAA;IACzB,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,4DAA4D;AAE5D,KAAK,UAAU,YAAY,CAAC,GAAwC;IAClE,IAAI,IAAI,GAAG,EAAE,CAAA;IACb,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG;QAAE,IAAI,IAAI,KAAK,CAAA;IAC5C,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAA;IACpB,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAA4B,CAAA;IACpD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAA;IACX,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,GAAuC,EAAE,GAAY,EAAE,MAAM,GAAG,GAAG;IACnF,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,cAAc,EAAE,iCAAiC,EAAE,CAAC,CAAA;IAC5E,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAA;AAC9B,CAAC;AAED,SAAS,OAAO,CAAC,GAAuC,EAAE,KAAsD,EAAE,MAAM,GAAG,GAAG;IAC5H,QAAQ,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,MAAM,CAAC,CAAA;AAClC,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,GAAwC,EACxC,GAAuC,EACvC,IAAY,EACZ,GAAQ,EACR,IAAc;IAEd,IAAI,CAAC;QACH,IAAI,IAAI,KAAK,oBAAoB,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;YAC1D,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,eAAe,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;YACvE,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;YAC9G,OAAO,QAAQ,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;QAClC,CAAC;QAED,IAAI,IAAI,KAAK,oBAAoB,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC3D,MAAM,CAAC,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,CAAA;YACjC,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAA;YACjE,IAAI,CAAC,QAAQ;gBAAE,OAAO,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,CAAA;YACrH,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,KAAK,IAAI,UAAU,CAAC,CAAA;YACjD,mDAAmD;YACnD,MAAM,CAAC,GAAG,MAAM,aAAa,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAAC,CAAA;YAC5E,OAAO,QAAQ,CAAC,GAAG,EAAE;gBACnB,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,UAAU,EAAE,CAAC,CAAC,UAAU;gBACxB,KAAK,EAAE,CAAC,CAAC,KAAK;aACf,CAAC,CAAA;QACJ,CAAC;QAED,IAAI,IAAI,KAAK,sBAAsB,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC7D,MAAM,CAAC,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,CAAA;YACjC,OAAO,QAAQ,CAAC,GAAG,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QACjF,CAAC;QAED,IAAI,IAAI,KAAK,sBAAsB,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC7D,IAAI,CAAC,IAAI,CAAC,GAAG;gBAAE,OAAO,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,mDAAmD,EAAE,CAAC,CAAA;YACpJ,MAAM,CAAC,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,CAAA;YACjC,MAAM,MAAM,GAAG,MAAM,aAAa,CAChC;gBACE,MAAM,EAAE,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;gBAC3D,OAAO,EAAE,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;gBAC9D,SAAS,EAAE,OAAO,CAAC,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;aACrE,EACD,IAAI,CAAC,GAAG,CACT,CAAA;YACD,IAAI,KAAK,GAAG,KAAK,CAAA;YACjB,IAAI,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBAC3B,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;gBACvB,KAAK,GAAG,IAAI,CAAA;YACd,CAAC;YACD,OAAO,QAAQ,CAAC,GAAG,EAAE;gBACnB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS;gBACtE,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,cAAc,EAAE,MAAM,CAAC,cAAc;gBACrC,KAAK;gBACL,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS;aACjF,CAAC,CAAA;QACJ,CAAC;QAED,IAAI,IAAI,KAAK,uBAAuB,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC9D,MAAM,CAAC,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,CAAA;YACjC,IAAI,CAAC,CAAC,CAAC,KAAK;gBAAE,OAAO,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,CAAA;YAC1G,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;YAC5B,OAAO,QAAQ,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAA;QAC1C,CAAC;QAED,IAAI,IAAI,KAAK,oBAAoB,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;YAC1D,MAAM,IAAI,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAA;YAChD,MAAM,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,CAAA;YAC3B,OAAO,QAAQ,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAA;QAC1C,CAAC;QAED,IAAI,IAAI,KAAK,qBAAqB,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC5D,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,OAAO,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,2BAA2B,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,8CAA8C,EAAE,CAAC,CAAA;YACtJ,MAAM,CAAC,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,CAAA;YACjC,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;YACjF,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAA;YACjE,IAAI,CAAC,KAAK;gBAAE,OAAO,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAA;YAChG,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAA;YAC9E,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;YACrD,iCAAiC;YACjC,MAAM,SAAS,GACb,OAAO,CAAC,CAAC,SAAS,KAAK,QAAQ,IAAI,CAAC,CAAC,SAAS;gBAC5C,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,EAAE;gBACvI,CAAC,CAAC,SAAS,CAAA;YACf,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,IAAI,CAAC,MAAM,EAAE;gBACtD,OAAO,EAAE,IAAI;gBACb,KAAK;gBACL,UAAU,EAAE,OAAO,CAAC,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;gBACvE,SAAS;gBACT,MAAM,EAAE,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;gBAC3D,QAAQ,EAAE,CAAC,CAAC,QAAQ,KAAK,KAAK;aAC/B,CAAC,CAAA;YACF,OAAO,QAAQ,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,cAAc,EAAE,MAAM,CAAC,cAAc,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,CAAA;QAC/H,CAAC;QAED,IAAI,IAAI,KAAK,sBAAsB,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC7D,IAAI,CAAC,IAAI,CAAC,GAAG;gBAAE,OAAO,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,mDAAmD,EAAE,CAAC,CAAA;YACpJ,MAAM,CAAC,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,CAAA;YACjC,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAA;YACjE,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;YAC5F,MAAM,GAAG,GAAG,CAAC,CAAC,SAAyD,CAAA;YACvE,MAAM,SAAS,GACb,GAAG,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAO,GAAG,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;YACtH,MAAM,CAAC,GAAG,MAAM,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAA;YAC1E,OAAO,QAAQ,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAA;QAChD,CAAC;QAED,OAAO,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,oBAAoB,GAAG,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,GAAG,CAAC,CAAA;IACvG,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,GAAG,cAAc,CAAC,KAAK,CAAC,CAAA;QAC/B,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAA;IAC9B,CAAC;AACH,CAAC;AAED,KAAK,UAAU,QAAQ;IACrB,MAAM,MAAM,GAAG,eAAe,CAAC,SAAS,EAAE,CAAC,CAAA;IAC3C,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAA;IAC5C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IAC/B,OAAO,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAA;AACxD,CAAC;AAED,KAAK,UAAU,OAAO,CAAC,IAAY;IACjC,MAAM,UAAU,GAAG,IAAI,GAAG,EAAyC,CAAA;IACnE,MAAM,IAAI,GAAG,SAAS,EAAE,CAAA;IACxB,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAA;IAEzF,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QAC7C,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,EAAE,kBAAkB,CAAC,CAAA;QACvD,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAA;QACzB,+CAA+C;QAC/C,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,0BAA0B,EAAE,CAAC,CAAA;YAClE,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAA;YAC7C,OAAM;QACR,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;YACpC,MAAM,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;YAChD,OAAM;QACR,CAAC;QACD,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YACpB,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;YAClB,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;YACpB,OAAM;QACR,CAAC;QAED,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAuB,CAAA;QACrE,IAAI,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QACjE,MAAM,KAAK,GAAG,CAAC,SAAS,CAAA;QAExB,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;YACzB,2BAA2B;YAC3B,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;gBAClB,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;gBACpB,OAAM;YACR,CAAC;YACD,MAAM,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;YACvC,OAAM;QACR,CAAC;QAED,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,SAAS,GAAG,IAAI,6BAA6B,CAAC;gBAC5C,kBAAkB,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE;aACvC,CAAC,CAAA;YACF,MAAM,GAAG,GAAG,eAAe,CAAC,SAAS,EAAE,CAAC,CAAA;YACxC,SAAS,CAAC,OAAO,GAAG,GAAG,EAAE;gBACvB,IAAI,SAAS,IAAI,SAAS,CAAC,SAAS;oBAAE,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;YAC9E,CAAC,CAAA;YACD,MAAM,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;QAC9B,CAAC;QAED,MAAM,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;QAEvC,wCAAwC;QACxC,IAAI,KAAK,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;YACjC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;QAChD,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE;QACvB,sCAAsC;QACtC,OAAO,CAAC,KAAK,CAAC,wEAAwE,IAAI,MAAM,CAAC,CAAA;IACnG,CAAC,CAAC,CAAA;IAEF,MAAM,QAAQ,GAAG,GAAS,EAAE;QAC1B,MAAM,CAAC,KAAK,EAAE,CAAA;IAChB,CAAC,CAAA;IACD,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;IAC9B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;AACjC,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IAChD,IAAI,OAAO,CAAC,SAAS,KAAK,MAAM,EAAE,CAAC;QACjC,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7B,CAAC;SAAM,CAAC;QACN,MAAM,QAAQ,EAAE,CAAA;IAClB,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,sCAAsC;IACtC,OAAO,CAAC,KAAK,CAAC,kBAAkB,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;IACjF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC,CAAC,CAAA"}
|
package/editor.html
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
<meta charset="utf-8" />
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
6
6
|
<title>stylewx 编辑器</title>
|
|
7
|
+
<link rel="icon" href='data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><rect width="32" height="32" rx="8" fill="%232563eb"/><text x="16" y="23" font-size="19" font-family="Arial,Helvetica,sans-serif" font-weight="700" fill="%23fff" text-anchor="middle">M</text></svg>' />
|
|
7
8
|
<style>
|
|
8
9
|
:root{
|
|
9
10
|
--bg:#f3f4f7; --panel:#fff; --line:#e8eaee; --line2:#f0f2f5;
|
|
@@ -45,7 +46,8 @@
|
|
|
45
46
|
|
|
46
47
|
/* ---------- 主区 ---------- */
|
|
47
48
|
.main{flex:1;display:flex;flex-direction:column;gap:14px;min-width:0}
|
|
48
|
-
.topbar{display:flex;align-items:center;gap:
|
|
49
|
+
.topbar{display:flex;align-items:center;gap:7px;padding:11px 16px;background:var(--panel);border-radius:var(--radius);box-shadow:var(--shadow);flex-wrap:wrap}
|
|
50
|
+
.topbar .right{margin-left:auto;display:flex;align-items:center;gap:7px;flex-wrap:nowrap}
|
|
49
51
|
.btn{border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:var(--radius-sm);padding:7px 12px;font-size:12.5px;cursor:pointer;transition:.12s;white-space:nowrap;box-shadow:0 1px 2px rgba(20,30,50,.03);display:inline-flex;align-items:center;gap:6px}
|
|
50
52
|
.btn svg,.subnav button svg{flex:none}
|
|
51
53
|
.btn:hover{background:#f4f6f9;border-color:#dde1e7}
|
|
@@ -59,9 +61,14 @@
|
|
|
59
61
|
select:focus,input:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(37,99,235,.12)}
|
|
60
62
|
input#title{width:170px}
|
|
61
63
|
details.theme-panel{position:relative}
|
|
62
|
-
details.theme-panel summary{cursor:pointer;padding:7px 12px;font-size:12.5px;border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--muted);box-shadow:0 1px 2px rgba(20,30,50,.03)}
|
|
64
|
+
details.theme-panel summary{cursor:pointer;display:flex;align-items:center;gap:6px;padding:7px 12px;font-size:12.5px;border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--muted);box-shadow:0 1px 2px rgba(20,30,50,.03)}
|
|
63
65
|
.theme-box{position:absolute;right:0;top:calc(100% + 8px);background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-lg);padding:12px;width:260px;z-index:30}
|
|
64
|
-
.theme-box h4{margin:
|
|
66
|
+
.theme-box h4{margin:10px 0 6px;font-size:12px;color:var(--muted);font-weight:600}
|
|
67
|
+
.theme-box .menu-items{display:flex;flex-direction:column;gap:2px}
|
|
68
|
+
.theme-box .menu-item{display:flex;align-items:center;gap:8px;width:100%;padding:7px 9px;border:0;background:none;border-radius:8px;color:var(--ink);font-size:12.5px;text-align:left;cursor:pointer}
|
|
69
|
+
.theme-box .menu-item:hover{background:var(--line2)}
|
|
70
|
+
.theme-box .menu-item svg{flex:none;color:var(--muted)}
|
|
71
|
+
.theme-box .menu-sep{height:1px;background:var(--line2);margin:8px -4px}
|
|
65
72
|
|
|
66
73
|
/* ---------- 内容区 ---------- */
|
|
67
74
|
.content{flex:1;display:flex;gap:14px;min-height:0}
|
|
@@ -79,6 +86,9 @@
|
|
|
79
86
|
.table-picker .tcell{background:#eef1f5;border-radius:3px;cursor:pointer}
|
|
80
87
|
.table-picker .tcell.on{background:var(--brand)}
|
|
81
88
|
.table-picker .tcell:hover{background:var(--brand);opacity:.75}
|
|
89
|
+
.tm-picker{position:fixed;z-index:70;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-lg);padding:6px;display:none;min-width:158px}
|
|
90
|
+
.tm-opt{display:flex;align-items:center;gap:7px;width:100%;padding:7px 10px;border:0;background:none;border-radius:8px;color:var(--ink);font-size:12.5px;text-align:left;cursor:pointer}
|
|
91
|
+
.tm-opt:hover{background:var(--line2)}
|
|
82
92
|
.tb-sep{width:1px;height:16px;background:var(--line);margin:0 5px}
|
|
83
93
|
.markdown{flex:1;width:100%;border:0;resize:none;padding:22px 26px;font:14px/1.8 var(--mono);background:#fff;color:var(--ink);outline:none}
|
|
84
94
|
.markdown::placeholder{color:var(--faint)}
|
|
@@ -113,6 +123,16 @@
|
|
|
113
123
|
.switch input:checked + .slider{background:var(--brand)}
|
|
114
124
|
.switch input:checked + .slider:before{transform:translateX(18px)}
|
|
115
125
|
.modal-foot{display:flex;justify-content:flex-end;gap:8px;padding:12px 18px;border-top:1px solid var(--line)}
|
|
126
|
+
.ai-lbl{display:block;font-size:12px;color:var(--muted);margin:0 0 6px}
|
|
127
|
+
.ai-scope{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line2)}
|
|
128
|
+
.ai-chips{display:flex;gap:8px;flex-wrap:wrap}
|
|
129
|
+
.ai-chip{display:flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid var(--line);border-radius:9px;font-size:12.5px;cursor:pointer;color:var(--ink2)}
|
|
130
|
+
.ai-chip input{accent-color:var(--blue);cursor:pointer}
|
|
131
|
+
.ai-chip:has(input:checked){border-color:var(--blue);color:var(--blue);background:rgba(64,158,255,.06)}
|
|
132
|
+
.ai-selinfo{font-size:12px;color:var(--blue);font-weight:600}
|
|
133
|
+
.ai-prompt{width:100%;box-sizing:border-box;border:1px solid var(--line);border-radius:10px;padding:9px 11px;font-size:13px;font-family:inherit;line-height:1.6;resize:vertical;min-height:78px}
|
|
134
|
+
.ai-prompt:focus{outline:2px solid rgba(64,158,255,.4);border-color:var(--blue)}
|
|
135
|
+
.ai-hint{font-size:12px;color:var(--muted);line-height:1.6;margin-top:10px}
|
|
116
136
|
</style>
|
|
117
137
|
</head>
|
|
118
138
|
<body>
|
|
@@ -142,24 +162,30 @@
|
|
|
142
162
|
<div class="topbar">
|
|
143
163
|
<button class="btn ghost" id="undoBtn" title="撤销">↶</button>
|
|
144
164
|
<button class="btn ghost" id="redoBtn" title="重做">↷</button>
|
|
145
|
-
<
|
|
146
|
-
<
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
165
|
+
<select id="themeSel" style="max-width:150px" title="主题"></select>
|
|
166
|
+
<details class="theme-panel" id="themePanel"><summary><svg viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="5" r="1"/><circle cx="12" cy="12" r="1"/><circle cx="12" cy="19" r="1"/></svg>主题管理</summary><div class="theme-box">
|
|
167
|
+
<div class="menu-items">
|
|
168
|
+
<button class="menu-item" id="genBtn" title="按当前文章用 AI 生成主题"><svg viewBox="0 0 24 24" width="15" height="15" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"><path d="M12 3l1.6 4.4L18 9l-4.4 1.6L12 15l-1.6-4.4L6 9l4.4-1.6z"/><path d="M19 14l.8 2.2L22 17l-2.2.8L19 20l-.8-2.2L16 17l2.2-.8z"/><path d="M5 15l.7 1.8 1.8.7-1.8.7L5 20l-.7-1.8-1.8-.7 1.8-.7z"/></svg>生成主题</button>
|
|
169
|
+
<button class="menu-item" id="saveBtn" title="保存当前主题"><svg viewBox="0 0 24 24" width="15" height="15" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z"/><path d="M17 21v-8H7v8M7 3v5h8"/></svg>保存主题</button>
|
|
170
|
+
</div>
|
|
171
|
+
<div class="menu-sep"></div>
|
|
172
|
+
<h4>已保存的自定义主题</h4>
|
|
173
|
+
<div id="themeList" style="max-height:150px;overflow:auto;font-size:12px;color:var(--ink2);line-height:1.9"></div>
|
|
174
|
+
</div></details>
|
|
175
|
+
<label class="lbl">标题</label><input type="text" id="title" placeholder="文章标题" style="flex:1 1 120px;max-width:230px" />
|
|
176
|
+
<label class="lbl">封面</label><input type="text" id="cover" placeholder="封面URL" style="width:120px" title="封面图 URL(900×383/2.35:1);留空则用正文首图或自动生成" />
|
|
154
177
|
<button class="btn" id="coverUpload" title="上传本地图片作封面">上传</button>
|
|
155
178
|
<span id="coverThumbWrp" style="display:none;position:relative;line-height:0">
|
|
156
179
|
<img id="coverThumb" alt="封面预览" style="width:54px;height:26px;object-fit:cover;border-radius:6px;vertical-align:middle;border:1px solid var(--line)" />
|
|
157
180
|
<button class="btn ghost" id="coverClear" title="清除封面" style="position:absolute;top:-9px;right:-9px;padding:0 5px;font-size:13px;line-height:18px;border-radius:9px">×</button>
|
|
158
181
|
</span>
|
|
159
182
|
<input type="file" id="coverFile" accept="image/*" style="display:none" />
|
|
183
|
+
<div class="right">
|
|
184
|
+
<button class="btn" id="valBtn"><svg viewBox="0 0 24 24" width="15" height="15" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><path d="m8 12 3 3 5-6"/></svg>校验</button>
|
|
160
185
|
<button class="btn" id="copyHtmlBtn"><svg viewBox="0 0 24 24" width="15" height="15" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><rect x="8" y="3" width="8" height="4" rx="1"/><path d="M8 5H6a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2"/></svg>复制 HTML</button>
|
|
161
186
|
<button class="btn primary" id="copyWxBtn"><svg viewBox="0 0 24 24" width="15" height="15" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="12" height="12" rx="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg>复制到公众号</button>
|
|
162
187
|
<button class="btn primary" id="pubBtn"><svg viewBox="0 0 24 24" width="15" height="15" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M22 2 11 13"/><path d="M22 2 15 22l-4-9-9-4z"/></svg>发布草稿箱</button>
|
|
188
|
+
</div>
|
|
163
189
|
</div>
|
|
164
190
|
|
|
165
191
|
<div class="content">
|
|
@@ -169,20 +195,20 @@
|
|
|
169
195
|
<button class="tb-btn" data-a="bold" title="加粗"><b>B</b></button>
|
|
170
196
|
<button class="tb-btn" data-a="italic" title="斜体"><i style="font-style:italic">I</i></button>
|
|
171
197
|
<button class="tb-btn" data-a="strike" title="删除线"><s>S</s></button>
|
|
172
|
-
<button class="tb-btn" data-a="
|
|
173
|
-
<button class="tb-btn" data-a="h2" title="二级标题">H2</button>
|
|
174
|
-
<button class="tb-btn" data-a="h3" title="三级标题">H3</button>
|
|
198
|
+
<button class="tb-btn tm-trigger" data-a="heading" title="标题"><b>H</b></button>
|
|
175
199
|
<span class="tb-sep"></span>
|
|
176
200
|
<button class="tb-btn" data-a="quote" title="引用"><svg viewBox="0 0 24 24" width="15" height="15" fill="currentColor"><path d="M9.5 4C5.9 4 3 6.9 3 10.5V20h8v-8H7c0-2.2 1.3-4 2.5-4V4zm11 0C16.9 4 14 6.9 14 10.5V20h8v-8h-4c0-2.2 1.3-4 2.5-4V4z"/></svg></button>
|
|
177
201
|
<button class="tb-btn" data-a="code" title="行内代码"><svg viewBox="0 0 24 24" width="15" height="15" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="m16 18 6-6-6-6M8 6l-6 6 6 6"/></svg></button>
|
|
178
|
-
<button class="tb-btn" data-a="
|
|
179
|
-
<button class="tb-btn" data-a="
|
|
202
|
+
<button class="tb-btn" data-a="sup" title="上标">x<sup>2</sup></button>
|
|
203
|
+
<button class="tb-btn" data-a="sub" title="下标">x<sub>2</sub></button>
|
|
204
|
+
<button class="tb-btn tm-trigger" data-a="list" title="列表"><svg viewBox="0 0 24 24" width="15" height="15" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round"><path d="M9 6h12M9 12h12M9 18h12"/><circle cx="4.5" cy="6" r="1.4" fill="currentColor"/><circle cx="4.5" cy="12" r="1.4" fill="currentColor"/><circle cx="4.5" cy="18" r="1.4" fill="currentColor"/></svg></button>
|
|
180
205
|
<button class="tb-btn" data-a="highlight" title="高亮"><svg viewBox="0 0 24 24" width="15" height="15" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M13.5 4.5 19.5 10 9.5 20H3.5v-6z"/><path d="M4 20h17"/></svg></button>
|
|
181
206
|
<span class="tb-sep"></span>
|
|
182
207
|
<button class="tb-btn" data-a="link" title="链接"><svg viewBox="0 0 24 24" width="15" height="15" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"/></svg></button>
|
|
183
208
|
<button class="tb-btn" data-a="img" title="图片"><svg viewBox="0 0 24 24" width="15" height="15" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2"/><circle cx="8.5" cy="8.5" r="1.5"/><path d="m21 15-5-5L5 21"/></svg></button>
|
|
184
209
|
<button class="tb-btn" data-a="table" title="表格"><svg viewBox="0 0 24 24" width="15" height="15" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="4" width="18" height="16" rx="2"/><path d="M3 10h18M10 4v16"/></svg></button>
|
|
185
210
|
<button class="tb-btn" data-a="hr" title="分隔线"><svg viewBox="0 0 24 24" width="15" height="15" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round"><path d="M4 12h16"/></svg></button>
|
|
211
|
+
<button class="tb-btn tm-trigger" data-a="callout" title="警告框"><svg viewBox="0 0 24 24" width="15" height="15" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M12 3 2 20h20L12 3z"/><path d="M12 10v4"/><path d="M12 17.5h.01"/></svg></button>
|
|
186
212
|
<span class="tb-sep"></span>
|
|
187
213
|
<button class="tb-btn" data-a="clear" title="清除格式"><svg viewBox="0 0 24 24" width="15" height="15" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round"><path d="M6 6l12 12M18 6L6 18"/></svg></button>
|
|
188
214
|
<button class="tb-btn" data-a="help" title="Markdown 帮助"><svg viewBox="0 0 24 24" width="15" height="15" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"/><line x1="12" y1="17" x2="12.01" y2="17"/></svg></button>
|
|
@@ -201,6 +227,7 @@
|
|
|
201
227
|
</div>
|
|
202
228
|
</div>
|
|
203
229
|
<div class="table-picker" id="tablePicker"></div>
|
|
230
|
+
<div class="tm-picker" id="tmPicker"></div>
|
|
204
231
|
<div class="toast" id="toast"></div>
|
|
205
232
|
|
|
206
233
|
<!-- 图床设置弹窗 -->
|
|
@@ -220,6 +247,25 @@
|
|
|
220
247
|
</div>
|
|
221
248
|
</div>
|
|
222
249
|
|
|
250
|
+
<div class="overlay" id="aiOverlay">
|
|
251
|
+
<div class="modal">
|
|
252
|
+
<div class="modal-head"><b>AI 优化</b><button class="modal-close" data-close-ai>×</button></div>
|
|
253
|
+
<div class="modal-body">
|
|
254
|
+
<div class="ai-scope">
|
|
255
|
+
<span class="ai-lbl" style="margin:0">作用范围</span>
|
|
256
|
+
<div class="ai-chips">
|
|
257
|
+
<label class="ai-chip"><input type="radio" name="aiScope" value="all" checked>全文</label>
|
|
258
|
+
<label class="ai-chip"><input type="radio" name="aiScope" value="sel">选中片段<span class="ai-selinfo" id="aiSelInfo"></span></label>
|
|
259
|
+
</div>
|
|
260
|
+
</div>
|
|
261
|
+
<label class="ai-lbl" style="margin-top:14px">优化要求(可选,自定义 prompt)</label>
|
|
262
|
+
<textarea class="ai-prompt" id="aiPrompt" rows="4" placeholder="例如:把开头写得更有吸引力;语句更口语化;压缩到 800 字以内;每段补一个小标题…(留空 = 通用优化)"></textarea>
|
|
263
|
+
<div class="ai-hint">提示:先在编辑器里选中想优化的文字,再点「AI 优化」即可只优化该段;不选中则默认优化全文。优化会保留 Markdown 结构与事实,不改变主旨。</div>
|
|
264
|
+
</div>
|
|
265
|
+
<div class="modal-foot"><button class="btn" data-close-ai>取消</button><button class="btn primary" id="aiRun">开始优化</button></div>
|
|
266
|
+
</div>
|
|
267
|
+
</div>
|
|
268
|
+
|
|
223
269
|
<script>
|
|
224
270
|
// ---- 状态 ----
|
|
225
271
|
let lastHtml=''; let themesCache=[]; let currentTitle='';
|
|
@@ -283,6 +329,7 @@ function linePrefix(p){
|
|
|
283
329
|
const ACTIONS={
|
|
284
330
|
bold:()=>wrap('**'), italic:()=>wrap('*'), strike:()=>wrap('~~'), highlight:()=>wrap('=='),
|
|
285
331
|
code:()=>wrap('`'), link:()=>wrap('[','](https://)'), img:()=>wrap(''),
|
|
332
|
+
sup:()=>wrap('^'), sub:()=>wrap('~'),
|
|
286
333
|
h1:()=>linePrefix('# '), h2:()=>linePrefix('## '), h3:()=>linePrefix('### '),
|
|
287
334
|
quote:()=>linePrefix('> '), ul:()=>linePrefix('- '), ol:()=>linePrefix('1. '),
|
|
288
335
|
hr:()=>{const ta=$('#md');ta.value=(ta.value+'\n\n---\n');render();},
|
|
@@ -292,6 +339,9 @@ const ACTIONS={
|
|
|
292
339
|
$('#toolbar').addEventListener('click',e=>{
|
|
293
340
|
const btn=e.target.closest('.tb-btn'); const a=btn?.dataset?.a; if(!a) return;
|
|
294
341
|
if(a==='table'){ showTablePicker(btn); return; }
|
|
342
|
+
if(a==='heading'){ showTmPicker(btn, HEAD_OPTS); return; }
|
|
343
|
+
if(a==='list'){ showTmPicker(btn, LIST_OPTS); return; }
|
|
344
|
+
if(a==='callout'){ showTmPicker(btn, CALLOUT_OPTS); return; }
|
|
295
345
|
if(ACTIONS[a]) ACTIONS[a]();
|
|
296
346
|
});
|
|
297
347
|
|
|
@@ -316,6 +366,45 @@ function showTablePicker(btn){
|
|
|
316
366
|
}
|
|
317
367
|
function hideTablePicker(){ $('#tablePicker').style.display='none'; }
|
|
318
368
|
document.addEventListener('click',e=>{ if(!e.target.closest('#tablePicker') && !e.target.closest('.tb-btn[data-a=table]')) hideTablePicker(); });
|
|
369
|
+
|
|
370
|
+
// ---- 通用工具栏下拉(标题 / 列表 / 警告框) ----
|
|
371
|
+
const HEAD_OPTS=[
|
|
372
|
+
{label:'一级标题(H1)', action:()=>linePrefix('# ')},
|
|
373
|
+
{label:'二级标题(H2)', action:()=>linePrefix('## ')},
|
|
374
|
+
{label:'三级标题(H3)', action:()=>linePrefix('### ')} ];
|
|
375
|
+
const LIST_OPTS=[
|
|
376
|
+
{label:'无序列表', action:()=>linePrefix('- ')},
|
|
377
|
+
{label:'有序列表', action:()=>linePrefix('1. ')},
|
|
378
|
+
{label:'二级—无序', action:()=>linePrefix(' - ')},
|
|
379
|
+
{label:'二级—有序', action:()=>linePrefix(' 1. ')} ];
|
|
380
|
+
const CALLOUT_OPTS=[
|
|
381
|
+
{label:'提醒内容', action:()=>insertCallout('info','提醒内容')},
|
|
382
|
+
{label:'建议内容', action:()=>insertCallout('tip','建议内容')},
|
|
383
|
+
{label:'重要内容', action:()=>insertCallout('important','重要内容')},
|
|
384
|
+
{label:'警告内容', action:()=>insertCallout('warning','警告内容')},
|
|
385
|
+
{label:'注意内容', action:()=>insertCallout('note','注意内容')} ];
|
|
386
|
+
function showTmPicker(btn, options){
|
|
387
|
+
hideTmPicker();
|
|
388
|
+
const p=$('#tmPicker'); p._opts=options;
|
|
389
|
+
p.innerHTML=options.map((o,i)=>'<button class="tm-opt" data-i="'+i+'">'+o.label+'</button>').join('');
|
|
390
|
+
const rect=btn.getBoundingClientRect();
|
|
391
|
+
p.style.left=Math.min(rect.left, window.innerWidth-200)+'px';
|
|
392
|
+
p.style.top=(rect.bottom+4)+'px';
|
|
393
|
+
p.style.display='block';
|
|
394
|
+
}
|
|
395
|
+
function hideTmPicker(){ const p=$('#tmPicker'); if(p) p.style.display='none'; }
|
|
396
|
+
$('#tmPicker').addEventListener('click',e=>{
|
|
397
|
+
const b=e.target.closest('.tm-opt'); if(!b) return;
|
|
398
|
+
const o=($('#tmPicker')._opts||[])[+b.dataset.i]; hideTmPicker(); if(o&&o.action) o.action();
|
|
399
|
+
});
|
|
400
|
+
document.addEventListener('click',e=>{ if(!e.target.closest('#tmPicker') && !e.target.closest('.tm-trigger')) hideTmPicker(); });
|
|
401
|
+
// 在光标处插入一个 ::: 类型 标题 … ::: 警告框(光标停在内容占位符处)
|
|
402
|
+
function insertCallout(type,title){
|
|
403
|
+
const ta=$('#md'), s=ta.selectionStart, e=ta.selectionEnd;
|
|
404
|
+
const block='\n::: '+type+' '+title+'\n内容……\n:::\n';
|
|
405
|
+
ta.value=ta.value.slice(0,s)+block+ta.value.slice(e);
|
|
406
|
+
const pos=s+block.indexOf('\n内容……')+1; ta.selectionStart=ta.selectionEnd=pos; render(); saveSnap(); ta.focus();
|
|
407
|
+
}
|
|
319
408
|
// 在光标处插入 cols 列 × rows 行(首行表头)的 Markdown 表格
|
|
320
409
|
function insertTable(cols, rows){
|
|
321
410
|
const ta=$('#md'), s=ta.selectionStart;
|
|
@@ -362,8 +451,8 @@ $('#search').addEventListener('input',e=>renderHistory(e.target.value.trim()));
|
|
|
362
451
|
$('#newBtn').onclick=()=>{ $('#md').value=''; $('#title').value=''; $('#pv').srcdoc=''; $('#pv').style.display='none'; $('#pvEmpty').style.display=''; activeId=null; setVal([{kind:'warn',text:'新建文章:开始输入 Markdown'} ]); $('#md').focus(); };
|
|
363
452
|
|
|
364
453
|
// ---- 主题操作 ----
|
|
365
|
-
$('#genBtn').onclick=async()=>{ toast('正在生成主题(LLM)…'); try{ const d=await api('/editor/api/generate',{article:$('#md').value,save:true}); if(d.theme&&d.theme.name){await loadThemes();$('#themeSel').value=d.theme.name;} toast('已生成'+(d.saved?'并保存':'')+':'+(d.theme&&d.theme.name)); render(); }catch(e){ toast('生成失败:'+e.message,false); } };
|
|
366
|
-
$('#saveBtn').onclick=async()=>{ const name=$('#themeSel').value; const th=themesCache.find(t=>t.name===name); if(!th)return toast('请先选择主题',false); try{ await api('/editor/api/savetheme',{theme:th}); await loadThemes(); $('#themeSel').value=name; toast('已保存:'+name); }catch(e){ toast('保存失败:'+e.message,false); } };
|
|
454
|
+
$('#genBtn').onclick=async()=>{ toast('正在生成主题(LLM)…'); try{ const d=await api('/editor/api/generate',{article:$('#md').value,save:true}); if(d.theme&&d.theme.name){await loadThemes();$('#themeSel').value=d.theme.name;} toast('已生成'+(d.saved?'并保存':'')+':'+(d.theme&&d.theme.name)); render(); }catch(e){ toast('生成失败:'+e.message,false); } $('#themePanel').open=false; };
|
|
455
|
+
$('#saveBtn').onclick=async()=>{ const name=$('#themeSel').value; const th=themesCache.find(t=>t.name===name); if(!th)return toast('请先选择主题',false); try{ await api('/editor/api/savetheme',{theme:th}); await loadThemes(); $('#themeSel').value=name; toast('已保存:'+name); }catch(e){ toast('保存失败:'+e.message,false); } $('#themePanel').open=false; };
|
|
367
456
|
$('#valBtn').onclick=async()=>{ const md=$('#md').value,theme=$('#themeSel').value; try{ const d=await api('/editor/api/render',{markdown:md,theme}); const v=d.validation||{}; const issues=(v.issues||[]).map(i=>'['+i.rule+'] '+i.message); setVal([{kind:v.pass?'ok':'err',text:v.pass?'✓ 校验通过':'✗ 校验未通过'},...issues.map(t=>({kind:v.pass?'warn':'err',text:t}))]); toast(v.pass?'校验通过':'校验未通过',v.pass); }catch(e){ toast('校验失败:'+e.message,false); } };
|
|
368
457
|
|
|
369
458
|
// ---- 复制 / 发布 ----
|
|
@@ -375,8 +464,37 @@ $('#pubBtn').onclick=async()=>{ const title=$('#title').value||((($('#md').value
|
|
|
375
464
|
// ---- 侧栏导航 / 设置 / AI 优化 ----
|
|
376
465
|
function nav(id){ document.querySelectorAll('.subnav button').forEach(b=>b.classList.remove('active')); var b=document.getElementById(id); if(b)b.classList.add('active'); }
|
|
377
466
|
$('#navTheme').onclick=()=>{ nav('navTheme'); $('#themePanel').open=true; $('#themeSel').focus(); };
|
|
467
|
+
// 点击页面其他位置关闭「主题管理」下拉;点侧栏「文章主题」或下拉内部(含 summary/菜单项)时不关闭
|
|
468
|
+
document.addEventListener('click',e=>{
|
|
469
|
+
const p=$('#themePanel'); if(!p||!p.open) return;
|
|
470
|
+
if(p.contains(e.target) || (e.target.closest && e.target.closest('#navTheme'))) return;
|
|
471
|
+
p.open=false;
|
|
472
|
+
});
|
|
378
473
|
$('#navImgHost').onclick=()=>{ nav('navImgHost'); $('#imgHostOverlay').classList.add('show'); };
|
|
379
|
-
|
|
474
|
+
function aiSelRange(){ const t=$('#md'); return { start:t.selectionStart, end:t.selectionEnd, text:(t.value||'').slice(t.selectionStart,t.selectionEnd) }; }
|
|
475
|
+
function refreshAiSel(){ const s=aiSelRange(); const info=$('#aiSelInfo'); if(info) info.textContent = s.text.trim() ? ('· 已选 '+s.text.length+' 字') : ''; }
|
|
476
|
+
$('#navAi').onclick=()=>{ nav('navAi'); if(!$('#md').value.trim())return toast('请先输入文章',false); refreshAiSel(); $('#aiOverlay').classList.add('show'); $('#aiPrompt').focus(); };
|
|
477
|
+
document.querySelectorAll('[data-close-ai]').forEach(b=>b.onclick=()=>{ $('#aiOverlay').classList.remove('show'); });
|
|
478
|
+
$('#aiOverlay').addEventListener('click',e=>{ if(e.target.id==='aiOverlay') $('#aiOverlay').classList.remove('show'); });
|
|
479
|
+
document.querySelectorAll('input[name="aiScope"]').forEach(r=>r.addEventListener('change',refreshAiSel));
|
|
480
|
+
$('#aiRun').onclick=async()=>{
|
|
481
|
+
const md=$('#md').value; if(!md.trim())return toast('请先输入文章',false);
|
|
482
|
+
const scope=document.querySelector('input[name="aiScope"]:checked').value;
|
|
483
|
+
const prompt=$('#aiPrompt').value.trim();
|
|
484
|
+
let selection;
|
|
485
|
+
if(scope==='sel'){ const s=aiSelRange(); if(s.end>s.start){ selection={start:s.start,end:s.end}; } else { toast('未选中文字,将优化全文',false); } }
|
|
486
|
+
$('#aiOverlay').classList.remove('show');
|
|
487
|
+
toast('AI 优化中(LLM)…');
|
|
488
|
+
try{
|
|
489
|
+
const body={ markdown:md }; if(prompt) body.prompt=prompt; if(selection) body.selection=selection;
|
|
490
|
+
const d=await api('/editor/api/optimize', body);
|
|
491
|
+
const t=$('#md');
|
|
492
|
+
if(selection){ t.value = md.slice(0,selection.start) + d.markdown + md.slice(selection.end); const pos=selection.start+d.markdown.length; t.setSelectionRange(pos,pos); }
|
|
493
|
+
else { t.value = d.markdown; }
|
|
494
|
+
saveSnap(); render();
|
|
495
|
+
toast(selection?'已优化选中片段':'AI 优化完成');
|
|
496
|
+
}catch(e){ toast('AI 优化失败:'+e.message,false); }
|
|
497
|
+
};
|
|
380
498
|
// 设置弹窗:开关
|
|
381
499
|
const relocateToggle=$('#relocateOpt'); relocateToggle.checked=localStorage.getItem('mp-relocate')!=='0'; relocateToggle.addEventListener('change',()=>localStorage.setItem('mp-relocate',relocateToggle.checked?'1':'0'));
|
|
382
500
|
document.querySelectorAll('[data-close]').forEach(b=>b.onclick=()=>{ $('#imgHostOverlay').classList.remove('show'); });
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stylewx/mcp-server",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"description": "stylewx MCP Server: exposes styling/validate/publish capabilities to AI agents (Kimi Code / Claude Code / Cursor). stdio + Streamable HTTP.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -21,11 +21,11 @@
|
|
|
21
21
|
"dependencies": {
|
|
22
22
|
"@modelcontextprotocol/sdk": "^1.12.0",
|
|
23
23
|
"zod": "^4.0.0",
|
|
24
|
-
"@stylewx/
|
|
25
|
-
"@stylewx/
|
|
26
|
-
"@stylewx/
|
|
27
|
-
"@stylewx/
|
|
28
|
-
"@stylewx/
|
|
24
|
+
"@stylewx/service": "0.1.2",
|
|
25
|
+
"@stylewx/core": "0.1.2",
|
|
26
|
+
"@stylewx/theme": "0.1.2",
|
|
27
|
+
"@stylewx/publisher": "0.1.2",
|
|
28
|
+
"@stylewx/validator": "0.1.2"
|
|
29
29
|
},
|
|
30
30
|
"publishConfig": {
|
|
31
31
|
"access": "public"
|