
    ͆hš                       S SK Jr  S SKrS SKrS SKrS SKrS SKJrJr  S SK	J	r	  S SK
J
r
Jr  S SKJr  S SKJr  S SKJr  S S	KJr  S S
KJrJr  S SKJr  S SKJrJrJr  S SKJrJrJ r   S SK!J"r"  S SK#J$r$J%r%  S SK&J'r'J(r(  S SK)J"r*  S SK+J,r,  S SK-J.r.  S SK/J0r0  S SKJ1r1  SSK2J3r3  SSK4J5r5  SSK6J6r6  SSK7J8r8J9r9J:r:J;r;J<r<J=r=   " S S\\5   5      r>SS jr?S S jr@\R                  " S5      rBg)!    )annotationsN)format_dateformat_datetime)copy)datetimetimezone)pass_context)Context)MkDocsConfig)PluginError)
BasePluginevent_priority)StructureItem)FileFilesInclusionLevel)Link
NavigationSection)Page)
AnchorLinkTableOfContents)	copy_fileget_relative_url)rmtree)mkdtemp)urlparse)
SafeLoader   )Authors)
BlogConfig)readtime)ArchiveCategoryExcerptPost	ReferenceViewc                    ^  \ rS rSrSrU 4S jrS rS r\" S5      S 5       r	\" S5      S 5       r
\" S5      S	 5       rS
 rS r\" S5      S 5       rS rS1S jrS2S jrS3S jrS2S jrS4S jrS5S jrS6S jrS7S jrS8S jrS8S jrS9S jrS:S jrS;S jrS<S jrS=S jrS5S jrS>S jr S?S  jr!S@S! jr"S@S" jr#SAS# jr$SBS$ jr%SCS% jr&SDS& jr'SDS' jr(SDS( jr)SDS) jr*S1S* jr+SAS+ jr,SS,.SES- jjr-SFS. jr.SGS/ jr/S0r0U =r1$ )H
