Files
XCEngine/docs/api/_tools/__pycache__/fix_links.cpython-313.pyc

44 lines
8.0 KiB
Plaintext
Raw Normal View History

2026-03-26 16:45:24 +08:00
<EFBFBD>
<14><>iB<00><00><><00>SrSSKrSSKrSSKJr \"\5R 5Rr\RS:Xa \RO\r
Sr Sr Sr SrS S jrS
r\S :Xa\"5 gg) z3
Fix broken cross-references in API documentation.
<EFBFBD>N)<01>Path<74>_toolsc<00><><00>/nURSS5RS5H"nUS:XdUS:XaMURU5 M$ SRU5$)z7Remove duplicate path segments like ./module/./module/.<2E>\<5C>/<2F>.<2E>)<04>replace<63>split<69>append<6E>join)<03>path_str<74>parts<74>parts <20>docs\api\_tools\fix_links.py<70>normalize_pathrsU<00><00> <0E>E<EFBFBD><18> <20> <20><14>s<EFBFBD>+<2B>1<>1<>#<23>6<><04> <0F>3<EFBFBD>;<3B>$<24>"<22>*<2A> <14> <0A> <0C> <0C>T<EFBFBD><1A>7<> <0F>8<EFBFBD>8<EFBFBD>E<EFBFBD>?<3F><1A>c<00><><00>[U5nURn[U5nX#- R5nX!R SS5- R5nXE4$)zIResolve a reference path relative to current file and check if it exists.rr)r<00>parentr<00>resolver
)<06> current_file<6C>ref_path<74>
parent_dir<EFBFBD>normalized_ref<65>resolved<65> resolved2s r<00>resolve_referencers_<00><00><17> <0C>%<25>L<EFBFBD><1D>$<24>$<24>J<EFBFBD>$<24>H<EFBFBD>-<2D>N<EFBFBD><1B>+<2B>4<>4<>6<>H<EFBFBD><1C>.<2E>.<2E>t<EFBFBD>S<EFBFBD>9<>9<>B<>B<>D<>I<EFBFBD> <13> <1E>rc<00>L<00>[U5n[U5nURnURnSn[[[ U5[ U555HnX%X5:XaUS-nM O [ U5U-
S-
nS/U-[ X4S5-nSR U5$)z3Get correct relative path from one file to another.r<00>z..Nr)rr<00>range<67>min<69>len<65>listr )<08> from_file<6C>to_file<6C>
from_parts<EFBFBD>to_parts<74>
common_len<EFBFBD>i<>up_countrs r<00>get_relative_pathr+)s<><00><00><14>Y<EFBFBD><0F>I<EFBFBD><12>7<EFBFBD>m<EFBFBD>G<EFBFBD><1B><1F><1F>J<EFBFBD><16>}<7D>}<7D>H<EFBFBD><13>J<EFBFBD> <12>3<EFBFBD>s<EFBFBD>:<3A><EFBFBD><03>H<EFBFBD> <0A>6<> 7<><01> <15>=<3D>H<EFBFBD>K<EFBFBD> '<27><1A>Q<EFBFBD><15>J<EFBFBD> <11> 8<><13>:<3A><EFBFBD><1A>+<2B>a<EFBFBD>/<2F>H<EFBFBD> <11>F<EFBFBD>X<EFBFBD> <1D><04>X<EFBFBD>k<EFBFBD>%:<3A> ;<3B> ;<3B>E<EFBFBD> <0E>8<EFBFBD>8<EFBFBD>E<EFBFBD>?<3F>rc<00><><00>[U5n[nSU3n[URU55nUHnURU:XdMUs $ g)z2Find a file with given name in the base directory.z**/N)r<00> API_DOCS_ROOTr#<00>glob<6F>name)<06> target_name<6D>base_dir<69>api_docs<63>pattern<72>matches<65>matchs r<00>find_file_by_namer6AsS<00><00><13>H<EFBFBD>~<7E>H<EFBFBD><1C>H<EFBFBD><14>K<EFBFBD>=<3D>!<21>G<EFBFBD><12>8<EFBFBD>=<3D>=<3D><17>)<29>*<2A>G<EFBFBD><19><05> <10>:<3A>:<3A><1B> $<24><18>L<EFBFBD><19> rc<00><>^^^<08>[T5mTR5(d/$[TSSS9nUR5mSSS5 Tn/mSnUUU4Sjn[R
"XET5nXc:wa'[TSSS9nUR U5 SSS5 T$T$!,(df  Na=f!,(df  T$=f)z'Analyze and fix links in a single file.<2E>rzutf-8)<01>encodingNz\[([^\]]*)\]\(([^)]+\.md)\)c <00>><03>URS5nURS5nURS5(dURS5(aURS5$URS5(aURS5$[U5nT RnXBR SS5- nUR 5nU(dXC- nUR 5nU(d<>[ U5Rn[U[5nU(aU[T U5n X<>:waCT RT T
SUR5RS 5S-UU US
.5 S US U S 3$O<>T RT T
SUR5RS 5S-USSSS.5 URS5$X2:waCT RT T
SUR5RS 5S-UUUS
.5 S US US 3$URS5$)Nr<00>zhttp://zhttps://r<00>#rr<00>
)<05>file<6C>line<6E>old<6C>new<65>target<65>[z](<28>)zTarget file not found)r>r?r@rArB<00>error)<0E>group<75>
startswithrrr
<00>existsrr/r6r-r+r <00>start<72>count) r5<00> link_text<78> link_path<74>
normalizedr<00> target_path<74> target_exists<74>filename<6D>found<6E> correct_rel<65>content<6E> file_path<74>fixess <20><><EFBFBD>r<00> replace_link<6E>'fix_links_in_file.<locals>.replace_linkbs<00><><00><19>K<EFBFBD>K<EFBFBD><01>N<EFBFBD> <09><19>K<EFBFBD>K<EFBFBD><01>N<EFBFBD> <09> <15> <1F> <1F> <09> *<2A> *<2A>i<EFBFBD>.B<>.B<>:<3A>.N<>.N<><18>;<3B>;<3B>q<EFBFBD>><3E> !<21> <15> <1F> <1F><03> $<24> $<24><18>;<3B>;<3B>q<EFBFBD>><3E> !<21>$<24>I<EFBFBD>.<2E>
<EFBFBD><1F>%<25>%<25>
<EFBFBD>!<21>#4<>#4<>T<EFBFBD>3<EFBFBD>#?<3F>?<3F> <0B>#<23>*<2A>*<2A>,<2C> <0A><1C>$<24>1<>K<EFBFBD>'<27>.<2E>.<2E>0<>M<EFBFBD><1C><1C>J<EFBFBD>'<27>,<2C>,<2C>H<EFBFBD>&<26>h<EFBFBD> <0A>><3E>E<EFBFBD><14>/<2F> <09>5<EFBFBD>A<> <0B><1E>,<2C><19>L<EFBFBD>L<EFBFBD>$-<2D>$+<2B>O<EFBFBD>e<EFBFBD>k<EFBFBD>k<EFBFBD>m<EFBFBD>$<<3C>$B<>$B<>4<EFBFBD>$H<>1<EFBFBD>$L<>#,<2C>#.<2E>&+<2B> <1A><16><1F>y<EFBFBD>k<EFBFBD><12>K<EFBFBD>=<3D><01>:<3A>:<3A>-<2D><16> <0C> <0C> )<29> '<27><0F>%<25>+<2B>+<2B>-<2D> 8<> ><3E> ><3E>t<EFBFBD> D<>q<EFBFBD> H<>(<28>#<23>"&<26>!8<> <16> <12><1D>{<7B>{<7B>1<EFBFBD>~<7E>%<25> <17> $<24> <11>L<EFBFBD>L<EFBFBD>%<25>#<23>O<EFBFBD>e<EFBFBD>k<EFBFBD>k<EFBFBD>m<EFBFBD>4<>:<3A>:<3A>4<EFBFBD>@<40>1<EFBFBD>D<>$<24>%<25>)<29> <12> <0E><17>y<EFBFBD>k<EFBFBD><12>J<EFBFBD><<3C>q<EFBFBD>1<> 1<><14>{<7B>{<7B>1<EFBFBD>~<7E>r<00>w)rrH<00>open<65>read<61>re<72>sub<75>write) rT<00>verbose<73>f<>original_content<6E> link_patternrV<00> new_contentrSrUs ` @@r<00>fix_links_in_filercRs<><00><><00><14>Y<EFBFBD><0F>I<EFBFBD> <14> <1B> <1B> <1D> <1D><11> <09> <0A>i<EFBFBD><13>w<EFBFBD> /<2F>1<EFBFBD><13>&<26>&<26>(<28><07>
0<EFBFBD><1F><14> <0E>E<EFBFBD>2<>L<EFBFBD>I<1E>V<15>&<26>&<26><1C>W<EFBFBD>=<3D>K<EFBFBD><12>&<26> <11>)<29>S<EFBFBD>7<EFBFBD> 3<>q<EFBFBD> <0A>G<EFBFBD>G<EFBFBD>K<EFBFBD> <20>4<> <11>L<EFBFBD>5<EFBFBD>L<EFBFBD>u
0<EFBFBD> /<2F><>n4<> 3<> <11>L<EFBFBD>s<00>B<03>?B.<03>
B+<07>.
B=c<00><><00>[S5 [S5 [S5 [[RS55n[S[ U5S[35 /n/nUHPn[ USS9nUH=nUR S5(aURU5 M,URU5 M? MR [S S35 [S
5 [S5 U(acUH\nUS R[5n[S U35 [S US35 [SUS35 [SUS35 M^ O [S5 [S S35 [S5 [S5 U(aRUHKnUS R[5n[S U35 [S US35 [SUS35 MM O [S5 [S S35 [S5 [S[ U535 [S[ U535 [S5 [ U5[ U54$)NzF======================================================================z'API Documentation Cross-Reference Fixerz**/*.mdz
Found z markdown files in F)r^rEr=zFIXES APPLIED:r>z
File: z Line: r?z Old: r@z New: rAz
No fixes needed.z-BROKEN REFERENCES (target files don't exist):z Broken ref: z
No broken references found.zSUMMARY:z Total fixes applied: z Broken references: ) <09>printr#r-r.r"rc<00>getr <00> relative_to)<08>md_files<65> all_fixes<65> broken_refs<66>md_filerU<00>fix<69>rel_file<6C>refs r<00>mainro<00>s<00><00> <09>(<28>O<EFBFBD> <09>
3<EFBFBD>4<> <09>(<28>O<EFBFBD><14>M<EFBFBD>&<26>&<26>y<EFBFBD>1<>2<>H<EFBFBD> <09>H<EFBFBD>S<EFBFBD><18>]<5D>O<EFBFBD>#6<>}<7D>o<EFBFBD>
F<EFBFBD>G<><12>I<EFBFBD><14>K<EFBFBD><1B><07>!<21>'<27>5<EFBFBD>9<><05><18>C<EFBFBD><12>w<EFBFBD>w<EFBFBD>w<EFBFBD><1F><1F><1B>"<22>"<22>3<EFBFBD>'<27><19> <20> <20><13>%<25> <19><1C>
<EFBFBD>B<EFBFBD>x<EFBFBD>j<EFBFBD>/<2F><1A> <09>
<1A><1B> <09>(<28>O<EFBFBD><10><1C>C<EFBFBD><1A>6<EFBFBD>{<7B>.<2E>.<2E>}<7D>=<3D>H<EFBFBD> <11>J<EFBFBD>x<EFBFBD>j<EFBFBD>)<29> *<2A> <11>H<EFBFBD>S<EFBFBD><16>[<5B>M<EFBFBD>*<2A> +<2B> <11>H<EFBFBD>S<EFBFBD><15>Z<EFBFBD>L<EFBFBD>)<29> *<2A> <11>H<EFBFBD>S<EFBFBD><15>Z<EFBFBD>L<EFBFBD>)<29> *<2A> <1D> <0E>$<24>%<25> <09>B<EFBFBD>x<EFBFBD>j<EFBFBD>/<2F><1A> <09>
9<EFBFBD>:<3A> <09>(<28>O<EFBFBD><12><1E>C<EFBFBD><1A>6<EFBFBD>{<7B>.<2E>.<2E>}<7D>=<3D>H<EFBFBD> <11>J<EFBFBD>x<EFBFBD>j<EFBFBD>)<29> *<2A> <11>H<EFBFBD>S<EFBFBD><16>[<5B>M<EFBFBD>*<2A> +<2B> <11>N<EFBFBD>3<EFBFBD>u<EFBFBD>:<3A>,<2C>/<2F> 0<> <1F> <0E>/<2F>0<> <09>B<EFBFBD>x<EFBFBD>j<EFBFBD>/<2F><1A> <09>H<EFBFBD><16> <09> #<23>C<EFBFBD> <09>N<EFBFBD>#3<>
4<EFBFBD>5<> <09> !<21>#<23>k<EFBFBD>"2<>!3<>
4<EFBFBD>5<> <09>(<28>O<EFBFBD> <0E>y<EFBFBD>><3E>3<EFBFBD>{<7B>+<2B> +<2B>+r<00>__main__)T)<12>__doc__<5F>osr[<00>pathlibr<00>__file__rr<00>
SCRIPT_DIRr/r-rrr+r6rcro<00>__name__<5F>rr<00><module>rxsz<00><01><04>
<EFBFBD> <09><18> <11>(<28>^<5E> #<23> #<23> %<25> ,<2C> ,<2C>
<EFBFBD>%/<2F>_<EFBFBD>_<EFBFBD><08>%@<40>
<EFBFBD>!<21>!<21>j<EFBFBD> <0A><1B><1F>"<1B>0<10>"a<11>H5,<2C>p <0C>z<EFBFBD><19><08>F<EFBFBD>r