+
    ²+Ûj
  ã                   ó  € R t ^ RIt]P                  ! R4      t]P                  ! R4      tR tR tR tR tR t	R	 t
R
 t]R8X  dš   ^ RIt]P                  ^,          ]P                  ^,          utt]! ]RR7      ;_uu_ 4       t]P'                  4       tRRR4       ]! ]RRR7      ;_uu_ 4       t]P+                  ]! ]4      4       RRR4       ]! R] R] 24       R# R#   + '       g   i     LU; i  + '       g   i     L5; i)u‰  am åŽŸç”Ÿ md è§„æ•´å™¨ â€”â€” æŠŠå¼•æ“Žå¤�ç›˜ md å�˜æˆ� am èƒ½æ­£ç¡®è½¬ HTML çš„å†™æ³•ï¼ˆå�ªæ”¹ç‰ˆå¼�ï¼Œä¸�æ”¹å†…å®¹ï¼‰

2026-10-21 ç”¨æˆ·è¦�æ±‚: å¤�ç›˜ md çš„ç‰ˆå¼�å¿…é¡»ç¬¦å�ˆ answer-me-with-html çš„ mdâ†’html è§„èŒƒã€‚
æ—§ md çš„ä¸‰ä¸ªç—…:
  1. `## æ¨¡å�— 1:æ¶ˆæ�¯é�¢ä¸Žé©±åŠ¨å½’å› ` â€”â€” am è‡ªåŠ¨å�‘ A/B/C é�¢æ�¿å¾½æ ‡ï¼Œæ ‡é¢˜å†�å¸¦ã€Œæ¨¡å�— N:ã€�= å�Œç¼–å�·
  2. `#### æ¶ˆæ�¯é�¢` â€”â€” am é�¢æ�¿å†…å°�æ ‡é¢˜å�ªè®¤ `###`ï¼Œ`####` æ˜¯æ®‹ç•™åœ¨æ­£æ–‡é‡Œçš„å­¤å„¿çº§
  3. é¡¶éƒ¨ `å¤�ç›˜æ‘˜è¦�:` è£¸æ ‡ç­¾ + ç¼–å�·åˆ—è¡¨ â€”â€” am æŠŠå®ƒå½“ intro é‡Œçš„ä¸€æ®µæ­»æ–‡å­—ï¼Œæ²¡æœ‰å�¡ç‰‡
  4. æ­£æ–‡ `---` åˆ†éš”çº¿ â€”â€” ä¼šè¢«å½“æˆ� frontmatter è¾¹ç•Œï¼Œæ¡¥æŽ¥å±‚å�ªèƒ½åˆ æŽ‰

è§„æ•´è§„åˆ™ï¼ˆå¹‚ç­‰ï¼‰:
  - `## æ¨¡å�— N:æ ‡é¢˜` â†’ `## æ ‡é¢˜`
  - `#### xxx` â†’ `### xxx`
  - åˆ é™¤ç‹¬ç«‹çš„ `---` è¡Œ
  - æ­£æ–‡é¦–æ®µ `å¤�ç›˜æ‘˜è¦�:` + ç¼–å�·åˆ—è¡¨ â†’ ```callout info å¤�ç›˜æ‘˜è¦�``` + `- ` åˆ—è¡¨
Nu'   ^##\s*æ¨¡å�—\s*\d+\s*[:ï¼š]\s*(.+?)\s*$u   ^\s*\d+\s*[.ã€�ï¼Ž]\s*(.+?)\s*$c                 ó    € . pV  FE  p\         P                  V4      pTP                  V'       d   R VP                  ^4       2MT4       KG  	  V# )ú## )Ú
_MODULE_REÚmatchÚappendÚgroup)ÚlinesÚoutÚlnÚms   &   Ú/root/web_reports/am_md_norm.pyÚ_strip_module_numbersr      sG   € Ø
€CÛˆÜ×Ñ˜RÓ ˆØ�
‰
¯�S˜Ÿ™ ›˜Ñ%°Ö3ñ ð €Jó    c                 ó\   € V  Uu. uF  p\         P                  ! R RV4      NK  	  up# u upi )z^####\s+z### )ÚreÚsub©r   r
   s   & r   Ú
_demote_h4r       s'   € Ù6;Ó<±e°ŒB�FŠF�; ¨Ö+±eÑ<Ð<ùÒ<ó   …!)c                 ó\   € V  Uu. uF  qP                  4       R 8X  d   RMTNK  	  up# u upi )z---Ú )Ústripr   s   & r   Ú_drop_rulesr   $   s*   € Ù8=Ó>¹°"—(‘(“* Ô%‰B¨2Ò-¹Ñ>Ð>ùÒ>r   c                óÒ  € \        R \        V 4       4       \        V 4      4      pV RV p\        R \        V4       4       R4      pVf   V # . . rTW#^,           R  F²  pVP                  4       pV'       g   K  \        P                  V4      pV'       d#   VP                  VP                  ^4      4       K\  VP                  R	4      '       d   VP                  V4       K†  V'       d   VR
,           RV 2VR
&   K¡  VP                  V4       K´  	  V'       g   V # R.V U	u. uF  p	RV	 2NK
  	  up	,           R.,           p
VRV V
,           R.,           V,           WR ,           # u up	i )u]   æ­£æ–‡é¦–æ®µï¼ˆç¬¬ä¸€ä¸ª ## ä¹‹å‰�ï¼‰çš„ `å¤�ç›˜æ‘˜è¦�:` + ç¼–å�·åˆ—è¡¨ â†’ callout å�¡ç‰‡ã€‚c              3   ó\   "  € T F"  w  rVP                  R 4      '       g   K  Vx € K$  	  R# 5i)r   N)Ú
startswith©Ú.0Úir
   s   &  r   Ú	<genexpr>Ú&_summary_to_callout.<locals>.<genexpr>*   s!   é € ÐPÑ'7™e˜a¸2¿=¹=È×;OŸšÓ'7ùs   ‚,¢
