
    cpi                     (    d dl Z  G d d          ZdS )    Nc                   R    e Zd ZdZededefd            Zededefd            ZdS )SlackFormattera  
    Converts standard Markdown to Slack's mrkdwn format.
    Handles:
    - Bold: **text** -> *text*
    - Links: [text](url) -> <url|text>
    - Headers: # Text -> *Text*
    - Strikethrough: ~~text~~ -> ~text~
    
    Preserves code blocks (```...```) from formatting.
    textreturnc                 $   | sdS t          j        d|           }g }t          |          D ]Q\  }}|dz  dk    r.|                    t                              |                     <|                    |           Rd                    |          S )N z(```[\s\S]*?```)   r   )resplit	enumerateappendr   _format_text_segmentjoin)r   partsformatted_partsiparts        //root/projects/butler/slack_bot/utils/mrkdwn.pyconvertzSlackFormatter.convert   s     	2 ,d33 '' 	- 	-GAt1uzz&&~'J'J4'P'PQQQQ&&t,,,,ww'''    c                     t          j        dd|           } t          j        dd|           } t          j        dd|           } t          j        dd|           } | S )Nz\[([^\]]+)\]\(([^)]+)\)z<\2|\1>z\*\*([^*]+)\*\*z*\1*z(?m)^#{1,6}\s+(.+)$z~~([^~]+)~~z~\1~)r
   sub)r   s    r   r   z#SlackFormatter._format_text_segment"   s^     v0*dCC v('488 v,gt<< vngt44r   N)__name__
__module____qualname____doc__staticmethodstrr   r    r   r   r   r      sz        	 	 (c (c ( ( ( \($ 3 3    \  r   r   )r
   r   r   r   r   <module>r       s@    				/ / / / / / / / / /r   