
    wj                     j   d Z ddlZddlZddlZddlZddlmZ  ee                                          j	        j	        Z
ej                            d e ee          j	                             ddlmZ e
dz  Ze
dz  Z ej        d          Zd Zd	 Zd
 Zd Zd Zedk    r e             dS dS )u  Gera site/dados.js a partir de:
    indice.json + livros/**.md   (saída do processar_wiki.py — conteúdo original com imagens locais)
    scripts/assuntos.py          (organização por assunto)
    conteudo/<artigo>.md         (texto otimizado, opcional)

Uso:  python scripts/gerar_site.py
Depois: python -m http.server 8000  (na pasta base-sac)  e abra http://localhost:8000/site/
    N)Path)ASSUNTOSsiteconteudoz(!\[[^\]]*\]\()([^)\s]+)(\))c                     t          j        t          dz                      d                    } i i }}| d         D ]L}|d                             d                              d          d         }|                    | dg           }|d	         D ]}d
|v r|d
         n|g}|                    d          }|r4|d                             d                              d          d         nd}	|D ]}
| d|
d                             d                              d          d          }i |
|d         |d||<   |                    |           |r.|                    | d|	 g                               |           N||fS )uL   Retorna páginas em ordem: {chave: info} e capítulos {livro/cap: [chaves]}.zindice.jsonutf-8encodinglivrosurl/z/*itenspaginascapituloNz/page/   nome)livror   )	jsonloadsBASE	read_textrstripsplit
setdefaultgetappend)idxr   	capitulosr   lslugtodasitemlistacapcslugpchaves               XC:\Users\jhona\OneDrive\Documentos\base conhecimentos sac\base-sac\scripts\gerar_site.py
ler_indicer)      s   
*d]*55w5GG
H
HCRYGX O Oe##C((..s33B7$$\\\266'N 		O 		OD'0D'8DDOOtfE((:&&C>AKDK&&s++11#66r::tE O O LL1U8??3#7#7#=#=h#G#G#JLL!OA!Of3!O!O!OU### O((E););E););R@@GGNNNO			O I    c                 z   t           | d         z                      d          }t          j        dd|dt          j                                                  }t          j        dd|d	                                          }t          j        d
d|          }fd}t                              ||          S )Narquivor   r	   z^---\n.*?\n---\n r   )countflags^# .*\nr.   z;<div drawio-diagram[^>]*>\s*(!\[[^\]]*\]\([^)]*\))\s*</div>z
\n\n\1\n\nc                    |                      d          }|                    d          r|                      d          S j        |z                                  }|                      d          t	          t
          j                            |t                              	                                z   |                      d          z   S )N   )httpzdata:r   r      )
group
startswithparentresolver   ospathrelpathSITEas_posix)mcaminhoabsolutoarqs      r(   convzmd_original.<locals>.conv5   s    ''!**/00 	771::J(1133wwqzzD4!@!@AAJJLLLqwwWXzzYYr*   )r   r   resubSlstripstripIMG_RE)infotxtrC   rB   s      @r(   md_originalrL   ,   s    
i
 C
---
)
)C
&$b#Qbd
C
C
C
J
J
L
LC
&RA
.
.
.
4
4
6
6C
&OQ^`c
d
dCZ Z Z Z Z ::dC   r*   c                     t          j        dd|           }t          j        dd|          }t          j        dd|          }t          j        dd|                                          S )Nz!\[[^\]]*\]\([^)]*\) z<[^>]+>z[#*_>`|\[\]()-]+z\s+)rD   rE   rH   )mdts     r(   texto_buscarQ   >   s]    
&R00A
z3""A
"C++A6&#q!!'')))r*   c                  &   t                      \  } t                      g }g }t          D ]3}g }|d         D ]\  }}}g }|D ]}	|	                    d          rA|                     |	dd                    }
|
s|                    d| d|	            R||
z  }X|	v r|                    |	           r|                    d| d|	            t          t                              |                    }	                    |           |                    t          |||                     |                    |d         |d         |d	         |d
           5fdD             }|r&|                    dddfd|D             d
           t                              d           dt          j        d|id          z   dz   }t          dz                      |d           t!          d |D                       }t!          d |D                       }t#          dt%          |           d| d| dt%                     d t%                     
           |D ]}t#          d!|           |D ]}t#          d"|           d S )#Nartigoszcap:   [u   ] capítulo não encontrado: u   ] página não encontrada: idr   icone)rV   r   rW   rS   c                     g | ]}|v|	S  rY   ).0kusadass     r(   
