
    ͆hn                       S SK J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
  S SK	Jr  S SKJr  S SKJr  \(       a  S S	KJr  S S
KJr  S SKJr  \R.                  " \5      r\R4                  R7                  \R4                  R9                  \5      5      r " S S\R>                  \\       5      r! " S S\
RD                  5      r# " S S\\#   5      r$g)    )annotationsN)TYPE_CHECKINGList)utils)base)config_options)SearchIndex)
BasePlugin)MkDocsConfig)Page)TemplateContextc                  (    \ rS rSrSrS rSS jrSrg)
LangOption   z<Validate Language(s) provided in config are known languages.c           
        SS0nUR                  S5       Hs  nUR                  5       nUR                  X35      n[        R                  R                  [        R                  R                  [        SSU S35      5      (       d  Mq  Us  $    g )Nukru_lunr-languagelunr..js)splitlowergetospathisfilejoin	base_path)selflangfallback	lang_parts       V/opt/services/DDDS/venv/lib/python3.13/site-packages/mkdocs/contrib/search/__init__.pyget_lunr_supported_lang"LangOption.get_lunr_supported_lang   sk    $<CI!)I Y:Iww~~bggll9oykY\G]^__  	 )    c                   [        U[        5      (       a  U/n[        U[        5      (       d  [        R                  " S5      eUS S   H  nUS:w  d  M  U R                  U5      nU(       dE  [        R                  SU S35        UR                  U5        SU;  a  UR                  S5        Mf  Mh  X2:w  d  Mo  UR                  U5        UR                  U5        [        R                  SU SU S35        M     U$ )Nz"Expected a list of language codes.enzOption search.lang 'z(' is not supported, falling back to 'en'z' switched to '')

isinstancestrlistcValidationErrorr%   loginforemoveappend)r    valuer!   lang_detecteds       r$   run_validationLangOption.run_validation"   s    eS!!GE%&&##$HII!HDt| $ < <T B$HH3D69abcLL&5(T* )"*LL&LL/HH3D6WXYZ  r'    N)r4   object)__name__
__module____qualname____firstlineno____doc__r%   r6   __static_attributes__r8   r'   r$   r   r      s    F!r'   r   c                      \ rS rSr\R
                  " \" 5       5      r\R                  " \	SS9r
\R                  " \SS9r\R                  " SSS9r\R                  " SSS9rS	rg
)_PluginConfig6   z[\s\-]+)default   )FTnodepythonF)fullsectionstitlesrG   r8   N)r:   r;   r<   r=   r.   Optionalr   r!   Typer,   	separatorintmin_search_lengthChoiceprebuild_indexindexingr?   r8   r'   r$   rA   rA   6   sU    ::jl#DsJ/IsA.XX=uMNxx6GHr'   rA   c                  @    \ rS rSrSrS	S jrS
S jrSS jrS
S jrSr	g)SearchPlugin>   zAdd a search feature to MkDocs.c                   UR                   R                  S5      (       a%  UR                   R                  R                  S5        UR                   R                  S5      (       dt  [        R
                  R                  [        S5      nUR                   R                  R                  U5        SUR                  ;  a  UR                  R                  S5        U R                  R                  cO  [        R                  R                  nU" UR                   R                  R                   5      U R                  l        U R                  R"                  S:X  a  [$        R'                  S5        U$ )z+Add plugin templates and scripts to config.include_search_pagezsearch.htmlsearch_index_only	templateszsearch/main.jsrF   zThe 'python' method of the search plugin's 'prebuild_index' config option is pending deprecation and will not be supported in a future release.)themer   static_templatesaddr   r   r   r   dirsr3   extra_javascriptconfigr!   rA   r6   localelanguagerP   r0   r1   )r    r^   kwargsr   validates        r$   	on_configSearchPlugin.on_configA   s   <<122LL))--m<|| 34477<<	;7DLL$$T*v'>'>>''../?@;;#$))88H'(;(;(D(DEDKK ;;%%1HHX r'   c                8    [        S0 U R                  D6U l        g)z+Create search index instance for later use.Nr8   )r	   r^   search_index)r    r^   ra   s      r$   on_pre_buildSearchPlugin.on_pre_buildW   s    '6$++6r'   c                :    U R                   R                  U5        g)zAdd page to search index.N)rf   add_entry_from_context)r    contextpagera   s       r$   on_page_contextSearchPlugin.on_page_context[   s    006r'   c                Z   [         R                  R                  UR                  S5      nU R                  R                  5       n[         R                  R                  US5      n[        R                  " UR                  S5      U5        U R                  R                  c   eUR                  R                  S5      (       Gdg  / n[        U R                  R                  5      S:  d  SU R                  R                  ;  a  UR                  S5        [        U R                  R                  5      S:  a  UR                  S	5        S
U R                  R                  ;   d  SU R                  R                  ;   a  UR                  S5        U R                  R                   H   nUS:w  d  M  UR                  SU S35        M"     U H]  n[         R                  R                  [        SU5      n	[         R                  R                  X85      n
[        R                   " X5        M_     gg)zBuild search index.searchzsearch_index.jsonzutf-8NrW      r)   zlunr.stemmer.support.jszlunr.multi.jsjajpz
tinyseg.jsr   r   r   )r   r   r   site_dirrf   generate_search_indexr   
write_fileencoder^   r!   rY   r   lenr3   r   	copy_file)r    r^   ra   output_base_pathrf   json_output_pathfilesr!   filename	from_pathto_paths              r$   on_post_buildSearchPlugin.on_post_build_   s   77<<B((>>@77<<(8:MN,,W57GH{{+++|| 344 E4;;##$q(D8H8H,H674;;##$q(_-t{{'''44;;3C3C+C\*((4<LL5c!23 ) "GGLLOXN	'',,'7B	3 " 5r'   )rf   N)r^   r   returnr   )r^   r   r   None)rk   r   rl   r   r   r   )
r:   r;   r<   r=   r>   rc   rg   rm   r   r?   r8   r'   r$   rS   rS   >   s    ),774r'   rS   )%
__future__r   loggingr   typingr   r   mkdocsr   mkdocs.configr   r   r.   "mkdocs.contrib.search.search_indexr	   mkdocs.pluginsr
   mkdocs.config.defaultsr   mkdocs.structure.pagesr   mkdocs.utils.templatesr   	getLoggerr:   r0   r   dirnameabspath__file__r   OptionallyRequiredr,   r   ConfigrA   rS   r8   r'   r$   <module>r      s    "  	 &   - : %3+6 !GGOOBGGOOH56	%%d3i0 >HDKK H:4:m, :4r'   