From 3026b7dc692a1d8b0d703f673949d6e300bab79b Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Thu, 21 May 2026 23:27:53 +0200 Subject: [PATCH 01/48] Ensure logo is transparent Signed-off-by: Philippe Ombredanne --- .../static/img/AboutCode-logo-stackedv3.png | Bin 31420 -> 36672 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/website/static/img/AboutCode-logo-stackedv3.png b/website/static/img/AboutCode-logo-stackedv3.png index 8d98e5084e7c427ea583c51c69a3d10e8f80cead..86897db8268ee576ab942bbdeef3b554eac86e91 100644 GIT binary patch literal 36672 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%0D{!;=LLIbdb3vVjMGJ(wKGlkLr{Xr)(W5o# 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 literal 31420 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

jJ{2;)481n}6ww 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 E1G Date: Thu, 21 May 2026 23:29:24 +0200 Subject: [PATCH 02/48] Use darker navbar for contrast Otherwise a transparent logo is hard to view Signed-off-by: Philippe Ombredanne --- website/src/css/custom.css | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/website/src/css/custom.css b/website/src/css/custom.css index 5fba515..8652521 100644 --- a/website/src/css/custom.css +++ b/website/src/css/custom.css @@ -6,13 +6,18 @@ margin-right: 0; } +.navbar__logo img { + height: 32px; + width: auto; +} + /* Consolidate navbar and sidebar CSS. */ .navbar--dark { - --ifm-navbar-background-color: #375298; + --ifm-navbar-background-color: #2b3a5e; } /* navbar (full width) */ .navbar { - background-color: #375298; + background-color: #2b3a5e; } .navbar .navbar__link { color: #ffffff; @@ -45,14 +50,14 @@ @media (max-width: 996px) { .menu__link { color: #ffffff; - background-color: #375298; + background-color: #2b3a5e; font-weight: 400; } .menu__link:hover, .menu__link--active { color: #ffffff; text-decoration: underline; - background-color: #375298; + background-color: #2b3a5e; } /* sidebar */ From 0c9acceec458e09fea65a60f9539c72f13908b53 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Thu, 21 May 2026 23:29:44 +0200 Subject: [PATCH 03/48] Fix typo in project name Signed-off-by: Philippe Ombredanne --- website/src/data/projects-libraries.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/data/projects-libraries.json b/website/src/data/projects-libraries.json index 27d8556..74d8cde 100644 --- a/website/src/data/projects-libraries.json +++ b/website/src/data/projects-libraries.json @@ -1,7 +1,7 @@ [ { "group": "libraries", - "name": "ag-gen-code-search", + "name": "ai-gen-code-search", "description": ["Open source tools to find code that may have been generated using LLMs and GPT tools."], "repository_url": "https://github.com/aboutcode-org/ai-gen-code-search", "documentation_url": "https://ai-gen-code-search.readthedocs.io/en/stable/", From ddac5249bf2b75dd158367439ebeb16c41ed9da1 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Thu, 21 May 2026 23:45:54 +0200 Subject: [PATCH 04/48] Use AboutCode.svg for logo Also create a proper favicon and remove old unused logo Signed-off-by: Philippe Ombredanne --- website/docusaurus.config.js | 4 ++-- .../static/img/AboutCode-logo-stackedv3.png | Bin 36672 -> 0 bytes website/static/img/favicon.ico | Bin 3626 -> 15086 bytes website/static/img/favicon.png | Bin 0 -> 31273 bytes website/static/img/favicon.svg | 3 +++ website/static/img/logo.svg | 1 - 6 files changed, 5 insertions(+), 3 deletions(-) delete mode 100644 website/static/img/AboutCode-logo-stackedv3.png create mode 100644 website/static/img/favicon.png create mode 100644 website/static/img/favicon.svg delete mode 100644 website/static/img/logo.svg diff --git a/website/docusaurus.config.js b/website/docusaurus.config.js index 4a77abd..926d444 100644 --- a/website/docusaurus.config.js +++ b/website/docusaurus.config.js @@ -39,7 +39,7 @@ const currentBaseUrl = siteConfig[deployTarget].baseUrl const config = { title: 'AboutCode.org', tagline: '[Tagline . . . ?]', - favicon: 'img/nexB_icon.png', + favicon: 'img/favicon.ico', markdown: { format: 'detect', // Auto-detects: .md = plain Markdown (CommonMark), .mdx = MDX @@ -116,7 +116,7 @@ const config = { navbar: { logo: { alt: 'www.aboutcode.org Logo', - src: 'img/AboutCode-logo-stackedv3.png', + src: 'img/AboutCode.svg', }, style: 'dark', items: [ diff --git a/website/static/img/AboutCode-logo-stackedv3.png b/website/static/img/AboutCode-logo-stackedv3.png deleted file mode 100644 index 86897db8268ee576ab942bbdeef3b554eac86e91..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36672 zcmb6AWmJ@5w*U;&-Q6iADcwT|C?KF9oq}|CcS}ikh=g=^4JawyHI#IB3^VhBKF?X} zJKy{MIBVTMSbJTw+1ItZqSRCrurVkw;Nak}-@bYM0S*p98x9UW0S)B|;w(Uu4hI*H z`u4T7hUd~zjz>22$9veCg+2GOjeC-<_o)P)_bDAhuy##>F)-W!UJhCA{u^B+!^<~m zAbRu{-)})9%*)`D5J?k_y-GO`UgNzdOq>={ciwL>ht-h@4qMh3qa%edmc&pe*^Hf|DH!< zsQHHx>3;)W8>9dKp7<}|f2jKZ1N@h&|2gqr!2hP||4wG`e=qXC$^8GM`+tb|zmxfY zf8PI6^?xVxe;DvzGR;U-UIjTSn`9)!1ZHHXgMx;8k5}WSSpBM|NE5(2na&lIKFXCP)sO5yP>xMTBrRKKN!yy zzx5$Y3(LP{g2E&(EFFb`3Dg4&HKFh?zbo@RiFF>w>f+n)n|xLPN0N;;y|p?=d-g zl+QsggPz24a7ITHp*NOgVoo?>n5lbbf_$pEiV%On3P5RuH z%$*)9_wr*M#vCDse)LA71;fAh=S_Z%%1_;v+An)sxBFK3j3x5?R3z7%!EL&IH%6lm zYGJZgzrM>AZiLIo72bO>uC8{@qVMk||BpZPvXRZP`S#-jA|3lA?h*(B)gDktd$~{N zQ2Qq?6x&Y9rd90EyDQ^+n-T{ zC6>w4a_w8wK%1*JWj^Q>M!^tT2y&q+1etJLB7TLQ`z=q$KYO#Mm-v3+p}~CmaN-W( z1qHae=D|T`1mPezbk4&Vc0iipFBv1D_ty8Xg+fr;L*)P2S91m9*UJmt3lE4&RhEU1 zq9}!8HrR&m_+_@vzZ94L9$5Du+)Q?#rCY3+zt|h~ohZ=h2soZ_wxP_;$m%ujB%h8l zsMTnuVj(}-%%JcXTZoE&#zY6~gJJ7uY_U^H?ac#&#FUy#c+dL?8%s&gS4+veT>lv4 zjmD0A-Cn&hDwb!qb_zTqYq_;<0zv`3huxl;Z3cOLibI#A|FmtDvno-o{n&;Bx{7!N zhSa_{kw!#4jga$LQN2!eFl8#DenR=A!=d)y?;?s+Ro$0{4{qh z{C^EBQtE_6XckND$t25Sz-jIMYa%r-Km}w#)^%q5D+>J+7BkVhFE!O~UmJrjvlcHx zK=)lReQ#Iz6NWPqca(*JEK$G@7(=jkrk#*9bUj76U4LUJvFZ7TPnOQsxG3NK@Lk0n z_0{XUug<~4@Qk?8;eGi!YP{G8MeC!mm!OqZ;gw@nevHFNIKGLcpbRVm8*-(Jdli{k zwQl&bc`0?K^mqBo`!}lrY{uILYU0xBuarz$zQ_LOe*94p3YTL!0Q!z5pK%+rAPcPI zxRCcHy)}Gez%(!h4l0>~E zon9*!xz#Zah(IN{epC8}>*Q%EgI{P=&R0P6N-WsB@Lh#${WM%jzJM<7M9mEg9q+$a z{)hC!@Ao|eI+r}@ZmTYmw`i;Y%wl~wMisRd#H%;!$sg7o-TdXV^U3&~#M?>iOh@X~ znrnOr3Uy7iFD=O2ry7%$Te$t4o^30d-d-iQU+vz?55%(#w~}a!ImUPCUJqU8x zV|((@D({C~Y=FS1s^OO@Rc`#dkfYQy`5S(wTR?CbOPjkSbx?>+fp=l?r>>S~R~;H7 zBd*;Un-Tbq8=87{z=eTle8K6snI;JwOw#BcR5>{73FRYZS-X=BH(Yev)%V4;^~6ZT zw-WkiT{aL)L3gG&l?Tdh#-x~J9*Dm?4+@Fmyh_(rP48p$L^hV!OeU-h2z4}3H7Y}f zKk8D%{ZqxewIjU%zDkD$fFUAr8Zg_&o-SZP9l{HzPp&4o?XJ>6>>Td#&MZu;r;2zr z&*g8R^4b_1FY{JkaTMjvqW;B{)Cp4hB{6HxT>z^Bz+MN3jQ5>WFKy3i*roRS(q%Ze ztZruPH~*~BBW&i#H?d#nC_Cy~O5d;yy^}mD=lQgx;Ml^q+vVpaMkWH&I}*E{pXo9?1(~|3wNo-&PoI-|NVK;f zTqDA$*=I#s^hjPXxLB<;1&5E~RfW86sh9lBJ14Txj<`OA;DCdqMBk3!{IaUor~$sj zMGS{UcqM0~ZlEd?;W9Fzu0jQV$2%YN*A_HF&9F$ndiruI zjDG2pNUs)O_E%Vr!lD7HBHv+8VIY!bcaas$ZHB8Uz}FZfMg;LfK{ChbR?@PUTKVoz zwUsaWQTT^h?(nwh`BxpneCmRhgqtRBe(p@wxFCa#!ZK$kTx-;Q2~l#sPfN{x#dQ_U zpw6i-b4H|5%MDl`39hr^@q|yN^^jO(8aYRrqgBs1tt9#>+E0l2aiV4Gb6J{)Cb8uL z>d@I&0+lF6_jjG+O%IXUf^oia3!3*m8%ENa@IhOx`jkt{9L3V`zX zAC)Q_mc`7)eih5z#3d2X?MX<@kfxaSKB&CT(YtBu<`(4kl5P^`Yw8bH1q4@E7ChVM z&5Prn{giVZB+c+?kh9P`?&ZS~BAz>aG7$@Tc~JXCcyyGJ*#yh!_Qcv$a}dH3D0pt? zq%{|$k6f3CXDu3++GkM*8_lcPWwSK2JEZ^xD5EVjqPs(}v-?+*jgYpggX{LS5)E1? z9Bx1{6vET=_`zz^UJV-EJ!32;YXCZp<;G>d`6lKGB!12ay8x7yknFE&PVg~pWEbpQ z^a<_QMq^d}CTrSYGC_zPORU&5siL|h&UQVqJPI}wT+X(DAY z!zlH}DSN2pTxBe9CBTvhf)^tv406N5D+8po5#Pj*XTdYZ=cP^xs;Q6(;=AV}#Evf= z)*P$_HK|t@2!pu|2munuCg^=24}LMjU66SYT(Uo&3o@k2+jRs4Z?v|Pm@(M?}wtWtHB-H9@`}3%^9@py0hn}M+8VE%#h~UPj`lsVC*<&KOg6L3P00Nu zafGe``CU7=#Vli{kiS2zk|eeO_YEZ93a*mU_*dFS>}hXwga9Y%cnWo7Fx}(w87K1| z^5&4QuGTUok$9o;-Aa%Nsumo|$DSa3ytOoF4~cc4_BYrV$8C3|4h-R_y?pv`Ds4LL zR$RB-U z&#yl$`bwwy7{j8U;}c#QcJzY&Jbb{W&YNaZT&(aq9mIinG0)-n^VoJKyCCEo${yWY z=})39Ave_p?bO&y!Ij+Bnya|6+#xF0v_9pG?&V%ox=pfMW23*J3&cb*{vAe5xRnK! z7q%d;v(GmG#0_i-_UQJ$F6Nq36-y9WqYr<5ReE%{aS}&2T5oME2mTFz)S0Dj)3UFq z2#+NzqBW)6&`cgdX^qgQm-(MDe=eyUketeTBt!$l1FTb_R1`)BMw0-1=ZWTaBQ!xM*o!q{YHnjQRd;KBw#fQ>K90HByIrA1Bq) zOu*~Zl;C0FOf84@h!EVM#q^+9J=ssRM-Pl0SDii!oocsY`0P)qR0X{3%Zzu+I9Ukg zaKq*XQ{0%M9$|_2>l}3+wqVgW%r0%BIPM0eFHBCIN9(v{%~Zqp;V?5(du`@HGP9|a zV11-?^o4GX`n`FzOP;;B-}Y;5*at?Ta%>%(~%R za&0aSud3EKcZ2a^_1~d`PrS*n?+~MmniL| zRwS!fjjFg69^Ic2IUw{$MqCU^&zaoPJ%0>5!H?1kvb;+)HEM*X{=^g3~w|6_7=T!-}hm$*XyMKy{Kl;tISy`%Y zd>>|kIsOZVRWbRjk2Mh51b{DNJ(qeZjdCiv4Q<~A0G5&&a1*GFRQFQUPW+0WHRoDq zrHUk(_q}{cWeRU?1Lnw;D|CkI!w2pLT# z@0)ZP?vp+pk=QaF11Ml{vA_?3+@#5isAzQxuxZU6Ri^hlb#dYNbFMeUl!153%Yp-`R#_v+|PfDBl(rp;>J;3-6XU?;+w zi_xCo!yZ@eeTeX=+XbH3EDdAFF|g(!ssoTe^Nsg!RX-I%f=2?bcG;+JSi(oiWiPT8 z`A@V*=M;?B4)FkRZIr3s-4NU*u!{NwrmH`&MokQ+Lx<&&5dTAO7*ZbDd64Y(TPTbMCN;IwwTw^Z3i~$ z=1tiZc0YWJxJJ5|SLffPVK(wYv4P!D=otmy^`E?TUb@4u&BeM88E5iXP+GN-#g5Rj z5)?=IVL#|nq`yv%D61N3r6s-S8a5qfM=7?l?sD3TinPmyG9Gx~mYEU|RQ4-jW$l_g zz?a+BlVrHWKPqu3AVGy!U0h;cWiU_#5O&TIBQ4^7tE&1Hp=8uU4lihy8}z&CMV>}~ zj~)0Vuydy*4vnMIr+a;QGMarmY#oaXjGykbfBy%|t5)xDnhjB3a*#71C#kE1%&p1% zzEkZI=f$lXZkiPx`wtxnO`4KkV|@x;(O9BiEvO?+bXPt zfybfI_tAA3H5>G!4;BS}^xBhL*}}-9)xagTTgU!LzqLynBig6}Wn z?%dIeYMHa2Re3__wq2yw%?9&+h;isyu-1&FUpJ{?YXHa3qapi7Axi#Uyj$EKgjcT? z=!&VV8S~i zfUBvRF}o4!v=&(31woh3D-soAEd{-@tntLY1e6Qkx2t)+pYPIykI0MgD?ecdfh5uv zI!>M4yAaO}4ALv$kavOTYoUZ)WrJJ+<@1~ASS(nXk3M5}P^@A<%tykuxj0cx;K?jr zRURAU`!f;VZv68(pz0vef#czmH#tbF$mj*$d+##cDYGwrc@f3=l&abuVD#Qi6PK)@ z{h~c?Ljyf3Syn;y(8})kf=;O784nG2`4t-Q_*QNHbdcG&H{f%+ zv=?qT@F)0MWuU&5Yg4MfN-k!hrJtgYfZ2t{NWz+(+hyn9wPK*$=_<}wjS8~_@1h?^ z_?=4m%vxQjVE(OnLha7xc{ad2hjlJ!B$fN5PAE91SR10l;FlNA)lvG( zeJqCl zzm<4-JK_gzmh!zXm=XidT>^V3w9}Llr@N;h;s`T=-YD<~>8KLBiKRoL9+cUoDlpsS zh|L4}$RAIaa%bcV+uv&LL{Cc|aB$HD>?Wffa6&?|az`z0dYo72Eby}rb4s(gHuaT; zL#Sg&=jo^ja&Zp&Q)v=1--CfNt{EeOp8fd-NpnQ7blIDGD6&KAZ$+Os{X~0+T^PBa zE6{kT4C+^nLKNSc^MkfIAkIueqpJ~#ee`?l@%3e??^teUtUfD%Mm~E5mIM^h=eZGTxQihKO0bO`Yl7lt^&q-Cj8Ao@b zkf=yO<`mvA{eciY7xNPe_P9LJu}G7D2Lkzc%j3R^q4lXiiGa>N0|QwFPKP&zO$Pk@ zF|yT*hbGw}CR4~)x~VrOy@V^n-{U7*!NBmnH5l)ULeoFU#Q)H_N>h5V0MCZj&&)w~ z7TfmbGZvzR9>rf~v1Sj2tx2^RG89(p1(hr50$wDmsFSnQV3A@0t{D)BZ!*nBd3iXi zJM#W=Ax`3P%lHoclJ{cC&+G7q@N8~ZLuS7F{Nz46JGxzpDnV_*pJdwpZ1^gy8FEEw zI+#d!u9*W{lO1U&WwFve)pIm=IhKXFpj`=Nc#d6ll+N2yy<0j>#Ro}gGC1L1 zNDvL>Jxy(}&;lft##2;VcG{eW5-gv;$jN_9g|tn`t9Ol3@1f?+%y0MZQjq_JD4o6s ziioTctj9<|eamX;)3~x1an28JjqoO~5>&+!gP@3kDcrN>e0zzQ?gjsQ>gTotwb;T{ z>YnhC&!0g-H-R(TPrsxGyyuGzBv#(T6(t2^PsaDD2gx6RBsCmD zm10K{X?3mZuJ)sQ=qbxu3P7ivS0DGAQszPomP4PamuMUtmdp+KKJY^_w$lL^tpcs6w&cK48W&XQx@wR!RF9u8Y%Gs9CS?YRf^Dj0DE9_1%R!H7{r2@m9zJ`0@}(Yf?evApvg zs+!Atrw&OoA!gX;`58(%%r36p( zPs`(;qZ+4t#BBem=7lN}xdUk(xU3RKK9lk-Y@Z&H%UBQvs`F zEu8Ts{6=^XzE3t9HnV0Pw8F3zxc^WCPrD*=g95bV+=Jh=;c3j;Gocietkb);j8}gd z)@N}^u|+QUD$=bOqn4@0td#HxAuNg}KaY#@7cC zKi{Yg37$ZFQ@cx3g2~;)jY$<3WRP11Nm+^umNmtgOKc)G2 zkTEaIJm;p@l7(A$i)P(6e9 zn|BTxMR;ZHF}tz>%a~l9XiT!jT#iD z5L(L8^YUFE@;WTV6^se3WYP(A^fO1VupIIHAXtVZd;##a(tDEm&)+j^*pOD#cqzh_ z+h+|w{f62SU{m|p%X#_C7oRqIZ;^W58!jmc50O|dbj3*(3@_NdHK!7#pi_B>lTr{g zOIbbJ2`prLQ6vTk*9MOHYA@dub$$>+oD-&v3X^2=X zLbH(Diol*BdrT>~6dAk{eT9_ThaAM~Q?2e|=Z)xSGz~&Sr>qUBk~u>;4sb|Qo7N1Ob;XT_FNMqQ|5gCk&)N7KQRjO&2+ubWpIR$ zP*yDubxn`)%GyLtJG76f6Be>SuP7XMLxjLfhI!-Hp8+P!qU;DSmgAvGa2z)4M}LT) z`u=`WbOC%`>PN(4_7Yf}K7iD(x0RfGmSF1G!zo(+7%El@Usn)u32Jo7GG)3e>X8q` zTo3*N5@be&(_!vH=OMFSku|MERo1g_1ys54r4D|07cd@)F3XE_JZfAB_uLlSb*Sa6 zqKdovm@4W#s#)i7loGkX-ge^X(SMEp6gL7%x`HeJ#MZLFF)W+F#Ny5V_(f1!)WVp2 za+#jGV=PqLr=s-be;AQm?64kQEi~5fsfk|_alBquH63@kSxRmG?t(t|#$~r=1T9J8 zC1lsS5xDU&W8f}eX^HR+^aENlM?GW}hoy-vB(KMpk7&wv;rBXfsE_8YsdXnPmYA?bzex)2KTB zVC2D#!8px!1ol}W!Z6Q;t{z?#OKZ9($2Ot#hsgKKN|G&>qSW+D;TGQdIum9_$Fm%t zy_%$vk-$g#1ikaU_qhC^ie^?op$kBENoJeJHh}Fi+Gb#>q~`dC3U@Yjkiet3qt_Jf z$?aYFP~NBU=}Ar0Sh23BsMx4 z_#8!;uofQHTPyk}=hY?yJhNa;H$7drX*M~verk0OM*7TBh*EHwO|Ra7Jc$GG2TGdT zM+rj{hq`-IGQ`=jQV#R24R#{6?SRl`p%2}}dY^t_W90_qRDLf29law`Ze%f6M>V-U z?B1J4U)5vhE-_E(1Ycr>uK*3e{zito%<-=1A7yxR*HB~eWduLfVD;oMAt*h~!?@zB zo)}`Fge>>78^fnm_ien(z%MsuHr^c>pQ@V#oyX~uxj|?5IjLFEc5DmpIDE#wE|@Re zJ$`lOBA5E^#7s$pcvvG5-a0q?XEVz& zE1X8wCG|itjj-OiJ@lC&nX&8qiXBkbz1rbPV3sDCeY2jYUKbOsbnHb_;a=*C>CW*R zi+gT|bWW|C3-UR`0~vg#)RWe@aB~ZWq!8s;m<}xm&vDlHOosbg&8r>j<8TDMDU6Mh zCLtnPUX#89y)Gb1#txe8Am5Avk!oLO8Pa{s>l(Zz2~^swes+!?YJ#R%$ODT2|9M15 z$B{b!oO(9$ux;EG`N18s!XR|5C3b<$p+$v#vcbAmMFInKO4_hYY@w?|ca6peR9iok zM4uz-yzQ`y3_#Cxm|6Ow96OuHWLLA}u5%>+6(4tMczEA#Jy_Bw32|PHmG)g)9RfS@ zBJo0*=vRbHk2SfMOYMT?YuLru(g&2d_P4iY#?Ny)1_N2`SwKdh*iCx|0{mx?> z2(OOmOZbt~Sq;hMjJ}b%bpTa(jxUW$eCHNsgucw;z%lkCMX5i5V8?}C?=>IzGo^L4 zXw)q1k$lv_^pKg;_~$%bv)S9U(7MmfUixL+p?_2{$XeLGr$3ob%8c$E?3#;cux z7y6&;tG3iw^ZeY>s-(#i0NxbgvD$8k3o!AYGM)48>Q1F1Xl#@MhV=tM+%~k&`O+SV z{BIc2V*SymGqDE!qItZG0Q4mg z9+PfQp)Wv{7B2cJ62C%c-5K5`Y2Pn=x_K<%D@mr-?>Vcd^O;EGGEy~^{KH+tV!q{L za#&acqh959C+c4|87Qx=-5tNl%)O8Tstr=!JEm3t+FpHQU(g9PS<9oJ5v`qn2uF0V z$rKD$DTY;9#G?iP&B=+L*?y}gd_zCX5>kj+K#-yeTn6}r?jVxhVt!4D2F_Usl%GTl zn%m;0cM*{J0q4)n-00JdfD@BOMSos`x7_QnHT?+PJ1bv--;Nc(nSP-O=*oDvhA>^+ zGSxFNF5`6narMJWo#jtk#qpW|Ux-r8xtyh>qe)&g2OoM0rNBtH1B_}6$g}hFY8VGH z&Rmgi8PjP>*mJTARjeaTMIS{vGQ=+U++?Wk93H|AaIp!Dehvh~gQF}UfjvK~a?Hn# zHja(N-%WRoJY2aGm@Gi+%H?#TLLR5&n%tW@^Ae-FP4}YKhnoW89634e zQI7l-ZikJprOQ}Xgi{(-9n7!Y5)Oj#&WV7fE(OM~Z#7WRk}FImkj_XJ{fQUcC@Xw! zbVLt!Z=we4luMT$5lQ@s39xV0_N9x~fAXx1D6Nbk^CrjY?3UFc1zK{cDS^XofbGU=NX#6zfh9W) znV0z8rKbBh>wf5km)6#Bormusi8d76O=y)3GHp66%~{*`^Bn{6jRWv8hO3f*QqMM( z52M)N#wxh4-M`E)AWW|LF#}TWuTs|hDV)E7S~5i--X?Vw?f9_0Ym*;(sV2TzYv2BJ z^E|+0^L{;JrD))_F#Hz)20IN%YP7ies;s39bcd}e-Vyq7-a~?91wbyJhjibUcQ`k~ zK>dGOZ0nQ#8F3~e=J(;;%81m4JH3UxtbGgIA<^+6xf&n79S*fSy0 z$76v~K>6tS`X55?7Os(O{r#zyRut7>3JmAcy3?AqWM=D8KWYjnmZQ*qm3zSW0k)8v7(_J*|* zPU}?bntboglBRUv7(xl*m{=Hun{#ub-T+{9$)MeZjN|{uNuCDPR7Er*o4(pruOttv z54fFaV3U6#VyOcXarBsVAtpm79FN$XTm@uZliHa- zxgA1(2~eE~0N`ik?(gAfyHUQ*Y~q6i$0q^~*uXMVq2UJeH77%;3-@%dZxX=AJ4{?5x`8 zv4UMEt;jaw4k;{RBsM|*2!UG8U^CUb7?lX25+EFrd4>-c@ zn(ag{3v4<5Xo^SteL#C-=idBR0VZ?f-2-*iZfjnqKKbsr{3JbN=j)VZY}800{jxx^ zL0Ug5&?77$xmMY75kmaz(pPaxMc|Gb@s^RJ{9J8NytaeBDVgkq84aYhm+yL0;VQ#s zu&jluOksewT^jxzK8fBv2|Es1m?jGj$gP=8gSDtVPX3ElIgJEn|3`*du++iiFwANc-SI{MN z=c?O7(KhA+KHU1==ICbSd^Y-&Rq$kqL~_JrsYRL#eb=vo*Dz^>UJ&5Dlj21&_p$h< zR*w8z)BAg9gFIe42)xw}&%#EwlfUheTT5T|M7^*!j)$KO- zl!h1gDED=b-!J-)m^0ABQ<>8xQt!&6xN=tL`F1OqD=euCxwYixTkJJHuA)P9`Iq%S4pNhQU~e}zdGee!uT3pF;mS1o zdjs%IVheBJ`Fzh^lIlRtte7CR_>QZ*!ThD*(U80KAK;zRFQ2F62Jc~W)Dc+P%9sIj z8`S0DIh{oQ-9>J0P~>;Jn0{t-iZ}GHl`csfSoU-^FJ!n5EqHM-yXgT;C@(2b-@-xIj-4{W;a9w-Xlu zr+cPu-c`#QpY%}N<@BrofH5P)DynM+U&PQ%RX=jvp%@HHfoSdYZ=8hB*?D}sdMDEa zZ~A_IA*w$`z(pMBXCm!AH-eCdFt1J@u1RR<0eXV)IWp4N*J%IL3;j=v@jVn&J7Z@8WvCsrN@3Gs!SD-9|bkO21VXz6K|;R(KZceG&G^ zVjT=8r&Z7P^Vl7e-yX{Ln0Svh-G#Zk=0o$D5L#{Y#~y>o-VEfXo^f6T<*W;q-T1B` z)_KlVeYM*e`rQgIv~Z3MXOQxOfMr!UIy&jL=F#191xwQaKywF4aH0C$M!{@Yc6PU) zqJh;^Js)_qnL>5@@mD^1X0t=c&1jBD*+bEVS(g*o6yD4!>aZUmac9rFe)Gn5+>UUrGYmv~Ux&;De<}ncZS0A1AcL|yVkBl(w9HhRrI%ruS@)elDD~n>v z=iYTKN;eJRS%cuyM~ry&lQG*NHqF^M7}3dwD>06{6;f zo;(_e&u4P>Tg60x&YO)}?GDyu<1^TSjDLOe~06;C8<+Sp_OAbEg11LhzN>H+GwDi>4?`@8jy;xFJx>?XYjUU-eeHvJ64L-at zU41mQ#$8c9Rw?x%UIGOP!$82LeamaGzjY6`*?8dQwDF)XnfSvOqS)5c?l}P}wbPGO z2TlH22c6C8o#@uNA#?9?2+0dEZy>6alu|cjtfJV8JJN5-u_yu%$&Bw z9Y}ag*N`57!i#t5hr5}v3@ZCjbCTFu5+vZG#{v^G)bufAi&guzT0ToH)E!S)Jw;Y1 z5zR8ASrd2G7W>Sz*vD4}Vh{ECcb`}R@F?*?Kt7FXvqsWqv7`O*25o-)+j)<5?|aMg zpknNaI`}0m>C$VX+;?ut_25AGMHZYeX!Aj5Vbbc3wYXk}$j)G2X z-5V*0v!xDv0VKgQK-Ggt&>c=EEI|SjBR*vFM}j(>*RQlBvBxNXO4xML&&+{I*E57A zUHg(soC7V{Edom;#9Bs%x70;`YdJ(nigc%;V@y4dlL%m|EI6O7o&8=+f1%^KA|>rlPFO*Z<;*%9mr`MEj*SMlTd*` zJgO_cl{k0tT<^zLF*Kq|sv5+uNK#prk{gK(btu{5X*dp> zkgnN;L3li9%y1))@bNf0iL2Y;0~~3A-*%mli|n4t9Y`B%JX;Adas9j!meV1hTPITq ziU}vq6}7f{i0G%OaKJ=hLX0%8Xq1LHZY8Y!n-GRP}E@ zVf|Y#eDaZh7s#Gsfxmz!Ir|5=`Ko;K^q0iz7xszDy3=l%NjlBb+K1P|Jl}hxo?DYo z=b>R%Rv^&SH?334K1I{!CM)1d?P4~6krc9DV#MEm=M#q00s-4e%nBUB zi$|2p{#|O)E0NSFCggwnjc1Zr$XrEJFW;R^w$(dF%OnzE$S`-qJ|XjG?AjU{>Dpe3>WWq!523%MH(Hr^?&B6SvBl!GARn_Gzb7jpMp9 zuJkRdIYD&hPXZE^h~CpzXFgPSD=3TpyIXRLC(Rfx*|&i*Y+)v>R5)QHllK*P8kC)pxzqYw# zSE;YW*oK|>zRiq;(!(?3Vy~p;9qaD6iyipV>?&64X=XjGH9U>`%)tR0`0Y0SJgNzc zoEsZlK^uK!D;Af5J7s9+-%qgW#27M<3a#Q;N^RfP>`0+?cHm=nsiz)(+Bu^uQT}bx zJJB-_k-V*1;h0yVNsHwCi!(JL=w~9yEcRrz#;n|lZf8kO*s|z?CT-sYMcM~43@VA5 z;M=OS5x9e;MDgybFqU~i^~CMR;~~>J5i1!%MpV>*54!6<%q;6GFH{wuhTi3?a7h0u~T$2boi*37@^r*_sJo2t6AW%ekTPaVdXiO zMxD6xS2CU+1w~iZhV|9${q{9`u2)H%UnN^&@z`E6_;k2bViX;x+S=qgcjCHae6Sn( zcwdy3M(mlF@VfX}%g{Iq2Ht$QR zO!%>|fH-eb;PvnOx%emv<1ht5&QFfhl?Xm|zj^=I* z{oqccelP~y2ouA{hvd)q96CR7vLRf(Vc_@eW)Bgp3{dL5&p>*NZqngkh#rVy>znLG1EaqoZnpVf*E;2dK z<;hLMh1|7avQsD|Bm1*dD*XGuk6OC2QLP>l>i4%o?ygr0-q{6oBcIg>TzRa_NT%h@ z`RqLB=9Mm2JU+2fh4-3}wPe#C#lM_UD-c-PG%fyYqC-)+;V64GfGO0t(qXN~o)YV% zOGr|yal7{Avz6iUT+qC_+kDy>?Ub6~A0G|fgnt~m6B1=$gI--cP2Abq^&RbqV`Yv7 zkB8J#JzvwoS&~I{2*AR<=lx5Vp=@e2)t;3n839pW7z74S%GTMFzb9$gPAW;O-IjX8 zy}I(d*ud_{=Is>KA;=)1xX8=gfRCxQN})=$^3l=1$>+xlzyEAu!aZ5p@#@lP)oRNZ z_U?HtQxy6tzgiGTr{&F@Hm_vNV}>;in?rJ60!&$XvQfB7fZ4UJ)^q7p)>&I=ovl^p z=d*fQIxfQUO25CgTfeu#4$#+DaEkL8^14*gm|%IQ`S(TLew*rMHj3$8_c_c=r0z-L z#{V!e%l$IVyj^3g3rtE<_@lq$a(hy&R@75Kv>gUwk#y=ec3X<+9RX<@!0wi_bhX`u z!|Pm|(Ik}ms*Os&u?|$KW*U}$f79^y?GDK-#y2M7VUHK|IPR{hY-E0~7qVXo4l-SS zNf#)P`V0m`U%fJ~A)Rtvm7f_;x)EePldI ze>Jnl8Ks!DMKWG#X?7SCxBNZjIhJ6kiKCZ!mGn_B%U-8LD5m~PS??52Jwp$!q^=YA z`&W^9Z-b2M!Dq2B(OG-=RU+?qa5t&rDj;cKv+#k^^gQ!{(iB~ZBI_S3v`qp&?p2k{ zHyFFWVhTYi#y!8xQHp@tuhdkWl99LhjG3?we}M#m&p$F&iF@h0r+JXbt7raNUec+r z7bw)i5XeFQs9wyRQ3nFQNK}wK1-F|GGkmt@;QUfZ%iQx$DT!Yo>ekjO@lD5RlJD*G z{psoA9KkY1@PywWSFe3BXJTf9x5A;;-2Cfv4{1Cr<0(4swGPig#w7V2Ux8^tLRRF@ za$O4DepYfk5AlAt+{>g*oo1zhqi#-`4pyHw&nk4hq~|l0Yl5t-64_#{bS#w!qccb~ z1b<5U=X1Hs$@&DV@yoq1$B)f=@eVV7q-WP@{Z<(5Av<~7hs2F^o_VNm_ItmlnHwO(I_Z&K@ zW$&7}w&tPBA_mZC9{EjdIdiy)Vy~za9$LwRICs2az8F>t%zYItJzYC5OzwO=_%uFw zNOtt5?2thVW-3Q$I4j^JAi6e6I{wmhDZQf{MRBb#5Xck+@VoA%=VOegz1v(WOFw4P zKt0<`bvKW5F!0-K_~vi(?e#DN0iQ+x){l#}xt|%7H(^z4zC1sx%Fx~&zuheEpP?f6 zz4H0h0<-hg%vTd85+*XbZky3kx|E1vzvcU^onX}$vNnR%y<6uhc}(SVKw_;yDtbKI8=%oymz(}roQfv6aNnf zR~gV`*M=?drIiv%6)9<9)Cds)VU%=tjqYZMC@CNyHDVwo-3_C=yBXc1bJX|v{oAkY z**W)f?(1A}Kgf|AG+CTZR>Zm)OnHcK&YEKxyvs=ZKz-Dp0FtNSl4tFE&+hluh#;c9 zAXI7o#vH)DJ_rlc!Fvkjwc9@^6Kdta=gtDE)7!l2bt%|(@%~#J0DgV&K_Jd}rYi1W z&-UkPb>fZ8pt5&IYb!awy_|A`P8y?-!Hgs{7lmg z)hRt0PS>$7`bLLo6$Wh%KKIY-ksoZUUhZMuJg@VyW>nUh#hf6))Kj~>5+PzN%dIps|F2d zm|Q_V{F6#XbdRc|v-e7k2&gpwVzNVE_}S_QiR8!fj%>Fr5yDwD{9;R{mi|HMShRs; zo)lU;8Gojo^HH0#=o2BLwI_P^wbXB_zvDZKh(& zbaX|suE9?Nb8VVTnrHKY#(K6z6{LZxu1U=tFdm5uOuw>&U4<fjNL9H;oxZJ z3ymMhDr4{6SWa6jGjCt&9PFHta#l%g31w?#<_J34rR3b&e##_gh?e6Llh)%;mL1XL zPpw8#x;MrKcY#g0dXXesw84W`P8>Eme$&bHG)aYeM%p2|3OeHibi5M9r-B zVMt}Mnv%Frlt+3-D$Z?C2A`FJ*Ii_$wQ(2Ko4@3sc}af|x%NNxE8Oh6ek2h|PV17H z`B@VOP1Z!HdU&|McdV$IloqaK5$Y&H*>dHM_w^e++=v|fQ!(tWV}!hj{X>0W{L&Es zqFv8QzxMzb^ei$puid1)O#^pB?ec1QBBO{#edm7lL-ouZygMFtKXiN1P}BIho;Zy? z>uMXzOxH`+6Tzs54$hn|E0!;w8|jVN)t;G(Znpm`8WJuG{cM%+Wn;ZH(X*dA{$e*O zAOJO3LG$?8`jQ;}#Lefvd@<;-EH zhRr;DF#C`2Zg~J+BauKyKEtVrX-G*@aOXhnz3#}@dOUio^sc2|m8Xtu!K`160&e_j zEX8|7p6-~~*vrlyA3mW8&6%ol=so?$X>lFUbb$6AraYhgZtr1YwqTFYLG?}s3cw_u z@3lpsa)rcntc(l%N&`vws(p70US6SueAP#`C2Ldpd2+)6OsJw^V>N$x8j4N6Pheu% zz5h5UxlgHPxS^~u#Wm=Ut_syi&Jg?UUI{VkvGjUskKxBJF@@K2XLTv;4UHKAYC#zk zbz{!cW9a$x=1rx`ufAuFRg;~}S_`c#8ISx@Mc?fXkw|SUa@$!R>Xi8~2LsGoLbmxB zGJ?!|XSFKcKN&k&2ozbndJ>VC`tf0T*Jke3s?M1|nS8qq8<`NPOrda<KR(>!H2e7K zW>6xXuA!me+=8>fe%(PD*IjHnYLkzYJ&Lr+yF9fKG$MxZ^Vvp3B7Td#Ld|Hl8sDa> zH`+*$uwDdC>mokrP#)BSIlW#=h&QKi1t$tu=7wvy1tzFX9uLf9lp{Si8b+;yVlVHQ z>z`vi*L?i*H}t4?wsX*fAc^#nTG#V9?EtHxYm)w`mPXg7HO<~`dI8pjsr%k2PBcK3 zq@5_pVej9yu0K0ARp6i3IlZpPS>(01PEbf~iN@DIDAq|$#{Ry_7+GX*rl_|UW--8m zS?R!&jU8IuijPm`1zEdSY&9X(J9-~KH_px$6J#b$>GK23uQ_Eb;>^k8IYS)kkIgQ! zp;mh+l)i;LziE^$bF@sDJK-ly9Wt|%yNK&SxP}wzWqIgt zX*W9DHznBElz;6ZK0d3dgnK)zSh@n$zgjww2DD*3B}Q3ysD4DWUsq9w>-U&#su3tN zxvl*wgeD~MN^3t$1S-)tS}?P4zC~ZGp?5U6$hDjqE0|In2vXyIXHdBD!Bx|5CpkTy zsP{s61VKC<_=jb2ar*CpcP+ee0HUT_FT1LY~L$kGJU3^|}}dzQ#>>Ud2` z;!>(o#@km_DLPJFsZk~Qm|=#4L$GM=M8A49p(1@OUBFx6NTauWZ`&8EqKhrg#)__4AWG_VR_TOm(Rd{mGl7YSBviMAWec| zqgtUKW?KB5m!bRnEq`3#?Ent!#28du_;(^v8_8m3bw2UE>AWw<-Tr3Pdcx)}q=BjE zy(BfQo#N3}uQ}{yX}=ydJN!3>1#hO60mvvC%0bG_y;+|pnK?$sZM4o@t!>uayRdZ; z;j8K(1cp=e4&@@gdGsVAn;YGF1inVxDLsQH(&dXSsm0MPS2kB7X^4g~~UW$z9i z(ROj$N(Z$q%?oz8uX&+CGFUc36xl@#Fa>w8=?YF50~O_2;gH%0r2+v(66;c-@AJF! zo#lMMblOy3{9Rnd+qlIfEHD1%Zi4dtI7_gyLk&Xx|4M#_lxnCzm`y7OI zc{O}ZH&ji$*E#7lC6R^dAgVIWk2d0T)d}#Q>C}_oWMeUfPug7EKieIS0NxWMc3?=Q8 z#%t|fxosfgozQu18i|cT>I9THD~(Ebnw{xurBw9oX8NPjJ&YmX8Dt*9Xa8F$joA;R zw70}(M)?7qU8++F`-$hfMy_Xe*@qW9B*#U1k*3r+-tUPnX+oO{Y|Qt5EwOG6a_+~E z%3536gdxs{IwtIIP%GGX9|vKB0n^&8we-Z!P36Cuv={rTyi}hr>l@3Gy4pqW5AK~{wr{4 zQ&;o-T@&8YGRlP=i&#wIW{IiJ*Gb7Q^-ABpXdquaQWu9aYDvFWmFB%n!M=L<^a}R0R+I_&V3#A#Y(7fN4Gqb(3{4o9RQ7mKJaU^@ zUQQj_RA|cpUh-KR+az27aH9Uq*pA`Ax%qAUl=WYNi~i0hD(+q(^yI&vq^PddzWlxV zrf;s6nvNgDzD!#9JZ9r_XlJmD^n80pv&l5wk_hfyT}>QLTbUi?teioSpu**Cg!dY7 z`<`#id>)ilKOZ4S@I@tt&f&fDUj&Q9joix}CSY6LtLL;<0qS#}BV%NnS9?KW;twd| zcW!w!3oEDDj^R7Ab$B)zuZp@G05vfKu||utlY^KYW`%__nx6{1{~FovT-4oGZh#_3 zzhe_aW8teu`H1prMlWBzpvHvc?^%L&pS~8Pc?W17qa@W~!V^>;(YJ_e7u}U!D2ZajZ(-)9tn?Z}sppj-;u)fh$ z)!yC(6{_o=9TA#>MG|8Ry#gI;YA-V3nud@xROL#H1;H0u_aU77#)+t6;VX6aIjYqK zm>tA@vNTEkx#3*`Tej*Gedc~gPB$SMc7>b~bBcG9EPpEdcwL*z*bu-kRaJmV<--?T zUfukN^%l~s<^OaY^=5QC?dxNC99k_^-;BA<9gW2Kwh>aICfH?)SkqW=d01Zy<)Hw9 zIU%0IX&H!1s(LCEvBNa6TZXO}P<)tNeS{Q=4t3sf2By++ITr zX{qsdu2U-L+iO9NLAX|PuFA*}i{Bem;_dByPok=Kr}b&%^Rrj|h-I{e>;5Drr$G!{CzWI{9Kp>y zL%e*F(2y+7l8V4DwRX5Cjh_h$?|xvD+uDp4+gZMb?_ioOnVAWIzTm{6k)nS$6RkV+ zm?Pd_Z+XS>rH5`OCOOU8*CAR2 zeT{o%k5C8&gucTvl{ICmuPOAgnypN<^tOBm13MvK$2Jiat~}&quT1E6Jd{zW?pNUJ zCFP%N4$d7c0Rpbt{>PrlHC}&rs-|q0T)oLtLG_;p5Wl>SPx^LWh+y1kCTLjZ_-ui8 zfGmjm<5MhZ;#L|AWQ)}OXoA7BE1!tfXGVl@)aQJ_?0_w%{%{Ika6*h+b7OPSFLvd>wDnsG5$Do$6^GG+#BtjCL+PHqN? zq*+2(wlc_zTGk;SRtJ_t){33(0{D6%FSJnDOOaNeAj=QC4@^h16cYS>gl?pTi z3)GO|A2ydN!qrOOzA{vaP3H|A^p}OZw zkp{Slxp+bMyQ_7HCSMb4@N259JkmqVJ{QU4BuZC(t5I^L^n2>Zs^S@Rg%EKUzcd;R zlZAGaydlDx+28B{{_H}~M=@UuYgRP(HG~<5!1<~7)$tFB%YH!#)h|Uk(j60ixP@9k zNCnomPS1&1yLnV59Ko?pKD!XTHbLf!h-k03h&QlR*)xgcv~HG#SN%X_k2$+fUb5NM zxJ(ysDza@&JQU+!n)m2{227m2z+Y~U@`rJj7|Vpch@aqqnMq?Rl|gCv9f>9ZKD%Yh z7ySs;VT+ZW+n;Pi^PXrdGDNM7f@m#m+a!-t+=e|XTnkw%!=w`Z8Ul=CD7Hj@zRMIe zp4C3asU!2$;+R(md9cO#iG{D?uB9Lx%)^|Z4F7jZlp^rjAVX4*W=!V6jy zaP&B@zJ3$jspN2c`q35rgUlTv$g%s^qzv@W&itLx|35w0S& zu6wX2ee{Qn0omkp)89f@dtCFeY+*Z$Eh{aZzGtj&M-Wg(zIc83SCD_`lQSn2zJisO zoR^Mj+k;|`-rbO^A0cR5ezMlOahi1(oUv-&F zUVl87L|iaE`bkFslx2MY+4-Im$G@`ODwrI&QgJlnvp@gZfCiwk^N|(Bj~FAnF~=4| zG)|i@O|Emg^X$VBrIxm6Q z=8E0+{G3y2XaM)GxQ16(2E~lx0LTb~SDGNh9Ce3jn*4R(ymZl9=hx&JhZC0aR0vsK z@jf)g!>-WCDLpA)f%6{+8Ft+_IGp^|di4h$cFJX<=hfT2)K6`_jYd^;HYm#rQWll+ zU571nwVS)4hWk4#p1{kR^PATwK+m|;YuXZyHEt~_0EqR1<1T4(&uv9Y*2Gbp`3cM{ z$*#^Ad8KSia=NIf_u#Js0`{Z(EU~6~;O%~Ka_lQ$gLHm~<)<~h4|mDj|6O}SKoGlwXyHDP)hw!Drv!^azep{af#cxtTKKQZ)E@-6w+oVRXUmp}vt&XdcxYqK4A^ zHg%g{ZA$%g&zGV}um^U+67n;QJhYYuc{WISvWIOU4>ZXe%JTyPDx>J8U;dW_j@ICu z8?gh^!2A=8iJAXL_7o z`W&B%%TY$%hTLiUA%P3jx!9sWrr+(>B4WO}#=lanl!JYw4!?s+XHK)c-Ztw=1Kz(U zSMM!LQJY39)glacIDFu9GX}jcm5t9gOw+*ve^#O#k!_W~K4C9rR zn?>(9i)Ri0oH=SeCffp4aT4@)i#o2s#22y?MAh`f3&VHF-pk^aoJTYZX+jDI%8I2l*~g;P6LT%DBSam2Bo+_2eyuVfGJwIn-;xY zci^3SQD*Q<4$jn2o|POttRT6$%8 z*;?A>ERc8nhSH6OaPA$Ph95+i5)ILcIw+Mp)Ne%OnjFKpJZ;Ac4^*YL2Uz*p2U2&s zlj^NapuYCgqq=;>zY5Z>w~-Y|lf%R0VkUFQ^QlyQ^&wU;*g?~!7M7DeMkVwHH9+Qk zoXGw9{!XT?ylKhl^B)Vq!Sa>F0!Jl=*R@JB8vsRKX3lTW;=|((vunDcPV;`M zFDIp0vjm*gmlrsT>>7}-<^9(|hPVD)o1MxpOs`Xh{A$9N9ptAc35zq+1w54rYqj?I zc?xaA*-q|#Zibr+t@BOVy&W~Q-lgCyrb*Jz8Uph`&P-!My?Q;U$w6~Xp^_&Li z6WbrQy4)H<93jpdr#F7)#vcllx$@@k*OwUh;&uTRHY&}whf)Df30r|<=eAW+)eCc8^~QP?-@Gd z*um53P$A!StJ*o6OY(Fx0fQ-5o+Rg~=(<85VZ})tCDvXgi#C1@759h8;x!Bf56M3B zkHvW$n{LC-&LU)jubfR7N_I_{uVR>0SX>b}B1zke*QhAK;}X)c&YJ+@3#yEbs#wwf z{VkwS20lx|^qcIO?y@AS-WL?LslB>=a2~1!UzK{w+RTZk6On(+fS7zN93PoRK>>IiLC} zZsSQiK;tyaD@1J0$hip#;CC!3i!BzSzk7)rLJ4#TU4BKhapi(k`h3^cJy81u52q<* z2lN`!9Xogq#>+D}&QmYd^{POm*VO-n0#-$qdOIcmO(NR(#|-+c0ID-zaRVRLlSX-X zb+KTve+m1{>niB*L$mB+gwjfT1yvanB9>(+mv~T>>hyX&*v9i6Xdz<`Hj04&^um-#s(%pEGfX< z5Tl6es8mw*sDz$~-r+Vs??z1Cgg1EWGt`COQXwaunMf#st9{6`E0)X8r-;}Hpm8Z5 zcr+>i1_o>@o|3o(8MZiL`t!u*QB{5>Sk(S#_#~HbS2${OK509prcLQ5<(kO^Qc3%9 z^dl>6V$Hbq>kp`vWoi;&W`oOB6)SU$n!K|4sz zy{Uh%c^=k!o4+iikN#7|g1Kdin?zx5;EW$}!it1WPNRlOY?#WWumxSsUjueSmSUan zv9BIkH~(697l~d470K1FVriQ&9@YF;AWEY7!4{J2;y$d?{7d(RLQV$5n5`j2XqgW` z`L-FAIM{-wT`EeCG!b&YmJ>Gh~zHOn_(^H zJpcEAG2hsxj(wVp@>gA`N^(RMB&=^@B*J|CNUYE6kZ+(n6^N8vz{wQS2gU!7NL?o4 znj6novQEPAO;!j~K{OFuHzC_BUq1(xQ@TR+fjbFB-j$vafU@JItR6C;b>$k4~ zX{g!^FtX_%0>q@Sb2gP_hX6`c^Jq;S++Rr8v+4f#1_OLfJQ#{~5eD?aQvWukwKcE9dVJ%a(`Xh- zK0mmy4t^|JeE_rX7B5CO~?Kn z9v~{6^Pl|Kk1Qcj?-v~|sMRQ_`h7E3iJHq|1#iB4)lSwfrDg?v`(XAHy8s2p39`b! zExX*8?R!3h2o;y9VR8Rr8np!o;M)Y1FuyyD+64WTQ88pm6HQ)m@Ks$Y!B`#cwm#r8 zv`OPCZzPhLj+wSPg)L}arO=EBV@T#GDm}-h0V{5D zFFyo^?#P;O=a`#miNie6wicF}LP;Yaj;#r7qHf1&ei1a34Gevo^Om1+-Tp0zjAztA z%Ok|<7>H*3;J;I5P2g>6$PMXx`ofFuh4ncHhcu=w%**{%d4>C{=?~V_I7z9(Q$fFZ z9fiVU-PAGB>K5{i{vSuBN-gjX1;_{`XngZbWyg4uK?ezs_IsU>nqv! z@``|xBW;qL7r4bQO)!9on`7zwo}D%0D{!;=LLIbdb3vVjMGJ(wKGlkLr{Xr)(W5o# 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 diff --git a/website/static/img/favicon.ico b/website/static/img/favicon.ico index c01d54bcd39a5f853428f3cd5aa0f383d963c484..810672abf62025e85b6b8acb1c2f3e96e8c5a85a 100644 GIT binary patch literal 15086 zcmeHO33Qdk6}~SE2|^M;b~K3z95`&U6bdAog(MgdC<0O`5Co}#08%#DLINQKA!4aL zJ!rK(f~8umwOWs~Rf&|kv=v%C*h)P%$X2!r0usz}`+fhspO?G@^5?x5lw&UEW8Odi z%)R%Yxp(Hy5)qdKORH9bG*+@hLN@3|^sz$wwlB za#x^u$K`A!}0qorMsQW-K^B|P$3ybty&Ggi`8 zmrHtn1@gyvz2jrFbRB+BroXJxvi);-u3djP>Zj$E<6YhISwHKgtJfdCx)Sv_0TY2q zZrqJDN8*xCO4e26r>-iOId7|E6jaKH!kS>-cXz1FdR?VOySnrrEvdQXlJgGhS4qaY z${I*tTP62AbG7;e}%nNA}_}wk7A6YD)auPGJhY™talq@(}9NhgTeFIM#fwvXSz)+5Yd;|B9?J$CjV>zlO`EzH86>Du1Jq|1Xu?6N=ad z?T_|!((ZN{_E%cIX+K}vzvlS!0c>hJ@N_+3nHPWy0k;1w;ECD2UWB4dJP>IAYxw+E z+y9)-KSk1_t(p5CEH!;EvK8Ni=*JPopwwZ+yedUiDx!D>u~&dO2VVmT9Xx3sC@f= z^0)}l4;f#16X(5Qz%J|CCqHZ2K7EafD~Rh}r?zkNrL7#p+C(M)GsHm$RCbL;*>1z@cTxrci zTz@V*h(5vhJp@_B@DIkgxhK&_|5mx{F~u4aa$RRp?{Odo@RvG)L7})@r!AX|L<|y} z0GrHKNm{DX|9dJOdYg3u`$FVHAPaD6?7#Y~X%3`1?M9O%n(rAM*2- zF$;ME0AKx;W6aY4<12J=4KQy9&;sy>TA}ir0OwzC8GQaD5C`}|M>$ za)x03F?(Z2z?^ZHFXYkxwuNR+<(ieTv#0$7r$1xyqAyi8K}H&4il7k635@=U3&0!k z31jBl7B!Oo%MsgMGBOwwHRJsbyc+47U_XJIzplOgyo>(o4RC(< z6`Y$+0V>yCf9{*?1@`#??mco30ei~J8h`xfo-^0gX8sLqnz;e%W$Yzzj%=*?i~29Z z-towdkdcRZK0wGon~*R0H>UpNO&N?)xW5oc*t!Q!f5!HV&9P5dE&gc?{n;LY*FPM( z@2a6cWi0(f<<8B)&fX|6V`(C(QTw z*6o+qk8h*j+X4O%&s|OcHSLFMVgJ{Up7C>F7S4RnxzD_?&Y(OK_jE<-58aH)+-Ju4 zQ|wt|_r2Se!T5@M!M+gpyyuY9RGP{5T9zx zcn>Ov$YtUL6|;%6lo~n zD`lbL1#w}1;rR;Vo$Ng-ZQ^YHxxO-X*IS4b_YQHEHR}z-pXY*|`r7;p{p6p3`kw)2 zUyS=#w4*KqZT{QwF49LC++Tgw;@uJYF5GYQpYeN~Yj&~uFY}SNU5)-})<-;30O-T8~0FE`r#~$_fF_z z^WL-X&QZ=w0MCdTLiEXB0mc?*!zS6c^xa|e?Y3uZLjU%M*vDG|vp;++$7S+) z0^s)sih6<(_X^CNiwFN>zJYRA9#u(QY2W3v+m9*Rm~(__Yt|)re~mHt%40@vwnaY9 z*FAIAF_cRL0!i%u)d24mz?UbRe&=|^Z{XO$J2^=>8yGYb-xi=8qgnTY~onI1ULwoIG46NY#!G1xhfN$RLObQ-0!4a@t)`0znHtysjKk!1P|Ev zmW+LwyAF%Nt1WP?CDJio&F!xPZr?- literal 3626 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 literal 0 HcmV?d00001 diff --git a/website/static/img/favicon.svg b/website/static/img/favicon.svg new file mode 100644 index 0000000..d6d3ef6 --- /dev/null +++ b/website/static/img/favicon.svg @@ -0,0 +1,3 @@ + + + diff --git a/website/static/img/logo.svg b/website/static/img/logo.svg deleted file mode 100644 index 9db6d0d..0000000 --- a/website/static/img/logo.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file From 5607f293152a6915d26b113b862c2625ddbe5247 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Thu, 21 May 2026 23:52:43 +0200 Subject: [PATCH 05/48] Use solid orange for favicon Signed-off-by: Philippe Ombredanne --- website/static/img/favicon.ico | Bin 15086 -> 15086 bytes website/static/img/favicon.png | Bin 31273 -> 3233 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/website/static/img/favicon.ico b/website/static/img/favicon.ico index 810672abf62025e85b6b8acb1c2f3e96e8c5a85a..5e9f31ab74bebb9c6b4293fe2c698a46a59a9b83 100644 GIT binary patch literal 15086 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™talq@(}9NhgTeFIM#fwvXSz)+5Yd;|B9?J$CjV>zlO`EzH86>Du1Jq|1Xu?6N=ad z?T_|!((ZN{_E%cIX+K}vzvlS!0c>hJ@N_+3nHPWy0k;1w;ECD2UWB4dJP>IAYxw+E z+y9)-KSk1_t(p5CEH!;EvK8Ni=*JPopwwZ+yedUiDx!D>u~&dO2VVmT9Xx3sC@f= z^0)}l4;f#16X(5Qz%J|CCqHZ2K7EafD~Rh}r?zkNrL7#p+C(M)GsHm$RCbL;*>1z@cTxrci zTz@V*h(5vhJp@_B@DIkgxhK&_|5mx{F~u4aa$RRp?{Odo@RvG)L7})@r!AX|L<|y} z0GrHKNm{DX|9dJOdYg3u`$FVHAPaD6?7#Y~X%3`1?M9O%n(rAM*2- zF$;ME0AKx;W6aY4<12J=4KQy9&;sy>TA}ir0OwzC8GQaD5C`}|M>$ za)x03F?(Z2z?^ZHFXYkxwuNR+<(ieTv#0$7r$1xyqAyi8K}H&4il7k635@=U3&0!k z31jBl7B!Oo%MsgMGBOwwHRJsbyc+47U_XJIzplOgyo>(o4RC(< z6`Y$+0V>yCf9{*?1@`#??mco30ei~J8h`xfo-^0gX8sLqnz;e%W$Yzzj%=*?i~29Z z-towdkdcRZK0wGon~*R0H>UpNO&N?)xW5oc*t!Q!f5!HV&9P5dE&gc?{n;LY*FPM( z@2a6cWi0(f<<8B)&fX|6V`(C(QTw z*6o+qk8h*j+X4O%&s|OcHSLFMVgJ{Up7C>F7S4RnxzD_?&Y(OK_jE<-58aH)+-Ju4 zQ|wt|_r2Se!T5@M!M+gpyyuY9RGP{5T9zx zcn>Ov$YtUL6|;%6lo~n zD`lbL1#w}1;rR;Vo$Ng-ZQ^YHxxO-X*IS4b_YQHEHR}z-pXY*|`r7;p{p6p3`kw)2 zUyS=#w4*KqZT{QwF49LC++Tgw;@uJYF5GYQpYeN~Yj&~uFY}SNU5)-})<-;30O-T8~0FE`r#~$_fF_z z^WL-X&QZ=w0MCdTLiEXB0mc?*!zS6c^xa|e?Y3uZLjU%M*vDG|vp;++$7S+) z0^s)sih6<(_X^CNiwFN>zJYRA9#u(QY2W3v+m9*Rm~(__Yt|)re~mHt%40@vwnaY9 z*FAIAF_cRL0!i%u)d24mz?UbRe&=|^Z{XO$J2^=>8yGYb-xi=8qgnTY~onI1ULwoIG46NY#!G1xhfN$RLObQ-0!4a@t)`0znHtysjKk!1P|Ev zmW+LwyAF%Nt1WP?CDJio&F!xPZr?- diff --git a/website/static/img/favicon.png b/website/static/img/favicon.png index 11135e022d010118ce5759073a4a9d83441cd086..295381b86a3203b700006c1286c8473669b17ee5 100644 GIT binary patch literal 3233 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 From fbb9abe3d0dfd52caa574e60e70850fec380c28e Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Fri, 22 May 2026 00:00:58 +0200 Subject: [PATCH 06/48] Remove unused files Signed-off-by: Philippe Ombredanne --- website/docs/intro.md | 47 ------ website/docs/temp-supporter-home-link.md | 3 - website/docs/tutorial-basics/_category_.json | 8 - .../docs/tutorial-basics/congratulations.md | 23 --- .../tutorial-basics/create-a-blog-post.md | 34 ---- .../docs/tutorial-basics/create-a-document.md | 57 ------- website/docs/tutorial-basics/create-a-page.md | 43 ----- .../docs/tutorial-basics/deploy-your-site.md | 31 ---- .../tutorial-basics/markdown-features.mdx | 152 ------------------ website/docs/tutorial-extras/_category_.json | 7 - .../img/docsVersionDropdown.png | Bin 25427 -> 0 bytes .../tutorial-extras/img/localeDropdown.png | Bin 27841 -> 0 bytes .../tutorial-extras/manage-docs-versions.md | 55 ------- .../tutorial-extras/translate-your-site.md | 88 ---------- 14 files changed, 548 deletions(-) delete mode 100644 website/docs/intro.md delete mode 100644 website/docs/temp-supporter-home-link.md delete mode 100644 website/docs/tutorial-basics/_category_.json delete mode 100644 website/docs/tutorial-basics/congratulations.md delete mode 100644 website/docs/tutorial-basics/create-a-blog-post.md delete mode 100644 website/docs/tutorial-basics/create-a-document.md delete mode 100644 website/docs/tutorial-basics/create-a-page.md delete mode 100644 website/docs/tutorial-basics/deploy-your-site.md delete mode 100644 website/docs/tutorial-basics/markdown-features.mdx delete mode 100644 website/docs/tutorial-extras/_category_.json delete mode 100644 website/docs/tutorial-extras/img/docsVersionDropdown.png delete mode 100644 website/docs/tutorial-extras/img/localeDropdown.png delete mode 100644 website/docs/tutorial-extras/manage-docs-versions.md delete mode 100644 website/docs/tutorial-extras/translate-your-site.md diff --git a/website/docs/intro.md b/website/docs/intro.md deleted file mode 100644 index 88f9571..0000000 --- a/website/docs/intro.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -sidebar_position: 1 ---- - -# Tutorial Intro - -Let's discover **Docusaurus in less than 5 minutes**. - -## Getting Started - -Get started by **creating a new site**. - -Or **try Docusaurus immediately** with **[docusaurus.new](https://docusaurus.new)**. - -### What you'll need - -- [Node.js](https://nodejs.org/en/download/) version 20.0 or above: - - When installing Node.js, you are recommended to check all checkboxes related to dependencies. - -## Generate a new site - -Generate a new Docusaurus site using the **classic template**. - -The classic template will automatically be added to your project after you run the command: - -```bash -npm init docusaurus@latest my-website classic -``` - -You can type this command into Command Prompt, Powershell, Terminal, or any other integrated terminal of your code editor. - -The command also installs all necessary dependencies you need to run Docusaurus. - -## Start your site - -Run the development server: - -```bash -cd my-website -npm run start -``` - -The `cd` command changes the directory you're working with. In order to work with your newly created Docusaurus site, you'll need to navigate the terminal there. - -The `npm run start` command builds your website locally and serves it through a development server, ready for you to view at http://localhost:3000/. - -Open `docs/intro.md` (this page) and edit some lines: the site **reloads automatically** and displays your changes. diff --git a/website/docs/temp-supporter-home-link.md b/website/docs/temp-supporter-home-link.md deleted file mode 100644 index 80cf832..0000000 --- a/website/docs/temp-supporter-home-link.md +++ /dev/null @@ -1,3 +0,0 @@ -# Temporary demo page - -This page represents the homepage of the supporter whose card the user has just clicked. diff --git a/website/docs/tutorial-basics/_category_.json b/website/docs/tutorial-basics/_category_.json deleted file mode 100644 index 2e6db55..0000000 --- a/website/docs/tutorial-basics/_category_.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "label": "Tutorial - Basics", - "position": 2, - "link": { - "type": "generated-index", - "description": "5 minutes to learn the most important Docusaurus concepts." - } -} diff --git a/website/docs/tutorial-basics/congratulations.md b/website/docs/tutorial-basics/congratulations.md deleted file mode 100644 index 04771a0..0000000 --- a/website/docs/tutorial-basics/congratulations.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -sidebar_position: 6 ---- - -# Congratulations! - -You have just learned the **basics of Docusaurus** and made some changes to the **initial template**. - -Docusaurus has **much more to offer**! - -Have **5 more minutes**? Take a look at **[versioning](../tutorial-extras/manage-docs-versions.md)** and **[i18n](../tutorial-extras/translate-your-site.md)**. - -Anything **unclear** or **buggy** in this tutorial? [Please report it!](https://github.com/facebook/docusaurus/discussions/4610) - -## What's next? - -- Read the [official documentation](https://docusaurus.io/) -- Modify your site configuration with [`docusaurus.config.js`](https://docusaurus.io/docs/api/docusaurus-config) -- Add navbar and footer items with [`themeConfig`](https://docusaurus.io/docs/api/themes/configuration) -- Add a custom [Design and Layout](https://docusaurus.io/docs/styling-layout) -- Add a [search bar](https://docusaurus.io/docs/search) -- Find inspirations in the [Docusaurus showcase](https://docusaurus.io/showcase) -- Get involved in the [Docusaurus Community](https://docusaurus.io/community/support) diff --git a/website/docs/tutorial-basics/create-a-blog-post.md b/website/docs/tutorial-basics/create-a-blog-post.md deleted file mode 100644 index 550ae17..0000000 --- a/website/docs/tutorial-basics/create-a-blog-post.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -sidebar_position: 3 ---- - -# Create a Blog Post - -Docusaurus creates a **page for each blog post**, but also a **blog index page**, a **tag system**, an **RSS** feed... - -## Create your first Post - -Create a file at `blog/2021-02-28-greetings.md`: - -```md title="blog/2021-02-28-greetings.md" ---- -slug: greetings -title: Greetings! -authors: - - name: Joel Marcey - title: Co-creator of Docusaurus 1 - url: https://github.com/JoelMarcey - image_url: https://github.com/JoelMarcey.png - - name: Sébastien Lorber - title: Docusaurus maintainer - url: https://sebastienlorber.com - image_url: https://github.com/slorber.png -tags: [greetings] ---- - -Congratulations, you have made your first post! - -Feel free to play around and edit this post as much as you like. -``` - -A new blog post is now available at [http://localhost:3000/blog/greetings](http://localhost:3000/blog/greetings). diff --git a/website/docs/tutorial-basics/create-a-document.md b/website/docs/tutorial-basics/create-a-document.md deleted file mode 100644 index c22fe29..0000000 --- a/website/docs/tutorial-basics/create-a-document.md +++ /dev/null @@ -1,57 +0,0 @@ ---- -sidebar_position: 2 ---- - -# Create a Document - -Documents are **groups of pages** connected through: - -- a **sidebar** -- **previous/next navigation** -- **versioning** - -## Create your first Doc - -Create a Markdown file at `docs/hello.md`: - -```md title="docs/hello.md" -# Hello - -This is my **first Docusaurus document**! -``` - -A new document is now available at [http://localhost:3000/docs/hello](http://localhost:3000/docs/hello). - -## Configure the Sidebar - -Docusaurus automatically **creates a sidebar** from the `docs` folder. - -Add metadata to customize the sidebar label and position: - -```md title="docs/hello.md" {1-4} ---- -sidebar_label: 'Hi!' -sidebar_position: 3 ---- - -# Hello - -This is my **first Docusaurus document**! -``` - -It is also possible to create your sidebar explicitly in `sidebars.js`: - -```js title="sidebars.js" -export default { - tutorialSidebar: [ - 'intro', - // highlight-next-line - 'hello', - { - type: 'category', - label: 'Tutorial', - items: ['tutorial-basics/create-a-document'], - }, - ], -}; -``` diff --git a/website/docs/tutorial-basics/create-a-page.md b/website/docs/tutorial-basics/create-a-page.md deleted file mode 100644 index 20e2ac3..0000000 --- a/website/docs/tutorial-basics/create-a-page.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -sidebar_position: 1 ---- - -# Create a Page - -Add **Markdown or React** files to `src/pages` to create a **standalone page**: - -- `src/pages/index.js` → `localhost:3000/` -- `src/pages/foo.md` → `localhost:3000/foo` -- `src/pages/foo/bar.js` → `localhost:3000/foo/bar` - -## Create your first React Page - -Create a file at `src/pages/my-react-page.js`: - -```jsx title="src/pages/my-react-page.js" -import React from 'react'; -import Layout from '@theme/Layout'; - -export default function MyReactPage() { - return ( - -

My React page

-

This is a React page

- - ); -} -``` - -A new page is now available at [http://localhost:3000/my-react-page](http://localhost:3000/my-react-page). - -## Create your first Markdown Page - -Create a file at `src/pages/my-markdown-page.md`: - -```mdx title="src/pages/my-markdown-page.md" -# My Markdown page - -This is a Markdown page -``` - -A new page is now available at [http://localhost:3000/my-markdown-page](http://localhost:3000/my-markdown-page). diff --git a/website/docs/tutorial-basics/deploy-your-site.md b/website/docs/tutorial-basics/deploy-your-site.md deleted file mode 100644 index 1c50ee0..0000000 --- a/website/docs/tutorial-basics/deploy-your-site.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -sidebar_position: 5 ---- - -# Deploy your site - -Docusaurus is a **static-site-generator** (also called **[Jamstack](https://jamstack.org/)**). - -It builds your site as simple **static HTML, JavaScript and CSS files**. - -## Build your site - -Build your site **for production**: - -```bash -npm run build -``` - -The static files are generated in the `build` folder. - -## Deploy your site - -Test your production build locally: - -```bash -npm run serve -``` - -The `build` folder is now served at [http://localhost:3000/](http://localhost:3000/). - -You can now deploy the `build` folder **almost anywhere** easily, **for free** or very small cost (read the **[Deployment Guide](https://docusaurus.io/docs/deployment)**). diff --git a/website/docs/tutorial-basics/markdown-features.mdx b/website/docs/tutorial-basics/markdown-features.mdx deleted file mode 100644 index 35e0082..0000000 --- a/website/docs/tutorial-basics/markdown-features.mdx +++ /dev/null @@ -1,152 +0,0 @@ ---- -sidebar_position: 4 ---- - -# Markdown Features - -Docusaurus supports **[Markdown](https://daringfireball.net/projects/markdown/syntax)** and a few **additional features**. - -## Front Matter - -Markdown documents have metadata at the top called [Front Matter](https://jekyllrb.com/docs/front-matter/): - -```text title="my-doc.md" -// highlight-start ---- -id: my-doc-id -title: My document title -description: My document description -slug: /my-custom-url ---- -// highlight-end - -## Markdown heading - -Markdown text with [links](./hello.md) -``` - -## Links - -Regular Markdown links are supported, using url paths or relative file paths. - -```md -Let's see how to [Create a page](/create-a-page). -``` - -```md -Let's see how to [Create a page](./create-a-page.md). -``` - -**Result:** Let's see how to [Create a page](./create-a-page.md). - -## Images - -Regular Markdown images are supported. - -You can use absolute paths to reference images in the static directory (`static/img/docusaurus.png`): - -```md -![Docusaurus logo](/img/docusaurus.png) -``` - -![Docusaurus logo](/img/docusaurus.png) - -You can reference images relative to the current file as well. This is particularly useful to colocate images close to the Markdown files using them: - -```md -![Docusaurus logo](./img/docusaurus.png) -``` - -## Code Blocks - -Markdown code blocks are supported with Syntax highlighting. - -````md -```jsx title="src/components/HelloDocusaurus.js" -function HelloDocusaurus() { - return

