B 0` @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 /private/var/folders/sf/wxz_36012wxg_prv29r6623x5vlqx8/T/pip-target-tft40_m7/lib/python/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 Cs||}tt|}|j|\}}}}|}t t j dd|gd}ttd ||d<|s|jj } |jd|t| | } | |fS|} y&t| dd\} } | || <Wn"tjk r| d|d<YnXx| d dD]x}y"t|d\} } | || <Wqtjk rp}z.|jj } |jd ||ft| | } | |fSd}~XYqXqW|j|||fS) Nwriterhtml) componentformatr contentzNo content for meta tag "%s".rnamez*Error parsing meta tag attribute "%s": %s.)Zparse_field_markerrunescapeZ escape2null state_machineZget_first_known_indentedendrrpendingrFilterjoinlinereporterinfo literal_blocksplitZextract_name_valuelowerZNameValueErrorerrordocumentZ note_pending)rrrZindentedindent line_offsetrrr#r&msgtokensZattnamevaltokenZdetailr r r rsD   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_contentrr5stateZnested_list_parserZcontent_offsetSMkwargslenr!r'r,r)Z block_textlinenochildren)rrZnew_line_offsetrr,r r r runJs  zMeta.runN)rr r Z has_contentrr8r<r r r r r6Ds r6)r Z __docformat__sysZdocutilsrrZdocutils.parsers.rstrrZdocutils.transformsrZSpecializedBodyrr6r r r r s   2