B \ @sjdZdZddlZddlmZmZddlmZddlmZddl m Z Gdd d ej Z Gd d d eZ dS) z4 Directives for typically HTML-specific constructs. ZreStructuredTextN)nodesutils) Directive)states) componentsc@s6eZdZGdddejejejZddZddZ dS)MetaBodyc@seZdZdZdS)z MetaBody.metazHTML-specific "meta" element.N)__name__ __module__ __qualname____doc__r r H/tmp/pip-build-uw_ogi45/docutils/docutils/parsers/rst/directives/html.pymetasrcCs&||\}}|j|7_g|gfS)z Meta element.) parsemetaparent)selfmatchcontext next_statenode blank_finishr r r field_markerszMetaBody.field_markerc Csn||}|j|\}}}}|}ttjdd|gd}d ||d<|s~|jj } |j d|t | | } | |fS|} y&t| dd\} } | || <Wn"tjk r| d|d<YnXx| d dD]x}y"t|d\} } | || <Wqtjk rT}z.|jj } |j d ||ft | | } | |fSd}~XYqXqW|j|||fS) Nwriterhtml) componentformatr contentzNo content for meta tag "%s".rnamez*Error parsing meta tag attribute "%s": %s.)Zparse_field_marker state_machineZget_first_known_indentedendrrpendingrFilterjoinlinereporterinfo literal_blocksplitrZextract_name_valuelowerZNameValueErrorerrordocumentZ note_pending)rrrZindentedindentZ line_offsetrrr"r%msgtokensZattnamevaltokenZdetailr r r rs@   zMetaBody.parsemetaN) rr r rSpecialZPreBibliographicElementrrrr r r r rsrc@s"eZdZdZdefiZddZdS)MetaTZ state_classescCsv|t}|jj|j|j|dd|jd\}}||jt|jkrp|j j j dt |j |j |jd}||7}|jS)NrT)Z initial_staterZstate_machine_kwargszInvalid meta directive.)r%)Zassert_has_contentrr3stateZnested_list_parserZcontent_offsetSMkwargslenr r&r+r(Z block_textlinenochildren)rrZnew_line_offsetrr+r r r runHs  zMeta.runN)rr r Z has_contentrr6r:r r r r r4Bs r4)r Z __docformat__sysZdocutilsrrZdocutils.parsers.rstrrZdocutils.transformsrZSpecializedBodyrr4r r r r s   0