Hello, Docusaurus!

; -} -``` -```` - -```jsx title="src/components/HelloDocusaurus.js" -function HelloDocusaurus() { - return

Hello, Docusaurus!

; -} -``` - -## Admonitions - -Docusaurus has a special syntax to create admonitions and callouts: - -```md -:::tip My tip - -Use this awesome feature option - -::: - -:::danger Take care - -This action is dangerous - -::: -``` - -:::tip My tip - -Use this awesome feature option - -::: - -:::danger Take care - -This action is dangerous - -::: - -## MDX and React Components - -[MDX](https://mdxjs.com/) can make your documentation more **interactive** and allows using any **React components inside Markdown**: - -```jsx -export const Highlight = ({children, color}) => ( - { - alert(`You clicked the color ${color} with label ${children}`) - }}> - {children} - -); - -This is Docusaurus green ! - -This is Facebook blue ! -``` - -export const Highlight = ({children, color}) => ( - { - alert(`You clicked the color ${color} with label ${children}`); - }}> - {children} - -); - -This is Docusaurus green ! - -This is Facebook blue ! diff --git a/website/docs/tutorial-extras/_category_.json b/website/docs/tutorial-extras/_category_.json deleted file mode 100644 index a8ffcc1..0000000 --- a/website/docs/tutorial-extras/_category_.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "label": "Tutorial - Extras", - "position": 3, - "link": { - "type": "generated-index" - } -} diff --git a/website/docs/tutorial-extras/img/docsVersionDropdown.png b/website/docs/tutorial-extras/img/docsVersionDropdown.png deleted file mode 100644 index 97e4164618b5f8beda34cfa699720aba0ad2e342..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25427 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 diff --git a/website/docs/tutorial-extras/img/localeDropdown.png b/website/docs/tutorial-extras/img/localeDropdown.png deleted file mode 100644 index e257edc1f932985396bf59584c7ccfaddf955779..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27841 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 JrC|B>e*nH7H{}2T diff --git a/website/docs/tutorial-extras/manage-docs-versions.md b/website/docs/tutorial-extras/manage-docs-versions.md deleted file mode 100644 index ccda0b9..0000000 --- a/website/docs/tutorial-extras/manage-docs-versions.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -sidebar_position: 1 ---- - -# Manage Docs Versions - -Docusaurus can manage multiple versions of your docs. - -## Create a docs version - -Release a version 1.0 of your project: - -```bash -npm run docusaurus docs:version 1.0 -``` - -The `docs` folder is copied into `versioned_docs/version-1.0` and `versions.json` is created. - -Your docs now have 2 versions: - -- `1.0` at `http://localhost:3000/docs/` for the version 1.0 docs -- `current` at `http://localhost:3000/docs/next/` for the **upcoming, unreleased docs** - -## Add a Version Dropdown - -To navigate seamlessly across versions, add a version dropdown. - -Modify the `docusaurus.config.js` file: - -```js title="docusaurus.config.js" -export default { - themeConfig: { - navbar: { - items: [ - // highlight-start - { - type: 'docsVersionDropdown', - }, - // highlight-end - ], - }, - }, -}; -``` - -The docs version dropdown appears in your navbar: - -![Docs Version Dropdown](./img/docsVersionDropdown.png) - -## Update an existing version - -It is possible to edit versioned docs in their respective folder: - -- `versioned_docs/version-1.0/hello.md` updates `http://localhost:3000/docs/hello` -- `docs/hello.md` updates `http://localhost:3000/docs/next/hello` diff --git a/website/docs/tutorial-extras/translate-your-site.md b/website/docs/tutorial-extras/translate-your-site.md deleted file mode 100644 index b5a644a..0000000 --- a/website/docs/tutorial-extras/translate-your-site.md +++ /dev/null @@ -1,88 +0,0 @@ ---- -sidebar_position: 2 ---- - -# Translate your site - -Let's translate `docs/intro.md` to French. - -## Configure i18n - -Modify `docusaurus.config.js` to add support for the `fr` locale: - -```js title="docusaurus.config.js" -export default { - i18n: { - defaultLocale: 'en', - locales: ['en', 'fr'], - }, -}; -``` - -## Translate a doc - -Copy the `docs/intro.md` file to the `i18n/fr` folder: - -```bash -mkdir -p i18n/fr/docusaurus-plugin-content-docs/current/ - -cp docs/intro.md i18n/fr/docusaurus-plugin-content-docs/current/intro.md -``` - -Translate `i18n/fr/docusaurus-plugin-content-docs/current/intro.md` in French. - -## Start your localized site - -Start your site on the French locale: - -```bash -npm run start -- --locale fr -``` - -Your localized site is accessible at [http://localhost:3000/fr/](http://localhost:3000/fr/) and the `Getting Started` page is translated. - -:::caution - -In development, you can only use one locale at a time. - -::: - -## Add a Locale Dropdown - -To navigate seamlessly across languages, add a locale dropdown. - -Modify the `docusaurus.config.js` file: - -```js title="docusaurus.config.js" -export default { - themeConfig: { - navbar: { - items: [ - // highlight-start - { - type: 'localeDropdown', - }, - // highlight-end - ], - }, - }, -}; -``` - -The locale dropdown now appears in your navbar: - -![Locale Dropdown](./img/localeDropdown.png) - -## Build your localized site - -Build your site for a specific locale: - -```bash -npm run build -- --locale fr -``` - -Or build your site to include all the locales at once: - -```bash -npm run build -``` From 5ac03acae56fb9f53905ec587a6a499fc739ddbd Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Fri, 22 May 2026 00:35:32 +0200 Subject: [PATCH 07/48] Improve home page hero and intro Signed-off-by: Philippe Ombredanne --- .../components/HomepageContent/HomeIntro.mdx | 22 +++++++------------ .../src/components/HomepageContent/index.js | 2 +- .../src/components/HomepageHeader/index.js | 5 +++-- website/src/pages/index.js | 2 +- 4 files changed, 13 insertions(+), 18 deletions(-) diff --git a/website/src/components/HomepageContent/HomeIntro.mdx b/website/src/components/HomepageContent/HomeIntro.mdx index b0098f0..2d2f3d5 100644 --- a/website/src/components/HomepageContent/HomeIntro.mdx +++ b/website/src/components/HomepageContent/HomeIntro.mdx @@ -1,17 +1,11 @@ -AboutCode is a family of FOSS projects to discover, report and manage metadata -about software: -- Where does the software come from? -- What is its license? its copyright? -- What are its dependencies? -- Was the software well maintained? -- Are there security vulnerabilities? -- Are there licensing issues? +

