From 2bedb68ef76d76b3cb92fb0ad3656cfa265202c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E6=98=8C?= <392871505@qq.com> Date: Tue, 30 Jun 2026 10:32:51 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=95=B4=E5=90=88=20Demo=20=E7=BB=88?= =?UTF-8?q?=E7=AB=AF=E8=BE=93=E5=87=BA=E5=88=B0=20PPT?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 2 页终端风格输出(社区周报 + Release Notes 真实数据) - 模拟终端界面(圆点标题栏 + 彩色语法高亮) - PPT 从 17 页扩展到 19 页 - 演示时无需切换浏览器查看输出结果 Co-Authored-By: Claude --- ...报PPT.pptx => 汇报PPT-增强版.pptx} | Bin 344526 -> 382658 bytes scripts/gen-ppt.js | 68 +++++++++++++++++- 2 files changed, 66 insertions(+), 2 deletions(-) rename doc/{汇报PPT.pptx => 汇报PPT-增强版.pptx} (85%) diff --git a/doc/汇报PPT.pptx b/doc/汇报PPT-增强版.pptx similarity index 85% rename from doc/汇报PPT.pptx rename to doc/汇报PPT-增强版.pptx index 51f12f304194b29ff1c4bf914bff1e8fca48aad3..b3240eca89b783e5117e5489bcab98498eaf98f2 100644 GIT binary patch delta 9392 zcmeHNc~}%zwy%|?K?Ics6{Of?ZRoCE*|Z@~6E#FgH1po4QHWup8B|0t!4QJ`1_CMc zCT>WAiBW=(R*OYZT;gb=(Rs;aHxTItlNi*=GFeRKF2(ve@0%By|EBnESKaNL-#Pc( zTfe%OOKZGOz2W1YHiP9<6uL%^sc;Ws;IB3m{r*9KztR#$T~X$V^3`D|KN;rReNg_# zD5YLXq)`J{HC`&obr~d4>Y&Gi+Hl@e)vpCNyhx8ieL848l2xsiq8TqDM1yWin298( zmTDQK4z^TFpD_OD@h2u4-NIRM)W|Vc=YF?o)1zS_6ot}g3J6iWw`5!zZ);)qjgc;U zjg`trY-DsMsm-;N(V3-+5gX90%{AYa;rok9x*4FQO;VsxL7U-krfqI8LqqYljF7dA z2a;csY}o7XOi}*Mw%Zf`OnaLXV;{+0^hDP3Nh;UGhnD8S2c6mWZg>+7CHP1BO4X4m zjHtEQBSRSJ>u4`1y(8KW*8Lj&g9{RPiv#N|(tDYc={Vb%$Iq#diqEniM6Q&g zme^5t)Y8XTbYGVHHG}T+^Pk6_ZeQ_~8s#4>RpIjgE_>SvJE|oBb1KEls;Z_u)su71tw5oW7HtW!1MAaKhtYWNLq%- z5M0>?W)abuR9N{}V*NZLud+p6ucyK3BnDY7f0@MOEyDd?>+SbC!?|EMg-`l6609{1 z48gk2#-uL5m8MhU_YthWs9A!w-IraAvCb4&1#9i-+Z9C*P*l+a7^}QCh%J2p_xE~j zQV8jv@F%5zz+(0~?yt&+{Shetr`h$1=wY9Yb;l*PBkV;ore|jDItzq%I1Px8=T-8F zW9(mP?4LGiLUV+Lq9QDy?K{>-Zf<4g(6aUp{R(Y!D;hyFq6oZ7xH&+(k39%7HnZ+3 z;gl@c>-JoKX&ty4$mnPh1pdTK0cmI0r#QXNC`!Vu)j<0$T!Mu2tO=yW(;i^DnVucqZKAn~Ir|bgF!mP~fyoH+FtemB}c`=K@l{Q8L zJcFS8%d1&eDfNd8@W+o>Z;%$vd2j}^!3?VRvkQ4`vUZ9Ntcqg1LA?j<1Ww*zLwMa3 zF-{NCQ)ut)we)llu$~0!w$n8N6m2=j{=vGZ?f%!h(XNAovK{oM{1A zS29!isZ)(pjYMks+qC(GUtB@>dUiH%5ydzYcy1dv{-5@BnmRS*zr-ohl|3_n=PYiX zlTNEOS`7bZr~5g}eXz+DA5KkNcXAr70y!0|6SyjIvoYdeok27iOa`RN(Kyxq=fPu(M+@dT1{+_xB3>=2O}gygGuO9ZSr*H)$s?G4rIf z+wPpnV2lHSD_MUhQLEFLERt8zhM??eOO_`EK@EAm54pV$kCO+f;mm4qxr&AhmLDC7 zgNq3kKyfMS?JnG`syr;%_a3mHcnw^cM=t}~YY_X=QS@vWk8aMQ)?g8hCQzTk`tiR@ zsZ*RGS)XD74JGWmnnJ-*vca);gV1-ul5O>l(z?EazK24B$C|=Eh%*dEtuam@E~^aXrU2+Sl2xgEs_2 ztYed8KUOU0j6KITp=#oh-#&ox00+lOG#Pbf6F8K@`v1dIs9VgCnAK~I1}$8Gh9_oY3We^&)m?!X) zv=%<}9NVFX%O48a9Lf4N*6pmf7%gVgy#&e-)xNhdQm>8ls zFnB;%9B%2B*Vvn19c+2Wa_)7+H_ER=zJb}qx6|MH(g%`uA7^ml2pb551jx27f5kSj z&v&1A$?@W$u9{YRNwd9Tzhm>ht{rO$jp%Nb>>HZNGI_0d_1q<0Eyv(gAj$-Nj1juI z=U9n-=ibi7=Ihl>T|4W#Th}7Q4Z43Mcho_@*#O$4+D!Cz%YHG+U@oBm-h%!I+MYo7h>VdVej>q zYCzcz)<_)wZ=furH2rS__~J7|a1wI!uB*l` z+M&e5U^E%@_d-}f-?SO`#jgF>x0|cF*Blq%u%bvpQz#V8om?=pgV569AQ(;qi0Sy7 zRpmQ{l>8@!&J%U^no`J-iDq4#qPegZe!IEF_R_!M<{0B{R!O^|=^Gr?uOLokFcAF) zgQEY9g|w?Q{}N%J!@x9>&6X6Y_=pc)uAtx73GjX0eP|m}uE)BCaD8ZmK!$wsbG;l# zH0gBO;h~w(>6Nbuc6ndd{w+wYsHhct)k=rnQ-S%#iq8!OlPH?+CC~dJlsf_pk}-jJ6-ln#E%D6H$} zNgQEa=~iwugH1dCzJ49p-OBpQn^L$rw3N}~D;G^>_OkND(`*~wax2N>6mGfg%{^Xc zpv`9#o6oI)HiO?-x^f@xiQ5mbQr=&9$|9NCggQCpH_dKH(8H@3#n zQu{SmY445saz-ediL|~0ii2sZTwchUXtW?e;&uk^74>X@%lO_AtUCxOW~Tye6Sn|d zUciPkYR;O!8Qox=Ic4`1T)85y!qKua+_zsl16+z)8qT^{*yuhh$qN3CG*3NB2Z z{wb2WZYAf$%DQV%D%N^3B>e)}>ziv;b}*$m@vflI!TDpad@;7+ml`WY)mZVKA8nG8 zpJt{(3urhhhz^p2&;n zesm&lME4sLc`dpJgz;#H89W%l`+?2{oOD=L22X%!o&G-N~Isj2& z_5w~u@oJ_(2R@AA190E|^A?H<7}U4P0DPi(O%TE{llg4_MFF15z%*u1tJ831OBrLw zfR)j_J8s)|r~(gG2Dd%+IBZ)#aSS*H+alX9MDu>k8_Pgz@T_ zF?=v~$)TP4??FQ>bcx>!AU%Zk1qWkzH5L%FV@E}~6Gfpk*e~Igpd*GyXLZ0c7V7?P z2gtN?!5}@B_eO;aVIk+T8=30r4R*&8mD)R0a><1a16R;cEkB%#fQ$=2l9$(M{1z?v2 z=>tAE58Z{*V3#G<5eQ?=G0!Z{9z60_=i<{Za6^JzxCnlL;(|UhUVS(}Zw3(Q?85IVEg7gGF2wZ?F@EqwsD;sL57`EM_ z7>bY0&>Um0Emic*u_yxgkMlRyK`T)jY-!Ij1OQL6lMo2=aRJu7J&xGp8wcmujb~X( z${eKz55*Dab73i)-^haM>#Q%hWP?`iR;mudDrQYHwn_>RoWNJG0uMMol?${&xevD? z9l_{yj@Z|KE=N&t9T{*vc^c%z^C4Kk$-^K4cqTyu&-{#42Z5pl-W_|We=m-rgaQ32 z>MwVQhXWG$QCQ5nnVts$!oh~|915vuEG7s|#{QkLp+FLyIZCP+qaL~pTuy+lD4xO* zS3uHA790$!pSTVMwe^0`Fp2jEkjnC4ej@Se;zTIw`-d>5AW)a6I0x~@vyl{q(qQMf zrGw5yJ_JwRB-ocLRA3}SCt(ErG;%0{QAGqnWs)*^oeNx65Vwq3&w*P-@XH>pQP?g0 z%yKA%h>g%KZEE$Hp>w2h=HdS(gVlXrLG|n;UQI>-F~tTHVc)-vP~fTGF$r35_AiR{ zsqa8XMo(7ONW>U#>nIAP!7ljtJq}neaXugiwndI8nheEI&O8~9Ba;=Cm`2V=vE$*& zlhwu9%A@}e0pqQ($1E=%g+dU3EK>a-3Wa{&I8^7N(L9xtlNY-j|Az*-=}dQ9C@`bM z5t}@VAcE8qy}t1BgXkm;X&Xv|V|M1F1mn27i^U`pNAT8p1hyg;dl#`xV1B-n;7U%D-@taEDlb7M!P$hKv5_K4w|zg z3qXgJA1y6)cLViS-U~N>=v>6sR+^$viXPP54p8%WG?@O$yr1)pm$2O+eFZxK%u6PL ikqv9uVwng2p}a<&HiL(JgQA{K=I&cL5 delta 3939 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 u&^(($TN@pQw$^jZ;R0tEaE=Z@IRjKWc3@aM| diff --git a/scripts/gen-ppt.js b/scripts/gen-ppt.js index 8490ca3..2a5d599 100644 --- a/scripts/gen-ppt.js +++ b/scripts/gen-ppt.js @@ -268,7 +268,71 @@ outputs.forEach((o, i) => { s11.addText(o[1], { x: x + 0.15, y: 2.15, w: 1.9, h: 2.4, fontSize: 11, color: C.lightBlue, fontFace: "Consolas", align: "left" }); }); -// ===== Slide 12: 子任务四 - 科研 ===== +// ===== Slide 12: 终端输出 - 周报 ===== +let s12r = pres.addSlide(); +s12r.background = { fill: C.navy }; +s12r.addNotes("这是社区周报的实际输出数据。\\n综合评分 3.5/10,因为项目较新、Star 较少、且未检测到开源许可证。"); +s12r.addText("社区周报 · 实际输出", { x: 0.8, y: 0.3, w: 8, h: 0.5, fontSize: 22, bold: true, color: C.white, fontFace: "Consolas" }); +s12r.addShape(pres.shapes.RECTANGLE, { x: 0.8, y: 0.8, w: 1.2, h: 0.04, fill: { color: C.teal } }); +s12r.addText("$ cat _output/weekly-health-report.md", { x: 0.8, y: 1.0, w: 8, h: 0.3, fontSize: 10, color: C.gray, fontFace: "Consolas" }); +// Terminal box +s12r.addShape(pres.shapes.ROUNDED_RECTANGLE, { x: 0.5, y: 1.4, w: 9.0, h: 3.8, fill: { color: "0A0E17" }, line: { color: "1E293B", width: 1 } }); +// Title bar dots +[["FF5F57","FFBD2E","28C840"],["1E2A3A","1E2A3A","1E2A3A"]].forEach((row,ri) => row.forEach((c,ci) => { + s12r.addShape(pres.shapes.OVAL, { x: 0.7 + ci*0.2, y: 1.55 + ri*0.01, w: 0.1, h: 0.1, fill: { color: c } }); +})); +const rptLines = [ + ["# 综合评分:3.5/10 🔴 堪忧", "F96167"], + ["", ""], + ["| 指标 | 数据 |","94A3B8"], + ["|---------------|-----------------------|","94A3B8"], + ["| Issue 总数 | 19(关闭 4/打开 15) |","94A3B8"], + ["| 关闭率 | 21% 🔴 偏低 |","EF4444"], + ["| PR 总数 | 2(合并 0) |","94A3B8"], + ["| 贡献者数 | 1 人 |","94A3B8"], + ["| 平均响应 | 24.3 天 🟡 正常 |","F59E0B"], + ["", ""], + ["# Issue 分析评分:3/10","3B82F6"], + ["# PR 分析评分:3/10","3B82F6"], + ["# 贡献者活跃度评分:3/10","3B82F6"], +]; +rptLines.forEach((l, i) => { + if (l[0]) s12r.addText(l[0], { x: 0.8, y: 1.8 + i*0.22, w: 8, h: 0.22, fontSize: 9, color: l[1], fontFace: "Consolas", margin: 0 }); +}); + +// ===== Slide 13: 终端输出 - Release Notes ===== +let s13r = pres.addSlide(); +s13r.background = { fill: C.navy }; +s13r.addNotes("Release Notes 从提交历史自动生成。\\n100 次提交、7 位贡献者、204 个文件变更。\\n版本推荐:v0.1.0(有 feat 次版本+1)。"); +s13r.addText("Release Notes · 实际输出", { x: 0.8, y: 0.3, w: 8, h: 0.5, fontSize: 22, bold: true, color: C.white, fontFace: "Consolas" }); +s13r.addShape(pres.shapes.RECTANGLE, { x: 0.8, y: 0.8, w: 1.2, h: 0.04, fill: { color: C.blue } }); +s13r.addText("$ cat _output/release-notes-v0.1.0.md", { x: 0.8, y: 1.0, w: 8, h: 0.3, fontSize: 10, color: C.gray, fontFace: "Consolas" }); +s13r.addShape(pres.shapes.ROUNDED_RECTANGLE, { x: 0.5, y: 1.4, w: 9.0, h: 3.8, fill: { color: "0A0E17" }, line: { color: "1E293B", width: 1 } }); +[["FF5F57","FFBD2E","28C840"],["1E2A3A","1E2A3A","1E2A3A"]].forEach((row,ri) => row.forEach((c,ci) => { + s13r.addShape(pres.shapes.OVAL, { x: 0.7 + ci*0.2, y: 1.55 + ri*0.01, w: 0.1, h: 0.1, fill: { color: c } }); +})); +const rnLines = [ + ["## v0.1.0 (2026-06-30)", "22C55E"], + ["", ""], + ["### 版本概览","3B82F6"], + ["- 基于 v0.0.0,包含 100 次提交","94A3B8"], + ["- 涉及 204 个文件","94A3B8"], + ["- 新增 +16483 / 删除 -3644 行","94A3B8"], + ["- 贡献者:7 人","94A3B8"], + ["", ""], + ["### 分类统计","F59E0B"], + ["✨ 新功能 20 次 (20%)","22C55E"], + ["🐛 Bug 修复 19 次 (19%)","EF4444"], + ["📝 文档 44 次 (44%)","3B82F6"], + ["✅ 测试 3 次 (3%) ","A78BFA"], + ["🔧 工程 2 次 (2%) ","F59E0B"], + ["📦 其他 11 次 (11%)","94A3B8"], +]; +rnLines.forEach((l, i) => { + if (l[0]) s13r.addText(l[0], { x: 0.8, y: 1.8 + i*0.22, w: 8, h: 0.22, fontSize: 9, color: l[1], fontFace: "Consolas", margin: 0 }); +}); + +// ===== Slide 14: 子任务四 - 科研 ===== let s12 = pres.addSlide(); s12.background = { fill: C.white }; s12.addNotes("子任务四是科研辅助,是加分项。\n模块 C 是科研项目洞悉,可以采集 8 维仓库数据,从成熟度、文档质量、贡献模式和社区健康度四个维度进行评分。\n模块 D 是热点追踪与知识图谱,支持多关键词搜索并自动构建交互式知识图谱。"); @@ -377,5 +441,5 @@ s17.addText("Q & A", { x: 0, y: 1.5, w: 10, h: 1.2, fontSize: 48, bold: true, co s17.addText("感谢聆听 · 欢迎提问", { x: 0, y: 2.8, w: 10, h: 0.5, fontSize: 16, color: C.lightBlue, fontFace: "Arial", align: "center" }); // ===== Save ===== -const outPath = "e:/gitlink-cli/gitlink-cli/doc/汇报PPT.pptx"; +const outPath = "e:/gitlink-cli/gitlink-cli/tmp_ppt.pptx"; pres.writeFile({ fileName: outPath }).then(() => console.log("Done: " + outPath));