BlogPlugin:   Tc                `   > [         TU ]  " U0 UD6  SU l        SU l        [	        5       U l        g NF)super__init__is_serveis_dirtyr   temp_dir)selfargskwargs	__class__s      T/opt/services/DDDS/venv/lib/python3.13/site-packages/material/plugins/blog/plugin.pyr/   BlogPlugin.__init__>   s0    $)&)   	    c               $    US:H  U l         X l        g )Nserve)r0   r1   )r3   commanddirtys      r7   
on_startupBlogPlugin.on_startupI   s    7*r9   c                X   U R                   R                  (       d  g U   U R                   R                  (       a  U R                  U5      U l        [	        U R                   R
                  [        5      (       d%  U R                   R                  U R                   l        [	        U R                   R                  [        5      (       d%  U R                   R                  U R                   l        U R                  (       a.  U R                   R                  (       a  SU R                   l        g g g )NT)configenabledauthors_resolve_authors
isinstancearchive_tocboolblog_toccategories_tocr0   draft_on_servedraft)r3   rA   s     r7   	on_configBlogPlugin.on_configN   s    {{"" 	 ;;008DL $++11488&*kk&:&:DKK#$++44d;;)-)=)=DKK& ==T[[77 $DKK 8=r9   ic               l   U R                   R                  (       d  g [        R                  " U R                   R                  5      nUR
                  nU R                   R                  R                  US9n[        R                  " U5      nUR                  5        H  nUR                  R                  U5      (       d  M%  UR                  R                  XS5      Ul        [        R                  R                  XFR                   5      Ul        UR$                  R                  XS5      Ul        M     U R'                  X5      U l        [+        U R-                  X5      S SS9U R(                  l        U R                   R0                  (       a4  U R(                  R2                  R5                  U R7                  X!5      5        U R                   R8                  (       a>  U R(                  R2                  R5                  [+        U R;                  X!5      S SS95        U R                   R<                  (       aV  U R?                  U R(                  5       H7  nU RA                  XrU5       H  nURB                  RE                  U5        M      M9     [F        RH                  U R(                  RJ                  l&        g )Nblogc                B    U R                   R                  R                  $ N)rA   datecreated)posts    r7   <lambda>%BlogPlugin.on_files.<locals>.<lambda>   s    t{{//77r9   T)keyreversec                    U R                   $ rR   )name)views    r7   rV   rW      s    499r9   F)'rA   rB   	posixpathnormpathblog_dirsite_dirpost_dirformatmedia_filessrc_uri
startswithdest_urireplaceospathjoin	dest_pathabs_dest_pathurl_resolverP   sorted_resolve_postspostsarchiveviewsextend_generate_archive
categories_generate_categories
pagination_resolve_views_generate_pagespagesappendr   INCLUDEDfile	inclusion)	r3   filesrA   rootsiteri   r~   r\   pages	            r7   on_filesBlogPlugin.on_filesl   s   {{"" !!$++"6"67 {{##**$*7!!$' %%'D<<**400 "&!6!6t!BDM!#dNN!CD!%!1!1$!=DH ( MM%0	 .7
		 ;;IIOO""&&v5
 ;;!!IIOO""6))&8,$  ;;!!++DII6 00uEDJJ%%d+ F 7
 $2#:#:		 r9   c                  U R                   R                  (       d  g U R                  R                  (       dC  U R                   R                  S:w  a)  [
        R                  U R                  R                  l        U R                  U R                  S /[        U R                  R                  5      QS P5        U R                  R                   H"  n[
        R                  UR                  l        M$     U R                  U R                  5       Ht  nU R                  R                  R                  UR                  l        UR                   H2  nU R                  R                  R                  UR                  l        M4     Mv     U R                   R                  (       a  U R                  U R                   R                   U5      nU R                  R"                   Vs/ s H  n[%        U[&        5      (       d  M  UPM     n	nU R                  R                  R                  R)                  5       (       a&  U R+                  U R                  [-        Xy5      U5        U R                   R.                  (       a  U R                  U R                   R0                  U5      nU R                  R"                   Vs/ s H  n[%        U[2        5      (       d  M  UPM     n	nU R                  R                  R                  R)                  5       (       a-  U	(       a&  U R+                  U R                  [-        Xy5      U5        U R                   R4                  (       ar  U R                  U R                  5       HR  n[7        S[9        UR                  5      5       H,  n
U R;                  UR                  XUR                  U
   5        M.     MT     g g s  snf s  snf )N.r   )rA   rB   rP   parentr_   r   
NOT_IN_NAVr~   r   _attachreversedrq   ry   r{   rr   
_translatearchive_namers   rE   r#   	is_in_nav
_attach_tor   rv   categories_namer$   rx   rangelen
_attach_at)r3   navrA   r   rU   r\   r   title_rs   ats              r7   on_navBlogPlugin.on_nav   sq   {{"" yyDKK$8$8C$?'5'@'@DIINN$ 	TYY H(A H4 HIIIOOD"0";";DII $ ''		2D"&))..":":DII

&*iinn&>&>		# # 3 ;;OODKK$<$<fEE $		J1:a3IQEJ yy~~''1133		75+@#F ;;!!OODKK$?$?HE $		K1:a3JQEK yy~~''1133		75+@#F ;;!!++DII63tzz?3BOODKKzz"~F 4 7 "! K Ls   !O>O8OOc          	        U R                   R                  (       d  g X R                  R                  ;  a  U R                   R                  (       d  g U R                   R
                  (       do  U R                  U5      nXPR                  U R                  5      ;   a@  [        U[        5      (       d   eXR:w  a$  UR                  =(       d    UR                  nSU 3$ g U R                   R                  (       ac  UR                   R                   HI  nX`R                  ;  a  [        SU S35      eUR                  R                  U R                  U   5        MK     U R                   R                  nU R                   R                   nU R                   R"                  n	XrR$                  ;  a  U R                   R&                  S:X  ar  [(        R*                  R-                  UR.                  5      n
[(        R*                  R-                  UR0                  R2                  U
5      n[        SU SU SU
 S35      e[5        X#U5      Ul        UR                  S U UR6                  l        UR8                  S U	 UR6                  l        g )N# zCouldn't find author ''requiredzCouldn't find 'z' in post '' in ')rA   rB   rP   rq   rx   pagination_keep_content_resolve_originalry   rE   r(   _title_from_renderr   rC   r   r|   post_excerpt_separatorpost_excerpt_max_authorspost_excerpt_max_categoriesmarkdownpost_excerptrh   ri   relpathdocs_dirr~   abs_src_pathr%   excerptrv   )r3   r   r   rA   r   r\   r[   	separatormax_authorsmax_categoriesdocsri   s               r7   on_page_markdownBlogPlugin.on_page_markdown   s   {{"" yy&;;)) ;;66--d3..tyy99 &dD1111|#66D$**!#D6{*  ;;++||+%(>tfA&FGG ##DLL$67 , ;;	==@@ MM){{'':5wwv7wwtyy'='=tD!%i[D6vQO  #*$">"&,,|"<"&///>"Br9   c               @   U R                   R                  (       d  g X R                  R                  ;  a  g U R                   R                  (       aM  U R                   R
                  nUR                   R                  (       d  [        X5      UR                   l        g g g rR   )rA   rB   rP   rq   post_readtimepost_readtime_words_per_minuter"   )r3   htmlr   rA   r   words_per_minutes         r7   on_page_contentBlogPlugin.on_page_content  sl    {{"" yy& ;;$$#{{II;;'''/'G$ ( %r9   c               .  ^ ^^ T R                   R                  (       d  g T R                  R                   H  nT R	                  UTU5        M     SUU 4S jjnUR
                  S   m[        SU U4S jj5       nXQR
                  S'   XaR
                  S'   g )NrS   c                (   > TR                  U T5      $ rR   )_format_date_for_post)rS   rA   r3   s    r7   date_filter&BlogPlugin.on_env.<locals>.date_filter5  s    --dF;;r9   rm   c                   > U S   n[        U[        5      (       a-  TR                  U5      nUR                  U:X  a  UR                  nT" X5      $ )Nr   )rE   r(   r   rm   )contextrm   r   r\   r3   
url_filters       r7   url_filter_with_pagination5BlogPlugin.on_env.<locals>.url_filter_with_pagination>  sL    6?D $%%--d388s?((C g++r9   )rS   r   )r   r
   rm   z
str | None)rA   rB   rP   rq   _generate_linksfiltersr	   )r3   envrA   r   rU   r   r   r   s   ` `    @r7   on_envBlogPlugin.on_env,  s    {{"" IIOOD  vu5 $	< 	<
 [['
 
	, 
	, *F8Er9   ic                  ^ ^ T R                   R                  (       d  g T R                  U5      nUT R                  T R                  5      ;  a  g T R                  U5      u  nmSUU 4S jjnXaS'   T(       a  UOS US'   g )Nc                ~   > TR                   " STR                  R                  TR                  R                  S.U D6$ )N)rb   show_if_single_page )pagerrA   pagination_formatpagination_if_single_page)r4   rx   r3   s    r7   r   )BlogPlugin.on_page_context.<locals>.pagerc  s?    ## 66&*kk&K&K  r9   rq   rx   )r4   object)rA   rB   r   ry   rP   _render)	r3   r   r   rA   r   r\   rq   r   rx   s	   `       @r7   on_page_contextBlogPlugin.on_page_contextT  sv    {{"" %%d+t**49955 !LL.z	 	 !&)3r9   c                .    [        U R                  5        g rR   )r   r2   )r3   s    r7   on_shutdownBlogPlugin.on_shutdowno  s    t}}r9   c                   U R                   R                  (       a  g[        UR                   R                  [        5      (       d`  U R                   R                  (       aE  UR                   R
                  R                  [        R                  " [        R                  5      :  $ [        UR                   R                  5      $ r-   )rA   rK   rE   rG   draft_if_future_daterS   rT   r   nowr   utc)r3   rU   s     r7   _is_excludedBlogPlugin._is_excludedu  sw    ;; $++++T22{{//{{''//(,,x||2LLL DKK%%&&r9   c                4   [         R                  R                  U R                  R                  S5      n[         R                  R                  U5      n[         R                  R                  UR                  5      n[         R                  R                  XC5      n[         R                  R                  U5      (       d=  U R                  X2SS9nUR                  U5        U R                  UR                  S5        UR                  U5      n[        S Xb5      $ )Nzindex.mdFtempz# Blog

)rh   ri   rj   rA   r_   r^   r   r   isfile_path_to_filer|   _save_to_filer   get_file_from_pathr(   )r3   r   rA   ri   r   r[   r~   s          r7   rn   BlogPlugin._resolve  s    ww||DKK00*=ww% wwv/ww||D'ww~~d##%%d5%ADLL t00,? ''-D$''r9   c                    [        X5      nU R                  X25      nU R                  XBSS9nUR                  Ul        UR                  Ul        UR
                  Ul        UR                  UR                  5        U$ )NFr   )r&   _format_path_for_postr   rf   rl   rm   _set_canonical_urlsite_url)r3   r~   rA   rU   ri   r   s         r7   _resolve_postBlogPlugin._resolve_post  sr    D! ))$7!!$u!= "]]!//!XX 	0r9   c              #    #    U R                   R                  R                  U R                   R                  S9n[        R
                  R                  U5      n[        R
                  R                  UR                  5      n[        R
                  R                  XC5      n[        R
                  R                  U5      (       d  [        R                  " USS9  UR                  5        Hg  nUR                  R                  U5      (       d  M%  [        R                   Ul        U R%                  Xb5      nU R'                  U5      (       a  Mc  Uv   Mi     g 7f)NrO   Texist_ok)rA   ra   rb   r_   rh   ri   r^   r   r   rj   isdirmakedirsdocumentation_pagessrc_pathre   r   EXCLUDEDr   r   r   )r3   r   rA   ri   r   r[   r~   rU   s           r7   rp   BlogPlugin._resolve_posts  s     {{##**$++2F2F*Gww% wwv/ww||D'ww}}T""KK. --/D==++D11 ,44DN %%d3D$$T**
 0s   EE	Ec           
        U R                   R                  R                  U R                   R                  S9n[        R
                  R                  U5      n[        R
                  R                  UR                  5      n[        R
                  R                  X25      n[        5       n[        R
                  R                  U5      (       d  UR                  $ [        USS9 n[        R
                  R                  U5      Ul         UR!                  ["        R$                  " U[&        5      =(       d    0 5         S S S 5        UR-                  5       u  pxU H  u  p[.        R1                  U
5        M     U H  u  p[+        SU SU SU 35      e   UR                  $ ! [(         a  n[+        SU SU SU 35      eS nAff = f! , (       d  f       N= f)NrO   z	utf-8-sigencodingzError reading authors file 'r   z':
)rA   authors_filerb   r_   rh   ri   r^   r   r   rj   r    r   rC   openabspathconfig_file_path	load_dictyamlloadr   	Exceptionr   validatelogwarning)r3   rA   ri   r   r~   feerrorswarningsr   ws              r7   rD   BlogPlugin._resolve_authors  s   {{''..dkk6J6J.Kww% wwv/ww||D' ")ww~~d##>>! $;/1&(ggood&;F#	  1j!9!?R@ 0 "??,DAKKN DA.tfF4&#   ~~#  !24&tfDc  0/s*   #%G	3F  
G*F>>GG
Gc              #     #    Uv   UR                    H6  nU R                  U5       H  n[        U[        5      (       d   eUv   M      M8     g 7frR   )rs   ry   rE   r(   )r3   r\   r   nexts       r7   ry   BlogPlugin._resolve_views  sG     
 JJD++D1!$----
 2 s   AAc                    [        UR                  [        5      (       a  UR                  R                  $ UR                  $ rR   )rE   r   r   childrenitems)r3   itemr   s      r7   _resolve_siblingsBlogPlugin._resolve_siblings  s-    dkk7++;;'''99r9   c                p    [        U[        5      (       a   UR                  (       a  UR                  S   $ U$ Nr   )rE   r(   r{   )r3   r   s     r7   r   BlogPlugin._resolve_original  s(    dD!!djj::a= Kr9   c              #    #    U R                   R                   GH'  nUR                  R                  R                  nU R                  XA5      nU R                  X15      nUR                  U5      nU(       dA  U R                  Xa5      nUR                  U5        U R                  UR                  SU 35        [        R                  Ul        [        UR                   ["        5      (       d  [#        XWU5      v   [        UR                   ["        5      (       d   eUR                   R                  R                  U5        GM*     g 7f)Nr   )rP   rq   rA   rS   rT   _format_date_for_archive_format_path_for_archiver   r   r|   r   r   r   r   r   rE   r   r#   )r3   rA   r   rU   rS   r[   ri   r~   s           r7   ru   BlogPlugin._generate_archive  s     IIOOD;;##++D 00>D00>D ++D1D))$7T" ""4#4#44&kB ,44DN dii11d&11 dii1111IIOO""4(3 $s   EEc              #    #    U R                   R                   GH  nUR                  R                   GH  nU R	                  U5      nU R                  R
                  =(       d    U/nXF;  ar  [        R                  R                  UR                  5      n[        R                  R                  UR                  R                  U5      n[        SU SU SU S35      eUR                  U5      nU(       dA  U R                  XQ5      nUR                  U5        U R!                  UR                  SU 35        ["        R$                  Ul        [)        UR*                  [,        5      (       d  [-        XHU5      v   [)        UR*                  [,        5      (       d   eUR*                  R                  R                  U5        UR                  R                  UR*                  5        GM     GM     g 7f)Nz"Error reading categories of post 'r   z': category 'z' not in allow listr   )rP   rq   rA   rv   _format_path_for_categorycategories_allowedrh   ri   r   r   r~   r   r   r   r   r|   r   r   r   r   rE   r   r$   )	r3   rA   r   rU   r[   ri   rv   r   r~   s	            r7   rw   BlogPlugin._generate_categories-  s    IIOOD..55d; "[[;;Ev
)77??6??;D77??499+A+A4HD%<TF C 6tf4GI  //5--d;DLL& &&t'8'8Btf+F "0!8!8 "$))X66"4v66 "$))X6666		&&t,&&tyy1A / $s   G.G0c              #    #    Uv   U R                   R                  n[        U[        UR                  5      U5       GH  nU R                  USXT-  -   5      nUR                  U5      nU(       dL  U R                  Xb5      nUR                  U5        [        UR                  R                  UR                  5        [        R                  Ul        [        UR                   ["        5      (       d  UR%                  S Xr5      v   [        UR                   ["        5      (       d   eUR&                  UR                   l        UR                  UR                   l        GM!     g 7fNr   )rA   pagination_per_pager   r   rq   _format_path_for_paginationr   r   r|   r   r~   r   r   r   r   rE   r   r(   r6   r{   )r3   r\   rA   r   stepr   ri   r~   s           r7   rz   BlogPlugin._generate_pagesS  s    
 {{..c$**ot4B33D!bj.ID ++D1D))$7T" $))00$2C2CD ,44DN dii..nnT488 dii...."jjDIIO"jjDIIO- 5s   EE!c                   UR                   R                  (       d  g [        R                  R	                  UR
                  5      n[        R                  R	                  UR                  R                  U5      n[        UR                   R                  R                  5       GH  n[        UR                  5      nUR                  (       a  M,  UR                  UR                  5      nU(       d+  [        R                  SU SU SUR                   S35        My  [!        UR"                  [$        5      (       d  UR                  Ul        M  [&        Ul        [!        U[&        5      (       d   eUR*                  =(       d    UR"                  R*                  Ul        UR"                  R                  Ul        [-        UR"                  R.                  5      Ul        UR0                  (       d  GMN  U R2                  (       a  GMb  [5        UR"                  R6                  UR0                  5      n	U	(       dN  [        R                  SU SU SUR0                   SUR                   S3	5        UR9                  5       Ul        GM  U=R                  SU	R:                   3-  sl        U	R*                  UR.                  S'   GM     g )Nz Error reading metadata of post 'r   z ':
Couldn't find file for link 'r   z':
Couldn't find anchor '#subtitle)rA   linksrh   ri   r   r   r~   r   _find_linksr  r   rm   schemer   r   r   rE   r   r   r'   r6   r   r   metafragmentr1   _find_anchortocgeturlid)
r3   rU   rA   r   r   ri   linkrm   r~   anchors
             r7   r   BlogPlugin._generate_linkss  s   {{   wwv/wwtyy55t<   1 1 7 78D488$Czz ++CHH5D6tfF4& I447HH:Q@  dii..88 'DNdI.... 6tyyDJDHdiinn-DI << }} "$))-->F6tfF4& I--0\\N&
!M ::< HH!FII;'H$*LLDIIj!w 9r9   c                    [        X"SS  USS  5       H\  u  p4nXl        X4l        XTl        [	        U[
        5      (       d  M/  U R                  U5      nU(       a  Xcl        U(       d  MV  Xel        M^     g )Nr      )zipr   previous_page	next_pagerE   r(   r   )r3   r   r{   tailr   headr\   s          r7   r   BlogPlugin._attach  sg     #E9eABi @D "(K!%!%N $%%--d3d4d+ !Ar9   c                R    U R                  XR                  X2R                  /5        g rR   )r   r3  r4  )r3   r   hostr   s       r7   r   BlogPlugin._attach_at  s    V00$GHr9   c                B   UR                   Ul         U R                  X5      nUR                  U5        [        S [	        U5       5       5      nUR
                  nUR                  R                  UR                  5        U R                  X%/UR                  QUP5        g )Nc              3  T   #    U  H  n[        U[        5      (       d  M  Uv   M      g 7frR   )rE   r   ).0r  s     r7   	<genexpr>(BlogPlugin._attach_to.<locals>.<genexpr>  s     O_T
48NDD_s   (	()
r   r  r|   r  r   r4  r{   rt   r  r   )r3   r\   sectionr   r  r5  r6  s          r7   r   BlogPlugin._attach_to  s     &&t1W OXe_OO~~ 			))*W=g&6&6==>r9   c                   UR                   S p2U R                  R                  (       a\  UR                  R	                  U5      nU R                  R
                  nXE-  XE-  U-   pvUR                   Xg nU R                  XU45      nU Vs/ s H1  oR                  (       d  M  U R                  UR                  U5      PM3     nnX#4$ s  snf rR   )	rq   rA   rx   r{   indexr  _render_paginationr   _render_post)	r3   r\   rq   rx   r   r  pqrU   s	            r7   r   BlogPlugin._render  s     JJz ;;!!!!$'B ;;22D9bi$.q JJqOE001v>J
 "
!D\\ 2DdllD1! 	 
   
s   	C! Cc                4   UR                  X R                  R                  5        U R                  R                  n[	        U[
        5      (       a  U R                  R                  n[	        U[        5      (       a  U R                  R                  nU(       a  UR                  R                  (       ad  UR                  R                  (       aI  UR                  R                  S   R                  R                  UR                  R                  S   5        U$ r  )renderrA   r   rH   rE   r#   rF   r$   rI   r*  r  r  r|   )r3   r   r\   r*  s       r7   rE  BlogPlugin._render_post  s    t[[??@ kk""dG$$++))CdH%%++,,C 7;;$$HHNN1&&--gkk.?.?.BC r9   c                V   ^ Uu  p4SU4S jjn[        TR                  XDU-
  -  XC-
  US9$ )Nc                d   > [        TR                  U S-
     R                  TR                  5      $ r  )r   r{   rm   )nr\   s    r7   	url_maker0BlogPlugin._render_pagination.<locals>.url_maker  s'    #DJJq1u$5$9$9488DDr9   )r   items_per_pagerO  )rN  int)
Paginationrq   )r3   r\   r   rF  rG  rO  s    `    r7   rD  BlogPlugin._render_pagination  s6    	E JJqU|U!
 	
r9   c                   UR                   R                  S U R                   R                   nU Vs/ s H  o@R                  U5      PM     nnUR                   R                  R
                  nU R                   R                  R                  SR                  U5      U R                  XR5      UR                  R                  UR                   R                  =(       d    U R                  U5      S9n[        R                  " UR!                  S5      5      n[        R                  " U R                   R"                  U S35      $ s  snf )N/)rv   rS   r~   slug.md)rA   rv   post_url_max_categories_slugify_categoryrS   rT   post_url_formatrb   rj   _format_date_for_post_urlr~   r[   rW  _slugify_postr]   r^   stripr_   )r3   rU   rA   rv   r[   rS   ri   s          r7   r    BlogPlugin._format_path_for_post*  s    [[++,PT[[-P-PQ
?IJzt,,T2z
J {{''{{**11*-11$?99>>;;##?t'9'9$'?	 2 
 !!$**S/2~~dkk22tfCLAA Ks   Ec                L   UR                   R                  R                  nU R                   R                  R	                  U R                  X25      S9n[        R                  " UR                  S5      5      n[        R                  " U R                   R                  U S35      $ )N)rS   rV  rX  )rA   rS   rT   archive_url_formatrb   _format_date_for_archive_urlr]   r^   r^  rj   r_   )r3   rU   rA   rS   ri   s        r7   r  #BlogPlugin._format_path_for_archive<  s    {{''{{--4444TB 5 

 !!$**S/2~~dkk22tfCLAAr9   c                   U R                   R                  R                  U R                  U5      S9n[        R
                  " UR                  S5      5      n[        R                  " U R                   R                  U S35      $ )N)rW  rV  rX  )	rA   categories_url_formatrb   rZ  r]   r^   r^  rj   r_   )r3   r[   ri   s      r7   r  $BlogPlugin._format_path_for_categoryG  sj    {{0077))$/ 8 

 !!$**S/2~~dkk22tfCLAAr9   c                   U R                   R                  R                  US9n[        R                  " UR
                  R                  5      u  pEUR                  (       a-  [        R                  " U5      n[        R                  " US5      n[        R                  " UR                  S5      5      n[        R                  " XC S35      $ )N)r   rC  rV  rX  )rA   pagination_url_formatrb   r]   splitextr~   rd   is_indexdirnamerj   r^   r^  )r3   r\   r   ri   baser   s         r7   r  &BlogPlugin._format_path_for_paginationQ  s    {{0077 8 
 $$TYY%6%67==$$T*D>>$0D !!$**S/2~~dfCL11r9   c                t    UR                   S   R                  SS5      nUS;   a
  [        XUS9$ [        XUS9$ )Nlanguage-r   )fulllongmediumshort)rb   locale)themerg   r   r   )r3   rS   rb   rA   ru  s        r7   _format_dateBlogPlugin._format_datei  s@    ll:.66sC@88tvFF"46JJr9   c                R    U R                   R                  nU R                  XU5      $ rR   )rA   post_date_formatrw  r3   rS   rA   rb   s       r7   r    BlogPlugin._format_date_for_postq  s$    --  v66r9   c                R    U R                   R                  nU R                  XU5      $ rR   )rA   post_url_date_formatrw  r{  s       r7   r\  $BlogPlugin._format_date_for_post_urlv  s$    11  v66r9   c                R    U R                   R                  nU R                  XU5      $ rR   )rA   archive_date_formatrw  r{  s       r7   r  #BlogPlugin._format_date_for_archive{  s$    00  v66r9   c                R    U R                   R                  nU R                  XU5      $ rR   )rA   archive_url_date_formatrw  r{  s       r7   rb  'BlogPlugin._format_date_for_archive_url  s$    44  v66r9   c                z    U R                   R                  nU R                   R                  UR                  U5      $ rR   )rA   post_slugify_separatorpost_slugifyr   )r3   rU   r   s      r7   r]  BlogPlugin._slugify_post  s,    KK66	{{''

I>>r9   c                d    U R                   R                  nU R                   R                  X5      $ rR   )rA   categories_slugify_separatorcategories_slugify)r3   r[   r   s      r7   rZ  BlogPlugin._slugify_category  s&    KK<<	{{--d>>r9   r   c                   UR                  S5      (       d   e[        UU(       d  UR                  OU R                  UR                  UR
                  5      nU(       a  SUl        U$ )NrX  zmaterial/blog)endswithr   r   r2   r`   use_directory_urlsgenerated_by)r3   ri   rA   r   r~   s        r7   r   BlogPlugin._path_to_file  sW    }}U#####'FOOT]]OO%%	
  /D r9   c                    [         R                  " [         R                  R                  U5      SS9  [	        USSS9 nUR                  U5        S S S 5        g ! , (       d  f       g = f)NTr   r  zutf-8r   )rh   r   ri   rk  r   write)r3   ri   contentr  s       r7   r   BlogPlugin._save_to_file  sC    
BGGOOD)d;$0AGGG 100s   A
A'c                    UR                   R                  5       nUR                  SSU0S9nUR                  R	                  U5      $ )Nzpartials/language.htmlrA   )globals)rv  get_envget_templatemodulet)r3   rX   rA   r   templates        r7   r   BlogPlugin._translate  sJ    ll""$##$(F0D $ 

   %%r9   )rC   rP   r1   r0   r2   )rU   r&   )r   r   rA   r   )r~   r   rA   r   )rA   r   )r\   r(   )r  r   r   r   )r   r   )rA   r   r   r   )r\   r(   rA   r   r   r   )rU   r&   rA   r   r   r   )r   r   r{   z
list[Page])r   r   r9  r   r   r   )r\   r(   r@  r   r   r   )r   r%   r\   r(   )r\   r(   r   ztuple[int, int])rU   r&   rA   r   )r[   str)r\   r(   r   rR  )rS   r   rb   r  rA   r   )rS   r   rA   r   )ri   r  rA   r   )ri   r  r  r  )rX   r  rA   r   returnr  )2__name__
__module____qualname____firstlineno__supports_multiple_instancesr/   r>   rL   r   r   r   r   r   r   r   r   r   rn   r   rp   rD   ry   r  r   ru   rw   rz   r   r   r   r   r   rE  rD  r   r  r  r  rw  r   r\  r  rb  r]  rZ  r   r   r   __static_attributes____classcell__)r6   s   @r7   r*   r*   :   sJ   "&"
%< C5; 5;v C/G /Gj C:C :CzH "9P D> >4'&(*$8&R)<"2L)@E1V3"I
?,!2,
"B$BB20K7
7
7
7?
? HL (& &r9   r*   c              #     #    U  Hj  n[        U[        5      (       a  Uv   [        U[        5      (       d  M3  [        UR                  5       H  n[        U[        5      (       d   eUv   M      Ml     g 7frR   )rE   r   r   r%  r  )r  r  s     r7   r%  r%    s]      dD!!J dG$$#DMM2!$----
 3 s
   2A4<A4c                    U  HF  nUR                   U:X  a  Us  $ [        UR                  U5      n[        U[        5      (       d  MD  Us  $    g rR   )r,  r)  r  rE   r   )r*  r,  r.  s      r7   r)  r)    s@    99?M foor2fj))M r9   zmkdocs.material.blog)r  zlist[StructureItem])r*  r   r,  r  )C
__future__r   loggingrh   r]   r   babel.datesr   r   r   r   r   jinja2r	   jinja2.runtimer
   mkdocs.config.defaultsr   mkdocs.exceptionsr   mkdocs.pluginsr   r   mkdocs.structurer   mkdocs.structure.filesr   r   r   mkdocs.structure.navr   r   r   mkdocs.structure.pagesr   mkdocs.structure.tocr   r   mkdocs.utilsr   r   paginaterS  shutilr   tempfiler   urllib.parser   r   authorr    rA   r!   r"   	structurer#   r$   r%   r&   r'   r(   r*   r%  r)  	getLoggerr   r   r9   r7   <module>r     s   * #  	   4  '  " / ) 5 * > > : : ' < 4 '   !     H H}&J' }&H ./r9   