Modern software is assembled from thousands of open source components.

+For each one you need to know: -These are all important questions because there are millions of free and open -source software components available on the web for reuse. +- Where does this code come from? +- What license applies? +- Does it have known vulnerabilities? +- Is it actively maintained? -Knowing where a software package comes from, what its license is and whether -it is vulnerable should be a problem of the past such that everyone can safely -consume more free and open source software. We support not only open source -software, but also open data, generated and curated by our applications. +AboutCode provides open tools, open data, and open standards to answer +these questions and keep your software supply chains safe and compliant. diff --git a/website/src/components/HomepageContent/index.js b/website/src/components/HomepageContent/index.js index ff14238..2929ffe 100644 --- a/website/src/components/HomepageContent/index.js +++ b/website/src/components/HomepageContent/index.js @@ -29,7 +29,7 @@ export default function HomepageContent() { className={styles.sectionHeader} style={{ marginBottom: '15px', marginTop: '15px' }} > -

AboutCode Projects Overview

+

AboutCode Projects Overview

diff --git a/website/src/components/HomepageHeader/index.js b/website/src/components/HomepageHeader/index.js index 6a783d5..a31227a 100644 --- a/website/src/components/HomepageHeader/index.js +++ b/website/src/components/HomepageHeader/index.js @@ -6,10 +6,11 @@ export default function HomepageHeader() {

- Welcome to AboutCode.org + Healthy and Safe
+ Software Supply Chains

- FOSS for FOSS + Built on open data, open code, and open standards.

diff --git a/website/src/pages/index.js b/website/src/pages/index.js index b877021..293f41c 100644 --- a/website/src/pages/index.js +++ b/website/src/pages/index.js @@ -4,7 +4,7 @@ import HomepageContent from "../components/HomepageContent"; export default function Home() { return ( - + From 1da98466f023e7aaaec8b80cea1bfe88e8886a4f Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Fri, 22 May 2026 00:41:03 +0200 Subject: [PATCH 08/48] Remove unused component and page Signed-off-by: Philippe Ombredanne --- .../archive/ProjectGrid/index-new.js | 313 -------- .../archive/ProjectGrid/index-saved.js | 575 -------------- .../components/archive/ProjectGrid/index.js | 318 -------- .../archive/ProjectGrid/styles.module.css | 721 ------------------ website/src/pages/markdown-page.md | 7 - 5 files changed, 1934 deletions(-) delete mode 100644 website/src/components/archive/ProjectGrid/index-new.js delete mode 100644 website/src/components/archive/ProjectGrid/index-saved.js delete mode 100644 website/src/components/archive/ProjectGrid/index.js delete mode 100644 website/src/components/archive/ProjectGrid/styles.module.css delete mode 100644 website/src/pages/markdown-page.md diff --git a/website/src/components/archive/ProjectGrid/index-new.js b/website/src/components/archive/ProjectGrid/index-new.js deleted file mode 100644 index 9edbd3d..0000000 --- a/website/src/components/archive/ProjectGrid/index-new.js +++ /dev/null @@ -1,313 +0,0 @@ -// 2025-11-22 Saturday 09:58:08. From ToolGrid -import React, { useState, useEffect } from 'react'; -import styles from './styles.module.css'; -// import projects from '@site/src/data/projects-v02.json'; -import projects_library from '@site/src/data/projects-library.json'; -import projects_main from '@site/src/data/projects-main.json'; - -export default function ProjectGrid() { - const [message, setMessage] = useState(null); - const [selectedProject, setSelectedProject] = useState(null); - const [activeTab, setActiveTab] = useState('overview'); - // Monitor open modal -- state prevents display of main-page alert - const [isModalOpen, setIsModalOpen] = useState(false); - const openModal = (project) => { - setSelectedProject(project); // sets modal content - }; - // Use a separate state for the modal alert - const [modalMessage, setModalMessage] = useState(null); - - // Close modal on Escape key - useEffect(() => { - function handleKeyDown(event) { - if (event.key === 'Escape') { - setSelectedProject(null); - setActiveTab('overview'); - } - } - if (selectedProject) { - window.addEventListener('keydown', handleKeyDown); - } - return () => { - window.removeEventListener('keydown', handleKeyDown); - }; - }, [selectedProject]); - - const closeModal = () => { - setSelectedProject(null); - setActiveTab('overview'); - }; - - return ( -
-
-
- {projects.map((project, idx) => ( -
openModal(project)} - > -
-
-

- {project.repository_url ? ( - - e.stopPropagation() - } - > - {project.name} - - ) : ( - project.name - )} -

-
-
- -
-
- {project.description} -
-
- -
-
- Package Download URL: - {project.package_download_url && - project.package_download_url.length > - 0 && ( -
    - {project.package_download_url.map( - (url, idx) => ( -
  • - - {url} - -
  • - ) - )} -
- )} -
-
-
- ))} -
- {/* ^ end of projectGrid */} -
- {/* ^ end of projectGridContainer */} - - {/* Popup message */} - {/* Don't display this message if the modal is open. */} - {!isModalOpen && message && ( -
{message}
- )} - - {/* Modal */} - {selectedProject && ( -
-
e.stopPropagation()} - > -
- <> - {/* Full width section */} -
-

{selectedProject.name}

-

{selectedProject.description}

-
- -
-
- - Repository URL:{' '} - - - {selectedProject.repository_url && - selectedProject.repository_url !== - 'n/a' && - selectedProject.repository_url !== - '#' ? ( - - {selectedProject.repository_url} - - ) : ( - n/a - )} -
-
- - Documentation URL:{' '} - - - {selectedProject.documentation_url && - selectedProject.documentation_url !== - 'n/a' && - selectedProject.documentation_url !== - '#' ? ( - - { - selectedProject.documentation_url - } - - ) : ( - n/a - )} -
- -
- Package Download URL: - {selectedProject.package_download_url && - selectedProject.package_download_url - .length > 0 && ( -
    - {selectedProject.package_download_url.map( - (url, idx) => ( -
  • - - {url} - -
  • - ) - )} -
- )} -
- -
- - Service URL:{' '} - - - {selectedProject.service_url && - selectedProject.service_url !== 'n/a' && - selectedProject.service_url !== '#' ? ( - - {selectedProject.service_url} - - ) : ( - n/a - )} -
- -
- - Language:{' '} - -
- {selectedProject.language} -
-
- -
- - License:{' '} - -
- {selectedProject.license} -
-
- -
- - Platform:{' '} - -
- {selectedProject.platform} -
-
- -
- - Comments:{' '} - -
- {selectedProject.comments} -
-
-
- -
- - {/* Close button */} -
- -
- {/* Display alert inside open modal. */} - {modalMessage && ( -
- {modalMessage} -
- )} -
-
- )} - {/* end of modal */} -
- ); -} diff --git a/website/src/components/archive/ProjectGrid/index-saved.js b/website/src/components/archive/ProjectGrid/index-saved.js deleted file mode 100644 index bef8bec..0000000 --- a/website/src/components/archive/ProjectGrid/index-saved.js +++ /dev/null @@ -1,575 +0,0 @@ -// 2025-12-11 Thursday 12:09:35.Saved. -// 2025-11-22 Saturday 09:58:08. From ToolGrid -import React, { useState, useEffect } from 'react'; -import styles from './styles.module.css'; -// import specs from '@site/src/data/specifications.json'; -// import projects from '@site/src/data/projects-v01.json'; -import projects from '@site/src/data/projects-v02.json'; - -export default function ProjectGrid() { - const [message, setMessage] = useState(null); - const [selectedProject, setSelectedProject] = useState(null); - const [activeTab, setActiveTab] = useState('overview'); - // Monitor open modal -- state prevents display of main-page alert - const [isModalOpen, setIsModalOpen] = useState(false); - const openModal = (project) => { - setSelectedProject(project); // sets modal content - }; - // Use a separate state for the modal alert - const [modalMessage, setModalMessage] = useState(null); - - // Close modal on Escape key - useEffect(() => { - function handleKeyDown(event) { - if (event.key === 'Escape') { - setSelectedProject(null); - setActiveTab('overview'); - } - } - if (selectedProject) { - window.addEventListener('keydown', handleKeyDown); - } - return () => { - window.removeEventListener('keydown', handleKeyDown); - }; - }, [selectedProject]); - - // modal link events - // const handleLinkClick = (e, project, linkType) => { - // e.preventDefault(); - // e.stopPropagation(); - - // let message = null; - - // if ( - // linkType === 'homepage' && - // (!project.homepage || project.homepage === 'n/a') - // ) { - // message = `The homepage for "${project.name}" is not available.`; - // } else if ( - // linkType === 'source_download' && - // (!project.source_download || project.source_download === 'n/a') - // ) { - // message = `The source download URL for "${project.name}" is not available.`; - // } else if ( - // linkType === 'package_download' && - // (!project.package_download || project.package_download === 'n/a') - // ) { - // message = `The package download URL for "${project.name}" is not available.`; - // } - - // if (message) { - // setModalMessage(message); - // setTimeout(() => setModalMessage(null), 3000); - // } else { - // // manually open the valid link if it passed checks - // const url = - // linkType === 'homepage' - // ? project.homepage - // : project.source_download; - // window.open(url, '_blank', 'noopener noreferrer'); - // } - // }; - - const closeModal = () => { - setSelectedProject(null); - setActiveTab('overview'); - }; - - return ( -
-
-
- {projects.map((project, idx) => ( -
openModal(project)} - > - {/*
*/} -
-
-

- {project.repository_url ? ( - - e.stopPropagation() - } - > - {project.name} - - ) : ( - project.name - )} -

- - {/* Optional logo (only if available) */} - {/* {project.logo && ( -
- {`${project.name} -
- )} */} -
-
- - {/*
*/} -
-
- {project.description} -
-
- - {/*
-
    -
  • - Base language:{' '} - {project.language} -
  • -
  • - License:{' '} - {project.license} -
  • -
  • - Standards:{' '} - {project.standards} -
  • -
-
*/} - -{/*
*/} -
-
- Package Download URL: - {project.package_download_url && - project.package_download_url.length > - 0 && ( -
    - {project.package_download_url.map( - (url, idx) => ( -
  • - - {url} - -
  • - ) - )} -
- )} -
-
- - -
- ))} -
- {/* ^ end of projectGrid */} -
- {/* ^ end of projectGridContainer */} - - {/* Popup message */} - {/* Don't display this message if the modal is open. */} - {!isModalOpen && message && ( -
{message}
- )} - - {/* Modal */} - {selectedProject && ( -
-
e.stopPropagation()} - > -
- <> - {/* Full width section */} -
-

{selectedProject.name}

-

{selectedProject.description}

-
- - {/* 2025-12-11 Thursday 09:06:10. Copy one of the single-column sections from below. */} -
-
- - Repository URL:{' '} - - - {selectedProject.repository_url && - selectedProject.repository_url !== - 'n/a' && - selectedProject.repository_url !== - '#' ? ( - - {selectedProject.repository_url} - - ) : ( - n/a - )} - - {/* {selectedProject.homepage && - selectedProject.homepage !== 'n/a' && - selectedProject.homepage !== '#' ? ( - - {selectedProject.homepage} - - ) : ( - n/a - )} */} -
-
- - Documentation URL:{' '} - - - {selectedProject.documentation_url && - selectedProject.documentation_url !== - 'n/a' && - selectedProject.documentation_url !== - '#' ? ( - - { - selectedProject.documentation_url - } - - ) : ( - n/a - )} -
- -
- {/*
*/} - Package Download URL: - {selectedProject.package_download_url && - selectedProject.package_download_url.length > - 0 && ( -
    - {selectedProject.package_download_url.map( - (url, idx) => ( -
  • - - {url} - -
  • - ) - )} -
- )} - {/*
*/} - -
- - {/*
- - Package Download URL:{' '} - - - {selectedProject.package_download_url && - selectedProject.package_download_url !== - 'n/a' && - selectedProject.package_download_url !== - '#' ? ( - - { - selectedProject.package_download_url - } - - ) : ( - n/a - )} -
*/} - -
- - Service URL:{' '} - - - {selectedProject.service_url && - selectedProject.service_url !== - 'n/a' && - selectedProject.service_url !== - '#' ? ( - - { - selectedProject.service_url - } - - ) : ( - n/a - )} -
- -
- - Language:{' '} - -
- {selectedProject.language} -
-
- -
- - License:{' '} - -
- {selectedProject.license} -
-
- -
- - Platform:{' '} - -
- {selectedProject.platform} -
-
- -
- - Comments:{' '} - -
- {selectedProject.comments} -
-
-
- - {/* Two column section */} - {/*
-
-
    -
  • - Base language:{' '} - {selectedProject.language} -
  • -
  • - License:{' '} - {selectedProject.license} -
  • -
  • - Functions:{' '} - {selectedProject.functions} -
  • -
  • - Type:{' '} - {selectedProject.type} -
  • -
  • - Standards:{' '} - {selectedProject.standards} -
  • -
  • - Platform:{' '} - {selectedProject.platform} -
  • -
-
- -
-
- - Home:{' '} - - - {selectedProject.homepage && - selectedProject.homepage !== - 'n/a' && - selectedProject.homepage !== '#' ? ( - - {selectedProject.homepage} - - ) : ( - n/a - )} -
-
- - Source download:{' '} - - - {selectedProject.source_download && - selectedProject.source_download !== - 'n/a' && - selectedProject.source_download !== - '#' ? ( - - { - selectedProject.source_download - } - - ) : ( - n/a - )} -
- -
- - Package download:{' '} - - - {selectedProject.package_download && - selectedProject.package_download !== - 'n/a' && - selectedProject.package_download !== - '#' ? ( - - { - selectedProject.package_download - } - - ) : ( - n/a - )} -
- -
- - Notes:{' '} - -
- {selectedProject.notes} -
-
-
-
*/} - -
- - {/* Close button */} -
- -
- {/* Display alert inside open modal. */} - {modalMessage && ( -
- {modalMessage} -
- )} -
-
- )} - {/* end of modal */} -
- ); -} diff --git a/website/src/components/archive/ProjectGrid/index.js b/website/src/components/archive/ProjectGrid/index.js deleted file mode 100644 index 2592e1a..0000000 --- a/website/src/components/archive/ProjectGrid/index.js +++ /dev/null @@ -1,318 +0,0 @@ -// 2025-11-22 Saturday 09:58:08. From ToolGrid -import React, { useState, useEffect } from 'react'; -import styles from './styles.module.css'; -import projects from '@site/src/data/projects-v02.json'; -import projects_library from '@site/src/data/projects-library.json'; -import projects_main from '@site/src/data/projects-main.json'; - -export default function ProjectGrid() { - const [message, setMessage] = useState(null); - const [selectedProject, setSelectedProject] = useState(null); - // 2025-12-11 Thursday 18:04:12.No longer used right? - // const [activeTab, setActiveTab] = useState('overview'); - // Monitor open modal -- state prevents display of main-page alert - const [isModalOpen, setIsModalOpen] = useState(false); - const openModal = (project) => { - setSelectedProject(project); // sets modal content - }; - // Use a separate state for the modal alert - const [modalMessage, setModalMessage] = useState(null); - - // Close modal on Escape key - useEffect(() => { - function handleKeyDown(event) { - if (event.key === 'Escape') { - setSelectedProject(null); - // 2025-12-11 Thursday 18:04:12.No longer used right? - // setActiveTab('overview'); - } - } - if (selectedProject) { - window.addEventListener('keydown', handleKeyDown); - } - return () => { - window.removeEventListener('keydown', handleKeyDown); - }; - }, [selectedProject]); - - const closeModal = () => { - setSelectedProject(null); - // 2025-12-11 Thursday 18:04:12.No longer used right? - // setActiveTab('overview'); - }; - - return ( -
-
-
- {projects.map((project, idx) => ( -
openModal(project)} - > -
-
-

- {project.repository_url ? ( - - e.stopPropagation() - } - > - {project.name} - - ) : ( - project.name - )} -

-
-
- -
-
- {project.description} -
-
- -
-
- Package Download URL: - {project.package_download_url && - project.package_download_url.length > - 0 && ( -
    - {project.package_download_url.map( - (url, idx) => ( -
  • - - {url} - -
  • - ) - )} -
- )} -
-
-
- ))} -
- {/* ^ end of projectGrid */} -
- {/* ^ end of projectGridContainer */} - {/*
? */} - {/* ))} */} - - {/* Popup message */} - {/* Don't display this message if the modal is open. */} - {!isModalOpen && message && ( -
{message}
- )} - - {/* Modal */} - {selectedProject && ( -
-
e.stopPropagation()} - > -
- <> - {/* Full width section */} -
-

{selectedProject.name}

-

{selectedProject.description}

-
- -
-
- - Repository URL:{' '} - - - {selectedProject.repository_url && - selectedProject.repository_url !== - 'n/a' && - selectedProject.repository_url !== - '#' ? ( - - {selectedProject.repository_url} - - ) : ( - n/a - )} -
-
- - Documentation URL:{' '} - - - {selectedProject.documentation_url && - selectedProject.documentation_url !== - 'n/a' && - selectedProject.documentation_url !== - '#' ? ( - - { - selectedProject.documentation_url - } - - ) : ( - n/a - )} -
- -
- Package Download URL: - {selectedProject.package_download_url && - selectedProject.package_download_url - .length > 0 && ( -
    - {selectedProject.package_download_url.map( - (url, idx) => ( -
  • - - {url} - -
  • - ) - )} -
- )} -
- -
- - Service URL:{' '} - - - {selectedProject.service_url && - selectedProject.service_url !== 'n/a' && - selectedProject.service_url !== '#' ? ( - - {selectedProject.service_url} - - ) : ( - n/a - )} -
- -
- - Language:{' '} - -
- {selectedProject.language} -
-
- -
- - License:{' '} - -
- {selectedProject.license} -
-
- -
- - Platform:{' '} - -
- {selectedProject.platform} -
-
- -
- - Comments:{' '} - -
- {selectedProject.comments} -
-
-
- -
- - {/* Close button */} -
- -
- {/* Display alert inside open modal. */} - {modalMessage && ( -
- {modalMessage} -
- )} -
-
- )} - {/* end of modal */} -
- ); -} diff --git a/website/src/components/archive/ProjectGrid/styles.module.css b/website/src/components/archive/ProjectGrid/styles.module.css deleted file mode 100644 index 591838f..0000000 --- a/website/src/components/archive/ProjectGrid/styles.module.css +++ /dev/null @@ -1,721 +0,0 @@ -/* Grid layout (reuse existing) */ -.projectGridWrapper { - margin: 2rem auto; - margin: 1rem auto; - margin: 0.5rem auto; - padding: 1rem; - background-color: #e8e8e8; - background-color: #f5f5f5; - border-radius: 12px; - - border: solid 1px #b8b8b8; - border: 0; -} - -.projectGridContainer { - max-width: 1200px; - width: 100%; - /* Center the projectgrid on the page. */ - margin: 0 auto; -} - - /* NEW: Replace flexbox with a proper grid */ -.projectGrid { - display: grid; - grid-template-columns: repeat(3, 1fr); /* 3 columns */ - gap: 1.5rem; - align-items: stretch; /* Auto-match heights per row */ -} - -.projectCard { - background: #fff; - border: 1px solid #e0e0e0; - border: 1px solid #909090; - border-radius: 12px; - box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08); - - padding: 1rem; - text-align: left; - cursor: pointer; - transition: transform 0.2s ease, box-shadow 0.2s ease; - - /* Remove sizing from flexbox layout */ - flex: none; - max-width: none; - - /* Keep your vertical stacking */ - display: flex; - flex-direction: column; - margin-bottom: 0; - /* Handle the long URL values. */ - word-break: break-all; - overflow-wrap: anywhere; - min-width: 0; /* critical for grid children */ - - /* YO: Modern approach: */ - overflow-wrap: break-word; - word-break: normal; - -} - -.projectCard:hover { - transform: translateY(-3px); - box-shadow: 0 4px 10px rgba(0, 0, 0, 0.15); -} - -/* Breakpoints for tablets */ -@media (max-width: 1024px) { - .projectGrid { - grid-template-columns: repeat(2, 1fr); - } -} - -/* Breakpoints for mobile */ -@media (max-width: 640px) { - .projectGrid { - grid-template-columns: 1fr; - } -} - -.projectLogo { - width: 60px; - height: 60px; - margin: 0 auto 1rem; -} - -@keyframes slideUp { - to { - transform: translateY(0); - opacity: 1; - } -} - -/* Close button */ -.modalClose { - position: absolute; - bottom: 1rem; - right: 1rem; - padding: 0.5rem 1rem; - background-color: #0366d6; - color: white; - border: none; - border-radius: 6px; - cursor: pointer; -} - -.modalClose:hover { - background-color: #024c9c; -} - - -/* Spec links inside modal */ -.projectLinks { - text-align: left; - border-top: solid 1px #d8d8d8; - padding-top: 5px; - margin-top: 10px; - - /* Handle the long URL values. */ - word-break: break-all; - overflow-wrap: anywhere; - line-height: 1.25rem; - - /* Modern approach: */ - overflow-wrap: break-word; - word-break: normal; -} - -.projectLinks a { - margin-right: 1rem; - text-decoration: none; - color: #0366d6; - font-weight: 500; - /* 'break-all' for links -- "words" don't matter */ - word-break: break-all; - overflow-wrap: anywhere; -} - -.projectLinks a:hover { - text-decoration: underline; -} - -.modalLinks01 { - text-align: left; - padding-top: 5px; - line-height: 1.25rem; -} -.modalLinks01 a { - margin-right: 1rem; - text-decoration: none; - color: #0366d6; - font-weight: 500; - font-weight:normal; - /* Handle the long URL values. */ - word-break: break-all; - overflow-wrap: anywhere; -} -.modalLinks01 a:hover { - text-decoration: underline; -} - -/* 2025-12-11 Thursday 11:14:14. */ -/* .modalLinks01 ul { -list-style-type: disc !important; -} */ - -/* .modalLinks01 li { -display: list-item !important; -} */ - -.featureList { - line-height: 1.25rem; -} - -/* Spec metadata list */ -.projectMeta { - list-style: none; - padding: 0; - margin: 0.5rem 0; - margin: 0.1rem 0; -} - -/* Modal. */ -/* Modal styles */ -.modalBackdrop { - position: fixed; - top: 0; - left: 0; - right: 0; - bottom: 0; - background-color: rgba(0, 0, 0, 0.6); - display: flex; - align-items: center; - justify-content: center; - z-index: 1000; - padding: 1rem; -} - -/* Adding another .modalContent below with 'position: relative;' hoping to position the alert inside the open modal. */ -.modalContent { - background: white; - border-radius: 8px; - max-width: 1200px; - max-width: 1000px; - max-width: 800px; - width: 100%; - max-height: 90vh; - /* overflow: hidden; */ - /* overflow-y: auto; */ - overflow:none; - display: flex; - flex-direction: column; - box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); -} - -/* Tabs */ -.modalTabs { - display: flex; - border-bottom: 1px solid #e0e0e0; - border-bottom: 2px solid #e0e0e0; - border-bottom: 0; - background-color: #f5f5f5; - background-color: #ffffff; -} - -.tab { - flex: 1; - padding: 1rem; - border: none; - background: none; - cursor: pointer; - font-size: 1rem; - font-weight: 500; - transition: background-color 0.2s; - - border-bottom: 2px solid #e8e8e8; - - color: #606060; - background-color: #f8f8f8; - background-color: #f5f5f5; - background-color: #e8e8e8; - background-color: #ffffff; -} - -.tab:hover { - background-color: #e8e8e8; - background-color: #f5f5f5; - background-color: #ffffff; - color: #0066ff; - border-bottom: 2px solid #0066ff; -} - -.tabActive { - background-color: white; - border-bottom: 2px solid #007bff; - border-bottom: 2px solid #000000; - - color: #000000; -} - -.tabActive:hover { - background-color: white; - cursor: auto; - border-bottom: 2px solid #000000; - color: #000000; -} - -/* Modal body */ -.modalBody { - flex: 1; - overflow-y: auto; - padding: 2rem; - padding: 1.5rem; - border-top: solid 1px #ff0000; - border-top: 0 !important; - - /* padding-bottom: 0; */ -} - -/* Full width section */ -.fullWidthSection { - margin-bottom: 2rem; - padding-bottom: 2rem; - - margin-bottom: 0rem; - padding-bottom: 0rem; - - border-bottom: 1px solid #e0e0e0; - line-height: 1.25rem; -} - -.fullWidthSection h2 { - margin-top: 0; - margin-bottom: 1rem; -} - -/* Two column section */ -.twoColumnSection { - display: grid; - grid-template-columns: 1fr 1fr; - gap: 2rem; - - margin-top: 1rem; -} - -.column h3 { - margin-top: 0; - margin-bottom: 1rem; -} - -/* 2025-12-11 Thursday 11:25:36.I don't think we need or want. */ -/* .column ul { - list-style: none; - padding: 0; -} - -.column ul li { - margin-bottom: 0.5rem; -} */ - -/* See also new modalLinks01 style I'm creating below the projectlinks style toward the top of this file -- using that in the modal to displayHome: x on 1 line. */ -.modalLinks { - display: flex; - flex-direction: column; - gap: 0.5rem; -} - -.modalLinks a { - display: inline-block; - background-color: #007bff; - background-color: #ffffff; - color: white; - color: #0066ff; - text-decoration: none; - border-radius: 4px; - transition: background-color 0.2s; - - /* No effect? */ - display: inline; -} - -.modalLinks a:hover { - background-color: #0056b3; - background-color: #ffffff; - text-decoration: underline; -} - -.modalFooter { - padding: 1rem 2rem; - padding: 0rem 1.5rem 1.5rem 1.5rem; - /* 2025-12-11 Thursday 10:19:33. */ - padding: 1.5rem 1.5rem 1.5rem 1.5rem; - border-top: solid 1px #e8e8e8; - - display: flex; - justify-content: flex-end; -} - -.closeButton { - padding: 0.5rem 1.5rem; - background: #2563eb; - color: white; - border: none; - border-radius: 4px; - cursor: pointer; - font-size: 1rem; - transition: background-color 0.2s; -} - -.closeButton:hover { - background-color: #5a6268; -} - -/* Responsive design */ -@media (max-width: 768px) { - .twoColumnSection { - grid-template-columns: 1fr; - gap: 1.5rem; - } - - .modalBody { - padding: 1rem; - } - - .modalFooter { - padding: 1rem; - } -} - -/* Limit display to two lines, then add ellipsis. */ -/* YO 2025-11-18 Tuesday 18:22:21. Maybe rename to tooltipTarget */ -.projectDescription { - overflow: hidden; - text-overflow: ellipsis; - display: -webkit-box; - /* -webkit-line-clamp: 2; */ - /* line-clamp: 2; */ - -webkit-box-orient: vertical; - /* line-height: 1.4em; */ - /* height: 2.8em; */ - /* height: 4.2em; */ - cursor: default; - - /* 2025-11-18 Tuesday 09:40:29. */ - /* line-height: 1.25em; */ - /* 2025-11-24 Monday 14:27:30. */ - /* line-height: 0.5rem; */ -} - -.projectDescriptionWrapper { - position: relative; - width: 100%; - line-height: 1.25rem; - /* line-height: 1.4rem; */ - - /* 2025-12-11 Thursday 07:51:06. */ - /* border-top: 1px solid #d8d8d8; */ - margin-top: 20px; - margin-top: 0px; - - padding-top: 10px; - padding-top: 0px; -} - -/* Tooltip arrow */ -/* .tooltip::after { - content: ''; - position: absolute; - top: 100%; - left: 50%; - margin-left: -6px; - border-width: 6px; - border-style: solid; - border-color: rgba(40, 40, 40, 0.95) transparent transparent transparent; -} */ - -/* .tooltip { - position: absolute; - bottom: 100%; - left: 50%; - transform: translateX(-50%); - background: var(--ifm-background-surface-color); - color: var(--ifm-font-color-base); - border: 1px solid var(--ifm-color-emphasis-200); - border: solid 1px #0066ff; - padding: 8px 10px; - border-radius: 6px; - box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15); - white-space: normal; - width: max-content; - max-width: 420px; - z-index: 10; - opacity: 0; - pointer-events: none; - transition: opacity 0.2s ease-in-out; - - font-size: 0.9rem; - font-size: 14px; - font-size: 15px; - line-height: 1.5; - line-height: 1.25em; - font-size: 0.9rem; - - overflow-wrap: break-word; - word-break: normal; -} */ - -/* .projectDescriptionWrapper:hover .tooltip { - opacity: 1; -} */ - -.packageDownloadWrapper { - position: relative; - width: 100%; - line-height: 1.25rem; - /* line-height: 1.4rem; */ - - /* 2025-12-11 Thursday 07:51:06. */ - border-top: 1px solid #d8d8d8; - margin-top: 20px; - padding-top: 10px; -} - -/* This is for the alert that appears inside -the modal when the link is clicked from inside an open modal. */ -.modalAlert { - margin-top: 1rem; - padding: 0.75rem 1rem; - background-color: #f8d7da; - color: #721c24; - border: 1px solid #f5c6cb; - border-radius: 6px; - text-align: center; - font-size: 0.9rem; - animation: fadeIn 0.3s ease; -} -@keyframes fadeIn { - from { - opacity: 0; - transform: translateY(4px); - } - to { - opacity: 1; - transform: translateY(0); - } -} - -/* In place of .modalAlert just above, try this (including another .modalContent with 'position: relative;' hoping to position the alert inside the open modal. */ - /* ensure positioning context */ -.modalContent { - position: relative; -} - -.modalAlertOverlay { - position: absolute; - bottom: 1rem; - left: 50%; - transform: translateX(-50%); - background-color: #f8d7da; - color: #721c24; - border: 1px solid #f5c6cb; - border-radius: 6px; - padding: 0.6rem 1rem; - text-align: center; - width: 80%; - max-width: 320px; - z-index: 10; - animation: fadeIn 0.3s ease; - box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); -} -@keyframes fadeIn { - from { - opacity: 0; - transform: translate(-50%, 4px); - } - to { - opacity: 1; - transform: translate(-50%, 0); - } -} - -/* For the under-construction popup. */ -.popupMessage { - position: fixed; - bottom: 2rem; - left: 50%; - transform: translateX(-50%); - background: #2563eb; - background: #fcf3ce; - color: #fff; - color: #000; - padding: 0.75rem 1.25rem; - border-radius: 8px; - font-size: 0.95rem; - box-shadow: 0 2px 10px rgba(0, 0, 0, 0.3); - box-shadow: 0 2px 10px #000000; - z-index: 999; - opacity: 0; - animation: fadeInOut 2.5s ease forwards; - animation: fadeInOut 5s ease forwards; -} - -@keyframes fadeInOut { - 0% { - opacity: 0; - transform: translate(-50%, 10px); - } - 10% { - opacity: 1; - transform: translate(-50%, 0); - } - 90% { - opacity: 1; - transform: translate(-50%, 0); - } - 100% { - opacity: 0; - transform: translate(-50%, 10px); - } -} - -/* See if I can adapt this (used in the modal) to the main page: */ -.modalAlertOverlay_main { - position: absolute; - position: fixed; - bottom: 1rem; - left: 50%; - transform: translateX(-50%); - background-color: #f8d7da; - color: #721c24; - border: 1px solid #f5c6cb; - border-radius: 6px; - padding: 0.6rem 1rem; - text-align: center; - width: 80%; - max-width: 320px; - z-index: 10; - z-index: 999; - animation: fadeIn 0.3s ease; - box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); -} -@keyframes fadeIn { - from { - opacity: 0; - transform: translate(-50%, 4px); - } - to { - opacity: 1; - transform: translate(-50%, 0); - } -} - -/* Handle the long URLs. */ -.modalLinkUrl { - /* font-size: 0.85rem; */ - /* line-height: 1.2; */ - word-break: break-all; /* forces breaks anywhere when needed */ - overflow-wrap: anywhere; /* clean modern wrapping */ - max-width: 100%; /* prevents overflow */ - /* 2025-11-24 Monday 15:00:41. */ - width: auto; - - /* This fixed the display-on-same-line-as-field problem!!! */ - display: inline; - /* line-height: 1.25rem; */ -} -/* 2025-11-24 Monday 16:45:48. For the project.name value */ -.modalLinkUrl_break_word { - overflow-wrap: break-word; - word-break: normal; - max-width: 100%; - width: auto; - display: inline; -} - -.modalText { - font-size: 1rem; - line-height: 1.2; - max-width: 100%; /* prevents overflow */ - /* This fixed the display-on-same-line-as-field problem!!! */ - display: inline; - line-height: 1.25rem; - /* Modern approach: */ - overflow-wrap: break-word; - word-break: normal; -} - -.note_field { - line-height: 1.25rem; - padding-top: 5px; -} - - -/* 2025-11-22 Saturday 12:08:53. Does this work? */ -/* Dark mode */ -/* [data-theme='dark'] .card { - background: #1d1f21; - color: #e5e5e5; -} */ - -/* [data-theme='dark'] .sectionHeader h1, -[data-theme='dark'] .column h2 { - color: #f0f0f0; -} */ - -/* [data-theme='dark'] .projectCard { - background: #1d1f21; - background: #303030; - border-color: #909090; - color: #e5e5e5; -} */ - -[data-theme='dark'] .projectCard { - background: #000000; - border-color: #909090; - border-color: #505050; - color: #e5e5e5; -} - -[data-theme='dark'] .projectGridWrapper { - background: #303030; - border: solid 1px #505050; - color: #e5e5e5; -} - -/* 2025-11-23 Sunday 18:53:02. */ -.projectName { - /* Modern approach: */ - overflow-wrap: break-word; - word-break: normal; -} - -/* 2025-11-24 Monday 16:33:21. Modify project card to add logo (if any). */ -.topRow { - display: flex; - align-items: center; - justify-content: space-between; - gap: 0.5rem; /* space between title and logo */ -} - -.logoWrapper { - flex-shrink: 0; /* logo never shrinks */ - width: 40px; /* pick your static width */ - height: 40px; /* consistent box */ - display: flex; - align-items: center; - align-items: flex-start; /* align logo at the top */ - justify-content: center; -} - -.logoImg { - max-width: 100%; - max-height: 100%; - object-fit: contain; -} - -/* 2025-12-10 Wednesday 18:53:41. For the JSON values that are lists of URLs. */ -.wordWrap { - word-wrap: break-word; /* old name, still works */ - overflow-wrap: break-word; /* modern standard */ - word-break: break-all; /* fallback for very stubborn strings */ -} diff --git a/website/src/pages/markdown-page.md b/website/src/pages/markdown-page.md deleted file mode 100644 index 9756c5b..0000000 --- a/website/src/pages/markdown-page.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -title: Markdown page example ---- - -# Markdown page example - -You don't need React to write simple standalone pages. From 9507bfe9a66c24689f55d17f50f88a49a9c6f5e5 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Fri, 22 May 2026 07:24:34 +0200 Subject: [PATCH 09/48] Use one color for header and footer Signed-off-by: Philippe Ombredanne --- website/src/css/custom.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/css/custom.css b/website/src/css/custom.css index 8652521..a41d92e 100644 --- a/website/src/css/custom.css +++ b/website/src/css/custom.css @@ -87,5 +87,5 @@ } .footer { - background-color: #101010; + background-color: #2b3a5e; } From cb25dd521088bb6ba99dddf21c358e71215d39bf Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Fri, 22 May 2026 07:25:20 +0200 Subject: [PATCH 10/48] Add new home section with features Signed-off-by: Philippe Ombredanne --- .../components/HomepageContent/HomeIntro.mdx | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/website/src/components/HomepageContent/HomeIntro.mdx b/website/src/components/HomepageContent/HomeIntro.mdx index 2d2f3d5..2256fca 100644 --- a/website/src/components/HomepageContent/HomeIntro.mdx +++ b/website/src/components/HomepageContent/HomeIntro.mdx @@ -9,3 +9,58 @@ For each one you need to know: AboutCode provides open tools, open data, and open standards to answer these questions and keep your software supply chains safe and compliant. + +### Open Reference Data + +AboutCode maintains critical reference datasets: ScanCode LicenseDB with +over 2,400 curated license texts, PurlDB with metadata and fingerprints for +millions of open source packages, and VulnerableCode with aggregated +vulnerability data from dozens of public sources. All open data, freely +available. +[Learn more](/docs/getting_started/getting_started-software-identification) + +### License Detection + +ScanCode detects over 2,400 software licenses in any codebase, whether open +source, proprietary, or somewhere in between. It powers dozens of open source +and commercial SCA tools. +[Learn more](/docs/getting_started/getting_started-compliance) + +### SBOMs and Regulatory Compliance + +Generate, import, and export SBOMs in CycloneDX and SPDX formats. Track every +package with Package-URL, the industry standard for software identification +created by AboutCode. Meet EU Cyber Resilience Act requirements with automated +VEX reporting, SBOM management, and vulnerability tracking integrated into +your development workflow. +[Learn more](/docs/getting_started/getting_started-cravex) + +### Dependency Management + +Resolve and track direct and transitive dependencies across package ecosystems. +ScanCode pipelines and dedicated inspectors identify the full dependency +tree for your projects automatically. +[Learn more](/docs/getting_started/getting_started-software-identification) + +### Code Matching and Package Identification + +Identify the origin of code at the package, file, and snippet level using +PurlDB fingerprints. MatchCode matches unknown code against millions of +indexed open source packages to determine what you are using, even without +manifest files. +[Learn more](/docs/getting_started/getting_started-software-identification) + +### Binary Analysis + +Match deployed binaries, containers, and firmware images back to their source +packages. ScanCode.io pipelines scan Docker images, ELF binaries, and archives +to identify what is actually shipped in your products. +[Learn more](/docs/getting_started/getting_started-software-identification) + +### Vulnerability Management + +VulnerableCode aggregates vulnerability data from public sources, maps them to +affected packages, and identifies available fixes, all keyed by PURL. +DejaCode scores exploitability and risk to help you triage what matters first. +[Learn more](/docs/getting_started/getting_started-security) + From 13961c8304012d7a0fe128b791c217bb7642fc0a Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Fri, 22 May 2026 07:25:53 +0200 Subject: [PATCH 11/48] Add new home section for adopters Signed-off-by: Philippe Ombredanne --- .../components/HomepageContent/Adopters.md | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 website/src/components/HomepageContent/Adopters.md diff --git a/website/src/components/HomepageContent/Adopters.md b/website/src/components/HomepageContent/Adopters.md new file mode 100644 index 0000000..acfd4e0 --- /dev/null +++ b/website/src/components/HomepageContent/Adopters.md @@ -0,0 +1,35 @@ +AboutCode tools, data, and standards are used by leading open source projects +and organizations worldwide: + +Amazon, +Anchore, +Apple, +Audi, +BMW, +Bosch, +CARIAD, +ClearlyDefined (managed by AboutCode), +Dependency-Track, +Deutsche Bahn, +Eclipse Foundation, +Ecosyste.ms, +Ericsson, +FOSSLight, +FOSSology, +GitHub, +Google, +HPE, +IBM, +LG, +Mercedes-Benz, +Meta, +Microsoft, +Nokia, +Orange, +ORT (OSS Review Toolkit), +OSV, +Porsche, +Red Hat, +SAP, +Volkswagen, +Zeiss. From b49248e871df2d7bba8ce2963e8d6f1bd84348da Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Fri, 22 May 2026 07:26:13 +0200 Subject: [PATCH 12/48] Add new home section for standards Signed-off-by: Philippe Ombredanne --- .../HomepageContent/ProjectOverview.md | 16 ------ .../HomepageContent/StandardsOverview.md | 57 +++++++++++++++++++ 2 files changed, 57 insertions(+), 16 deletions(-) create mode 100644 website/src/components/HomepageContent/StandardsOverview.md diff --git a/website/src/components/HomepageContent/ProjectOverview.md b/website/src/components/HomepageContent/ProjectOverview.md index 4a6dec8..e07058a 100644 --- a/website/src/components/HomepageContent/ProjectOverview.md +++ b/website/src/components/HomepageContent/ProjectOverview.md @@ -3,19 +3,3 @@ libraries and data. All of the software is open source (primarily licensed under [Apache-2.0](https://scancode-licensedb.aboutcode.org/apache-2.0.html)) and all of the data is open (primarily licensed under [CC-BY-SA-4.0](https://scancode-licensedb.aboutcode.org/cc-by-sa-4.0.html)). - -The AboutCode stack supports important industry standards including: - -**Package-URL (PURL)**: a widely used standard to identify software -packages of any type with simple, readable and concise URLs. The PURL -standard is [ECMA-427](https://ecma-tc54.github.io/ECMA-427/). - -**CycloneDX**: (OWASP CycloneDX) is a full-stack Bill of Materials (BOM) -standard ([ECMA-424](https://ecma-international.org/publications-and-standards/standards/ecma-424/)) -that provides advanced supply chain capabilities for cyber risk reduction. - -**SPDX**: (System Package Data Exchange) is a [specification](https://spdx.dev/use/specifications/) -for representing systems with software components as SBOMs -(Software Bill of Materials) and other AI, data and security references. - -The following sections provide details about each project. diff --git a/website/src/components/HomepageContent/StandardsOverview.md b/website/src/components/HomepageContent/StandardsOverview.md new file mode 100644 index 0000000..7e1a453 --- /dev/null +++ b/website/src/components/HomepageContent/StandardsOverview.md @@ -0,0 +1,57 @@ +**Package-URL (PURL)**: a widely used standard to identify software +packages of any type with simple, readable and concise URLs. The PURL +standard is [ECMA-427](https://ecma-tc54.github.io/ECMA-427/). Created by AboutCode. + +**CycloneDX**: (OWASP CycloneDX) is a full-stack Bill of Materials (BOM) +standard ([ECMA-424](https://ecma-international.org/publications-and-standards/standards/ecma-424/)) +that provides advanced supply chain capabilities for cyber risk reduction. AboutCode is a core contributor. + +**SPDX**: (System Package Data Exchange) is a [specification](https://spdx.dev/use/specifications/) +for representing systems with software components as SBOMs +(Software Bill of Materials) and other AI, data and security references. Co-founded by AboutCode. + +**Package-URL (PURL)**: a widely used standard to identify software +packages of any type with simple, readable and concise URLs. The PURL +standard is [ECMA-427](https://ecma-tc54.github.io/ECMA-427/). Created by AboutCode. + +**VERS**: (Version Range Specification) is a standard scheme for expressing +version ranges of software packages in a consistent, parseable way across +all package ecosystems. VERS solves the problem of each ecosystem having its +own incompatible version range syntax. It is used in CycloneDX and CSAF to +express affected version ranges in vulnerability advisories and SBOMs. +Created by AboutCode. + +**CycloneDX**: (OWASP CycloneDX) is a full-stack Bill of Materials (BOM) +standard ([ECMA-424](https://ecma-international.org/publications-and-standards/standards/ecma-424/)) +that provides advanced supply chain capabilities for cyber risk reduction. +Uses PURL and VERS. AboutCode is a core contributor. + +**SPDX**: (System Package Data Exchange) is a [specification](https://spdx.dev/use/specifications/) +for representing systems with software components as SBOMs +(Software Bill of Materials) and other AI, data and security references. +Uses PURL. Co-founded by AboutCode. + +**CSAF**: (Common Security Advisory Framework) is an OASIS standard for +machine-readable security advisories. Uses PURL and VERS for product +identification and affected version ranges. + +**OpenVEX**: an implementation of VEX (Vulnerability Exploitability eXchange) +from OpenSSF for communicating vulnerability impact assessments. Uses PURL +for package identification. + +**MITRE CVE Schema**: the CVE Record format used by the MITRE CVE Program +to describe vulnerabilities. Uses PURL to identify affected software packages. + +**OSV**: (Open Source Vulnerabilities) is a distributed vulnerability database +schema from Google. Uses PURL to identify affected packages across ecosystems. + +**CLE**: (Common Lifecycle Enumeration) is a standard for describing software +lifecycle stages. Uses PURL for package identification. + +**TEA**: (Transparent Exchange of Attestations) is a standard for software +supply chain attestations and trust. Uses PURL to reference attested packages. + +PURL is the common identifier across these standards, making it possible to +correlate data between SBOMs, vulnerability reports, advisories, and +attestations. + From ebe5156266396bba8023f877fe6de731870afce7 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Fri, 22 May 2026 07:30:18 +0200 Subject: [PATCH 13/48] Add new sectiosn to home page Signed-off-by: Philippe Ombredanne --- website/src/components/HomepageContent/index.js | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/website/src/components/HomepageContent/index.js b/website/src/components/HomepageContent/index.js index 2929ffe..42770ed 100644 --- a/website/src/components/HomepageContent/index.js +++ b/website/src/components/HomepageContent/index.js @@ -2,6 +2,7 @@ import React from 'react'; import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; import HomeIntro from './HomeIntro.mdx'; import ProjectOverview from './ProjectOverview.md'; +import StandardsOverview from './StandardsOverview.md'; import Supporters from './Supporters.md'; import ProjectGridTemplate from '@site/src/components/ProjectGridTemplate'; import styles from './styles.module.css'; @@ -23,13 +24,27 @@ export default function HomepageContent() {
+
+
+

Software supply chain standards

+
+ +
+ +
+ + +
-

AboutCode Projects Overview

+

AboutCode Projects

From e7eaaecb70a4753c4a1705e8f97a1b2644208785 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Fri, 22 May 2026 07:38:27 +0200 Subject: [PATCH 14/48] Improve navbar Signed-off-by: Philippe Ombredanne --- website/docusaurus.config.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/website/docusaurus.config.js b/website/docusaurus.config.js index 926d444..402248c 100644 --- a/website/docusaurus.config.js +++ b/website/docusaurus.config.js @@ -26,7 +26,6 @@ const siteConfig = { baseUrl: '/www.aboutcode.org/', }, dreamhost: { - // url: 'https://www.aboutcode.org', url: 'https://aboutcode.org', baseUrl: '/', }, @@ -120,7 +119,6 @@ const config = { }, style: 'dark', items: [ - { to: '/', label: 'Home', position: 'left', exact: true }, { type: 'docSidebar', sidebarId: 'getting_started', @@ -133,7 +131,14 @@ const config = { position: 'left', label: 'About', }, + { to: '/docs/about/about-contribute', label: 'Contribute', position: 'left' }, + { to: '/docs/about/about-meetings', label: 'Meetings', position: 'left' }, { to: '/blog', label: 'Blog', position: 'left' }, + { + href: 'https://aboutcode.readthedocs.io', + label: 'Documentation', + position: 'left', + }, { href: 'https://github.com/aboutcode-org/www.aboutcode.org', label: 'GitHub', From f95cd447aaf58cbab3b535f4a011e0eb858b2865 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Fri, 22 May 2026 08:21:38 +0200 Subject: [PATCH 15/48] Improve homepage and standard Signed-off-by: Philippe Ombredanne --- .../components/HomepageContent/HomeIntro.mdx | 40 +++++++++---------- .../HomepageContent/StandardsOverview.md | 10 +++-- .../src/components/HomepageContent/index.js | 2 - .../HomepageContent/styles.module.css | 6 ++- .../ProjectGridTemplate/styles.module.css | 5 +-- 5 files changed, 32 insertions(+), 31 deletions(-) diff --git a/website/src/components/HomepageContent/HomeIntro.mdx b/website/src/components/HomepageContent/HomeIntro.mdx index 2256fca..fc775eb 100644 --- a/website/src/components/HomepageContent/HomeIntro.mdx +++ b/website/src/components/HomepageContent/HomeIntro.mdx @@ -10,7 +10,7 @@ For each one you need to know: AboutCode provides open tools, open data, and open standards to answer these questions and keep your software supply chains safe and compliant. -### Open Reference Data +### Open Reference Data: the foundation everything else builds on AboutCode maintains critical reference datasets: ScanCode LicenseDB with over 2,400 curated license texts, PurlDB with metadata and fingerprints for @@ -19,48 +19,48 @@ vulnerability data from dozens of public sources. All open data, freely available. [Learn more](/docs/getting_started/getting_started-software-identification) -### License Detection +### License Detection: the first thing you scan for ScanCode detects over 2,400 software licenses in any codebase, whether open source, proprietary, or somewhere in between. It powers dozens of open source and commercial SCA tools. [Learn more](/docs/getting_started/getting_started-compliance) -### SBOMs and Regulatory Compliance +### Code Matching and Package Identification: what is this code? -Generate, import, and export SBOMs in CycloneDX and SPDX formats. Track every -package with Package-URL, the industry standard for software identification -created by AboutCode. Meet EU Cyber Resilience Act requirements with automated -VEX reporting, SBOM management, and vulnerability tracking integrated into -your development workflow. -[Learn more](/docs/getting_started/getting_started-cravex) +Identify the origin of code at the package, file, and snippet level using +PurlDB fingerprints. MatchCode matches unknown code against millions of +indexed open source packages to determine what you are using, even without +manifest files. +[Learn more](/docs/getting_started/getting_started-software-identification) -### Dependency Management +### Dependency Management: what does it depend on? Resolve and track direct and transitive dependencies across package ecosystems. ScanCode pipelines and dedicated inspectors identify the full dependency tree for your projects automatically. [Learn more](/docs/getting_started/getting_started-software-identification) -### Code Matching and Package Identification - -Identify the origin of code at the package, file, and snippet level using -PurlDB fingerprints. MatchCode matches unknown code against millions of -indexed open source packages to determine what you are using, even without -manifest files. -[Learn more](/docs/getting_started/getting_started-software-identification) - -### Binary Analysis +### Binary Analysis: what actually shipped? Match deployed binaries, containers, and firmware images back to their source packages. ScanCode.io pipelines scan Docker images, ELF binaries, and archives to identify what is actually shipped in your products. [Learn more](/docs/getting_started/getting_started-software-identification) -### Vulnerability Management +### Vulnerability Management: what risks exist? VulnerableCode aggregates vulnerability data from public sources, maps them to affected packages, and identifies available fixes, all keyed by PURL. DejaCode scores exploitability and risk to help you triage what matters first. [Learn more](/docs/getting_started/getting_started-security) +### SBOMs and Regulatory Compliance: report and comply + +Generate, import, and export SBOMs in CycloneDX and SPDX formats. Track every +package with Package-URL, the industry standard for software identification +created by AboutCode. Meet EU Cyber Resilience Act requirements with automated +VEX reporting, SBOM management, and vulnerability tracking integrated into +your development workflow. +[Learn more](/docs/getting_started/getting_started-cravex) + diff --git a/website/src/components/HomepageContent/StandardsOverview.md b/website/src/components/HomepageContent/StandardsOverview.md index 7e1a453..4677873 100644 --- a/website/src/components/HomepageContent/StandardsOverview.md +++ b/website/src/components/HomepageContent/StandardsOverview.md @@ -1,3 +1,9 @@ + +AboutCode is leading the way with simple and practical standards like PURL. +PURL is the common identifier across software supply chain standards, +making it possible to correlate and cross-reference data between SBOMs, +vulnerability databases, reports, advisories, attestations, and tools. + **Package-URL (PURL)**: a widely used standard to identify software packages of any type with simple, readable and concise URLs. The PURL standard is [ECMA-427](https://ecma-tc54.github.io/ECMA-427/). Created by AboutCode. @@ -51,7 +57,3 @@ lifecycle stages. Uses PURL for package identification. **TEA**: (Transparent Exchange of Attestations) is a standard for software supply chain attestations and trust. Uses PURL to reference attested packages. -PURL is the common identifier across these standards, making it possible to -correlate data between SBOMs, vulnerability reports, advisories, and -attestations. - diff --git a/website/src/components/HomepageContent/index.js b/website/src/components/HomepageContent/index.js index 42770ed..3944935 100644 --- a/website/src/components/HomepageContent/index.js +++ b/website/src/components/HomepageContent/index.js @@ -35,8 +35,6 @@ export default function HomepageContent() {
- -
diff --git a/website/src/components/HomepageContent/styles.module.css b/website/src/components/HomepageContent/styles.module.css index 66d4130..0350677 100644 --- a/website/src/components/HomepageContent/styles.module.css +++ b/website/src/components/HomepageContent/styles.module.css @@ -175,7 +175,11 @@ .sectionHeader h2 { margin-bottom: 0px; - color: #992600; + color: #ff8800; +} + +.sectionIntro h3 { + color: #ff8800; } .sectionContainer { diff --git a/website/src/components/ProjectGridTemplate/styles.module.css b/website/src/components/ProjectGridTemplate/styles.module.css index 649d2a0..04de682 100644 --- a/website/src/components/ProjectGridTemplate/styles.module.css +++ b/website/src/components/ProjectGridTemplate/styles.module.css @@ -519,11 +519,9 @@ } .sectionTitle h2 { - color: #992600; + color: #ff8800; margin-top: 20px; margin-bottom: 20px; - - /* 2026-01-25 Sunday 15:32:00. Scroll so section is visible! Adjust to navbar height. */ scroll-margin-top: 5rem; } [data-theme='dark'] .sectionTitle h2 { @@ -535,7 +533,6 @@ } .gridSection { - border-bottom: solid 1px #000000; margin-bottom: 30px; padding-bottom: 30px; } From e784f5f9098dcf80f2a072adca0ea83fb3595c5b Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Fri, 22 May 2026 08:34:49 +0200 Subject: [PATCH 16/48] Enable local browsing with file:/// Using docusaurus build && node make-relative.js means you can use the website with file:// no server needed, which comes handy for development Signed-off-by: Philippe Ombredanne --- website/docusaurus.config.js | 4 +++- website/make-relative.js | 40 ++++++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 website/make-relative.js diff --git a/website/docusaurus.config.js b/website/docusaurus.config.js index 402248c..2fe2312 100644 --- a/website/docusaurus.config.js +++ b/website/docusaurus.config.js @@ -26,6 +26,7 @@ const siteConfig = { baseUrl: '/www.aboutcode.org/', }, dreamhost: { + // url: 'https://www.aboutcode.org', url: 'https://aboutcode.org', baseUrl: '/', }, @@ -55,7 +56,7 @@ const config = { // Adapt the www.packageurl.org approach for the GH Pages vs. DreamHost baseUrl adjustment. url: siteConfig[deployTarget].url, baseUrl: siteConfig[deployTarget].baseUrl, - trailingSlash: false, + trailingSlash: true, onBrokenLinks: 'throw', // The following is deprecated, to be removed in v4, replaced with similar structure above under 'markdown:'. @@ -192,3 +193,4 @@ const config = { }; export default config; + diff --git a/website/make-relative.js b/website/make-relative.js new file mode 100644 index 0000000..ba070f8 --- /dev/null +++ b/website/make-relative.js @@ -0,0 +1,40 @@ +#!/usr/bin/env node +// Post-build script: rewrite absolute paths to relative paths in HTML files +// so the site can be browsed via file:// without a server. + +const fs = require('fs'); +const path = require('path'); + +const buildDir = path.join(__dirname, 'build'); + +function getRelativePrefix(filePath) { + const rel = path.relative(path.dirname(filePath), buildDir); + if (rel === '') return './'; + return rel.replace(/\\/g, '/') + '/'; +} + +function processFile(filePath) { + let content = fs.readFileSync(filePath, 'utf8'); + const prefix = getRelativePrefix(filePath); + + // Replace absolute paths starting with / (but not //) with relative prefix + content = content.replace(/(href|src|action)="\/(?!\/)/g, `$1="${prefix}`); + content = content.replace(/url\(\/(?!\/)/g, `url(${prefix}`); + + fs.writeFileSync(filePath, content, 'utf8'); +} + +function walk(dir) { + const entries = fs.readdirSync(dir, { withFileTypes: true }); + for (const entry of entries) { + const full = path.join(dir, entry.name); + if (entry.isDirectory()) { + walk(full); + } else if (entry.name.endsWith('.html')) { + processFile(full); + } + } +} + +walk(buildDir); +console.log('All HTML paths converted to relative.'); From 2e47c5c56eaf203285bd1a0fd149977d74e2492e Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Fri, 22 May 2026 08:50:52 +0200 Subject: [PATCH 17/48] Reorganize home page for clarity This is a WIP, lots more todo. Signed-off-by: Philippe Ombredanne --- website/docusaurus.config.js | 51 ++++++++++----- .../src/components/CapabilitiesGrid/index.js | 48 ++++++++++++++ .../CapabilitiesGrid/styles.module.css | 41 ++++++++++++ .../components/HomepageContent/HomeIntro.mdx | 65 +------------------ .../HomepageContent/StandardsOverview.md | 15 ----- .../src/components/HomepageContent/index.js | 28 ++++++-- .../components/ProjectGridTemplate/index.js | 20 ++---- 7 files changed, 152 insertions(+), 116 deletions(-) create mode 100644 website/src/components/CapabilitiesGrid/index.js create mode 100644 website/src/components/CapabilitiesGrid/styles.module.css diff --git a/website/docusaurus.config.js b/website/docusaurus.config.js index 2fe2312..0a908fa 100644 --- a/website/docusaurus.config.js +++ b/website/docusaurus.config.js @@ -121,35 +121,52 @@ const config = { style: 'dark', items: [ { - type: 'docSidebar', - sidebarId: 'getting_started', + href: 'https://aboutcode.readthedocs.io', + label: 'Documentation', position: 'left', - label: 'Getting Started', }, + { to: '/blog', label: 'Blog', position: 'left' }, { - type: 'docSidebar', - sidebarId: 'about', + type: 'dropdown', + label: 'Community', position: 'left', - label: 'About', + items: [ + { to: '/docs/about/about-contribute', label: 'Contribute' }, + { to: '/docs/about/about-meetings', label: 'Meetings' }, + { + href: 'https://join.slack.com/t/aboutcode-org/shared_invite/zt-1paqwxccw-IuafuiAvYJFkTqGaZsC1og', + label: 'Slack', + }, + { + href: 'https://github.com/aboutcode-org', + label: 'GitHub', + }, + ], }, - { to: '/docs/about/about-contribute', label: 'Contribute', position: 'left' }, - { to: '/docs/about/about-meetings', label: 'Meetings', position: 'left' }, - { to: '/blog', label: 'Blog', position: 'left' }, { - href: 'https://aboutcode.readthedocs.io', - label: 'Documentation', + type: 'dropdown', + label: 'About', position: 'left', + items: [ + { + type: 'docSidebar', + sidebarId: 'getting_started', + label: 'Getting Started', + }, + { + type: 'docSidebar', + sidebarId: 'about', + label: 'About AboutCode', + }, + { to: '/docs/about/about-news', label: 'News' }, + { to: '/docs/about/about-events', label: 'Events' }, + ], }, { - href: 'https://github.com/aboutcode-org/www.aboutcode.org', + href: 'https://github.com/aboutcode-org', label: 'GitHub', position: 'right', }, - { - href: 'https://join.slack.com/t/aboutcode-org/shared_invite/zt-1paqwxccw-IuafuiAvYJFkTqGaZsC1og', - label: 'Slack', - position: 'right', - }, ], }, footer: { diff --git a/website/src/components/CapabilitiesGrid/index.js b/website/src/components/CapabilitiesGrid/index.js new file mode 100644 index 0000000..af5cf48 --- /dev/null +++ b/website/src/components/CapabilitiesGrid/index.js @@ -0,0 +1,48 @@ +import React from 'react'; +import styles from './styles.module.css'; + +const capabilities = [ + { + title: 'Open Reference Data', + description: 'Curated datasets for 2,400+ licenses, millions of packages, and aggregated vulnerability data from dozens of public sources.', + link: '/docs/getting_started/getting_started-software-identification/', + }, + { + title: 'License Detection', + description: 'Detect licenses in any codebase, whether open source, proprietary, or in between. Powers dozens of open source and commercial SCA tools.', + link: '/docs/getting_started/getting_started-compliance/', + }, + { + title: 'Code Matching and Binary Analysis', + description: 'Identify code origin at package, file, and snippet level using PurlDB fingerprints. Match deployed binaries, containers, and firmware back to source packages.', + link: '/docs/getting_started/getting_started-software-identification/', + }, + { + title: 'Dependency Management', + description: 'Resolve direct and transitive dependencies across package ecosystems with ScanCode pipelines and dedicated inspectors.', + link: '/docs/getting_started/getting_started-software-identification/', + }, + { + title: 'Vulnerability Management', + description: 'Aggregate vulnerability data, map to affected packages, identify fixes, and score exploitability and risk for triage.', + link: '/docs/getting_started/getting_started-security/', + }, + { + title: 'SBOMs and Compliance', + description: 'Generate and manage SBOMs in CycloneDX and SPDX. Meet CRA requirements with automated VEX reporting and vulnerability tracking.', + link: '/docs/getting_started/getting_started-cravex/', + }, +]; + +export default function CapabilitiesGrid() { + return ( +
+ {capabilities.map((cap) => ( + +

{cap.title}

+

{cap.description}

+
+ ))} +
+ ); +} diff --git a/website/src/components/CapabilitiesGrid/styles.module.css b/website/src/components/CapabilitiesGrid/styles.module.css new file mode 100644 index 0000000..e958ea4 --- /dev/null +++ b/website/src/components/CapabilitiesGrid/styles.module.css @@ -0,0 +1,41 @@ +.grid { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); + gap: 1.25rem; + max-width: 1200px; + margin: 1.5rem auto; + padding: 0; +} + +.card { + display: flex; + flex-direction: column; + padding: 1.25rem; + border: 1px solid #e0e6ef; + border-radius: 8px; + background: var(--ifm-background-surface-color); + text-decoration: none; + color: inherit; + transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease; +} + +.card:hover { + transform: translateY(-2px); + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); + border-color: #ff8800; + text-decoration: none; + color: inherit; +} + +.cardTitle { + margin: 0 0 0.5rem 0; + font-size: 1.1rem; + color: #ff8800; +} + +.cardDescription { + margin: 0; + font-size: 0.9rem; + line-height: 1.4; + color: var(--ifm-font-color-base); +} diff --git a/website/src/components/HomepageContent/HomeIntro.mdx b/website/src/components/HomepageContent/HomeIntro.mdx index fc775eb..7df2e45 100644 --- a/website/src/components/HomepageContent/HomeIntro.mdx +++ b/website/src/components/HomepageContent/HomeIntro.mdx @@ -1,66 +1,7 @@ -

Modern software is assembled from thousands of open source components.

-For each one you need to know: - -- Where does this code come from? -- What license applies? -- Does it have known vulnerabilities? -- Is it actively maintained? +Modern software is assembled from thousands of open source components. +For each one you need to know where it comes from, what license applies, +whether it has known vulnerabilities, and if it is actively maintained. AboutCode provides open tools, open data, and open standards to answer these questions and keep your software supply chains safe and compliant. - -### Open Reference Data: the foundation everything else builds on - -AboutCode maintains critical reference datasets: ScanCode LicenseDB with -over 2,400 curated license texts, PurlDB with metadata and fingerprints for -millions of open source packages, and VulnerableCode with aggregated -vulnerability data from dozens of public sources. All open data, freely -available. -[Learn more](/docs/getting_started/getting_started-software-identification) - -### License Detection: the first thing you scan for - -ScanCode detects over 2,400 software licenses in any codebase, whether open -source, proprietary, or somewhere in between. It powers dozens of open source -and commercial SCA tools. -[Learn more](/docs/getting_started/getting_started-compliance) - -### Code Matching and Package Identification: what is this code? - -Identify the origin of code at the package, file, and snippet level using -PurlDB fingerprints. MatchCode matches unknown code against millions of -indexed open source packages to determine what you are using, even without -manifest files. -[Learn more](/docs/getting_started/getting_started-software-identification) - -### Dependency Management: what does it depend on? - -Resolve and track direct and transitive dependencies across package ecosystems. -ScanCode pipelines and dedicated inspectors identify the full dependency -tree for your projects automatically. -[Learn more](/docs/getting_started/getting_started-software-identification) - -### Binary Analysis: what actually shipped? - -Match deployed binaries, containers, and firmware images back to their source -packages. ScanCode.io pipelines scan Docker images, ELF binaries, and archives -to identify what is actually shipped in your products. -[Learn more](/docs/getting_started/getting_started-software-identification) - -### Vulnerability Management: what risks exist? - -VulnerableCode aggregates vulnerability data from public sources, maps them to -affected packages, and identifies available fixes, all keyed by PURL. -DejaCode scores exploitability and risk to help you triage what matters first. -[Learn more](/docs/getting_started/getting_started-security) - -### SBOMs and Regulatory Compliance: report and comply - -Generate, import, and export SBOMs in CycloneDX and SPDX formats. Track every -package with Package-URL, the industry standard for software identification -created by AboutCode. Meet EU Cyber Resilience Act requirements with automated -VEX reporting, SBOM management, and vulnerability tracking integrated into -your development workflow. -[Learn more](/docs/getting_started/getting_started-cravex) - diff --git a/website/src/components/HomepageContent/StandardsOverview.md b/website/src/components/HomepageContent/StandardsOverview.md index 4677873..7cebfea 100644 --- a/website/src/components/HomepageContent/StandardsOverview.md +++ b/website/src/components/HomepageContent/StandardsOverview.md @@ -16,27 +16,12 @@ that provides advanced supply chain capabilities for cyber risk reduction. About for representing systems with software components as SBOMs (Software Bill of Materials) and other AI, data and security references. Co-founded by AboutCode. -**Package-URL (PURL)**: a widely used standard to identify software -packages of any type with simple, readable and concise URLs. The PURL -standard is [ECMA-427](https://ecma-tc54.github.io/ECMA-427/). Created by AboutCode. - **VERS**: (Version Range Specification) is a standard scheme for expressing version ranges of software packages in a consistent, parseable way across all package ecosystems. VERS solves the problem of each ecosystem having its own incompatible version range syntax. It is used in CycloneDX and CSAF to express affected version ranges in vulnerability advisories and SBOMs. Created by AboutCode. - -**CycloneDX**: (OWASP CycloneDX) is a full-stack Bill of Materials (BOM) -standard ([ECMA-424](https://ecma-international.org/publications-and-standards/standards/ecma-424/)) -that provides advanced supply chain capabilities for cyber risk reduction. -Uses PURL and VERS. AboutCode is a core contributor. - -**SPDX**: (System Package Data Exchange) is a [specification](https://spdx.dev/use/specifications/) -for representing systems with software components as SBOMs -(Software Bill of Materials) and other AI, data and security references. -Uses PURL. Co-founded by AboutCode. - **CSAF**: (Common Security Advisory Framework) is an OASIS standard for machine-readable security advisories. Uses PURL and VERS for product identification and affected version ranges. diff --git a/website/src/components/HomepageContent/index.js b/website/src/components/HomepageContent/index.js index 3944935..fd17152 100644 --- a/website/src/components/HomepageContent/index.js +++ b/website/src/components/HomepageContent/index.js @@ -1,14 +1,15 @@ import React from 'react'; import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; import HomeIntro from './HomeIntro.mdx'; -import ProjectOverview from './ProjectOverview.md'; import StandardsOverview from './StandardsOverview.md'; +import Adopters from './Adopters.md'; +import ProjectOverview from './ProjectOverview.md'; import Supporters from './Supporters.md'; +import CapabilitiesGrid from '@site/src/components/CapabilitiesGrid'; import ProjectGridTemplate from '@site/src/components/ProjectGridTemplate'; import styles from './styles.module.css'; export default function HomepageContent() { - // Get baseUrl from Docusaurus context const { siteConfig } = useDocusaurusContext(); const { baseUrl } = siteConfig; @@ -24,6 +25,11 @@ export default function HomepageContent() {
+ +
+ +
+

Software supply chain standards

-
@@ -42,13 +47,23 @@ export default function HomepageContent() { className={styles.sectionHeader} style={{ marginBottom: '15px', marginTop: '15px' }} > -

AboutCode Projects

+

Adopters

+
+
+
+ +
+
+

Projects

+
-
@@ -57,14 +72,13 @@ export default function HomepageContent() { className={styles.sectionHeader} style={{ marginBottom: '15px', marginTop: '30px' }} > -

Supporters

+

Supporters

- {/* temp dummy div to create space above footer */}
); diff --git a/website/src/components/ProjectGridTemplate/index.js b/website/src/components/ProjectGridTemplate/index.js index 4b26540..382d1b7 100644 --- a/website/src/components/ProjectGridTemplate/index.js +++ b/website/src/components/ProjectGridTemplate/index.js @@ -15,38 +15,28 @@ export default function ProjectGrids() { const projectSources = [ { id: 'application-projects', - title: 'Application Projects', + title: 'Apps for the software supply chains', data: projects_application, - description: - 'These projects offer an application that you can install in the cloud or a local environment.', }, { id: 'scancode-projects', - title: 'ScanCode projects', + title: 'Scan code with ScanCode', data: projects_scancode, - description: - 'These projects are components or extensions of ScanCode.', }, { id: 'purl-projects', - title: 'Package-URL (PURL) projects', + title: 'Data keyed by Package-URL (PURL)', data: projects_package_url, - description: - 'These projects provide tools and data to support the use of the PURL (Package-URL) or VERS (Version Range Specifier) specifications.', }, { id: 'inspectors', - title: 'Inspectors', + title: 'Inspectors for special purpose', data: projects_inspectors, - description: - 'AboutCode Inspectors are special-purpose analysis tools. You can run them as a ScanCode Toolkit plugin, as steps in a ScanCode.io pipeline, or from the command line.', }, { id: 'libraries', - title: 'Libraries', + title: 'Libraries and building blocks', data: projects_libraries, - description: - 'AboutCode libraries are key building blocks for the AboutCode software and data stack - they have also been incorporated into other major FOSS projects and are available for use by anyone.', }, ]; From f1af1b674107de992fce66f3b7da0314955e3039 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Fri, 22 May 2026 08:56:09 +0200 Subject: [PATCH 18/48] Improve homepage and standard Move standards to a page of its own for clarity Signed-off-by: Philippe Ombredanne --- .../getting_started-standards.md | 54 +++++++++++++++++++ website/sidebars.js | 1 + .../HomepageContent/StandardsOverview.md | 49 +++-------------- 3 files changed, 62 insertions(+), 42 deletions(-) create mode 100644 website/docs/getting_started/getting_started-standards.md diff --git a/website/docs/getting_started/getting_started-standards.md b/website/docs/getting_started/getting_started-standards.md new file mode 100644 index 0000000..b2c438c --- /dev/null +++ b/website/docs/getting_started/getting_started-standards.md @@ -0,0 +1,54 @@ +# Software Supply Chain Standards + +AboutCode is leading the way with simple and practical standards like PURL. +PURL is the common identifier across software supply chain standards, +making it possible to correlate and cross-reference data between SBOMs, +vulnerability databases, reports, advisories, attestations, and tools. + +## Standards created by AboutCode + +**Package-URL (PURL)**: a widely used standard to identify software +packages of any type with simple, readable and concise URLs. The PURL +standard is [ECMA-427](https://ecma-tc54.github.io/ECMA-427/). + +**VERS**: (Version Range Specification) is a standard scheme for expressing +version ranges of software packages in a consistent, parseable way across +all package ecosystems. VERS solves the problem of each ecosystem having its +own incompatible version range syntax. It is used in CycloneDX and CSAF to +express affected version ranges in vulnerability advisories and SBOMs. + +## SBOM standards + +**CycloneDX**: (OWASP CycloneDX) is a full-stack Bill of Materials (BOM) +standard ([ECMA-424](https://ecma-international.org/publications-and-standards/standards/ecma-424/)) +that provides advanced supply chain capabilities for cyber risk reduction. +Uses PURL and VERS. AboutCode is a core contributor. + +**SPDX**: (System Package Data Exchange) is a [specification](https://spdx.dev/use/specifications/) +for representing systems with software components as SBOMs +(Software Bill of Materials) and other AI, data and security references. +Uses PURL. Co-founded by AboutCode. + +## Security and vulnerability standards + +**CSAF**: (Common Security Advisory Framework) is an OASIS standard for +machine-readable security advisories. Uses PURL and VERS for product +identification and affected version ranges. + +**OpenVEX**: an implementation of VEX (Vulnerability Exploitability eXchange) +from OpenSSF for communicating vulnerability impact assessments. Uses PURL +for package identification. + +**MITRE CVE Schema**: the CVE Record format used by the MITRE CVE Program +to describe vulnerabilities. Uses PURL to identify affected software packages. + +**OSV**: (Open Source Vulnerabilities) is a distributed vulnerability database +schema from Google. Uses PURL to identify affected packages across ecosystems. + +## Other supply chain standards using PURL + +**CLE**: (Common Lifecycle Enumeration) is a standard for describing software +lifecycle stages. Uses PURL for package identification. + +**TEA**: (Transparent Exchange of Attestations) is a standard for software +supply chain attestations and trust. Uses PURL to reference attested packages. diff --git a/website/sidebars.js b/website/sidebars.js index 426f3d5..126d7d9 100644 --- a/website/sidebars.js +++ b/website/sidebars.js @@ -18,6 +18,7 @@ const sidebars = { 'getting_started/getting_started-security', 'getting_started/getting_started-compliance', 'getting_started/getting_started-cravex', + 'getting_started/getting_started-standards', ], }; diff --git a/website/src/components/HomepageContent/StandardsOverview.md b/website/src/components/HomepageContent/StandardsOverview.md index 7cebfea..b053a0c 100644 --- a/website/src/components/HomepageContent/StandardsOverview.md +++ b/website/src/components/HomepageContent/StandardsOverview.md @@ -1,44 +1,9 @@ +AboutCode created Package-URL (PURL), the universal identifier for software +packages now used across CycloneDX, SPDX, CSAF, OpenVEX, OSV, MITRE CVE, +and many more standards. AboutCode also created VERS for version ranges and +contributes to CycloneDX and co-founded SPDX. -AboutCode is leading the way with simple and practical standards like PURL. -PURL is the common identifier across software supply chain standards, -making it possible to correlate and cross-reference data between SBOMs, -vulnerability databases, reports, advisories, attestations, and tools. - -**Package-URL (PURL)**: a widely used standard to identify software -packages of any type with simple, readable and concise URLs. The PURL -standard is [ECMA-427](https://ecma-tc54.github.io/ECMA-427/). Created by AboutCode. - -**CycloneDX**: (OWASP CycloneDX) is a full-stack Bill of Materials (BOM) -standard ([ECMA-424](https://ecma-international.org/publications-and-standards/standards/ecma-424/)) -that provides advanced supply chain capabilities for cyber risk reduction. AboutCode is a core contributor. - -**SPDX**: (System Package Data Exchange) is a [specification](https://spdx.dev/use/specifications/) -for representing systems with software components as SBOMs -(Software Bill of Materials) and other AI, data and security references. Co-founded by AboutCode. - -**VERS**: (Version Range Specification) is a standard scheme for expressing -version ranges of software packages in a consistent, parseable way across -all package ecosystems. VERS solves the problem of each ecosystem having its -own incompatible version range syntax. It is used in CycloneDX and CSAF to -express affected version ranges in vulnerability advisories and SBOMs. -Created by AboutCode. -**CSAF**: (Common Security Advisory Framework) is an OASIS standard for -machine-readable security advisories. Uses PURL and VERS for product -identification and affected version ranges. - -**OpenVEX**: an implementation of VEX (Vulnerability Exploitability eXchange) -from OpenSSF for communicating vulnerability impact assessments. Uses PURL -for package identification. - -**MITRE CVE Schema**: the CVE Record format used by the MITRE CVE Program -to describe vulnerabilities. Uses PURL to identify affected software packages. - -**OSV**: (Open Source Vulnerabilities) is a distributed vulnerability database -schema from Google. Uses PURL to identify affected packages across ecosystems. - -**CLE**: (Common Lifecycle Enumeration) is a standard for describing software -lifecycle stages. Uses PURL for package identification. - -**TEA**: (Transparent Exchange of Attestations) is a standard for software -supply chain attestations and trust. Uses PURL to reference attested packages. +PURL is the common thread that ties SBOMs, vulnerability databases, security +advisories, and attestations together. +[See all supported standards](/docs/getting_started/getting_started-standards/) From 610bd3d3c06e68f3f202bf00a235408d6c311541 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Fri, 22 May 2026 09:05:36 +0200 Subject: [PATCH 19/48] Make supporters more compact Signed-off-by: Philippe Ombredanne --- .../components/HomepageContent/Supporters.md | 34 +++++++++++-------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/website/src/components/HomepageContent/Supporters.md b/website/src/components/HomepageContent/Supporters.md index dd54ba4..f622985 100644 --- a/website/src/components/HomepageContent/Supporters.md +++ b/website/src/components/HomepageContent/Supporters.md @@ -1,15 +1,21 @@ -The home for AboutCode software is the [aboutcode-org](https://github.com/aboutcode-org) -organization on GitHub. AboutCode is managed by AboutCode Europe ASBL -(a Brussels-based non-profit) and is supported by: +AboutCode is managed by AboutCode Europe ASBL (a Brussels-based non-profit) +and is supported by **contributions from users like you** and by: -- Contributions from users like you -- Google, including the Google Summer of Code and Season of Docs -programmes -- Mercedes-Benz Group -- Microsoft and Microsoft Azure -- nexB Inc. -- The European Commission NGI programme -- The NLnet Foundation -- The Swiss State Secretariat for Education, Research and Innovation (SERI) -- Zeiss -- and many others! +Amazon, +Bloomberg, +Bosch, +Eclipse Foundation, +European Commission NGI and OIS programs, +German Sovereign Tech Agency, +GitHub, +Google (including GSoC and Season of Docs), +Mercedes-Benz Group, +Microsoft, +nexB Inc., +NLnet Foundation, +Open Source Initiative, +Porsche, +Swiss State Secretariat for Education, Research and Innovation, +Texas Instruments, +Zeiss, +and many others. From 6bab57fe0f7de81b571048434e1226f9570c7529 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Fri, 22 May 2026 09:49:03 +0200 Subject: [PATCH 20/48] Streamline README, add license Signed-off-by: Philippe Ombredanne --- cc-by-4.0.LICENSE | 395 ++++++++++++++++++++++++++++++++++++++++++++++ website/README.md | 26 ++- 2 files changed, 404 insertions(+), 17 deletions(-) create mode 100644 cc-by-4.0.LICENSE diff --git a/cc-by-4.0.LICENSE b/cc-by-4.0.LICENSE new file mode 100644 index 0000000..0fb847e --- /dev/null +++ b/cc-by-4.0.LICENSE @@ -0,0 +1,395 @@ +Attribution 4.0 International + +======================================================================= + +Creative Commons Corporation ("Creative Commons") is not a law firm and +does not provide legal services or legal advice. Distribution of +Creative Commons public licenses does not create a lawyer-client or +other relationship. Creative Commons makes its licenses and related +information available on an "as-is" basis. Creative Commons gives no +warranties regarding its licenses, any material licensed under their +terms and conditions, or any related information. Creative Commons +disclaims all liability for damages resulting from their use to the +fullest extent possible. + +Using Creative Commons Public Licenses + +Creative Commons public licenses provide a standard set of terms and +conditions that creators and other rights holders may use to share +original works of authorship and other material subject to copyright +and certain other rights specified in the public license below. The +following considerations are for informational purposes only, are not +exhaustive, and do not form part of our licenses. + + Considerations for licensors: Our public licenses are + intended for use by those authorized to give the public + permission to use material in ways otherwise restricted by + copyright and certain other rights. Our licenses are + irrevocable. Licensors should read and understand the terms + and conditions of the license they choose before applying it. + Licensors should also secure all rights necessary before + applying our licenses so that the public can reuse the + material as expected. Licensors should clearly mark any + material not subject to the license. This includes other CC- + licensed material, or material used under an exception or + limitation to copyright. More considerations for licensors: + wiki.creativecommons.org/Considerations_for_licensors + + Considerations for the public: By using one of our public + licenses, a licensor grants the public permission to use the + licensed material under specified terms and conditions. If + the licensor's permission is not necessary for any reason--for + example, because of any applicable exception or limitation to + copyright--then that use is not regulated by the license. Our + licenses grant only permissions under copyright and certain + other rights that a licensor has authority to grant. Use of + the licensed material may still be restricted for other + reasons, including because others have copyright or other + rights in the material. A licensor may make special requests, + such as asking that all changes be marked or described. + Although not required by our licenses, you are encouraged to + respect those requests where reasonable. More considerations + for the public: + wiki.creativecommons.org/Considerations_for_licensees + +======================================================================= + +Creative Commons Attribution 4.0 International Public License + +By exercising the Licensed Rights (defined below), You accept and agree +to be bound by the terms and conditions of this Creative Commons +Attribution 4.0 International Public License ("Public License"). To the +extent this Public License may be interpreted as a contract, You are +granted the Licensed Rights in consideration of Your acceptance of +these terms and conditions, and the Licensor grants You such rights in +consideration of benefits the Licensor receives from making the +Licensed Material available under these terms and conditions. + + +Section 1 -- Definitions. + + a. Adapted Material means material subject to Copyright and Similar + Rights that is derived from or based upon the Licensed Material + and in which the Licensed Material is translated, altered, + arranged, transformed, or otherwise modified in a manner requiring + permission under the Copyright and Similar Rights held by the + Licensor. For purposes of this Public License, where the Licensed + Material is a musical work, performance, or sound recording, + Adapted Material is always produced where the Licensed Material is + synched in timed relation with a moving image. + + b. Adapter's License means the license You apply to Your Copyright + and Similar Rights in Your contributions to Adapted Material in + accordance with the terms and conditions of this Public License. + + c. Copyright and Similar Rights means copyright and/or similar rights + closely related to copyright including, without limitation, + performance, broadcast, sound recording, and Sui Generis Database + Rights, without regard to how the rights are labeled or + categorized. For purposes of this Public License, the rights + specified in Section 2(b)(1)-(2) are not Copyright and Similar + Rights. + + d. Effective Technological Measures means those measures that, in the + absence of proper authority, may not be circumvented under laws + fulfilling obligations under Article 11 of the WIPO Copyright + Treaty adopted on December 20, 1996, and/or similar international + agreements. + + e. Exceptions and Limitations means fair use, fair dealing, and/or + any other exception or limitation to Copyright and Similar Rights + that applies to Your use of the Licensed Material. + + f. Licensed Material means the artistic or literary work, database, + or other material to which the Licensor applied this Public + License. + + g. Licensed Rights means the rights granted to You subject to the + terms and conditions of this Public License, which are limited to + all Copyright and Similar Rights that apply to Your use of the + Licensed Material and that the Licensor has authority to license. + + h. Licensor means the individual(s) or entity(ies) granting rights + under this Public License. + + i. Share means to provide material to the public by any means or + process that requires permission under the Licensed Rights, such + as reproduction, public display, public performance, distribution, + dissemination, communication, or importation, and to make material + available to the public including in ways that members of the + public may access the material from a place and at a time + individually chosen by them. + + j. Sui Generis Database Rights means rights other than copyright + resulting from Directive 96/9/EC of the European Parliament and of + the Council of 11 March 1996 on the legal protection of databases, + as amended and/or succeeded, as well as other essentially + equivalent rights anywhere in the world. + + k. You means the individual or entity exercising the Licensed Rights + under this Public License. Your has a corresponding meaning. + + +Section 2 -- Scope. + + a. License grant. + + 1. Subject to the terms and conditions of this Public License, + the Licensor hereby grants You a worldwide, royalty-free, + non-sublicensable, non-exclusive, irrevocable license to + exercise the Licensed Rights in the Licensed Material to: + + a. reproduce and Share the Licensed Material, in whole or + in part; and + + b. produce, reproduce, and Share Adapted Material. + + 2. Exceptions and Limitations. For the avoidance of doubt, where + Exceptions and Limitations apply to Your use, this Public + License does not apply, and You do not need to comply with + its terms and conditions. + + 3. Term. The term of this Public License is specified in Section + 6(a). + + 4. Media and formats; technical modifications allowed. The + Licensor authorizes You to exercise the Licensed Rights in + all media and formats whether now known or hereafter created, + and to make technical modifications necessary to do so. The + Licensor waives and/or agrees not to assert any right or + authority to forbid You from making technical modifications + necessary to exercise the Licensed Rights, including + technical modifications necessary to circumvent Effective + Technological Measures. For purposes of this Public License, + simply making modifications authorized by this Section 2(a) + (4) never produces Adapted Material. + + 5. Downstream recipients. + + a. Offer from the Licensor -- Licensed Material. Every + recipient of the Licensed Material automatically + receives an offer from the Licensor to exercise the + Licensed Rights under the terms and conditions of this + Public License. + + b. No downstream restrictions. You may not offer or impose + any additional or different terms or conditions on, or + apply any Effective Technological Measures to, the + Licensed Material if doing so restricts exercise of the + Licensed Rights by any recipient of the Licensed + Material. + + 6. No endorsement. Nothing in this Public License constitutes or + may be construed as permission to assert or imply that You + are, or that Your use of the Licensed Material is, connected + with, or sponsored, endorsed, or granted official status by, + the Licensor or others designated to receive attribution as + provided in Section 3(a)(1)(A)(i). + + b. Other rights. + + 1. Moral rights, such as the right of integrity, are not + licensed under this Public License, nor are publicity, + privacy, and/or other similar personality rights; however, to + the extent possible, the Licensor waives and/or agrees not to + assert any such rights held by the Licensor to the limited + extent necessary to allow You to exercise the Licensed + Rights, but not otherwise. + + 2. Patent and trademark rights are not licensed under this + Public License. + + 3. To the extent possible, the Licensor waives any right to + collect royalties from You for the exercise of the Licensed + Rights, whether directly or through a collecting society + under any voluntary or waivable statutory or compulsory + licensing scheme. In all other cases the Licensor expressly + reserves any right to collect such royalties. + + +Section 3 -- License Conditions. + +Your exercise of the Licensed Rights is expressly made subject to the +following conditions. + + a. Attribution. + + 1. If You Share the Licensed Material (including in modified + form), You must: + + a. retain the following if it is supplied by the Licensor + with the Licensed Material: + + i. identification of the creator(s) of the Licensed + Material and any others designated to receive + attribution, in any reasonable manner requested by + the Licensor (including by pseudonym if + designated); + + ii. a copyright notice; + + iii. a notice that refers to this Public License; + + iv. a notice that refers to the disclaimer of + warranties; + + v. a URI or hyperlink to the Licensed Material to the + extent reasonably practicable; + + b. indicate if You modified the Licensed Material and + retain an indication of any previous modifications; and + + c. indicate the Licensed Material is licensed under this + Public License, and include the text of, or the URI or + hyperlink to, this Public License. + + 2. You may satisfy the conditions in Section 3(a)(1) in any + reasonable manner based on the medium, means, and context in + which You Share the Licensed Material. For example, it may be + reasonable to satisfy the conditions by providing a URI or + hyperlink to a resource that includes the required + information. + + 3. If requested by the Licensor, You must remove any of the + information required by Section 3(a)(1)(A) to the extent + reasonably practicable. + + 4. If You Share Adapted Material You produce, the Adapter's + License You apply must not prevent recipients of the Adapted + Material from complying with this Public License. + + +Section 4 -- Sui Generis Database Rights. + +Where the Licensed Rights include Sui Generis Database Rights that +apply to Your use of the Licensed Material: + + a. for the avoidance of doubt, Section 2(a)(1) grants You the right + to extract, reuse, reproduce, and Share all or a substantial + portion of the contents of the database; + + b. if You include all or a substantial portion of the database + contents in a database in which You have Sui Generis Database + Rights, then the database in which You have Sui Generis Database + Rights (but not its individual contents) is Adapted Material; and + + c. You must comply with the conditions in Section 3(a) if You Share + all or a substantial portion of the contents of the database. + +For the avoidance of doubt, this Section 4 supplements and does not +replace Your obligations under this Public License where the Licensed +Rights include other Copyright and Similar Rights. + + +Section 5 -- Disclaimer of Warranties and Limitation of Liability. + + a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE + EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS + AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF + ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, + IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, + WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, + ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT + KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT + ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. + + b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE + TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, + NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, + INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, + COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR + USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN + ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR + DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR + IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. + + c. The disclaimer of warranties and limitation of liability provided + above shall be interpreted in a manner that, to the extent + possible, most closely approximates an absolute disclaimer and + waiver of all liability. + + +Section 6 -- Term and Termination. + + a. This Public License applies for the term of the Copyright and + Similar Rights licensed here. However, if You fail to comply with + this Public License, then Your rights under this Public License + terminate automatically. + + b. Where Your right to use the Licensed Material has terminated under + Section 6(a), it reinstates: + + 1. automatically as of the date the violation is cured, provided + it is cured within 30 days of Your discovery of the + violation; or + + 2. upon express reinstatement by the Licensor. + + For the avoidance of doubt, this Section 6(b) does not affect any + right the Licensor may have to seek remedies for Your violations + of this Public License. + + c. For the avoidance of doubt, the Licensor may also offer the + Licensed Material under separate terms or conditions or stop + distributing the Licensed Material at any time; however, doing so + will not terminate this Public License. + + d. Sections 1, 5, 6, 7, and 8 survive termination of this Public + License. + + +Section 7 -- Other Terms and Conditions. + + a. The Licensor shall not be bound by any additional or different + terms or conditions communicated by You unless expressly agreed. + + b. Any arrangements, understandings, or agreements regarding the + Licensed Material not stated herein are separate from and + independent of the terms and conditions of this Public License. + + +Section 8 -- Interpretation. + + a. For the avoidance of doubt, this Public License does not, and + shall not be interpreted to, reduce, limit, restrict, or impose + conditions on any use of the Licensed Material that could lawfully + be made without permission under this Public License. + + b. To the extent possible, if any provision of this Public License is + deemed unenforceable, it shall be automatically reformed to the + minimum extent necessary to make it enforceable. If the provision + cannot be reformed, it shall be severed from this Public License + without affecting the enforceability of the remaining terms and + conditions. + + c. No term or condition of this Public License will be waived and no + failure to comply consented to unless expressly agreed to by the + Licensor. + + d. Nothing in this Public License constitutes or may be interpreted + as a limitation upon, or waiver of, any privileges and immunities + that apply to the Licensor or You, including from the legal + processes of any jurisdiction or authority. + + +======================================================================= + +Creative Commons is not a party to its public +licenses. Notwithstanding, Creative Commons may elect to apply one of +its public licenses to material it publishes and in those instances +will be considered the “Licensor.” The text of the Creative Commons +public licenses is dedicated to the public domain under the CC0 Public +Domain Dedication. Except for the limited purpose of indicating that +material is shared under a Creative Commons public license or as +otherwise permitted by the Creative Commons policies published at +creativecommons.org/policies, Creative Commons does not authorize the +use of the trademark "Creative Commons" or any other trademark or logo +of Creative Commons without its prior written consent including, +without limitation, in connection with any unauthorized modifications +to any of its public licenses or any other arrangements, +understandings, or agreements concerning use of licensed material. For +the avoidance of doubt, this paragraph does not form part of the +public licenses. + +Creative Commons may be contacted at creativecommons.org. diff --git a/website/README.md b/website/README.md index b28211a..56af344 100644 --- a/website/README.md +++ b/website/README.md @@ -1,6 +1,7 @@ -# Website +# AboutCode.org website -This website is built using [Docusaurus](https://docusaurus.io/), a modern static website generator. +The AboutCode.org website is built using [Docusaurus](https://docusaurus.io/), +a static website generator. ## Installation @@ -14,7 +15,8 @@ yarn yarn start ``` -This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server. +This command starts a local development server and opens up a browser window. +Most changes are reflected live without having to restart the server. ## Build @@ -22,20 +24,10 @@ This command starts a local development server and opens up a browser window. Mo yarn build ``` -This command generates static content into the `build` directory and can be served using any static contents hosting service. +This command generates static content into the `build` directory and can be +served using any static contents hosting service. -## Deployment -Using SSH: +## License -```bash -USE_SSH=true yarn deploy -``` - -Not using SSH: - -```bash -GIT_USER= yarn deploy -``` - -If you are using GitHub pages for hosting, this command is a convenient way to build the website and push to the `gh-pages` branch. +CC-BY-SA-4.0 From 3338e4f0c04aca6547bc795e2713ef67f187e579 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Fri, 22 May 2026 10:59:42 +0200 Subject: [PATCH 21/48] Add logos and icons * Reuse pillars from presentations. * Add adopters logos * Add ecosystems logos Signed-off-by: Philippe Ombredanne --- website/static/img/ecosystems/alpm.png | Bin 0 -> 13805 bytes website/static/img/ecosystems/apk.png | Bin 0 -> 6362 bytes website/static/img/ecosystems/bazel.png | Bin 0 -> 4945 bytes website/static/img/ecosystems/bitbucket.png | Bin 0 -> 1051 bytes website/static/img/ecosystems/bitnami.png | Bin 0 -> 11489 bytes website/static/img/ecosystems/cargo.png | Bin 0 -> 58168 bytes website/static/img/ecosystems/chrome.png | Bin 0 -> 1612 bytes website/static/img/ecosystems/cocoapods.png | Bin 0 -> 18831 bytes website/static/img/ecosystems/composer.jpg | Bin 0 -> 13458 bytes website/static/img/ecosystems/conan.png | Bin 0 -> 2153 bytes website/static/img/ecosystems/conda.png | Bin 0 -> 13088 bytes website/static/img/ecosystems/cpan.png | Bin 0 -> 8208 bytes website/static/img/ecosystems/cran.png | Bin 0 -> 32678 bytes website/static/img/ecosystems/deb.png | Bin 0 -> 1165 bytes website/static/img/ecosystems/docker.png | Bin 0 -> 840 bytes website/static/img/ecosystems/gem.png | Bin 0 -> 12711 bytes website/static/img/ecosystems/github.png | Bin 0 -> 7249 bytes website/static/img/ecosystems/golang.png | Bin 0 -> 1951 bytes website/static/img/ecosystems/hackage.png | Bin 0 -> 4323 bytes website/static/img/ecosystems/hex.png | Bin 0 -> 28578 bytes website/static/img/ecosystems/huggingface.svg | 8 + website/static/img/ecosystems/julia.png | Bin 0 -> 3622 bytes website/static/img/ecosystems/luarocks.svg | 54 +++++++ website/static/img/ecosystems/maven.png | Bin 0 -> 2342 bytes website/static/img/ecosystems/mlflow.png | Bin 0 -> 6518 bytes website/static/img/ecosystems/npm.png | Bin 0 -> 255 bytes website/static/img/ecosystems/nuget.png | Bin 0 -> 1936 bytes website/static/img/ecosystems/oci.png | Bin 0 -> 1172 bytes website/static/img/ecosystems/opam.svg | 141 ++++++++++++++++++ website/static/img/ecosystems/otp.png | Bin 0 -> 3771 bytes website/static/img/ecosystems/pub.png | Bin 0 -> 5365 bytes website/static/img/ecosystems/pypi.png | Bin 0 -> 11910 bytes website/static/img/ecosystems/rpm.png | Bin 0 -> 5935 bytes website/static/img/ecosystems/swift.svg | 22 +++ website/static/img/ecosystems/vscode.svg | 41 +++++ website/static/img/icons/pillar-data.png | Bin 0 -> 5393 bytes website/static/img/icons/pillar-shared.png | Bin 0 -> 3439 bytes website/static/img/icons/pillar-standards.png | Bin 0 -> 4250 bytes website/static/img/icons/pillar-tools.png | Bin 0 -> 3467 bytes website/static/img/logos/anchore.svg | 4 + website/static/img/logos/apache.svg | 43 ++++++ website/static/img/logos/clearlydefined.png | Bin 0 -> 19185 bytes website/static/img/logos/csaf.png | Bin 0 -> 92406 bytes website/static/img/logos/cve.png | 19 +++ website/static/img/logos/cve.svg | 1 + website/static/img/logos/cyclonedx.png | Bin 0 -> 27402 bytes website/static/img/logos/dependency-track.svg | 62 ++++++++ website/static/img/logos/deps-dev.svg | 22 +++ website/static/img/logos/eclipse-apoapsis.png | Bin 0 -> 17928 bytes .../static/img/logos/eclipse-foundation.svg | 15 ++ website/static/img/logos/ecosystems.png | Bin 0 -> 37521 bytes website/static/img/logos/erlang-ecosystem.png | Bin 0 -> 902 bytes website/static/img/logos/erlang-ecosystem.svg | 57 +++++++ website/static/img/logos/fosslight.png | Bin 0 -> 21176 bytes website/static/img/logos/fossology.png | Bin 0 -> 9573 bytes website/static/img/logos/grype.png | Bin 0 -> 31699 bytes website/static/img/logos/guac-official.png | Bin 0 -> 409962 bytes website/static/img/logos/guac.png | Bin 0 -> 33007 bytes website/static/img/logos/huggingface.svg | 37 +++++ website/static/img/logos/openchain.png | Bin 0 -> 38415 bytes website/static/img/logos/openssf.png | Bin 0 -> 32919 bytes website/static/img/logos/openvex.png | Bin 0 -> 9422 bytes website/static/img/logos/ort.png | Bin 0 -> 34219 bytes website/static/img/logos/osi.png | Bin 0 -> 44939 bytes website/static/img/logos/oss-compass.png | Bin 0 -> 44590 bytes website/static/img/logos/osselot.png | Bin 0 -> 1543 bytes website/static/img/logos/osselot.svg | 6 + website/static/img/logos/ossindex.png | Bin 0 -> 1582 bytes website/static/img/logos/osv.jpg | Bin 0 -> 26366 bytes website/static/img/logos/osv.svg | 70 +++++++++ website/static/img/logos/reuse.png | Bin 0 -> 5640 bytes website/static/img/logos/rust-foundation.png | Bin 0 -> 85848 bytes website/static/img/logos/scancode.png | Bin 0 -> 17178 bytes website/static/img/logos/scanoss.png | Bin 0 -> 92500 bytes .../static/img/logos/software-heritage.png | Bin 0 -> 75890 bytes website/static/img/logos/sonatype.png | Bin 0 -> 1582 bytes website/static/img/logos/spdx.png | Bin 0 -> 77435 bytes website/static/img/logos/sw360.svg | 117 +++++++++++++++ website/static/img/logos/syft.png | Bin 0 -> 59241 bytes website/static/img/logos/syft.svg | 1 + website/static/img/logos/syft2.svg | 1 + website/static/img/logos/trivy.png | Bin 0 -> 26755 bytes 82 files changed, 721 insertions(+) create mode 100644 website/static/img/ecosystems/alpm.png create mode 100644 website/static/img/ecosystems/apk.png create mode 100644 website/static/img/ecosystems/bazel.png create mode 100644 website/static/img/ecosystems/bitbucket.png create mode 100644 website/static/img/ecosystems/bitnami.png create mode 100644 website/static/img/ecosystems/cargo.png create mode 100644 website/static/img/ecosystems/chrome.png create mode 100644 website/static/img/ecosystems/cocoapods.png create mode 100644 website/static/img/ecosystems/composer.jpg create mode 100644 website/static/img/ecosystems/conan.png create mode 100644 website/static/img/ecosystems/conda.png create mode 100644 website/static/img/ecosystems/cpan.png create mode 100644 website/static/img/ecosystems/cran.png create mode 100644 website/static/img/ecosystems/deb.png create mode 100644 website/static/img/ecosystems/docker.png create mode 100644 website/static/img/ecosystems/gem.png create mode 100644 website/static/img/ecosystems/github.png create mode 100644 website/static/img/ecosystems/golang.png create mode 100644 website/static/img/ecosystems/hackage.png create mode 100644 website/static/img/ecosystems/hex.png create mode 100644 website/static/img/ecosystems/huggingface.svg create mode 100644 website/static/img/ecosystems/julia.png create mode 100644 website/static/img/ecosystems/luarocks.svg create mode 100644 website/static/img/ecosystems/maven.png create mode 100644 website/static/img/ecosystems/mlflow.png create mode 100644 website/static/img/ecosystems/npm.png create mode 100644 website/static/img/ecosystems/nuget.png create mode 100644 website/static/img/ecosystems/oci.png create mode 100644 website/static/img/ecosystems/opam.svg create mode 100644 website/static/img/ecosystems/otp.png create mode 100644 website/static/img/ecosystems/pub.png create mode 100644 website/static/img/ecosystems/pypi.png create mode 100644 website/static/img/ecosystems/rpm.png create mode 100644 website/static/img/ecosystems/swift.svg create mode 100644 website/static/img/ecosystems/vscode.svg create mode 100644 website/static/img/icons/pillar-data.png create mode 100644 website/static/img/icons/pillar-shared.png create mode 100644 website/static/img/icons/pillar-standards.png create mode 100644 website/static/img/icons/pillar-tools.png create mode 100644 website/static/img/logos/anchore.svg create mode 100644 website/static/img/logos/apache.svg create mode 100644 website/static/img/logos/clearlydefined.png create mode 100644 website/static/img/logos/csaf.png create mode 100644 website/static/img/logos/cve.png create mode 100644 website/static/img/logos/cve.svg create mode 100644 website/static/img/logos/cyclonedx.png create mode 100644 website/static/img/logos/dependency-track.svg create mode 100644 website/static/img/logos/deps-dev.svg create mode 100644 website/static/img/logos/eclipse-apoapsis.png create mode 100644 website/static/img/logos/eclipse-foundation.svg create mode 100644 website/static/img/logos/ecosystems.png create mode 100644 website/static/img/logos/erlang-ecosystem.png create mode 100644 website/static/img/logos/erlang-ecosystem.svg create mode 100644 website/static/img/logos/fosslight.png create mode 100644 website/static/img/logos/fossology.png create mode 100644 website/static/img/logos/grype.png create mode 100644 website/static/img/logos/guac-official.png create mode 100644 website/static/img/logos/guac.png create mode 100644 website/static/img/logos/huggingface.svg create mode 100644 website/static/img/logos/openchain.png create mode 100644 website/static/img/logos/openssf.png create mode 100644 website/static/img/logos/openvex.png create mode 100644 website/static/img/logos/ort.png create mode 100644 website/static/img/logos/osi.png create mode 100644 website/static/img/logos/oss-compass.png create mode 100644 website/static/img/logos/osselot.png create mode 100644 website/static/img/logos/osselot.svg create mode 100644 website/static/img/logos/ossindex.png create mode 100644 website/static/img/logos/osv.jpg create mode 100644 website/static/img/logos/osv.svg create mode 100644 website/static/img/logos/reuse.png create mode 100644 website/static/img/logos/rust-foundation.png create mode 100644 website/static/img/logos/scancode.png create mode 100644 website/static/img/logos/scanoss.png create mode 100644 website/static/img/logos/software-heritage.png create mode 100644 website/static/img/logos/sonatype.png create mode 100644 website/static/img/logos/spdx.png create mode 100644 website/static/img/logos/sw360.svg create mode 100644 website/static/img/logos/syft.png create mode 100644 website/static/img/logos/syft.svg create mode 100644 website/static/img/logos/syft2.svg create mode 100644 website/static/img/logos/trivy.png diff --git a/website/static/img/ecosystems/alpm.png b/website/static/img/ecosystems/alpm.png new file mode 100644 index 0000000000000000000000000000000000000000..f3757c61dc4410819b115678a549042ef79ed380 GIT binary patch literal 13805 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 literal 0 HcmV?d00001 diff --git a/website/static/img/ecosystems/apk.png b/website/static/img/ecosystems/apk.png new file mode 100644 index 0000000000000000000000000000000000000000..976f4282c1f156d2cf77c08236697aead5d0c834 GIT binary patch literal 6362 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 literal 0 HcmV?d00001 diff --git a/website/static/img/ecosystems/bazel.png b/website/static/img/ecosystems/bazel.png new file mode 100644 index 0000000000000000000000000000000000000000..ac74e82c44669cf39254e6a6837a7d57d16f0aa7 GIT binary patch literal 4945 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 W@AvH1Xa#Rw21tp?i`Ix31pE(3j8I1a literal 0 HcmV?d00001 diff --git a/website/static/img/ecosystems/cargo.png b/website/static/img/ecosystems/cargo.png new file mode 100644 index 0000000000000000000000000000000000000000..e3a99208c287bc3fba67de085255df1b4ad22c0a GIT binary patch literal 58168 zcmV)>K!d-DP)qr?$rj3;+NC0000000000000000000000000000000001hnzLgMuo5Ie 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