"Code content audit and inspection. Automatically invoked during step 4 of the beauty-normal command to comprehensively check the generated JSON+HTML presentation, ensure quality and integrity, implement one-vote veto system. 代ç å å®¹å®¡æ ¸æ£éªãå¨beauty-normalå½ä»¤çæ¥éª¤4æ§è¡æ¶èªå¨è°ç¨ï¼å ¨é¢æ£æ¥çæçJSON+HTMLæ¼ç¤ºæç¨¿ï¼ç¡®ä¿è´¨éå宿´æ§ï¼å®è¡ä¸ç¥¨å¦å³å¶ã"
Install
npx skillscat add within-7/minto-plugin-tools/beauty-normal-step4 Install via the SkillsCat registry.
Beauty-Normal æ¥éª¤4ï¼ä»£ç å å®¹å®¡æ ¸æ£éª / Beauty-Normal Step 4: Code Content Audit and Inspection
â ï¸ æå ³é®æ¥éª¤ï¼å¿ é¡»ä¸¥æ ¼æ§è¡ï¼/ MOST CRITICAL STEP! Must be strictly executed!
ç®æ / Goal
å ¨é¢æ£æ¥çæç JSON+HTML æ¼ç¤ºæç¨¿ï¼ç¡®ä¿è´¨éå宿´æ§ã
Comprehensively check the generated JSON+HTML presentation to ensure quality and integrity.
â ï¸ æ ¸å¿åå
å®è¡ä¸ç¥¨å¦å³å¶ï¼
- å 容宿´æ§æ£éªï¼å¿ é¡»100%ä¿çåæææç« èãæ°æ®ãç»è®ºï¼é¶éæ¼
- JSONæ°æ®æ£éªï¼JSONæ ¼å¼å¿ é¡»æ£ç¡®ï¼æ°æ®ç»æå¿ 须宿´
- HTMLæ¸²ææ£éªï¼HTMLå¿ é¡»è½æ£ç¡®æ¸²æJSONæ°æ®
- 代ç è´¨éæ£éªï¼å¿ 须符åHTMLæä½³å®è·µï¼å¯è®¿é®å¯è¿è¡
- èµæºä½¿ç¨æ£éªï¼å¿ é¡»éªè¯æ¥éª¤2åæ¥éª¤3æ¯å¦æ£ç¡®è¯»å并使ç¨äºskillèµæº
- åç°é®é¢ç«å³åéï¼è¿åå¯¹åºæ¥éª¤éæ°æ§è¡ï¼ç»ä¸å°å°±
â ï¸ Tokenéå¶å¤çååï¼
ð ææ ¸å¿è§åï¼å¿ é¡»ä¸¥æ ¼éµå®ï¼ï¼å¦ææ°æ®å 容è¿å¤§ï¼æè tokenè¿é¿ï¼åèªå¨ä½¿ç¨'ç»§ç»'è¿è¡'åæ®µ'å è½½æ°æ®ï¼ç»å¯¹ä¸è½ç²¾ç®ãå·å·¥åæçèçtoken,严ç¦ä¸ºäºçtokenèè·³è¿å 容æä½¿ç¨æè¦
å½éå° token éå¶æä¸ä¸æé¿åº¦é®é¢æ¶ï¼å¿ 须使ç¨"ç»§ç»"å页æ¹å¼ï¼ç»å¯¹ç¦æ¢ï¼
- â å缩æçç¥èµæºè¯»å
- â è·³è¿å¿ è¯»èµæº
- â ç®åæ§è¡æ¥éª¤
- â åå°çæå 容
- â ä½¿ç¨æè¦ä»£æ¿å®æ´å 容
- â ç²¾ç®æ°æ®å 容
- â å·å·¥åæèçtoken
æ£ç¡®å¤çæ¹å¼ï¼ä½¿ç¨"ç»§ç»"æºå¶
1. å¨å®æå½å坿§è¡çé¨åå
2. æç¡®è¯´æï¼"ç±äº token éå¶ï¼ä»»å¡æªå®æï¼è¯·è¾å
¥'ç»§ç»'以è·åå©ä½é¨å"
3. çå¾
ç¨æ·è¾å
¥"ç»§ç»"å
4. ç»§ç»æ§è¡å©ä½æ¥éª¤
5. éå¤ç´å°ä»»å¡å®å
¨å®æå段å è½½ååï¼
- â 宿´ä¿çï¼æ¯æ®µæ°æ®é½å¿ é¡»100%ä¿çï¼æ éæ¼ãæ å缩
- â **åæ®µæ¸ æ°**ï¼æç¡®æ æ³¨å½åæ¯ç¬¬å 段ï¼å ±å 段
- â è¿ç»æ§è¡ï¼æ¯æ®µå®æåèªå¨æç¤º"ç»§ç»"ï¼çå¾ ç¨æ·ç¡®è®¤
- â è´¨éä¼å ï¼å®å¯å¤è½®å¯¹è¯ï¼ä¸å¯éä½è´¨é
- â ç¦æ¢ç²¾ç®ï¼ç»å¯¹ä¸è½ä¸ºäºçtokenèç²¾ç®æ°æ®å 容
- â **ç¦æ¢å·å·¥**ï¼ç»å¯¹ä¸è½ä¸ºäºçtokenèå·å·¥åæ
å ³é®è§åï¼
- â **è´¨é > é度**ï¼å®å¯å¤è½®å¯¹è¯ï¼ä¸å¯éä½è´¨é
- â 宿´ > ç®åï¼å®å¯å夿¬¡æ§è¡ï¼ä¸å¯å缩å 容
- â æ å > 妥åï¼å®å¯è§¦åç»§ç»ï¼ä¸å¯å·å·¥åæ
ð æ§è¡æµç¨ï¼7ä¸ªåæ¥éª¤ï¼
æ¥éª¤4.1ï¼èµæºä½¿ç¨éªè¯
â
æ¥éª¤4.2ï¼å
容宿´æ§æ£æ¥
â
æ¥éª¤4.3ï¼JSONæ°æ®æ ¼å¼æ£æ¥
â
æ¥éª¤4.4ï¼HTML渲æåè½æ£æ¥
â
æ¥éª¤4.5ï¼ä»£ç è´¨éæ£æ¥
â
æ¥éª¤4.6ï¼åè½éªè¯
â
æ¥éª¤4.7ï¼çææç»æ¥åæ¥éª¤ 4.1ï¼èµæºä½¿ç¨éªè¯
ç®æ
éªè¯æ¥éª¤2åæ¥éª¤3æ¯å¦æ£ç¡®è¯»å并使ç¨äºskillèµæºã
æ¥éª¤2èµæºä½¿ç¨éªè¯
éªè¯æ¹æ³1ï¼æ£æ¥å¾è¡¨éæ©æ¯å¦åºäºchart-selection-guide.md
â¡ æ¯å¦è¯»åäº chart-selection-guide.mdï¼
â¡ æ¯å¦è¯å«äºå
å®¹ç»æç±»åï¼9ç§ç±»åä¹ä¸ï¼ï¼
â¡ æ¯å¦æ ¹æ®å³çæ éæ©äºå¯¹åºçå¾è¡¨ï¼
â¡ æ¯å¦è®°å½äºéæ©çç±ï¼å
³é®è¯å¹é
ï¼ï¼
å¦æå¦ â è¿åæ¥éª¤2éæ°æ§è¡éªè¯æ¹æ³2ï¼æ£æ¥æ¯å¦åèäºå¾è¡¨ç¤ºä¾æä»¶
â¡ æ¯å¦è¯»åäº CHART_EXAMPLES_INDEX.mdï¼
â¡ æ¯ä¸ªéæ©çå¾è¡¨æ¯å¦é½æå¯¹åºçç¤ºä¾æä»¶ï¼
â¡ æ¯å¦ä»ç¤ºä¾æä»¶ä¸å¤å¶äºä»£ç ï¼
â¡ å¾è¡¨ç±»åä¸å
容æ¯å¦å¹é
ï¼
å¦æå¦ â è¿åæ¥éª¤2éæ°æ§è¡éªè¯æ¹æ³3ï¼æ£æ¥æ¯å¦é 读äºè§ç¹å¯è§åæå
â¡ æ¯å¦è¯»åäº INSIGHT_VISUALIZATION_GUIDE.mdï¼
â¡ æ¯å¦æ ¹æ®è§ç¹ç±»åéæ©äºå¯è§åæ¹å¼ï¼
â¡ æ¯å¦é¿å
äºçº¯ææ¬é¡¹ç®ç¬¦å·å表ï¼
å¦æå¦ â è¿åæ¥éª¤2éæ°æ§è¡æ¥éª¤3èµæºä½¿ç¨éªè¯
éªè¯æ¹æ³1ï¼æ£æ¥æ¯å¦åºäºæä½³å®è·µçæ
â¡ æ¯å¦è¯»åäº best-practices.mdï¼
â¡ HTMLç»ææ¯å¦ç¬¦åè¯ä¹åè¦æ±ï¼
â¡ CSSæ¯å¦éµå¾ªäºè®¾è®¡ååï¼
â¡ æ¯å¦ä¿æäºå
容宿´æ§ï¼ä¸æ»ç»ãä¸ç¯¡æ¹ï¼ï¼
å¦æå¦ â è¿åæ¥éª¤3éæ°æ§è¡éªè¯æ¹æ³2ï¼æ£æ¥æ¯å¦éµå¾ªäºMcKinsey设计系ç»
â¡ æ¯å¦è¯»åäº mckinsey-design-system.mdï¼
â¡ æ¯å¦ä½¿ç¨äºå®ä¹çé
è²æ¹æ¡ï¼
â¡ åä½å¤§å°æ¯å¦ç¬¦åè§èï¼
â¡ é´è·æ¯å¦ç¬¦åæ åï¼
å¦æå¦ â è¿åæ¥éª¤3éæ°æ§è¡éªè¯æ¹æ³3ï¼æ£æ¥æ¯å¦ä½¿ç¨äºæ¨¡æ¿
â¡ æ¯å¦è¯»åäº presentation-template.htmlï¼
â¡ HTMLç»ææ¯å¦åºäºæ¨¡æ¿ï¼
⡠导èªåè½æ¯å¦å®æ´ï¼
â¡ æ¯å¦å
å«äºæ¨¡æ¿ä¸çææå¿
è¦ç»ä»¶ï¼
å¦æå¦ â è¿åæ¥éª¤3éæ°æ§è¡éªè¯æ¹æ³4ï¼æ£æ¥å¾è¡¨ä»£ç æ¥æº
â¡ æ¯ä¸ªå¾è¡¨çä»£ç æ¯å¦æ¥èªassets/ç¤ºä¾æä»¶ï¼
â¡ æ¯å¦å®æ´å¤å¶äºCSSãHTMLãJavaScriptï¼
â¡ æ¯å¦æ ¹æ®å®é
æ°æ®è¿è¡äºå®å¶ï¼
â¡ McKinseyé
è²æ¯å¦ä¿æä¸è´ï¼
å¦æå¦ â è¿åæ¥éª¤3éæ°æ§è¡éªè¯æ¹æ³5ï¼â ï¸ æ°å¢ - æ£æ¥æ¯å¦ä½¿ç¨äºJSONæ°æ®ç»æè§è
â¡ æ¯å¦è¯»åäº beauty-json/SKILL.mdï¼
â¡ JSONæ°æ®ç»ææ¯å¦ç¬¦åè§èï¼
â¡ æ¯å¦ä¸ºæ¯ç§å¹»ç¯çç±»åéæ©äºæ£ç¡®çJSONç»æï¼
â¡ JSONæ°æ®æ¯å¦å
嫿æå
容ï¼
å¦æå¦ â è¿åæ¥éª¤3éæ°æ§è¡èµæºä½¿ç¨æ£æ¥æ¸ å
æ¥éª¤2 - å¹»ç¯çè®¾è®¡é¶æ®µï¼
⡠已读åï¼references/chart-selection-guide.md
⡠已读åï¼assets/CHART_EXAMPLES_INDEX.md
⡠已读åï¼assets/INSIGHT_VISUALIZATION_GUIDE.md
â¡ å·²å¶ä½ï¼å¾è¡¨éæ©å³ç表ï¼å
容类å â å
³é®è¯ â æ¨èå¾è¡¨ â ç¤ºä¾æä»¶ï¼
⡠已记å½ï¼æ¯ä¸ªå¾è¡¨çéæ©çç±
â¡ å·²å¤å¶ï¼å¯¹åºç¤ºä¾æä»¶ç代ç
æ¥éª¤3 - JSONæ°æ®çæä¸HTML渲æé¶æ®µï¼
⡠已读åï¼references/best-practices.md
⡠已读åï¼references/mckinsey-design-system.md
⡠已读åï¼references/template-guide.md
⡠已读åï¼assets/presentation-template.html
⡠已读åï¼assets/TEMPLATE_USAGE_GUIDE.md
⡠已读åï¼beauty-json/SKILL.mdï¼â ï¸ æ°å¢ï¼
â¡ å·²å¤å¶ï¼ææéä¸å¾è¡¨ç示ä¾ä»£ç
â¡ å·²åºç¨ï¼McKinseyé
è²åæçè§è
â¡ å·²ä¿æï¼å
容宿´æ§ï¼é¶ç¯¡æ¹ãé¶éæ¼ï¼
⡠已设计ï¼JSONæ°æ®ç»æï¼ç¬¦åbeauty-json/SKILL.mdè§èï¼
â¡ å·²çæï¼JSONæ°æ®ï¼å
嫿æå¹»ç¯çå
容ï¼
â¡ å·²å®ç°ï¼JavaScript渲æé»è¾ï¼è½å¤æ£ç¡®è§£æå渲æJSONï¼
â åç°ä»»ä½èµæºæªè¯»åææªä½¿ç¨ â ç«å³è¿åå¯¹åºæ¥éª¤éæ°æ§è¡â ï¸ åéè§¦åæ¡ä»¶
以ä¸ä»»ä¸æ
åµåçï¼å¿
é¡»åéï¼
1. æ¥éª¤2æªè¯»chart-selection-guide.md
â è¿åæ¥éª¤2ï¼è¯»åèµæºåéæ°éæ©å¾è¡¨
2. æ¥éª¤2éæ©çå¾è¡¨ä¸chart-selection-guide.mdä¸ç¬¦
â è¿åæ¥éª¤2ï¼æ ¹æ®æåéæ°éæ©
3. æ¥éª¤2æªä»assets/ç¤ºä¾æä»¶å¤å¶ä»£ç
â è¿åæ¥éª¤2ï¼è¯»åç¤ºä¾æä»¶åå¤å¶ä»£ç
4. æ¥éª¤3æªè¯»best-practices.md
â è¿åæ¥éª¤3ï¼è¯»åèµæºåéæ°çæHTML
5. æ¥éª¤3çæçHTMLä¸ç¬¦åmckinsey-design-system.mdè§è
â è¿åæ¥éª¤3ï¼æ ¹æ®è§èéæ°çæ
6. æ¥éª¤3æªåºäºpresentation-template.html
â è¿åæ¥éª¤3ï¼ä½¿ç¨æ¨¡æ¿éæ°çæ
7. æ¥éª¤3æªè¯»beauty-json/SKILL.mdï¼â ï¸ æ°å¢ï¼
â è¿åæ¥éª¤3ï¼è¯»åèµæºåéæ°è®¾è®¡JSONæ°æ®ç»æ
8. æ¥éª¤3çæçJSONæ°æ®ç»æä¸ç¬¦åbeauty-json/SKILL.mdè§èï¼â ï¸ æ°å¢ï¼
â è¿åæ¥éª¤3ï¼æ ¹æ®è§èéæ°è®¾è®¡JSONæ°æ®ç»æ
9. æ¥éª¤3çæçJSONæ°æ®ä¸å®æ´ï¼â ï¸ æ°å¢ï¼
â è¿åæ¥éª¤3ï¼è¡¥å
JSONæ°æ®
10. æ¥éª¤3çJavaScriptæ æ³æ£ç¡®è§£æJSONï¼â ï¸ æ°å¢ï¼
â è¿åæ¥éª¤3ï¼ä¿®å¤JavaScriptè§£æé»è¾
11. æ¥éª¤3çJavaScriptæ æ³æ£ç¡®æ¸²æHTMLï¼â ï¸ æ°å¢ï¼
â è¿åæ¥éª¤3ï¼ä¿®å¤JavaScript渲æé»è¾è¾åºäº§ç©
- èµæºä½¿ç¨éªè¯æ¥å
- åé建议ï¼å¦æï¼
éªè¯æ å
- ææå¿ è¯»èµæºé½å·²è¯»å
- ææèµæºé½å·²æ£ç¡®ä½¿ç¨
- æ èµæºè¢«è·³è¿æçç¥
- 符å设计è§è
- JSONæ°æ®ç»æç¬¦åbeauty-json/SKILL.mdè§èï¼â ï¸ æ°å¢ï¼
æ¥éª¤ 4.2ï¼å 容宿´æ§æ£æ¥
ç®æ
ç¡®ä¿ææåæå 容é½å·²æ£ç¡®å å«å¨JSONæ°æ®åHTMLæä»¶ä¸ï¼æ éæ¼ãæ é误ã
â ï¸ ä¸¥æ ¼æ£éªæ¹æ³ - éç« å¯¹ç §åææ¡£
ç¬¬ä¸æ¥ï¼æååææ¡£çææç« èç»æ
使ç¨å·¥å
·æåææ¡£çæææ é¢
æ¨èä½¿ç¨ Read å·¥å
·å®æ´é
è¯»ææ¡£ï¼è®°å½æææ é¢å±çº§ç¬¬äºæ¥ï¼å¶ä½ç« èå¯¹ç §æ¸ å
å建ä¸ä¸ªå¯¹ç §è¡¨ï¼éé¡¹æ£æ¥ï¼
ç« è对ç
§æ¸
åï¼
åææ¡£ç« è JSONå¹»ç¯çé¡µé¢ HTML渲æé¡µé¢ ç¶æ
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
H1: [主æ é¢] 页é¢1: å°é¢é¡µ å°é¢é¡µ â
H2: [第ä¸ç« æ é¢] 页é¢3: 第ä¸ç« ç« èé¦é¡µ 第ä¸ç« ç« èé¦é¡µ â
H3: [åç« è1.1] 页é¢4: å
容页 å
容页 â
H3: [åç« è1.2] 页é¢5: å
容页 å
容页 â
H3: [åç« è1.3] 页é¢6: å
容页 å
容页 â
H2: [第äºç« æ é¢] 页é¢7: 第äºç« ç« èé¦é¡µ 第äºç« ç« èé¦é¡µ â
H3: [åç« è2.1] 页é¢8: å
容页 å
容页 â
H3: [åç« è2.2] 页é¢9: å
容页 å
容页 â
H3: [åç« è2.3] 页é¢10: å
容页 å
容页 â
...ç¬¬ä¸æ¥ï¼é项éªè¯å 容宿´æ§
éªè¯é¡¹ç®1ï¼ç« èæ é¢å®æ´æ§
â¡ ææH1æ 颿¯å¦å
å«å¨JSONæ°æ®ä¸ï¼
â¡ ææH2ç« èæ¯å¦é½æå¯¹åºçJSONå¹»ç¯ç页é¢ï¼
â¡ ææH3åç« èæ¯å¦é½æå¯¹åºçJSONå¹»ç¯ç页é¢ï¼
â¡ ç« èé¡ºåºæ¯å¦ä¸åæä¸è´ï¼
â¡ ç« èç¼å·æ¯å¦æ£ç¡®ï¼
â¡ JSONæ°æ®ä¸çå¹»ç¯çIDæ¯å¦è¿ç»ï¼éªè¯é¡¹ç®2ï¼è¦ç¹å 容宿´æ§
â¡ ææè¦ç¹æ¯å¦é½å·²å
å«å¨JSONæ°æ®ä¸ï¼
â¡ è¦ç¹æåæ¯å¦å®æ´ï¼æªå åï¼ï¼
â¡ è¦ç¹é¡ºåºæ¯å¦ä¸åæä¸è´ï¼
â¡ åè¦ç¹æ¯å¦é½å·²å
å«ï¼
â¡ æ¯å¦æéå¤å
容ï¼
â¡ JSONæ°æ®ä¸çæ°ç»æ¯å¦å
嫿æè¦ç¹ï¼éªè¯é¡¹ç®3ï¼æ°æ®å®æ´æ§
â¡ æææ°æ®ç¹æ¯å¦é½å·²å
å«å¨JSONæ°æ®ä¸ï¼
â¡ æ°å¼æ¯å¦åç¡®ï¼æ é误ï¼ï¼
â¡ å使¯å¦æ£ç¡®ï¼
â¡ ç¾åæ¯æ¯å¦æ£ç¡®ï¼
â¡ è´§å¸ç¬¦å·æ¯å¦æ£ç¡®ï¼
â¡ JSONæ°æ®ä¸çæ°å¼æ¯å¦ä¸åæä¸è´ï¼éªè¯é¡¹ç®4ï¼è¡¨æ ¼å®æ´æ§
â¡ ææè¡¨æ ¼æ¯å¦é½å·²å
å«å¨JSONæ°æ®ä¸ï¼
â¡ è¡¨æ ¼è¡æ°æ¯å¦æ£ç¡®ï¼
â¡ è¡¨æ ¼åæ°æ¯å¦æ£ç¡®ï¼
â¡ è¡¨æ ¼æ°æ®æ¯å¦åç¡®ï¼
â¡ è¡¨æ ¼æ 颿¯å¦æ£ç¡®ï¼
â¡ JSONæ°æ®ä¸çè¡¨æ ¼ç»ææ¯å¦å®æ´ï¼éªè¯é¡¹ç®5ï¼ç»è®ºå®æ´æ§
â¡ ææç»è®ºæ¯å¦é½å·²å
å«å¨JSONæ°æ®ä¸ï¼
â¡ ç»è®ºæåæ¯å¦å®æ´ï¼
â¡ ç»è®ºä½ç½®æ¯å¦åçï¼
â¡ æ¯å¦æéæ¼çç»è®ºï¼
â¡ JSONæ°æ®ä¸çç»è®ºå段æ¯å¦å®æ´ï¼éªè¯é¡¹ç®6ï¼å¾è¡¨å®æ´æ§
â¡ ææéè¦çå¾è¡¨æ¯å¦é½å·²å
å«å¨JSONæ°æ®ä¸ï¼
â¡ å¾è¡¨ç±»åæ¯å¦åéï¼
â¡ å¾è¡¨æ°æ®æ¯å¦åç¡®ï¼
â¡ å¾è¡¨æ 颿¯å¦æ£ç¡®ï¼
â¡ å¾è¡¨æ ç¾æ¯å¦æ¸
æ°ï¼
â¡ JSONæ°æ®ä¸çå¾è¡¨é
ç½®æ¯å¦å®æ´ï¼â ï¸ å¸¸è§é®é¢æ£æ¥
é®é¢1ï¼å 容被å缩æçç¥
é误示ä¾ï¼
åæï¼å¹³å°Aä¼°å¼14-21亿ç¾å
ï¼å¹³å°Bä¼°å¼150-200ä¸ç¾å
ï¼ä¼°å¼å·®è·10-20å
JSONæ°æ®ï¼"å¹³å°Aä¼°å¼14-21亿ç¾å
ï¼å¹³å°Bä¼°å¼150-200ä¸ç¾å
"ï¼çç¥äºä¼°å¼å·®è·ï¼
â
æ£ç¡®åæ³ï¼
JSONæ°æ®ï¼"å¹³å°Aä¼°å¼14-21亿ç¾å
ï¼å¹³å°Bä¼°å¼150-200ä¸ç¾å
ï¼ä¼°å¼å·®è·10-20å"é®é¢2ï¼è¦ç¹è¢«åå¹¶
é误示ä¾ï¼
åæï¼
1. å䏿¨¡å¼åæ
2. ç¨æ·å®ä½åæ
3. å®ä»·çç¥åæ
JSONæ°æ®ï¼["å䏿¨¡å¼ãç¨æ·å®ä½ãå®ä»·çç¥åæ"]ï¼3个è¦ç¹å并为1个ï¼
â
æ£ç¡®åæ³ï¼
JSONæ°æ®ï¼["å䏿¨¡å¼åæ", "ç¨æ·å®ä½åæ", "å®ä»·çç¥åæ"]é®é¢3ï¼æ°æ®è¢«ç®å
é误示ä¾ï¼
åæï¼å¸åºä»½é¢ä»2022å¹´ç35%å¢é¿å°2024å¹´ç65%ï¼å¢é¿ç30个ç¾åç¹
JSONæ°æ®ï¼"å¸åºä»½é¢å¢é¿å°65%"ï¼çç¥äºèµ·å§æ°æ®åå¢é¿çï¼
â
æ£ç¡®åæ³ï¼
JSONæ°æ®ï¼"å¸åºä»½é¢ä»2022å¹´ç35%å¢é¿å°2024å¹´ç65%ï¼å¢é¿ç30个ç¾åç¹"é®é¢4ï¼JSONæ°æ®ç»æä¸å®æ´
é误示ä¾ï¼
åæå
å«ï¼ä¸»æ é¢ã坿 é¢ãä½è
ãæ¥æ
JSONæ°æ®ï¼åªæä¸»æ é¢å坿 é¢ï¼ç¼ºå°ä½è
忥æï¼
â
æ£ç¡®åæ³ï¼
JSONæ°æ®ï¼å
嫿æå段ï¼mainTitle, subtitle, meta.date, meta.authorï¼è¾åºäº§ç©
- ç« èå¯¹ç §æ¸ å
- å 容宿´æ§éªè¯æ¥å
- é®é¢æ¸ åï¼å¦æï¼
éªè¯æ å
- ææç« èé½å·²å å«å¨JSONæ°æ®ä¸
- ææè¦ç¹é½å·²å å«å¨JSONæ°æ®ä¸
- æææ°æ®é½å·²å å«å¨JSONæ°æ®ä¸
- ææè¡¨æ ¼é½å·²å å«å¨JSONæ°æ®ä¸
- ææç»è®ºé½å·²å å«å¨JSONæ°æ®ä¸
- æ å 容被å缩æçç¥
- æ å å®¹è¢«ç¯¡æ¹æç®å
- JSONæ°æ®ç»æå®æ´
æ¥éª¤ 4.3ï¼JSONæ°æ®æ ¼å¼æ£æ¥
ç®æ
ç¡®ä¿JSONæ°æ®æ ¼å¼æ£ç¡®ï¼æ°æ®ç»æå®æ´ï¼ç¬¦åè§èã
éªè¯é¡¹ç®
1. JSONæ ¼å¼éªè¯
â¡ JSONæ ¼å¼æ£ç¡®ï¼å¯éè¿JSON.parseéªè¯ï¼
â¡ æ è¯æ³é误
â¡ æ å¤ä½éå·
â¡ æ 缺å°å¼å·
â¡ æ ç¼ºå°æ¬å·
â¡ æ ç¹æ®å符é误éªè¯æ¹æ³ï¼
// 使ç¨JSON.parseéªè¯JSONæ ¼å¼
try {
const parsedData = JSON.parse(jsonString);
console.log('JSONæ ¼å¼æ£ç¡®');
} catch (error) {
console.error('JSONæ ¼å¼é误:', error.message);
}2. JSONæ°æ®ç»æéªè¯
â¡ æ ¹ç»ææ£ç¡®ï¼å
å«presentationåæ®µï¼
â¡ presentationåæ®µå
å«metaåslidesåæ®µ
â¡ metaåæ®µå
å«titleãsubtitleãauthorãdateåæ®µ
â¡ slidesåæ®µæ¯æ°ç»ç±»å
â¡ æ¯ä¸ªå¹»ç¯çå
å«idãtypeãtemplateãtitleãcontentåæ®µ
â¡ ææå¿
éåæ®µé½å·²å
å«
â¡ æ å¤ä½åæ®µæ ¹ç»æéªè¯ï¼
{
"presentation": {
"meta": {
"title": "æ¼ç¤ºæç¨¿æ é¢",
"subtitle": "坿 é¢",
"author": "ä½è
",
"date": "æ¥æ"
},
"slides": [...]
}
}å¹»ç¯çç»æéªè¯ï¼
{
"id": 1,
"type": "cover|toc|section|content|end",
"template": "01-cover-page|02-two-column|...",
"title": "å¹»ç¯çæ é¢",
"content": {...}
}3. JSONæ°æ®ç±»åéªè¯
â¡ idåæ®µæ¯æ°åç±»å
â¡ typeåæ®µæ¯å符串类å
â¡ templateåæ®µæ¯å符串类å
â¡ titleåæ®µæ¯å符串类å
â¡ contentåæ®µæ¯å¯¹è±¡ç±»å
â¡ æ°ç»åæ®µæ¯æ°ç»ç±»å
â¡ æ°å¼åæ®µæ¯æ°åç±»å
â¡ åç¬¦ä¸²åæ®µæ¯å符串类å4. JSONæ°æ®å®æ´æ§éªè¯
â¡ JSONå
嫿æå¹»ç¯çæ°æ®
â¡ æ¯ä¸ªå¹»ç¯çå
å«å®æ´å
容
â¡ æ°æ®ç»æç¬¦åbeauty-json/SKILL.mdè§è
â¡ æ æ°æ®éæ¼
â¡ æ æ°æ®é误
â¡ ææå¿
éåæ®µé½å·²å
å«5. å¹»ç¯çç±»åéªè¯
â¡ ææå¹»ç¯çtypeåæ®µå¼ææï¼cover|toc|section|content|endï¼
â¡ typeåæ®µä¸contentç»æå¹é
â¡ typeåæ®µä¸templateåæ®µå¹é
â¡ å°é¢é¡µtype为cover
â¡ ç®å½é¡µtype为toc
â¡ ç« èé¦é¡µtype为section
â¡ å
容页type为content
â¡ ç»æé¡µtype为end6. 模æ¿ç±»åéªè¯
â¡ ææå¹»ç¯çtemplateåæ®µå¼ææ
â¡ templateåæ®µä¸typeåæ®µå¹é
â¡ templateåæ®µå¼å¨beauty-html/assets/INDEX.mdä¸åå¨
â¡ templateåæ®µå¼ä¸contentç»æå¹é
7. å¹»ç¯çIDéªè¯
â¡ å¹»ç¯çIDä»1å¼å§
â¡ å¹»ç¯çIDè¿ç»ï¼1, 2, 3, ...ï¼
â¡ æ éå¤ID
â¡ æ 缺失ID
â¡ å¹»ç¯çIDæ°éä¸slidesæ°ç»é¿åº¦ä¸è´8. å¾è¡¨æ°æ®éªè¯
â¡ å
å«å¾è¡¨çå¹»ç¯çcontentåæ®µå
å«chart对象
â¡ chart对象å
å«typeãtitleãdataãoptionsåæ®µ
â¡ chart.dataå
å«labelsådatasetsåæ®µ
â¡ chart.datasetsæ¯æ°ç»ç±»å
â¡ chart.optionså
å«responsiveåmaintainAspectRatioåæ®µ
â¡ å¾è¡¨æ°æ®ç±»åæ£ç¡®ï¼æ°å¼ãå符串çï¼
â¡ å¾è¡¨æ°æ®å®æ´ï¼æ éæ¼ï¼å¾è¡¨æ°æ®ç»æéªè¯ï¼
{
"chart": {
"type": "bar|line|pie|...",
"title": "å¾è¡¨æ é¢",
"data": {
"labels": [...],
"datasets": [...]
},
"options": {
"responsive": true,
"maintainAspectRatio": false
}
}
}â ï¸ å¸¸è§JSONéè¯¯æ£æ¥
é误1ï¼JSONè¯æ³é误
é误示ä¾ï¼
{
"presentation": {
"slides": [
{
"id": 1,
"type": "cover",
} // å¤ä½éå·
]
}
}
â
æ£ç¡®åæ³ï¼
{
"presentation": {
"slides": [
{
"id": 1,
"type": "cover"
}
]
}
}é误2ï¼ç¼ºå°å¼å·
é误示ä¾ï¼
{
"presentation": {
"title": æ¼ç¤ºæç¨¿æ é¢ // 缺å°å¼å·
}
}
â
æ£ç¡®åæ³ï¼
{
"presentation": {
"title": "æ¼ç¤ºæç¨¿æ é¢"
}
}é误3ï¼ç¼ºå°æ¬å·
é误示ä¾ï¼
{
"presentation": {
"slides": [
{
"id": 1
// 缺å°é忬å·
]
}
}
â
æ£ç¡®åæ³ï¼
{
"presentation": {
"slides": [
{
"id": 1
}
]
}
}é误4ï¼æ°æ®ç»æä¸ç¬¦åè§è
é误示ä¾ï¼
{
"presentation": {
"slides": [
{
"id": 1,
"type": "cover",
"content": {
"mainTitle": "æ é¢"
// 缺å°subtitleåmetaåæ®µ
}
}
]
}
}
â
æ£ç¡®åæ³ï¼
{
"presentation": {
"slides": [
{
"id": 1,
"type": "cover",
"content": {
"mainTitle": "æ é¢",
"subtitle": "坿 é¢",
"meta": {
"date": "æ¥æ",
"author": "ä½è
"
}
}
}
]
}
}è¾åºäº§ç©
- JSONæ ¼å¼éªè¯æ¥å
- JSONæ°æ®ç»æéªè¯æ¥å
- JSONæ°æ®ç±»åéªè¯æ¥å
- JSONæ°æ®å®æ´æ§éªè¯æ¥å
- éè¯¯æ¸ åï¼å¦æï¼
éªè¯æ å
- JSONæ ¼å¼æ£ç¡®ï¼å¯éè¿JSON.parseéªè¯ï¼
- JSONå 嫿æå¹»ç¯çæ°æ®
- æ¯ä¸ªå¹»ç¯çå å«å®æ´å 容
- æ°æ®ç»æç¬¦åbeauty-json/SKILL.mdè§è
- æ æ°æ®éæ¼
- æ æ°æ®é误
- æ JSONè¯æ³é误
- å¹»ç¯çIDè¿ç»ä¸æ£ç¡®
- å¹»ç¯çç±»å忍¡æ¿å¹é
- å¾è¡¨æ°æ®å®æ´ä¸æ£ç¡®
æ¥éª¤ 4.4ï¼HTML渲æåè½æ£æ¥
ç®æ
ç¡®ä¿HTMLè½å¤æ£ç¡®å è½½JSONæ°æ®ï¼JavaScriptè½å¤æ£ç¡®è§£æå渲æJSONï¼ææå 容æ£ç¡®æ¾ç¤ºã
éªè¯é¡¹ç®
1. JSONæ°æ®å è½½éªè¯
â¡ HTMLæä»¶å
å«JSONæ°æ®ï¼å¨<script>æ ç¾ä¸ï¼
â¡ JSONæ°æ®åéåæ£ç¡®ï¼presentationDataï¼
â¡ JSONæ°æ®æ ¼å¼æ£ç¡®
â¡ JSONæ°æ®ä½ç½®æ£ç¡®ï¼å¨æ¸²æå½æ°ä¹åï¼éªè¯æ¹æ³ï¼
// æ£æ¥JSONæ°æ®æ¯å¦å è½½
console.log('JSONæ°æ®:', presentationData);
console.log('å¹»ç¯çæ°é:', presentationData.presentation.slides.length);2. JSONæ°æ®è§£æéªè¯
â¡ JavaScriptè½å¤è®¿é®JSONæ°æ®
â¡ JavaScriptè½å¤è¯»åpresentationåæ®µ
â¡ JavaScriptè½å¤è¯»åmetaåæ®µ
â¡ JavaScriptè½å¤è¯»åslidesæ°ç»
â¡ JavaScriptè½å¤éåslidesæ°ç»
â¡ JavaScriptè½å¤è¯»åæ¯ä¸ªå¹»ç¯ççåæ®µéªè¯æ¹æ³ï¼
// æ£æ¥JSONæ°æ®è§£æ
const meta = presentationData.presentation.meta;
const slides = presentationData.presentation.slides;
console.log('æ é¢:', meta.title);
console.log('å¹»ç¯çæ°é:', slides.length);
slides.forEach((slide, index) => {
console.log(`å¹»ç¯ç${index + 1}:`, slide.title, slide.type);
});3. HTML渲æéªè¯
â¡ JavaScriptè½å¤æ£ç¡®æ¸²æHTML
⡠渲æå½æ°è½å¤çææ£ç¡®çHTMLå符串
â¡ HTMLå符串å
嫿£ç¡®çæ ç¾åç±»å
â¡ HTMLå符串å
嫿£ç¡®çå
容
â¡ HTMLå符串è½å¤æå
¥å°DOMä¸
â¡ ææå¹»ç¯çé½å·²æ¸²æéªè¯æ¹æ³ï¼
// æ£æ¥HTML渲æ
const container = document.getElementById('presentation-container');
console.log('容å¨å
容:', container.innerHTML);
console.log('渲æçå¹»ç¯çæ°é:', container.children.length);4. å 容æ¾ç¤ºéªè¯
â¡ æææ 颿£ç¡®æ¾ç¤º
â¡ ææææ¬æ£ç¡®æ¾ç¤º
â¡ ææè¦ç¹æ£ç¡®æ¾ç¤º
â¡ æææ°æ®æ£ç¡®æ¾ç¤º
â¡ ææå¾è¡¨æ£ç¡®æ¾ç¤º
â¡ ææå¾æ æ£ç¡®æ¾ç¤º
â¡ æ å
容缺失
â¡ æ å
容é误5. å¾è¡¨æ¸²æéªè¯
â¡ ææå¾è¡¨é½å·²æ¸²æ
â¡ å¾è¡¨Canvaså
ç´ å·²å建
â¡ å¾è¡¨Canvas IDæ£ç¡®
â¡ å¾è¡¨å®ä¾å·²å建
â¡ å¾è¡¨æ°æ®æ£ç¡®æ¾ç¤º
â¡ å¾è¡¨æ 颿£ç¡®æ¾ç¤º
â¡ å¾è¡¨æ ç¾æ£ç¡®æ¾ç¤º
â¡ å¾è¡¨å¾ä¾æ£ç¡®æ¾ç¤º
â¡ å¾è¡¨äº¤äºåè½æ£å¸¸ï¼tooltipçï¼éªè¯æ¹æ³ï¼
// æ£æ¥å¾è¡¨æ¸²æ
const charts = Chart.instances;
console.log('å¾è¡¨æ°é:', charts.length);
charts.forEach((chart, index) => {
console.log(`å¾è¡¨${index + 1}:`, chart.config.type, chart.data);
});6. ååºå¼è®¾è®¡éªè¯
â¡ æ¡é¢ç«¯æ¾ç¤ºæ£å¸¸ï¼â¥1200pxï¼
â¡ å¹³æ¿ç«¯æ¾ç¤ºæ£å¸¸ï¼768px-1199pxï¼
â¡ ææºç«¯æ¾ç¤ºæ£å¸¸ï¼<768pxï¼
â¡ å¾è¡¨å¨ç§»å¨ç«¯æ¾ç¤ºæ£å¸¸
â¡ ææ¬å¨ç§»å¨ç«¯å¯è¯»
â¡ å¸å±å¨ç§»å¨ç«¯æ£ç¡®7. DOMç»æéªè¯
â¡ HTMLç»ææ£ç¡®
â¡ æææ ç¾æ£ç¡®éå
â¡ ææç±»åæ£ç¡®
â¡ ææIDæ£ç¡®
â¡ æ å¤ä½çæ ç¾
â¡ æ éå¤çID
â¡ DOMæ ç»ææ¸
æ°â ï¸ å¸¸è§æ¸²æéè¯¯æ£æ¥
é误1ï¼JSONæ°æ®æªå è½½
é误ç°è±¡ï¼
æ§å¶å°é误ï¼Uncaught ReferenceError: presentationData is not defined
åå ï¼
JSONæ°æ®åéåéè¯¯ææªå®ä¹
â
æ£ç¡®åæ³ï¼
ç¡®ä¿JSONæ°æ®åéå为presentationDataï¼ä¸å¨æ¸²æå½æ°ä¹åå®ä¹é误2ï¼JSONæ°æ®è§£æå¤±è´¥
é误ç°è±¡ï¼
æ§å¶å°é误ï¼Cannot read property 'presentation' of undefined
åå ï¼
JSONæ°æ®ç»æéè¯¯ææªæ£ç¡®å è½½
â
æ£ç¡®åæ³ï¼
ç¡®ä¿JSONæ°æ®ç»ææ£ç¡®ï¼å
å«presentationåæ®µé误3ï¼HTML渲æå¤±è´¥
é误ç°è±¡ï¼
å¹»ç¯çæªæ¾ç¤ºï¼å®¹å¨ä¸ºç©º
åå ï¼
渲æå½æ°éè¯¯ææªæ£ç¡®è°ç¨
â
æ£ç¡®åæ³ï¼
ç¡®ä¿æ¸²æå½æ°æ£ç¡®ï¼ä¸å¨DOMContentLoadedäºä»¶ä¸è°ç¨é误4ï¼å¾è¡¨æ¸²æå¤±è´¥
é误ç°è±¡ï¼
å¾è¡¨æªæ¾ç¤ºï¼Canvas为空ç½
åå ï¼
å¾è¡¨é
ç½®éè¯¯ææ°æ®æ ¼å¼é误
â
æ£ç¡®åæ³ï¼
ç¡®ä¿å¾è¡¨é
ç½®æ£ç¡®ï¼æ°æ®æ ¼å¼ç¬¦åChart.jsè¦æ±é误5ï¼å¾è¡¨å®½åº¦ä¸º0
é误ç°è±¡ï¼
å¾è¡¨å®½åº¦ä¸º0ï¼ä¸æ¾ç¤º
åå ï¼
æªè®¾ç½®responsive: trueæmaintainAspectRatio: false
â
æ£ç¡®åæ³ï¼
ç¡®ä¿å¾è¡¨optionså
å«ï¼
{
responsive: true,
maintainAspectRatio: false
}è¾åºäº§ç©
- JSONæ°æ®å è½½éªè¯æ¥å
- JSONæ°æ®è§£æéªè¯æ¥å
- HTML渲æéªè¯æ¥å
- å 容æ¾ç¤ºéªè¯æ¥å
- å¾è¡¨æ¸²æéªè¯æ¥å
- ååºå¼è®¾è®¡éªè¯æ¥å
- éè¯¯æ¸ åï¼å¦æï¼
éªè¯æ å
- HTMLè½å¤æ£ç¡®å è½½JSONæ°æ®
- JavaScriptè½å¤æ£ç¡®è§£æJSON
- JavaScriptè½å¤æ£ç¡®æ¸²æææå¹»ç¯ç
- ææå 容æ£ç¡®æ¾ç¤º
- ææå¾è¡¨æ£ç¡®æ¾ç¤º
- 导èªåè½æ£å¸¸
- ååºå¼è®¾è®¡æ£å¸¸
- æ æ¸²æé误
æ¥éª¤ 4.5ï¼ä»£ç è´¨éæ£æ¥
ç®æ
ç¡®ä¿çæçHTMLæä»¶ç¬¦åæä½³å®è·µï¼ä»£ç è´¨éé«ï¼å¯è®¿é®å¯è¿è¡ã
éªè¯é¡¹ç®
1. HTMLç»ææ£æ¥
â¡ HTMLç»æå®æ´ä¸æ£ç¡®
â¡ DOCTYPEå£°ææ£ç¡®
â¡ htmlãheadãbodyæ ç¾å®æ´
â¡ æææ ç¾æ£ç¡®éå
â¡ æ è¯æ³é误
â¡ è¯ä¹åæ ç¾ä½¿ç¨æ£ç¡®
â¡ æ å¤ä½çæ ç¾
â¡ æ éå¤çID2. CSSæ ·å¼æ£æ¥
â¡ CSSæ ·å¼å®æ´ä¸ç¬¦åè§è
â¡ CSSåéå®ä¹å®æ´
â¡ æææ ·å¼ç±»é½å·²å®ä¹
â¡ ååºå¼æ ·å¼å®æ´
â¡ æ è¯æ³é误
â¡ æ å使 ·å¼
â¡ æ ·å¼å½åè§è
â¡ æ ·å¼ä¼å
级æ£ç¡®3. JavaScriptä»£ç æ£æ¥
â¡ JavaScript代ç 宿´ä¸æ é误
â¡ ææå½æ°é½å·²å®ä¹
â¡ ææåéé½å·²å£°æ
â¡ æ è¯æ³é误
â¡ æ è¿è¡æ¶é误
⡠代ç é»è¾æ£ç¡®
⡠代ç å¯è¯»æ§å¥½
⡠代ç å¯ç»´æ¤æ§å¥½4. å¯è®¿é®æ§æ£æ¥
â¡ è¯ä¹åHTMLæ ç¾ä½¿ç¨æ£ç¡®
â¡ å¾åalt屿§ï¼å¦æï¼
â¡ é¢è²å¯¹æ¯åº¦ç¬¦åæ åï¼â¥4.5:1ï¼
â¡ åä½å¤§å°å¯è¯»
â¡ é®çå¯¼èªæ¯æï¼å¦æï¼
â¡ å±å¹é
读å¨å好5. æ§è½ä¼åæ£æ¥
â¡ æ åä½ä»£ç
â¡ æ éå¤ä»£ç
⡠代ç å缩å好
â¡ èµæºå è½½ä¼å
â¡ æ¸²ææ§è½è¯å¥½
â¡ æ å
åæ³æ¼è¾åºäº§ç©
- HTMLç»æéªè¯æ¥å
- CSSæ ·å¼éªè¯æ¥å
- JavaScript代ç éªè¯æ¥å
- å¯è®¿é®æ§éªè¯æ¥å
- æ§è½ä¼åéªè¯æ¥å
- éè¯¯æ¸ åï¼å¦æï¼
éªè¯æ å
- HTMLç»æå®æ´ä¸æ£ç¡®
- CSSæ ·å¼å®æ´ä¸ç¬¦åè§è
- JavaScript代ç 宿´ä¸æ é误
- å¯è®¿é®æ§ç¬¦åæ å
- æ§è½ä¼ååç
- æ è¯æ³é误
- æ åä½ä»£ç
æ¥éª¤ 4.6ï¼åè½éªè¯
ç®æ
ç¡®ä¿çæçHTMLæä»¶ææåè½é½æ£å¸¸å·¥ä½ã
éªè¯é¡¹ç®
1. åºæ¬åè½éªè¯
â¡ åºæ¬åè½æ£å¸¸
â¡ HTMLæä»¶å¯ä»¥æ£å¸¸è¿è¡
â¡ æ JavaScripté误
â¡ æ CSSé误
â¡ æ HTMLé误
⡠页é¢å è½½æ£å¸¸2. JSONæ°æ®åè½éªè¯
â¡ JSONæ°æ®å è½½æ£å¸¸
â¡ JSONæ°æ®è§£ææ£å¸¸
â¡ JSONæ°æ®è¯»åæ£å¸¸
â¡ JSONæ°æ®é忣叏
â¡ JSONæ°æ®è®¿é®æ£å¸¸3. HTML渲æåè½éªè¯
â¡ HTMLæ¸²ææ£å¸¸
â¡ ææå¹»ç¯çé½å·²æ¸²æ
â¡ ææå
容æ£ç¡®æ¾ç¤º
â¡ æææ ·å¼æ£ç¡®åºç¨
â¡ ææç±»åæ£ç¡®åºç¨4. å¾è¡¨åè½éªè¯
â¡ å¾è¡¨æ¾ç¤ºæ£å¸¸
â¡ ææå¾è¡¨é½å·²æ¸²æ
â¡ å¾è¡¨æ°æ®æ£ç¡®æ¾ç¤º
â¡ å¾è¡¨æ 颿£ç¡®æ¾ç¤º
â¡ å¾è¡¨æ ç¾æ£ç¡®æ¾ç¤º
â¡ å¾è¡¨å¾ä¾æ£ç¡®æ¾ç¤º
â¡ å¾è¡¨äº¤äºåè½æ£å¸¸ï¼tooltipçï¼
â¡ å¾è¡¨å¨ç»æ£å¸¸5. 导èªåè½éªè¯
⡠导èªåè½æ£å¸¸
â¡ é¡µé¢æ»å¨æ£å¸¸
⡠页é¢è·³è½¬æ£å¸¸ï¼å¦æï¼
â¡ è¿åé¡¶é¨åè½æ£å¸¸ï¼å¦æï¼6. ååºå¼è®¾è®¡éªè¯
â¡ ååºå¼è®¾è®¡æ£å¸¸
â¡ æ¡é¢ç«¯æ¾ç¤ºæ£å¸¸ï¼â¥1200pxï¼
â¡ å¹³æ¿ç«¯æ¾ç¤ºæ£å¸¸ï¼768px-1199pxï¼
â¡ ææºç«¯æ¾ç¤ºæ£å¸¸ï¼<768pxï¼
â¡ å¾è¡¨å¨ç§»å¨ç«¯æ¾ç¤ºæ£å¸¸
â¡ ææ¬å¨ç§»å¨ç«¯å¯è¯»
â¡ å¸å±å¨ç§»å¨ç«¯æ£ç¡®7. æµè§å¨å ¼å®¹æ§éªè¯
â¡ æµè§å¨å
¼å®¹æ§è¯å¥½
â¡ Chromeæµè§å¨æ£å¸¸
â¡ Firefoxæµè§å¨æ£å¸¸
â¡ Safariæµè§å¨æ£å¸¸
â¡ Edgeæµè§å¨æ£å¸¸è¾åºäº§ç©
- åºæ¬åè½éªè¯æ¥å
- JSONæ°æ®åè½éªè¯æ¥å
- HTML渲æåè½éªè¯æ¥å
- å¾è¡¨åè½éªè¯æ¥å
- 导èªåè½éªè¯æ¥å
- ååºå¼è®¾è®¡éªè¯æ¥å
- æµè§å¨å ¼å®¹æ§éªè¯æ¥å
- éè¯¯æ¸ åï¼å¦æï¼
éªè¯æ å
- åºæ¬åè½æ£å¸¸
- JSONæ°æ®å è½½æ£å¸¸
- JSONæ°æ®è§£ææ£å¸¸
- HTMLæ¸²ææ£å¸¸
- ææåè½é½æ£å¸¸å·¥ä½
- å¾è¡¨æ¾ç¤ºæ£å¸¸
- 导èªåè½æ£å¸¸
- ååºå¼è®¾è®¡æ£å¸¸
- æµè§å¨å ¼å®¹æ§è¯å¥½
- æ åè½æ§é®é¢
æ¥éª¤ 4.7ï¼çææç»æ¥å
ç®æ
æ±æ»ææéªè¯ç»æï¼çææç»éªæ¶æ¥åã
æ¥åç»æ
# Beauty-Normal æ¥éª¤4ï¼ä»£ç å
å®¹å®¡æ ¸æ£éª - æç»æ¥å
## ð æ§è¡æè¦
- æ§è¡æ¶é´ï¼[æ¥ææ¶é´]
- æ»é¡µæ°ï¼[N页]
- æ»ä»£ç è¡æ°ï¼[约1300è¡]
- æä»¶å¤§å°ï¼[约70KB]
## â
éªè¯ç»ææ»è§
### èµæºä½¿ç¨éªè¯
- ç¶æï¼[éè¿/ä¸éè¿]
- é®é¢æ°ï¼[N个]
- 严éé®é¢ï¼[N个]
### å
容宿´æ§æ£æ¥
- ç¶æï¼[éè¿/ä¸éè¿]
- é®é¢æ°ï¼[N个]
- 严éé®é¢ï¼[N个]
### JSONæ°æ®æ ¼å¼æ£æ¥
- ç¶æï¼[éè¿/ä¸éè¿]
- é®é¢æ°ï¼[N个]
- 严éé®é¢ï¼[N个]
### HTML渲æåè½æ£æ¥
- ç¶æï¼[éè¿/ä¸éè¿]
- é®é¢æ°ï¼[N个]
- 严éé®é¢ï¼[N个]
### 代ç è´¨éæ£æ¥
- ç¶æï¼[éè¿/ä¸éè¿]
- é®é¢æ°ï¼[N个]
- 严éé®é¢ï¼[N个]
### åè½éªè¯
- ç¶æï¼[éè¿/ä¸éè¿]
- é®é¢æ°ï¼[N个]
- 严éé®é¢ï¼[N个]
## ð 详ç»éªè¯æ¥å
### 1. èµæºä½¿ç¨éªè¯æ¥å
[详ç»å
容]
### 2. å
容宿´æ§éªè¯æ¥å
[详ç»å
容]
### 3. JSONæ°æ®æ ¼å¼éªè¯æ¥å
[详ç»å
容]
### 4. HTML渲æåè½éªè¯æ¥å
[详ç»å
容]
### 5. 代ç è´¨ééªè¯æ¥å
[详ç»å
容]
### 6. åè½éªè¯æ¥å
[详ç»å
容]
## ð¨ 设计è§èéªè¯ï¼ä¸ç¥¨å¦å³å¶ï¼
### é¢è²è§èéªè¯
- [ ] 使ç¨McKinseyæ åè²æ¿ï¼#FFFFFF, #000000, #F85d42, #74788d, #556EE6, #34c38f, #50a5f1, #f1b44cï¼
- [ ] æªä½¿ç¨ç´«è²æ¸åèæ¯
- [ ] æªä½¿ç¨AIçæçè²æ¿
- [ ] æªä½¿ç¨éMcKinseyé¢è²ç»å
- [ ] 主è²è°ä¸ºç½è²èæ¯+é»è²æ é¢
- [ ] 强è°è²ä½¿ç¨æ£ç¡®ï¼#F85d42ç¨äºå
³é®é«äº®ï¼
- [ ] å¾è¡¨é¢è²ä½¿ç¨æ åè²æ¿
- [ ] 对æ¯åº¦ç¬¦åå¯è¯»æ§æ åï¼â¥4.5:1ï¼
### åä½è§èéªè¯
- [ ] 使ç¨ç³»ç»åä½ï¼-apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC"çï¼
- [ ] æªä½¿ç¨InterãRobotoãArialçéç¨åä½
- [ ] æ é¢åä½å¤§å°ç¬¦åè§èï¼48-64pxï¼
- [ ] 坿 é¢åä½å¤§å°ç¬¦åè§èï¼28-36pxï¼
- [ ] æ£æåä½å¤§å°ç¬¦åè§èï¼16-20pxï¼
- [ ] å¾è¡¨æ ç¾åä½å¤§å°ç¬¦åè§èï¼12-14pxï¼
- [ ] åä½ç²ç»ä½¿ç¨æ£ç¡®ï¼æ é¢boldï¼æ£æregularï¼
- [ ] è¡é«ç¬¦åè§èï¼1.6-1.8ï¼
### å¸å±è§èéªè¯
- [ ] æªä½¿ç¨åè§å¡çï¼border-radius: 8pxçï¼
- [ ] æªä½¿ç¨éç¨æ¨¡æ¿å¸å±
- [ ] è¾¹è·ç¬¦åè§èï¼40-60pxï¼
- [ ] å
ç´ é´è·ç¬¦åè§èï¼20-30pxï¼
- [ ] 两åå¸å±é´è·ç¬¦åè§èï¼30-40pxï¼
- [ ] å¾è¡¨å®¹å¨æå°é«åº¦ç¬¦åè§èï¼400pxï¼
- [ ] ææå
ç´ å¯¹é½å°ç½æ ¼
- [ ] è§è§å¹³è¡¡è¯å¥½
### è®¾è®¡é£æ ¼éªè¯
- [ ] æ´ä½é£æ ¼ç¬¦åMcKinseyæ å
- [ ] æ è£
饰æ§å¾æ æå¾å½¢
- [ ] æ ä¸å¿
è¦çå¨ç»ææ
- [ ] é´å½±ä½¿ç¨æå°åï¼0-2pxï¼
- [ ] è¾¹æ¡ä½¿ç¨æå°åï¼ä»
å¨éè¦æ¶ä½¿ç¨ï¼
- [ ] ç½ç©ºé´å
è¶³ï¼ä¸æ¥æ¤ï¼
- [ ] ä¸ä¸ãç®æ´ãæ æä¹±
## ð¯ æç»éªæ¶ç»è®º
### æ»ä½è¯å
- èµæºä½¿ç¨éªè¯ï¼[A+/A/B/C/D]
- å
容宿´æ§éªè¯ï¼[A+/A/B/C/D]
- JSONæ°æ®æ ¼å¼éªè¯ï¼[A+/A/B/C/D]
- HTML渲æåè½éªè¯ï¼[A+/A/B/C/D]
- 代ç è´¨ééªè¯ï¼[A+/A/B/C/D]
- åè½éªè¯ï¼[A+/A/B/C/D]
- 设计è§èéªè¯ï¼[A+/A/B/C/D]
**æ»ä½è¯åï¼[A+/A/B/C/D]**
### éªæ¶ç»è®º
[éè¿/ä¸éè¿]
### 说æ
[详ç»è¯´æ]
## ð é®é¢æ¸
å
### 严éé®é¢ï¼å¿
须修å¤ï¼
[ååºææä¸¥éé®é¢]
### ä¸è¬é®é¢ï¼å»ºè®®ä¿®å¤ï¼
[ååºææä¸è¬é®é¢]
### ä¼å建议
[ååºææä¼å建议]
## ð¦ è¾åºäº§ç©
1. **宿´çHTMLæä»¶**
- æä»¶åï¼`[ææ¡£æ é¢]_McKinsey飿 ¼æ¼ç¤º(JSON模å¼).html`
- æä»¶å¤§å°ï¼çº¦70KB
- æ»ä»£ç è¡æ°ï¼çº¦1300è¡
2. **JSONæ°æ®**
- åµå
¥å¨HTMLä¸çJSONæ°æ®
- å
嫿æå¹»ç¯çå
容
- ç»æåæ°æ®æ ¼å¼
3. **éªæ¶æ¥å**
- èµæºä½¿ç¨éªè¯æ¥å
- å
容宿´æ§éªè¯æ¥å
- JSONæ°æ®æ ¼å¼éªè¯æ¥å
- HTML渲æåè½éªè¯æ¥å
- 代ç è´¨ééªè¯æ¥å
- åè½éªè¯æ¥å
- æç»éªæ¶æ¥å
## ð åç»æ¥éª¤
### å¦æéªæ¶éè¿
1. ä¿åHTMLæä»¶
2. 卿µè§å¨ä¸æµè¯
3. æ ¹æ®éè¦è¿è¡å¾®è°
4. 导åºJSONæ°æ®ï¼å¦éè¦ï¼
### å¦æéªæ¶ä¸éè¿
1. æ ¹æ®é®é¢æ¸
åä¿®å¤é®é¢
2. è¿åå¯¹åºæ¥éª¤éæ°æ§è¡
3. éæ°è¿è¡éªè¯
4. ç´å°ææé®é¢é½è§£å³
---
**æ¥åçææ¶é´ï¼[æ¥ææ¶é´]**
**éªè¯æ§è¡è
ï¼[AI Assistant]**è¾åºäº§ç©
- æç»éªæ¶æ¥å
- é®é¢æ¸ å
- ä¼å建议
- è¾åºäº§ç©æ¸ å
éªè¯æ å
- ææéªè¯é¡¹ç®é½å·²å®æ
- ææéªè¯æ¥åé½å·²çæ
- æç»éªæ¶ç»è®ºå·²æç¡®
- é®é¢æ¸ åå·²ååº
- ä¼å建议已æä¾
- è¾åºäº§ç©å·²ç¡®è®¤
ð¯ æåæ å
æ§è¡æåæ å¿
å½ä»¥ä¸æææ¡ä»¶é½æ»¡è¶³æ¶ï¼æ¥éª¤4æ§è¡æåï¼
**æµç¨å®æåº¦**ï¼
- â ææ7个æ¥éª¤é½å·²æ§è¡å®æ
- â æ¯ä¸ªæ¥éª¤çéªè¯æ åé½éè¿
- â æ æ¥éª¤è¢«è·³è¿æä¸æ
èµæºä½¿ç¨éªè¯ï¼
- â æ¥éª¤2ï¼å·²è¯»å3ä¸ªå¿ è¯»èµæºï¼chart-selection-guide.mdãCHART_EXAMPLES_INDEX.mdãINSIGHT_VISUALIZATION_GUIDE.mdï¼
- â æ¥éª¤3ï¼å·²è¯»å5ä¸ªå¿ è¯»èµæºï¼best-practices.mdãmckinsey-design-system.mdãpresentation-template.htmlãTEMPLATE_USAGE_GUIDE.mdãbeauty-json/SKILL.mdï¼
- â æ¥éª¤3ï¼å·²è¯»åå¸å±åå¾è¡¨ç¤ºä¾ç´¢å¼ï¼INDEX.mdï¼
- â æ¥éª¤3ï¼å·²æ£æ¥å¹¶è¯»å项ç®ç¹å®èµæºï¼.ppt_assets/INDEX.mdï¼å¦æåå¨ï¼
å 容宿´æ§éªè¯ï¼
- â ææåæç« èé½å·²å å«ï¼100%ä¿çï¼
- â ææè¦ç¹é½å·²å å«ï¼æ åç¼©ãæ çç¥ï¼
- â æææ°æ®é½å·²å å«ï¼æ°å¼ãç¾åæ¯ãè´§å¸çï¼
- â ææè¡¨æ ¼é½å·²å å«ï¼å®æ´çè¡åæ°æ®ï¼
- â ææç»è®ºé½å·²å å«ï¼å®æ´æåï¼
- â æ å å®¹è¢«ç¯¡æ¹æç®å
- â JSONæ°æ®ç»æå®æ´
JSONæ°æ®æ ¼å¼éªè¯ï¼
- â JSONæ ¼å¼æ£ç¡®ï¼å¯éè¿JSON.parseéªè¯ï¼
- â JSONå 嫿æå¹»ç¯çæ°æ®
- â æ¯ä¸ªå¹»ç¯çå å«å®æ´å 容
- â æ°æ®ç»æç¬¦åbeauty-json/SKILL.mdè§è
- â æ æ°æ®éæ¼
- â æ æ°æ®é误
- â æ JSONè¯æ³é误
- â å¹»ç¯çIDè¿ç»ä¸æ£ç¡®
- â å¹»ç¯çç±»å忍¡æ¿å¹é
- â å¾è¡¨æ°æ®å®æ´ä¸æ£ç¡®
HTML渲æéªè¯ï¼
- â HTMLè½å¤æ£ç¡®å è½½JSONæ°æ®
- â JavaScriptè½å¤æ£ç¡®è§£æJSON
- â JavaScriptè½å¤æ£ç¡®æ¸²æææå¹»ç¯ç
- â ææå 容æ£ç¡®æ¾ç¤º
- â ææå¾è¡¨æ£ç¡®æ¾ç¤º
- â 导èªåè½æ£å¸¸
- â ååºå¼è®¾è®¡æ£å¸¸
- â æ 渲æé误
代ç è´¨ééªè¯ï¼
- â HTMLç»æå®æ´ä¸æ£ç¡®
- â CSSæ ·å¼å®æ´ä¸ç¬¦åè§è
- â JavaScript代ç 宿´ä¸æ é误
- â JSONæ°æ®å®æ´ä¸æ£ç¡®
- â ææå¾è¡¨é½å·²æ£ç¡®é ç½®
- â ååºå¼è®¾è®¡å®å¤
- â æ è¯æ³é误
- â æ åä½ä»£ç
设计è§èéªè¯ï¼ä¸ç¥¨å¦å³å¶ï¼ï¼
- â é¢è²è§èï¼ä½¿ç¨McKinseyæ åè²æ¿ï¼æªä½¿ç¨ç´«è²æ¸åãAIçæè²æ¿
- â åä½è§èï¼ä½¿ç¨ç³»ç»åä½ï¼æªä½¿ç¨InterãRobotoãArialçéç¨åä½
- â å¸å±è§èï¼æªä½¿ç¨åè§å¡çãéç¨æ¨¡æ¿å¸å±
- â è®¾è®¡é£æ ¼ï¼ç¬¦åMcKinseyæ åï¼ä¸ä¸ãç®æ´ãæ æä¹±
åè½éªè¯ï¼
- â HTMLæä»¶å¯ä»¥æ£å¸¸è¿è¡
- â JSONæ°æ®å¯ä»¥æ£ç¡®å è½½
- â JSONæ°æ®å¯ä»¥æ£ç¡®è§£æ
- â HTMLå¯ä»¥æ£ç¡®æ¸²æ
- â ææåè½é½æ£å¸¸å·¥ä½
- â å¾è¡¨æ¾ç¤ºæ£å¸¸
- â 导èªåè½æ£å¸¸
- â ååºå¼è®¾è®¡æ£å¸¸
- â æµè§å¨å ¼å®¹æ§è¯å¥½
è¾åºï¼McKinsey飿 ¼HTMLæ¼ç¤ºæç¨¿ï¼JSON+HTML模å¼ï¼ + éªæ¶æ¥å
ð 颿è¾åº
æç»äº§ç©
宿´çHTMLæä»¶
- æä»¶åï¼
[ææ¡£æ é¢]_McKinsey飿 ¼æ¼ç¤º(JSON模å¼).html - æä»¶å¤§å°ï¼çº¦70KB
- æ»ä»£ç è¡æ°ï¼çº¦1300è¡
- å è½½æ¶é´ï¼<1ç§ï¼æ¬å°ï¼
- ä¾èµé¡¹ï¼Chart.js CDNï¼å¯ä¸å¤é¨ä¾èµï¼
- ç¹ç¹ï¼JSONæ°æ®é©±å¨ï¼HTMLå¨ææ¸²æ
- æä»¶åï¼
JSONæ°æ®
- åµå ¥å¨HTMLä¸çJSONæ°æ®
- å 嫿æå¹»ç¯çå 容
- ç»æåæ°æ®æ ¼å¼
- æäºç»´æ¤åä¿®æ¹
éªæ¶æ¥å
- èµæºä½¿ç¨éªè¯æ¥å
- å 容宿´æ§éªè¯æ¥å
- JSONæ°æ®æ ¼å¼éªè¯æ¥å
- HTML渲æåè½éªè¯æ¥å
- 代ç è´¨ééªè¯æ¥å
- åè½éªè¯æ¥å
- æç»éªæ¶æ¥å
è´¨éæ å
- **代ç 宿´æ§**ï¼A+ï¼HTMLãCSSãJavaScriptãJSONé½å®æ´ï¼
- **æ°æ®å®æ´æ§**ï¼A+ï¼100%ä¿çææå 容ï¼
- JSONæ°æ®è´¨éï¼A+ï¼æ ¼å¼æ£ç¡®ï¼ç»æå®æ´ï¼
- HTML渲æè´¨éï¼A+ï¼æ£ç¡®æ¸²æJSONæ°æ®ï¼
- 代ç è´¨éï¼A+ï¼ç¬¦åæä½³å®è·µï¼
- 设计质éï¼A+ï¼å®å ¨ç¬¦åMcKinseyæ åï¼
- **åè½å®æ´æ§**ï¼A+ï¼ææåè½æ£å¸¸ï¼
- æ»ä½è¯åï¼A+ï¼ä¼ç§ï¼