<listcomp>zmain.<locals>.<listcomp>_   s"    444AAVO4a444r*   outrosOutrosu   📁c           	      |    g | ]8}t          d |                    dd          z   |         d         |g          9S )zoutro-r   -titulo)montar_artigoreplace)rZ   r[   r   s     r(   r]   zmain.<locals>.<listcomp>b   s_      "E  "E  "Exy-199S#;N;N0NPWXYPZ[cPdghfikr"s"s  "E  "E  "Er*   T)exist_okzwindow.BASE_SAC = assuntosF)ensure_asciiz;
zdados.jsr   r	   c              3   @   K   | ]}t          |d                    V  dS )rS   N)len)rZ   as     r(   	<genexpr>zmain.<locals>.<genexpr>h   s.      11aAiL!!111111r*   c              3   @   K   | ]}|d          D ]}|d         
dV  dS )rS   	otimizador   NrY   )rZ   rj   xs      r(   rk   zmain.<locals>.<genexpr>i   s<      IIa!I,IIQ!K.IIIIIIIIr*   z
Assuntos: z  Artigos: z  Otimizados: u     Páginas usadas: r   zAVISO:zSEM ASSUNTO:)r)   setr   r7   r   r   listdictfromkeysupdaterc   r=   mkdirr   dumps
write_textsumprintri   )r   saidaavisosassuntoartsart_idrb   fonteschavesfonter#   sobrasjsn_artn_revrj   sr   r\   s                    @@r(   mainr   E   sK   #GYUUFEF q q&-i&8 	H 	H"FFFF 
R 
R##F++ 	R%MM%)44E  !&V&&V&Vu&V&VWWW eOFFg% RMM%((((MM"Pf"P"P"P"PQQQQ$--//00FMM&!!!KKfffgFFGGGGGDM76?WU\M]jnoopppp4444444F GHh "E  "E  "E  "E  ~D  "E  "E  "EF F 	G 	G 	G 	JJJ	
J+>U S S S	SV[	[B	J""2"88811511111EII5IIIIIE	
ys5zz
y
ye
y
y5
y
y]`ag]h]h
y
yknovkwkw
y
yzzz  h ! !na    ! !r*   c           
      >   g }|D ]J}||         }|                     |d         |d         |d         |d         t          |          d           Kt          |  dz  }d }|                                rn|                    d                                          }t          j        d	d
|d                                          }t                              d |          }t          |pd
                    d |D                                 }	| ||||	d d         dS )Nrb   r   r   r   )rb   r   r   r   rO   z.mdr   r	   r0   r-   r   r1   c           	         |                      d          |                      d                              d          r|                      d          npt          t          j                            t          |                      d          z                                  t                              	                                z   |                      d          z   S )Nr   r3   r4   r5   )
r6   r7   r   r:   r;   r<   CONTEUDOr9   r=   r>   )r?   s    r(   <lambda>zmontar_artigo.<locals>.<lambda>}   s    QWWQZZEZEZ[aEbEb 8iqwwqzzz#BGOOX

5J4S4S4U4UW[$\$\]]ffhh*jlmlslstulvlv*w r*   rN   c              3   &   K   | ]}|d          V  dS )rO   NrY   )rZ   fs     r(   rk   z montar_artigo.<locals>.<genexpr>   s&      -F-F!ag-F-F-F-F-F-Fr*   ip  )rV   rb   rm   r~   busca)r   rL   r   existsr   rH   rD   rE   rI   rQ   join)
r}   rb   r   r   r~   r[   rJ   otimrm   r   s
             r(   rc   rc   q   sQ   F E Eqzh$w-UYZdUe"5kT1B1BD D 	E 	E 	E 	Ennn$DI{{}} CNNGN44::<<	F:r9A>>>DDFF	JJ  w  w yBC C		FSXX-F-Fv-F-F-F%F%FGGEFf_dejfjej_klllr*   __main__)__doc__r   r:   rD   syspathlibr   __file__r9   r8   r   r;   insertstrrf   r   r=   r   compilerI   r)   rL   rQ   r   rc   __name__rY   r*   r(   <module>r      s?     				 				 



      tH~~&- 33ttH~~,-- . . .      f}*	3	4	4  (! ! !$* * *)! )! )!Xm m m$ z DFFFFF r*   