,Nc              3   ó®   "  € T FK  w  rVP                  4       R9   g.   \        P                  ! RVP                  4       4      '       g   KG  Vx € KM  	  R# 5i)õ   å¤�ç›˜æ‘˜è¦�:u    ^\*\*å¤�ç›˜æ‘˜è¦�\*\*\s*[:ï¼š]?$N)r"   u   å¤�ç›˜æ‘˜è¦�ï¼š)r   r   r   r   s   &  r   r   r    ,   s>   é € ð P¡™˜Ø—X‘X“ZÐ#GÔGÜ—X’XÐAÀ2Ç8Á8Ã:×N÷ ’!£ùs   ‚AAÁ
Aú```Ú u   ```callout info å¤�ç›˜æ‘˜è¦�z- r   )Ú#Ú|Ú>r#   éÿÿÿÿ)	ÚnextÚ	enumerateÚlenr   Ú_NUM_ITEM_REr   r   r   r   )r   Úfirst_panelÚheadÚstartÚbulletsÚtailr
   Úsr   ÚbÚblocks   &          r   Ú_summary_to_calloutr5   (   sR  € äÑP¤y°Ô'7ÓPÔRUÐV[ÓR\Ó]€KØ��+Ð€DÜñ P¤¨4¤ó PàQUóW€Eð ‚}Øˆà˜ˆTØ˜1•9�:ÓˆØ�H‰H‹JˆßÙÜ×Ñ˜qÓ!ˆßØ�N‰N˜1Ÿ7™7 1›:Ô&ÙØ�<‰<Ð.×/Ò/Ø�K‰K˜ŒOÙßØ$ R�[˜M¨¨1¨#Ð.ˆG�B‹Kà�N‰N˜1Öñ ÷ Øˆà+Ð,Á'Ó/JÁ'¸Q°"°Q°C³Á'Ñ/JÕJÈeÈWÕT€EØ��ˆ<˜%Õ 2 $Õ&¨Õ-°°lÐ0CÕCÐCùò 0Ks   Ä!E$c                 ó‚   € R P                  V 4      p\        P                  ! RRV4      pVP                  4       R ,           # )Ú
z\n{3,}z

)Újoinr   r   r   )r   Útexts   & r   Ú_tidy_blankr:   I   s3   € Ø�9‰9�UÓ€DÜ�6Š6�)˜V TÓ*€DØ�:‰:‹<˜$ÕÐr   c                óJ  €  ^ RI p^ RIpVP                  P                  ^ VP                  P	                  VP                  P                  \        4      4      4       ^ RIpVP                  V 4      #   \         d'   p\        RT 2XP                  R7       T u Rp?# Rp?ii ; i)ue   æ–‡å­—å±‚ STE è§„æ•´ï¼ˆé•¿å�¥æ‹†çŸ­ã€�ç¼–å�·æ­¥éª¤â†’åˆ—è¡¨ã€�è¯�çº§è§„æ•´ï¼‰ã€‚è§� am_ste_norm.pyã€‚Nz[am_md_norm] ste pass skipped: )Úfile)ÚosÚsysÚpathÚinsertÚdirnameÚabspathÚ__file__Úam_ste_normÚ	normalizeÚ	ExceptionÚprintÚstderr)r9   r=   r>   rD   Úexcs   &    r   Ú	_ste_passrJ   O   sx   € ðÛÛØ�‰�‰˜˜2Ÿ7™7Ÿ?™?¨2¯7©7¯?©?¼8Ó+DÓEÔFÛØ×$Ñ$ TÓ*Ð*øÜô ÜÐ/°¨uÐ5¸C¿J¹JÕGØ�ûðús   ‚A.A1 Á1B"Á<BÂB"ÂB"c                ó¤   € V P                  R4      p\        V4      p\        V4      p\        V4      p\	        V4      p\        \        V4      4      # )uD   md â†’ am åŽŸç”Ÿ mdï¼ˆå¹‚ç­‰ï¼‰ã€‚ç»“æž„è§„æ•´ + STE æ–‡å­—è§„æ•´ã€‚r7   )Úsplitr   r   r   r5   rJ   r:   )r9   r   s   & r   Únormalize_mdrM   \   sH   € à�J‰J�tÓ€EÜ! %Ó(€EÜ�uÓ€EÜ˜Ó€EÜ Ó&€EÜ”[ Ó'Ó(Ð(r   Ú__main__zutf-8)ÚencodingÚwznormalized: z -> )Ú__doc__r   Úcompiler   r,   r   r   r   r5   r:   rJ   rM   Ú__name__r>   ÚargvÚsrcÚdstÚopenÚfÚreadÚrawÚwriterG   © r   r   Ú<module>r]      sê   ðñó 
à�ZŠZÐBÓC€
Ø�zŠzÐ<Ó=€òò=ò?òDòBò
ò)ð ˆzÔÛØ�x‰x˜�{˜CŸH™H Q�K€H€CˆÙ	ˆc˜G×	$Õ	$¨Ø�f‰f‹hˆ÷ 
%á	ˆc�3 ×	)Õ	)¨QØ	�‰‘˜SÓ!Ô"÷ 
*á	ˆL˜˜˜T # Ð
'Ö(ñ ÷ 
%×	$úç	)×	)ús   ÂC"Â0C5Ã"C2	Ã5D	