o
    g                     @   sj   d Z dZddlZddlmZmZ ddlmZ ddlmZ ddl	m
Z
 G dd	 d	ejZG d
d deZdS )z4
Directives for typically HTML-specific constructs.
reStructuredText    N)nodesutils)	Directive)states)
componentsc                   @   s6   e Zd ZG dd dejejejZdd Zdd Z	dS )MetaBodyc                   @   s   e Zd ZdZdS )zMetaBody.metazHTML-specific "meta" element.N)__name__
__module____qualname____doc__ r   r   b/home/ubuntu/cloudmapper/venv/lib/python3.10/site-packages/docutils/parsers/rst/directives/html.pymeta   s    r   c                 C   s&   |  |\}}|  j|7  _g |g fS )zMeta element.)	parsemetaparent)selfmatchcontext
next_statenodeblank_finishr   r   r   field_marker   s   
zMetaBody.field_markerc                 C   s  |  |}tt|}| j| \}}}}|  }t	t
jdd|gd}ttd||d< |sM| jj}	| jd| t|	|	}
|
|fS | }zt|d d \}}||| < W n tjyt   |d |d< Y nw |d	d  D ]?}zt|d \}}||| < W q{ tjy } z| jj}	| jd
||f t|	|	}
|
|fW  Y d }~  S d }~ww | j| ||fS )Nwriterzhtml,latex,odt)	componentformatr    contentzNo content for meta tag "%s".r   name   z*Error parsing meta tag attribute "%s": %s.)parse_field_markerr   unescapeescape2nullstate_machineget_first_known_indentedendr   r   pendingr   Filterjoinlinereporterinfoliteral_blocksplitextract_name_valuelowerNameValueErrorerrordocumentnote_pending)r   r   r   indentedindentline_offsetr   r   r&   r)   msgtokensattnamevaltokendetailr   r   r   r      sZ   




zMetaBody.parsemetaN)
r	   r
   r   r   SpecialPreBibliographicElementr   r   r   r   r   r   r   r      s    r   c                   @   s"   e Zd ZdZdefiZdd ZdS )MetaTstate_classesc                 C   sv   |    t }| jj| j| j|dd| jd\}}|| j t| jkr8| j	j
jdt| j| j| jd}||7 }|jS )Nr   T)initial_stater   state_machine_kwargszInvalid meta directive.)r)   )assert_has_contentr   r?   statenested_list_parser   content_offsetSMkwargslenr#   r*   r1   r,   
block_textlinenochildren)r   r   new_line_offsetr   r1   r   r   r   runJ   s   

zMeta.runN)r	   r
   r   has_contentr   rH   rN   r   r   r   r   r@   D   s    
r@   )r   __docformat__sysdocutilsr   r   docutils.parsers.rstr   r   docutils.transformsr   SpecializedBodyr   r@   r   r   r   r   <module>   s   2