From e45a2a27a181e06211d49f62d7720605e938aefa Mon Sep 17 00:00:00 2001 From: Richard Littauer Date: Thu, 31 Oct 2024 17:03:42 +1300 Subject: [PATCH] Remove dead link --- _build/.doctrees/environment.pickle | Bin 613384 -> 613112 bytes .../trinity-college-dublin.doctree | Bin 10938 -> 10738 bytes .../markdownlint.d.ts | 526 +++++ .../parser_core.mjs | 62 + .../.markdownlint.yaml | 277 +++ .../parser_block.mjs | 134 ++ .../prettier.json | 27 + .../54b3dc7143c362c21098075b6abf7f19/LICENSE | 15 + .../markdownlint-config-schema.json | 1846 +++++++++++++++++ .../c85208b3027b7d5924e47ab3fbdfc782/help.js | 520 +++++ .../.markdownlint.jsonc | 310 +++ .../parser_inline.mjs | 197 ++ .../markdownlint-config-schema-strict.json | 1841 ++++++++++++++++ .../universities/trinity-college-dublin.md | 2 +- .../universities/trinity-college-dublin.html | 2 +- _config.yml | 2 +- universities/trinity-college-dublin.md | 2 +- 17 files changed, 5759 insertions(+), 4 deletions(-) create mode 100644 _build/html/_downloads/0428a01620608242c01446799d79b356/markdownlint.d.ts create mode 100644 _build/html/_downloads/0c0dbe78571689179e406ea04a04fb5c/parser_core.mjs create mode 100644 _build/html/_downloads/1eaf4f3c750f056e803dd8c3bb7b68ac/.markdownlint.yaml create mode 100644 _build/html/_downloads/2f37d86dffc73056d64683994170681d/parser_block.mjs create mode 100644 _build/html/_downloads/532d227f30e072addbadac8808f83d10/prettier.json create mode 100644 _build/html/_downloads/54b3dc7143c362c21098075b6abf7f19/LICENSE create mode 100644 _build/html/_downloads/98319c1e5a1a1f6ada69662000d94630/markdownlint-config-schema.json create mode 100644 _build/html/_downloads/c85208b3027b7d5924e47ab3fbdfc782/help.js create mode 100644 _build/html/_downloads/dac4cd021e66b26d5182dcc369502a7b/.markdownlint.jsonc create mode 100644 _build/html/_downloads/dac79542048916ea99efec88f65d98ac/parser_inline.mjs create mode 100644 _build/html/_downloads/f089bb33f63d9d030760b3f0cdb6d9d9/markdownlint-config-schema-strict.json diff --git a/_build/.doctrees/environment.pickle b/_build/.doctrees/environment.pickle index 52d745ac15e420d9ffb199dafea60bf04a17831e..ca96b01c116efe0433527e3fb0fe277d3f830a5f 100644 GIT binary patch literal 613112 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

hv`LH&Dq8`!O2@c9brA<XAN}_a_5+xb1U~6+( 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 U4OZG-lb<&2Xme+?mR|k;0ap{v3jhEB literal 613384 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
D?sUDR+ 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�B06lqk9<4cH^oWL>_R{MlEciyWIw~a)^5xu#j|%OTrRa zjc!ie*VWVs1#nm_%hC$K8mq_iDuA^IrXa&{H@H7+^&Scr+5zlqEcJ|YCh=T>lml5i z8{r=jfW25f(b5uDeVrU6luQZ~R)QO^zwu^Tah<4#s7NWR8`p|p>&rKat&@4#di=p} z(t7o}u0o6(ow5v-Lsl{H4?2$2%kI`3>CnTI!E`GI^DW#MF4Oc&06Z+;A-d>P>VPLc+=i z;Ue*bIHx*9$Z_P;$L7GWLjLAt2uC-KK7==$fd&{_xP(av5eWb()w#BaUJ4qbeBc}n z#!0!zIj+F&)Rm1*ElOELEqqotq$4 zz9qM3_lAL?rfC&J1&IB$$cgvQSoo+sz|Dy~Y3$JTlgn!<5jyr>#yM%K~(O>z@`8Kx{ zBTF`OOBK&8#SDDB zQ}okS{@E)3WR+iED*seI-DU})9 zZmh=0q?unoNu>+w!Bo7s1dA80Cn|YUFm`nJ)D&EVeD8rps1vq={YSB@!s3MpuCb~8 zhxE78wFO|kXusXx#&*4^K)hoO^|{V(L1a?1f1okj!R;z#V;YcZhECH`E>sk!kbwUX z{46a2HnW8ejQ;}B=hRnU6)l;w+R)uIkM7$1F_D_<@cv*T*xQ*5?v2{*2157(lI5kjWKq=O3A{shbd!-w|6q4}K5B)* z!H6KeW|643HAT*Kbx*w9=)(M)S|sMB`x~`|5MhkdK$dk+tOR4pQb}LK-86Bj>|RDK zp9@{Mmik=G_;c!&>P@?9bS5jiY68)cSv5bjD|pN@Sujd=zrv;AG3siEQKgoKN4@yc zxY{HXBfFKdPEGcCZ=(ztMn4Zw-v=7)6Xt8>h#inAY`++_b5pLTMC;miZYPY#KLiA8t6J>b|xE|eCj)@~$8!>Y_GX4a3tyi%FI zq{g?I!GwstO0d1Sh-vY$3+-H{)wJTXB3c@{(Bx~fL*7C&r_!O*VHl;>-1@Hz-aI0D zEW46_`6W5S(t_dJ3PpI-;x|@LPnBL1sDGN#&98>Q*T4LphS?Zc(7u4B4je9 z2~L;~1tZ>5DI?0HPaD3dO6g=z^iGNqm(3asa$2}?IxSi5o#xFb&(Vc@DhvO>BUPE+R3aTH8t27QYaeZww)eV&gEHbsS!eF zZk)I|m<3{mbBF;8U~;Fi`xD3j09N3;CbI;2qgNOkfcz?|Fjxz@vtUdnZqSxSR zh1<41u?$QA+b-B8htw`H|I6Az(2)gPwb0F43n|0EhECXM6A2`5n1dr1m%D`qJAnCv ziR63Zqjm8yQJU%2GrGz4D1}$5gzaM4{jFFGrI($>w&-L>!Z~?)fL{}H3I$hzk@U7bz`7yfA2b`3*D{pLJfr<;F%l5cxv~=h#DF?= z4Jaf^m$=mLECI*oEc3MzbcEbqS}ixN-0Dyo%gswfOC@)AkNQOp_0f%P-)d1rKqex5 zvIh-}d|Aj3hB=wAQk8Eii&hAp@IoFsNLZNCZOL zY8S>-;7lp;nlp=Muw60Zd&E3cIO95jlAZB8L`x-S+@tQ!xVuAT8SgVr+TNOX^|RYf z)zN|822o-MEEgR(FXpebq}V-B=clrgQWq^%vj<)y{1fBWdqK;RJrL54GQ#^}9eum# zb7}6_Jxyn#vD`T&S}M7YJnDUi`sjPwHpgXz{5Sh0PY1psxcDZ~dWBrnxt%N*9}z8; zalR8$^2=iGN=u2=M3*zI zltK5GL`wtA4Zn_??@{UC2O2;j3=UC>*J%Z6KHQ0sl3_8>1u@2s9i5=-d6GI^*%|mS zLB0!<_?vRFQUY^27phF#aT_;(eP7pS!v4|{GIG=XpW}E`6pf*f6qXJMc^;gA&0s0S z+vp_$6RcGr&jp(fAX1asuDO zr~;>N8_r#h%1I0~Y%Ad4Cxx--MxB#X1$!J7pfpTkJkW3oHCn=E5RfAVgdQ2@`TVtr zvsKVvobAB#9O9dK)R1~eVKMkXhJGwkKn4C`F#AZ2j(jD^Ub57P(4IVu9p9YQcJK`` zt3qx3hFHv{)rQ@opPpN7{G3r6N)2FjL!PnXdK3c~Q1}Jb4J(31d#)2A+@fFWA^wjQ zL=xJkqefKv{G=KJ8S+#O1OhIh>XoNeO!aeK97<X?>SR!5Ln)SO zcPS*8m9D4|*6WDKi`y7V%z6$qInN5+yAaEQjH5Ju9jY>?!|(a7mE_@5{YNZS2aVua zZ=gN_;so0v?5b9=g7uu*A0aNJB8eWCHt~or+4>DG43yJ)VQDNj{9FkOC>LP z9`(;T)JMN6U!l&!yq|Ir9V&*vE5}I`nf0RJ=>>C@Iwai~J_ z@VoWnz^y*v_`)R8FrPlLao|jEGY-6X95^%Z@e&7q)AMhTN^dKDq7;ORN&Gb^x9a1- ziOJQ(f&alM{VNa$u6mdi2mWESJTMOY_wmKBIPjmtcg>%n$5#k}_HXnE>4N)mdi*>+ z-c666pjZC?_Pzv6j-yIbK6F{u(UxS%7cRSjPXcudA7GC;j4b(VT~S)!WRtv<~#)oQMV0$RmJFtB7%`)t)KMcmKXU%w)*tnQdNujFOoyrhDO^K>Q=w@D|zvU%XF^;&u0ADj=SV#otu zy{DK%R2?a^95uVnDq}Y#&(vp^?-d9Eq)fq$1!u^woK4(@B7$v#>(Wy>m zwYOS^2$(-LMZoJt^m5954w8?_WgaHy;yXIjb>5nf`VtTI@L{wwjnw54oScfy95HcO zt`@CX*L-xyAKU59M!VlpUTL?C;Y$n#O`ru(XlZa#Rkbv{#VE;@hJi~`-ntorVE)SF zFOnem_`ATvpP=?y5Pa0-g76MEQTGOSD=X5mrQw+ihHD24d|bUwTJ*hI?}~w6R8-oo zkqy%!lQ(U^Vm5#PA}t_Jj;9uo8;p`%0r6$>nqM;+@{K!B>x!9+i|QUdzGsNz0fR@g z@VTI&GJ1QI>Zlf9I&XKlBJ~DeW4z0#=-kFdKDFqhF7FN3d(wIL?7AAKuIUcYo|cF` zN^ZF7@~!xSeox7p2(INy6$+YhaHL=r#?YgB^pv?K<$lBfPc9`6kh;$}Ie1zK?lMa1 z+GotKnGE^*Oe>AlPz|k5jsEZ{qkNO_-1|c-#kRc_{ehUUD0owB=Y)crLTZ5EerRCu zg;+6&l2_VYE+Q!hAKne4#u1f+kGfYm%!T(JtKEIRna^|YZ(ix&86e8Lj-w>>D96bw z)xz*yqa-K^Z(ivQ&WbH(#FpCOS=`ySw)48nca36YXU5rccZ@a+ZeLoZa!S;qik!K; zi`Fw{vXq2{rC_`eW60SRw{20!24{r^ozv#zmGJCFYp$uaLc?9r;Vs2kz~My9X}*f$ z<(cu)G@n9?~b6fOY4rY&-o-mC2GNL z$EXRiyVvcxZrl1)9#gAoKA|o18ghs1;6_w4@11dH9Vw-3<|&wxz{N=G8{kv{aB5C>pPMD{=70dtjIHIKu(t$MP0-;->Xm zc%bE7)K|E(wYJR0px@Y=+wj8QwQ^1n@%rlD36Knt{#8;U?POzx7wN_fTLZOo0IhDP zboC^cYZ@m@uY0q2{iB5Q)iom#9H=Py>SxD`w04}Fyh~ldGmVnqIK{BE z@U^Y%=xhdy!6{ZwvTb@XhFWZd`-vfq7Z{w!X!o2HDUH#ajFKXb1$@+pJk;k9Ki!3+ zd#BiEOO4^Y2Fj>u89Ni-Gkbp3!1Wq~pBQmn$+T>Z>y<`H5pnfVm*cv6m%Et@av^rm zKw&TTm@xtE@*M-oj8VTBk#zD1HInZ&N{Wc2kGdC0uQu*AJJDmb>gx$!UF0n%?%Zsj zGK`?@qvdAbZnR%yNzwZLRBxaApixo}eIH&8?eWZRY)HMq-COnzsT=mIX`Nv>>NKtM zPA8z>Iy$k-`?gReFF6|U6=E*c`j}BK6G7WMi@3<;&+OCsW1}1YhaRNo5&-mtI@fv| z$E<`K>O3wrhpJwWndG*;&KqmG;A_^r>$eOb9*PMFH8b!U=Oo;23_5V>>48AFy!xV- zUUH~wAJj+vUZb`Vb*hhgGXnJx4(Naia*2Lr*a}_RnO6oMxfgB&XCj}8R(kY zK+t8iK0V#rWq)9l)FJTr7jq6g^0{Y}lZ~aY2qw_6W$Zt5!VbbJtai8~?r+#VRYoQ~{sJQGk~xX_ zo1NeeQby?2rin5try1}~79;tM=?vwHLo_0H;3&ri`J*~`aT~n65hH*~LgHMhE z&BEWnEbPU804fg1(?yxoK{{AOtt@n6g6k?45+UeNxgI)AeHWTlMG&Fa55jb~+mG^& z9b_1`k6zK5!Aae4wJ(#N)#^?+;fcq*6`UQ>qhN$O&1`(7Qd<*QL!`xt26&^PG@|(D zUo>?7#T&?|U68`20{IdfCt|N<1`gDac?B!O#$kqbWNQ&j6*Bv=J6oI1rz%q^(|PPV zfM3vPoj#-BE1zUBPQh4ghS)}AowF?qbo~a{v^?^j=`X9A9R`NZwr{y&v2>7Uz<9%! zBDOVv$;)CZ7b35Y7M(0%N7+`W*2yth7q(eV{cvuNuIJOU>P$hy9qMq*;2V07oV#XC zb?wcL{Q0}-YrN{!tfZ@66{KZM8-)(*VZ_6`x$-65l+$~{{ zqC7*Es8&$Zx7|-N=B;#i^n$%7NbPEm9UEk+EKp;=4Aj{5&Ph#^U8!KKLO&)lWoweR zx7blDx?*LG@^+kicp)OzH ztM!^G$_B;2i1UXs&S+zu{o_R#f&By*%U+F8?!IQD?I#q|(LV{!0o5YSSw^jVqqzk$ zbq*-gdo>4Co&(AN{?6opzUczfFr07!K2d5xWluGs`s2?5C6MFE0sWIO{0VYE6^FfY zKtF<#JLZ6X5-+;tfZmFC_RVxTjbdu2(&Z+)9HGni=<*a@-cMhdWkPNaDE+j~KdbXk z>iqROf3+#FW8%E(mWlJ!EfePn2O@5hCVpjeKw0axazH;2Qx53a=4!^h*o_du z3IvU}Ww0}0sb~s);I|Ds`E>%0_4HTiucdM4h3<%u7m9;For)GzMRkVg|1{W!#}vaV zqBnNR5Z#igX55(z9NMeS>Cqd(bjSb;brkQ@2LF*^*V!!2iu@lEeNGttsZo*}0ePL7 zFxst_hNzg7OrE`d$DD$hKAwN<;dw4zx#Mjgh9L9l)+0XZfA66le&NBTM*ip~oW(>Z z(~jh-w5rl7Z%B>IVqmrzJCzjZ=`xEp5S~r##CUBC(?qQmJ$|WaOC>deY;B(#ZL!Rb zwcBd>agr>x{G4Qz3STvQX(1QcQsk zlh$j?K=pmxwot{p%p_d)=>-NHCh!7iwCp%3iCT6x8YQ{1dy^9nKUqz3yOoM?k-M}p6)JL zqol6g#r&GdkgvNe_h9SdqEfVdZ;hJI8vK|A&Ap4XqIBIF)jwAd79np^>YNa2CE*&< z(E8Lsq!BA3b4$(bE+>(6h7aQ#jXFlu89wS>oiP{Qdn`lqIeESTLVpucKWBg_?>dgs z(CfjRL{u#dpD{{;((optzQF6jGDVzOikXLuvyonFlD_*Uf*Uya+-2j6RJi zo}Hd!OIl}^xGT9ZCDbtxTB@H#LqA zz`VVaf9Kt%wJraa=3Z);`S;|*wkD1+S>!G{P*c#nx}dFapgK{rXx^;-lmT~YNUchs zl?ra9I0Kg+Xo(zV;IO`pARV)2OU3clIsug<`>TIta=@vIuS$X=-T{(eSh2q}R7Paw zq?a^13B28vlULg(oK~k9iC_+*q}4qYFVfl!IC-VIf=?PH!3@L@5PJ({At`kYbqeL> ztimadHC|fnvoQ{__JJw#9#tr&YGl zg1pkFy{EPLc}}l%H-w=6iK7cWr%k+4Oc=88CZmO7)Ug9h%hs|mWRw(97JSs@vT)56 zoFQUOQ0gEXG%TwkwTp#ZKe5omzRlSZ_+xal`xF>9}{gGb!s+7+0s@ zK=FyHg-j7=0G8bzy3Q9e9q^UmepdxeJG?g(>8(b+#&&)$Y~v$4#A#NZk}S z87#Sxj+>>OI3J5gJS;|X;(XK(N1)zAulUOG$-E~T*J!j) z5pw_wF{5#8ZkDaW<$xDRF{Ccj@%{;AmjH#?Qafr@_%hk4)Tr7J3#V;vz*=E!9z>1| zVoESkS6E}^8l7T^d>DOLiIVGMi#0CFhH z!IPqF%xHMt8TkHny!dLP;4E0x`2IJeqz>WguO9ClkiFMk-jrhL#=`lj5`wG9zCw%_ zqTIcsAhyb>SVOH7esDT0M@NTdDBA08`i8&8G3A(>$bl+$d!s{T(F6CiO6CybC{E9= zVi|uH79@x4F*;0EMWeTjUhQ;UDk)lz(eZ)v{r1s= zJN5%1N<}NpP=I%w)*)dFFWSLT#g1|KZw&|bQc5&<=Ob=GOy!9=v0$nkz1YAz+tJo> z<4$gX&L&XA++2fJW{0j}HjiXBl+qSv#};`MXZN+hRkbnFI63Gb>yVYLsndzw7%h#d zG#+iK56o7_sJlwnP=ReXat<^U&wKXjNeFJKwj;n56D7(6MLy#Wno-!4MZO+ReNxS- zc8J308?sW!*kBFmE33tj<5F^VjSA)wZl4CeDhFiSrUDCeC49CeGt{ zB5u=&^OemCVy)+91=Sjh3RX2k+K;q@U+{BVcY7wKP5cX+*3zkW}L*B9v5R)^Pj z>#}PdUZ0_VeN%_m`}FIH4zGWziH~=9-PEtE9bSK0zkZ+p^|n*m9}&JG}muetmm~*KOjozr*WW^sh7i*W2tiVIA|oANlwC=Q;oDZRfT9{JkCC542T1 z-{JkGZNI<8|9<3Wy7=2VyuL@jPIq|y1^xP9hu3Y$6+671*1vv#hu2m8`jG$iwlB5S zY_h}qT-$p(PxDCA&~e)~w!NoZOYi%O^!r+40YYJUXiU@UIS?nub$Yrp3Gxo6^!(+p#58T zFRs)M#1IeWtQmuqZ$@N=OlANp3pQW138%0b#r`N_v1Ez^iam|j!(g!kHu5Q8tB6Wx z0RB%zPRQs7aI(Tl@afFJ%MlqMw<3UnfgNqfv!u3X3YO6r3k%WI0eLO~9GpdM;D!q+ zO5Vj#w-?egVZUcBflsjgsFQv1IZo14>TqoW%x%wC$C%A61*STDNob3bO^SipUUo zu>lO7)8b?l8&+YRTxN_;B%4jO^5qSP_C(}}9OnRzes4FF_@2?!F85r8Kn`&-)UMId zt4-|2B63PTd;q7Lm{ZIMAj~{UyK+`KFzs%uoZ3{WlyKG+ukKy9XLM-S=;bEIrHCBU zup)rtfl)GuI7iM|k?iqS-XD<$4ESSbb0R^9qB-J9Of-Ty2 zI*%@>lcNj?|F;oYq48G$D`#G5;q)*owKs!J_==O&?#z5LA~Q7F3t;AKW(F=>tHYCx z*zL}oni}$R5&5CvWdJ`Xx7r1hwnoc*F=F8~b`2?%t6v)FYHsYq_)h?}aX+$0TVOZLZU!h`wUwpB2yH53}EWqu1t+W6>rJGDj6)@6pr&vG1&T0M7Ai-8o<_I09%{OwZjHaAB)Hn#dZUDI^E=Hw{-|>8aH7y z>FNG|8j%$WBL}du+GOQAXUEibaegQw7rZfG@Az}bUHsGp_LrjZQ)`@r!OWyLKu+;) z6||-ZG*2Vi6c4sJs7ujUo*J|%7|N4?HpM4x4l+`F(B>c?1?p^$wo$;0=j&_=R@oeJ zqWF-_K^_X(*c^AE5Q@!l5Q<&c9Dtyhfz1Pd8k5^Ru%@xD%>z~%bJ{#`q(Pv~BRLv_ z**uV<0g%n37#e!mJbs{YfX&W4IpQ{Z)8rl7?BbGtYO|9`{-VuJAGvEb`&{HE+3f3( zr((0aL0*E*rk-rI%?6h&rp;!LjF!!ohm3{I8lUvE&B~UPqsx#EY zNhA*Y!mS9?7AvNRTZzHFXb=Y*ad|$N$D|l(nA1`ciNkyJ6fY1ecP@>em*6s=1M@~OTkZFns^k1z>=Pqj{J=T~j#nKH~+EAOg+v<@>a z@%KqV*jPP?{5+(SWb#8g*REouYO^f=U36f-D+N}H>+yR=4CVIQ#85n8u(sci*{`Ex z_L7u@Rv|Aa*x%P}C?xFaC+r#BWT1QQbUZ$(ubVec9IRC`et6GDfe~HNGo>UFhj-Pc zQWY6grA%r&&IG$2XJ^4|8hBrx7~ZP~Gfv?{IFM}Uuv56tP+ulRPb=F?r6jx!Ah5F9 zP%F(OAfdVVb~3$e8STlB%|@rnrD^XRaWydkSUxyy7VB&J1JZWWO<$Cf@PaOAH{JBg z+6zc%E*_TZXvat6b+7&N(Ymgoy+0;-qWT2+Y4=GRU(3&bWD;HdwAiCDIJBT*Mg$&9 z3b4j}3{g>-uiHHu9k%}=C7}iWucah(w^NN5soQ-r3Ktj}@$5kVx?Sky<0l-5$B&}= z1$D!DC@Z21^&4)6uHA55*M2A-F0Hu=8*w9%ofZL5u(D%>^xULSY^)u`5!yr5(h$lY z>K!aSJ372)GKsG6c12e@W?Hcsr@~_VnHt5G0<_J5;d5S=7^(w<&ZfOX6}MoY_PaDX zoNtqo(Aw|!q$ITVQ;ix)`<=#I#NPZTA@Z#@<~5_S2T)ub^E*DJg!vuXPk{FVw)_UK zC;9*L_X`<3dpTHTBt z2vmrWjnJFum*>&t9dx;rF7HDw)-}JyKYJE`ZMWZv4^h%4-0JpWe00>ljQ@T={vN?B zD}7W`Cy5=$yPDY7Ed?D8-YEVB@}@;rsd)hjjpEDGLSsW*z+fK%*mGBeVlxvq$LjMj zbq%UskiC9DD$BY%+|MMs;@I6@OD)Qxj+tpsB!yaI@gPl6b1IzAf;=7_zsIB`bVqnp zH9_1FxrL;=u`I%{*v}`1^CDK%o}#3*W}ie~B*jQe^o3Fqp_!DiJ-4 z)g$?QTlqdAJ{%p~87T=Z#8oK??To4>j^vCg8!RB9xlo>zfP}{4KB<*+Tw>18pK}aL z>dAFV_5V^#f=x9E@_zqPDmhv?{DqW+ZnG~)NjPoB>yGE#W@6nQa-)P_#MF*dyP$S_ zT8f}<$A4rJU6p*lMlnk&@i=`x)OwC$7NOLLKHq#P3EdBlXA-fS(~hH<;lyz6F^YMk z6eBIB>!c(Shq=or=Gw%7?m3FtF2zYhJt8HMIMjoVcg@?HhjA9Gi8aD&2OZCw7h#5W z91lpb)y-3sl1RLHIu0`LO{@ue3^JQij5N&mNJ)5M7Pz(AGgj7FKtglz6RD5jcv+m& z)juz*_a;z(8k-nQ0l8v(lCt6$DR(Oy)!AuNIF%!Nijc-TC`I}M_y3c%FHC5c+ z+M4!lRgslEjh&CGNL@81_RX$3+LHRtnA(hL64Yi#rD*9kyG=?$x7jUH5>A`(W>9@=vo8C2 z|CgAWjVcq=Z2wsbm~OVuNlEBt`;3%?(`>wRSKpd#ZkwV1ub5hs>KN3TKa}FATl4!; z61p|NBPHRqChxx1x7M8FPVy%ojK^1`N(MFOVw4rpLtG#wp_}srDG8@Jc?-S1HD^rQ z@Lv>DGgIY*n)yO0z`EC-Cnceqd00xqX=dIZv2V>B^BD$XF*P@V5Y*ghDbTvP-y9jTCYW<>ZgFfd-~@;d#ngUOtDyG#H&Wzu``y7Ly2b)p}#C#BesRH@_(g-xW<_^na6Kz15$>pExImX5|dA1(4#)FF;6O{zObtoZ3u?&cq!8+c{3Vm-xlS9~hig1=IetlwsN-L2j=UH4Xf3DT%~^U%I0@g|lg>_SPXYzxGIC zs4p8VQK^hMmFkoA!&1C7L_6#2i0>H{kD|9}xajv_FeU zzNmshp1|j&(x3(E0VZ)Qc>+%+1z=cD;ECv{J}xDpJIG_IVd7q*(9;umF)`>vcmmH$ zG1J2QtdvCJu=n-^PCpcn^XtSe;=uQC27Z$m>VeL{%Tl~F9a_tN#^C2LixyVZ^;y43*24DZ2f$ryl zzj-zum!2vVWcklWSrHxhjZC7CmVf?^(VaWYcZ0oG^B;-rVvOs+ars#Q~d!Twlc zu%Cg<1I*`?ao!+U7;;z`>LTs;N|Dr!(Ug+#HAVufA6WVG>W5n{c2_?pUwz1TmBmLr6dvuzDIz3Ffr5vEq)3`NAzybl9KR3E-=^H;w$qZAfdVV z1F7sd7XMZl%C7dS>$+p{`uR0G%GPA5m>R8Ss#dpQ{|zyT7S%1t33!)O5Onw5!z8+b z_zEnZKb#bRVV!`P=%`kuBy`_6pcc+>x)J90F1H!8SjtBkEhxMnfX8)3;01RvPFN%)pg;El_H=L&$ zrmtpyUt-XQF#Fd_G1IDWuardMu(!;9D|PL*=FQC`O_eu(Q)0M>G5bfPsA=F2OG$Wv z7Z?z2gOn~4kkDM5BCUvHgZB5=2A#gknoV6(%M??aGv$1#>lE}CViGW_UXW4xGbw~x zoIcMajwPe?R8jzjHA+uLNA(FQ3Ee#&R}Irwqx5oO(1$QeFG?}f!u-6Hgco*!V$-@& zbtwS}&BX)Kia5G4(_h_q&aP5+%Bob6F@1HhQq5Ish}B{H;@wtus#waGCT9)5{rn^G z`0Z57AQib0WkvMcH!z7~Nkv|p6o6q>~0um}wPR zl#)ms_LkpH%SCw0iFUvJ-o$VZrgmgYweI#7%SDvlSVk;^Dzk+)iB5vct9!+TB7b} z633D&@I+DohIIuVkB;hNQWCm{JgOR|ui=2_6N5g4EAXroGcC-|NJ%6Pdv8}@&F{zK z{rYr9s3p9sPlaE%cp(?qaqS8y^C2Lixwuc- zX&qPKz5R6sR$}E&aiUZnZ*vC>2cR62SW&%#9DtHk2(%pKnZ&W=0Nj%lfMFeg4@XD! zPALi9FOI5)>8k_qP-4)BZ~z{ZVy1=pvr-a?!`|Bgcq%d6!^8rfl%l4Ae?m$kao~G6 z052zodY}XFq7*L;`SVf|UdRR3TRQ;Cd0CfMFeg?a@&kk&@8;;wsfJeRTk;i9sL20XQJVOe@8r zltkjN_jUm8O$_%i4nR|ing;$JDT%~^@3kNxG1LPcfQO}cX~-XvlJG({`^#PWFfry^f5-ADYH5M_6J}(GJ4Ehj0z0o1I$SA(vVlBB)pId47m0Il=%>l&|Ew%HDZnr za9hGYz(>FO?s@!g>SFsPl(nyEFTnAwjdS$gowO)mb0(j|fkjjP@ult$AvE&y#kraSo{es7%qxzVXgzhens)p%nY~cCCpby~}JS)Xa z3-dEl5{bj!+b>viOFXWyPiKT%9e~m!`oRNI5{U!fV{+h<#840P3oer4rDgp>DG4v+ z0;8_|0%bk~Bs3TINjt6M7o-#R3q0Q5{U!f!xwltG1LQnffuECX~>_KlJG(biI4))g< zcx_i-U@JCU*;JfFbinio&i`OMo<3DH$RpT@vLgER8<@ngk*vW)gu_iPHbCp*c;qPC3r3- zDWhrz`2)X{LaD{-7fj+<@&^WPjmM$#0T|XFSOx|ndRa@PBy=}f#3cH>iXbuQL-+&d zNioyHJS-)VIPAUsfxU_09>yQoEk#WOf31{6;=uRt2M#BOdZ0frBgIQYUX_yYLM|}o z+8k~X49o5IABy?AKR5eUrV+7A927L&h;8`hVT9}`al1Lo(-af&a+v0J9 zeL5rD3IdcK(FY!olJEjAurAs_DP1NYp}DwEDnX8cIs~oVRhf2m@Wtm<4F(vf&E?u* z!#eGVNz$mELDp%jR48ap)53hGltkjN_qI+CC5C&L5$l6e)HLv)m6Avt_#PwHrxHUwaK!qg6fX_=6H*dh z$OYD1I|Ryn2uNryu8>y5aR?^o_thad-E;_cTZb~3%C2FTd^7)T`R(y|oK(FaKj37P z716(3%p{H_KVUd10K@tLZ;X!WIw=X=Jzl38rmud$wTVF=!VlOk#Z2qQ5h;npVejn+ zR1?EJj3017ikb$#C?%0N@QxoqXAxM3s>X=z-o#K3^aGkwyfozZNJ)4h7Z`D}!0H$_ zWj+KXG#3k`6(KHaWA+F8>j$hh{ebJNasjes2-e@CMwPLQy&Mc4X|A&ea7WhMN_AVU zZfn%-G`=+!VWWMkT+HN~M;i;u)3X?dNT!3f5Q6d0_bpd`J z9o3&nN$8&OQ`InibpZzMNDBH8F2FJr9?_p&A|;VH?7dxp3lqaVj0a92zsMs*Bw1{zX<&@xqL633D=@Y$pQ4C@ShIy$QVNlHTZkx!|H z>8msFL}Ji~a0VWiVy1=pF)4|}Vejn>Jf9fuVVr?yrKoA(pOKPC9QYp2z?!4+xV}D3 z-3W9BR-x#Kj_-h!gcovwCD+b?G9LmGnv2_|vZI`VT4Q;&luZ|Fg|t+hKK^ zR=4-4o270wb-PL3Cg?Wb9#^-jy1kEXC)&1pDy!SA>UO(&M`wtSoM6*Ax%l~*y3vsr zc%senaicABaidM&aH9<`aHITq+$bpyH(JV#8!cr)d9=;|Pc+Sd8wF8tBhek1Uu!HQ z2rE_=D2`cWLQs7)k(+G$Xa&AiEn8MPSIp*X;||gU>OLTT{t5(%E~Lv_=yEY#E}_fY zaItJcl)g4Rh>zYxm-FdzAzj`=my79g30>Ysmv_+RopiYj7t1DO5mZ_9hI#WcHepD_ zK6o+S-$s`^=u)T4opkvSUGAdGJ#_g9T|P>ed+G9rbon@4K0%j1qRSuC<&$*z6kYz5 zF89&p({%X^T^_*2sx?+jLCxTHw5uW;qfYncguzn(_^%G&Pp9p;YM6IBos2S*qTIFtT z2701qxtrTVKT*TzCu$-6L`|iisLk{fHJ*N=R@6__ocf8{RXnCby{X|W!pQ!Ei z6A6KSB5BZ1Bo_LKD^py(%(82v<|qn}8I^b-kF>#5dQI+-txL8iEaRhoA-8w0B6 zS>wj1Cykd1IHhwuQ_YarHIB>jZArOQs-`QmIHoJ#Y^<$JPvwe-hShf~!`b21s|BO# zJ0EGTznSHB$%1+Fwl_|$2DiF^%Q9$}X$@b-l4Tot;7lDO<(nzGh=-I#VnaH|tMoV~vHSG26;kN##tv zb!1+xu{b-GLBepws&d5^I*+aQi?X?@Djn6QpV;}u6n3?5x*+KJj1Duj{y$)@rop6w6w zPumc&@4_c_`)*vJx&DA}2w<-UT5fIUqbaRJ#4cCmP3Zpko2?gqLe>j6vR=3;Ma$L; zPh`DtBkP45Sufnkdf}#YEn6=KJzg&SEf+{k+2=IB_mUU(wwg&SEf z+{k+2rZg{GFFcX;!i}sKZe+c1BkP45Sufnkdf`Ua3pcV}xRLe3jjR`LWW8`B>xCOx zFWks_;YQXAH?m&1k@dojtQT%%z4kS0wZ`$bGWtzG4AZr+P#UjM#<`2~iG@sciepDYSXQb;4be(aoGt6~Hxy~Th z8RI%bTxW#qHUV5`eCrHvozbl`xOK+1&d}Bw**XJTXI$$HYn@T8GpKdOw9b&$8PPfe zT4y}#3}>CutTUK(#())~n<16i+e|C>5U@~2?3zt4E8etANo8%rE?YtGBm^?rtnYn38`{nJrc`hnn`|__%QjVF9DRAF2?P zcs8=$SW+wJ)0OO$rI24|e*@p$Zhw=nPtvufn$&SFUnL4V5~cE5n%Q;6lKG zIYl`z0Ak!qkD-(AuQcuNQpw9zE5U=FvNGdV8TDIEf1yd?B4npZ7=nzfe@MhuPQdjkma0~|O4=jGp2^Y1iW!_-R!L7=<#ZuetW~Y% z$fM9WwK1&Vs-jO2YW9zbz%qQ89=GzjLJlb4(|=^LgiLN?7Udp3JgacRWbG;AWJ}V3 zt~8T&`u5SrK>Mea=}gx0esvrj1zyh4#!B_o@e;ODr;!wju~7eIwP|!13zA!%ve86G z8_S(P)9|+{6$qXER^rQTe6&z@|5)h|Ueu@Z`_M(Ea+6be{3p@Vh#ze%$rTSmrqNef za^Z9>C6O$SwM29!i)e8S;#syF8HIRmAL}fh%Wx)4wNyxB`&aPD{qv+UnvW!)FpkQc zOwB|6KfNEj!rIR<-&qUd*5Sn|`yqN(K3$$X1Xyz!uIh{QljWr6($uXm(wc;uWWPio zFS8C=S#H5J6u#B8{~vw2N`IQo0G#wR+5E7VC|r@PQ%e>1l{E`u@~pI%Jxr7 zwd!;Y0M{EUxJhAT3)67(r{I&@D^QU6`4s%srhN*1zS8M?iY`en$w}j6t}NIfP@DEY zoPe*cDdYg~bU6nBsm`XsQn?I5mFD`!QpEtO0oKb+`&1%5;M9clc{&dy@M0~!K!v!9 zjD-8n7M|(!15pJLt+<8Av)lg#8+Nd8+f0G~qbRk|T0WJ4J7o=B8(7 za^sU$wUUMhXrId;Iy_I5@}yZBZwV;?Zu_gIg*S2%Yz!)t&Q_?~E^A3HwAMtSSw}Y- z;6)tD%sO&IrmFo@x9iQascL^iEijJ$uev6`Kg}Tp@DX>Rf-!ue!4UPS73i-;YX+*? l$|~Dhw|An#_HL^661;Uegj$1@wm0SH&AY9+t63Wx{{O=RV?+P| diff --git a/_build/.doctrees/universities/trinity-college-dublin.doctree b/_build/.doctrees/universities/trinity-college-dublin.doctree index a253d4565033034479325e8c8da7108f649da87f..6818c56e0053c242a1e7752d9a4308e924ce106a 100644 GIT binary patch delta 330 zcmdlL`YD*TfpzM0&5f+#5=C< zkui93f`kzc6_c~2qb74p>rS?kSDYLwEwWi%<{1-{HPhq?0veOwORI3oWyogeWJqV3 zPfn3P#%MlyqpacP7zJl$#=gx9lz%g`o?&8OD4uM{B0PDsy1c?EAP=OWG^t0hJijO< zIlnZoL^n4xue2n!cuLmk$)D7fSnt5K=x8W1o|^2ZVJdYJD27$b?a6aBwAhk?(phnn z&uS>yM}nAPK%%sVGcPeWwWP8DXmsrqjVzF&&MbaL5V;9VGJ!=vIyy@;6hUg@ChKV` MGKOsq(9B{408%Dv9smFU delta 371 zcmewqyepKofpzM7t&ObV5=qns6@n{^OHy--V>L2L zN(zdt^!3Zj%k_$jiuE${^))xIkl4h?Xf!!N!f5h3DK%#??3$-!u*Xix5bMDu-8!Xl zO6?Sl4CyR6rpXfoG{iDi_XuO!H`!5Ij;V)x@?xndCPT2o$@y|Bo4uufF){hU_&SVU zljq1C1ClRg3^z}acV=c>xcP?CZ)V2(lYP}CCcjaWW4t?=TV0Ov-efIxCC2waQ463* zo4P6EoymLDB^cjLzN)UpR>s7@kX1ODRYS=>2gJ+-5~V$yd5O8HC6xuK#UKY~ffRLS i@iT(RO<2;Qd2lNO+%3}b90AA79#-ho_v`A diff --git a/_build/html/_downloads/0428a01620608242c01446799d79b356/markdownlint.d.ts b/_build/html/_downloads/0428a01620608242c01446799d79b356/markdownlint.d.ts new file mode 100644 index 0000000..d12abe6 --- /dev/null +++ b/_build/html/_downloads/0428a01620608242c01446799d79b356/markdownlint.d.ts @@ -0,0 +1,526 @@ +export = markdownlint; +/** + * Lint specified Markdown files. + * + * @param {Options | null} options Configuration options. + * @param {LintCallback} callback Callback (err, result) function. + * @returns {void} + */ +declare function markdownlint(options: Options | null, callback: LintCallback): void; +declare namespace markdownlint { + export { markdownlintSync as sync, readConfig, readConfigSync, getVersion, promises, applyFix, applyFixes, RuleFunction, RuleParams, MarkdownParsers, ParserMarkdownIt, ParserMicromark, MarkdownItToken, MicromarkTokenType, MicromarkToken, RuleOnError, RuleOnErrorInfo, RuleOnErrorFixInfo, RuleOnErrorFixInfoNormalized, Rule, Options, Plugin, ToStringCallback, LintResults, LintError, FixInfo, LintContentCallback, LintCallback, Configuration, ConfigurationStrict, RuleConfiguration, ConfigurationParser, ReadConfigCallback, ResolveConfigExtendsCallback }; +} +/** + * Lint specified Markdown files synchronously. + * + * @param {Options | null} options Configuration options. + * @returns {LintResults} Results object. + */ +declare function markdownlintSync(options: Options | null): LintResults; +/** + * Read specified configuration file. + * + * @param {string} file Configuration file name. + * @param {ConfigurationParser[] | ReadConfigCallback} parsers Parsing + * function(s). + * @param {Object} [fs] File system implementation. + * @param {ReadConfigCallback} [callback] Callback (err, result) function. + * @returns {void} + */ +declare function readConfig(file: string, parsers: ConfigurationParser[] | ReadConfigCallback, fs?: any, callback?: ReadConfigCallback): void; +/** + * Read specified configuration file synchronously. + * + * @param {string} file Configuration file name. + * @param {ConfigurationParser[]} [parsers] Parsing function(s). + * @param {Object} [fs] File system implementation. + * @returns {Configuration} Configuration object. + * @throws An Error if processing fails. + */ +declare function readConfigSync(file: string, parsers?: ConfigurationParser[], fs?: any): Configuration; +/** + * Gets the (semantic) version of the library. + * + * @returns {string} SemVer string. + */ +declare function getVersion(): string; +declare namespace promises { + export { markdownlintPromise as markdownlint }; + export { extendConfigPromise as extendConfig }; + export { readConfigPromise as readConfig }; +} +/** + * Applies the specified fix to a Markdown content line. + * + * @param {string} line Line of Markdown content. + * @param {RuleOnErrorFixInfo} fixInfo RuleOnErrorFixInfo instance. + * @param {string} [lineEnding] Line ending to use. + * @returns {string | null} Fixed content or null if deleted. + */ +declare function applyFix(line: string, fixInfo: RuleOnErrorFixInfo, lineEnding?: string): string | null; +/** + * Applies as many of the specified fixes as possible to Markdown content. + * + * @param {string} input Lines of Markdown content. + * @param {RuleOnErrorInfo[]} errors RuleOnErrorInfo instances. + * @returns {string} Fixed content. + */ +declare function applyFixes(input: string, errors: RuleOnErrorInfo[]): string; +/** + * Function to implement rule logic. + */ +type RuleFunction = (params: RuleParams, onError: RuleOnError) => void; +/** + * Rule parameters. + */ +type RuleParams = { + /** + * File/string name. + */ + name: string; + /** + * Markdown parser data. + */ + parsers: MarkdownParsers; + /** + * File/string lines. + */ + lines: readonly string[]; + /** + * Front matter lines. + */ + frontMatterLines: readonly string[]; + /** + * Rule configuration. + */ + config: RuleConfiguration; + /** + * Version of the markdownlint library. + */ + version: string; +}; +/** + * Markdown parser data. + */ +type MarkdownParsers = { + /** + * Markdown parser data from markdown-it (only present when Rule.parser is "markdownit"). + */ + markdownit: ParserMarkdownIt; + /** + * Markdown parser data from micromark (only present when Rule.parser is "micromark"). + */ + micromark: ParserMicromark; +}; +/** + * Markdown parser data from markdown-it. + */ +type ParserMarkdownIt = { + /** + * Token objects from markdown-it. + */ + tokens: MarkdownItToken[]; +}; +/** + * Markdown parser data from micromark. + */ +type ParserMicromark = { + /** + * Token objects from micromark. + */ + tokens: MicromarkToken[]; +}; +/** + * markdown-it token. + */ +type MarkdownItToken = { + /** + * HTML attributes. + */ + attrs: string[][]; + /** + * Block-level token. + */ + block: boolean; + /** + * Child nodes. + */ + children: MarkdownItToken[]; + /** + * Tag contents. + */ + content: string; + /** + * Ignore element. + */ + hidden: boolean; + /** + * Fence info. + */ + info: string; + /** + * Nesting level. + */ + level: number; + /** + * Beginning/ending line numbers. + */ + map: number[]; + /** + * Markup text. + */ + markup: string; + /** + * Arbitrary data. + */ + meta: any; + /** + * Level change. + */ + nesting: number; + /** + * HTML tag name. + */ + tag: string; + /** + * Token type. + */ + type: string; + /** + * Line number (1-based). + */ + lineNumber: number; + /** + * Line content. + */ + line: string; +}; +type MicromarkTokenType = import("markdownlint-micromark").TokenType; +/** + * micromark token. + */ +type MicromarkToken = { + /** + * Token type. + */ + type: MicromarkTokenType; + /** + * Start line (1-based). + */ + startLine: number; + /** + * Start column (1-based). + */ + startColumn: number; + /** + * End line (1-based). + */ + endLine: number; + /** + * End column (1-based). + */ + endColumn: number; + /** + * Token text. + */ + text: string; + /** + * Child tokens. + */ + children: MicromarkToken[]; + /** + * Parent token. + */ + parent: MicromarkToken | null; +}; +/** + * Error-reporting callback. + */ +type RuleOnError = (onErrorInfo: RuleOnErrorInfo) => void; +/** + * Fix information for RuleOnError callback. + */ +type RuleOnErrorInfo = { + /** + * Line number (1-based). + */ + lineNumber: number; + /** + * Detail about the error. + */ + detail?: string; + /** + * Context for the error. + */ + context?: string; + /** + * Link to more information. + */ + information?: URL; + /** + * Column number (1-based) and length. + */ + range?: number[]; + /** + * Fix information. + */ + fixInfo?: RuleOnErrorFixInfo; +}; +/** + * Fix information for RuleOnErrorInfo. + */ +type RuleOnErrorFixInfo = { + /** + * Line number (1-based). + */ + lineNumber?: number; + /** + * Column of the fix (1-based). + */ + editColumn?: number; + /** + * Count of characters to delete. + */ + deleteCount?: number; + /** + * Text to insert (after deleting). + */ + insertText?: string; +}; +/** + * RuleOnErrorInfo with all optional properties present. + */ +type RuleOnErrorFixInfoNormalized = { + /** + * Line number (1-based). + */ + lineNumber: number; + /** + * Column of the fix (1-based). + */ + editColumn: number; + /** + * Count of characters to delete. + */ + deleteCount: number; + /** + * Text to insert (after deleting). + */ + insertText: string; +}; +/** + * Rule definition. + */ +type Rule = { + /** + * Rule name(s). + */ + names: string[]; + /** + * Rule description. + */ + description: string; + /** + * Link to more information. + */ + information?: URL; + /** + * Rule tag(s). + */ + tags: string[]; + /** + * Parser used. + */ + parser: "markdownit" | "micromark" | "none"; + /** + * True if asynchronous. + */ + asynchronous?: boolean; + /** + * Rule implementation. + */ + function: RuleFunction; +}; +/** + * Configuration options. + */ +type Options = { + /** + * Configuration object. + */ + config?: Configuration; + /** + * Configuration parsers. + */ + configParsers?: ConfigurationParser[]; + /** + * Custom rules. + */ + customRules?: Rule[] | Rule; + /** + * Files to lint. + */ + files?: string[] | string; + /** + * Front matter pattern. + */ + frontMatter?: RegExp | null; + /** + * File system implementation. + */ + fs?: any; + /** + * True to catch exceptions. + */ + handleRuleFailures?: boolean; + /** + * Additional plugins. + */ + markdownItPlugins?: Plugin[]; + /** + * True to ignore HTML directives. + */ + noInlineConfig?: boolean; + /** + * Results object version. + */ + resultVersion?: number; + /** + * Strings to lint. + */ + strings?: { + [x: string]: string; + }; +}; +/** + * A markdown-it plugin. + */ +type Plugin = any[]; +/** + * Function to pretty-print lint results. + */ +type ToStringCallback = (ruleAliases?: boolean) => string; +/** + * Lint results (for resultVersion 3). + */ +type LintResults = { + [x: string]: LintError[]; +}; +/** + * Lint error. + */ +type LintError = { + /** + * Line number (1-based). + */ + lineNumber: number; + /** + * Rule name(s). + */ + ruleNames: string[]; + /** + * Rule description. + */ + ruleDescription: string; + /** + * Link to more information. + */ + ruleInformation: string; + /** + * Detail about the error. + */ + errorDetail: string; + /** + * Context for the error. + */ + errorContext: string; + /** + * Column number (1-based) and length. + */ + errorRange: number[]; + /** + * Fix information. + */ + fixInfo?: FixInfo; +}; +/** + * Fix information. + */ +type FixInfo = { + /** + * Line number (1-based). + */ + lineNumber?: number; + /** + * Column of the fix (1-based). + */ + editColumn?: number; + /** + * Count of characters to delete. + */ + deleteCount?: number; + /** + * Text to insert (after deleting). + */ + insertText?: string; +}; +/** + * Called with the result of linting a string or document. + */ +type LintContentCallback = (error: Error | null, result?: LintError[]) => void; +/** + * Called with the result of the lint function. + */ +type LintCallback = (error: Error | null, results?: LintResults) => void; +/** + * Configuration object for linting rules. For the JSON schema, see + * {@link ../schema/markdownlint-config-schema.json}. + */ +type Configuration = import("./configuration").Configuration; +/** + * Configuration object for linting rules strictly. For the JSON schema, see + * {@link ../schema/markdownlint-config-schema-strict.json}. + */ +type ConfigurationStrict = import("./configuration-strict").ConfigurationStrict; +/** + * Rule configuration. + */ +type RuleConfiguration = boolean | any; +/** + * Parses a configuration string and returns a configuration object. + */ +type ConfigurationParser = (text: string) => Configuration; +/** + * Called with the result of the readConfig function. + */ +type ReadConfigCallback = (err: Error | null, config?: Configuration) => void; +/** + * Called with the result of the resolveConfigExtends function. + */ +type ResolveConfigExtendsCallback = (err: Error | null, path?: string) => void; +/** + * Lint specified Markdown files. + * + * @param {Options} options Configuration options. + * @returns {Promise} Results object. + */ +declare function markdownlintPromise(options: Options): Promise; +/** + * Extend specified configuration object. + * + * @param {Configuration} config Configuration object. + * @param {string} file Configuration file name. + * @param {ConfigurationParser[]} [parsers] Parsing function(s). + * @param {Object} [fs] File system implementation. + * @returns {Promise} Configuration object. + */ +declare function extendConfigPromise(config: Configuration, file: string, parsers?: ConfigurationParser[], fs?: any): Promise; +/** + * Read specified configuration file. + * + * @param {string} file Configuration file name. + * @param {ConfigurationParser[]} [parsers] Parsing function(s). + * @param {Object} [fs] File system implementation. + * @returns {Promise} Configuration object. + */ +declare function readConfigPromise(file: string, parsers?: ConfigurationParser[], fs?: any): Promise; diff --git a/_build/html/_downloads/0c0dbe78571689179e406ea04a04fb5c/parser_core.mjs b/_build/html/_downloads/0c0dbe78571689179e406ea04a04fb5c/parser_core.mjs new file mode 100644 index 0000000..df61d67 --- /dev/null +++ b/_build/html/_downloads/0c0dbe78571689179e406ea04a04fb5c/parser_core.mjs @@ -0,0 +1,62 @@ +/** internal + * class Core + * + * Top-level rules executor. Glues block/inline parsers and does intermediate + * transformations. + **/ + +import Ruler from './ruler.mjs' +import StateCore from './rules_core/state_core.mjs' + +import r_normalize from './rules_core/normalize.mjs' +import r_block from './rules_core/block.mjs' +import r_inline from './rules_core/inline.mjs' +import r_linkify from './rules_core/linkify.mjs' +import r_replacements from './rules_core/replacements.mjs' +import r_smartquotes from './rules_core/smartquotes.mjs' +import r_text_join from './rules_core/text_join.mjs' + +const _rules = [ + ['normalize', r_normalize], + ['block', r_block], + ['inline', r_inline], + ['linkify', r_linkify], + ['replacements', r_replacements], + ['smartquotes', r_smartquotes], + // `text_join` finds `text_special` tokens (for escape sequences) + // and joins them with the rest of the text + ['text_join', r_text_join] +] + +/** + * new Core() + **/ +function Core () { + /** + * Core#ruler -> Ruler + * + * [[Ruler]] instance. Keep configuration of core rules. + **/ + this.ruler = new Ruler() + + for (let i = 0; i < _rules.length; i++) { + this.ruler.push(_rules[i][0], _rules[i][1]) + } +} + +/** + * Core.process(state) + * + * Executes core chain rules. + **/ +Core.prototype.process = function (state) { + const rules = this.ruler.getRules('') + + for (let i = 0, l = rules.length; i < l; i++) { + rules[i](state) + } +} + +Core.prototype.State = StateCore + +export default Core diff --git a/_build/html/_downloads/1eaf4f3c750f056e803dd8c3bb7b68ac/.markdownlint.yaml b/_build/html/_downloads/1eaf4f3c750f056e803dd8c3bb7b68ac/.markdownlint.yaml new file mode 100644 index 0000000..272cac2 --- /dev/null +++ b/_build/html/_downloads/1eaf4f3c750f056e803dd8c3bb7b68ac/.markdownlint.yaml @@ -0,0 +1,277 @@ +# Example markdownlint configuration with all properties set to their default value + +# Default state for all rules +default: true + +# Path to configuration file to extend +extends: null + +# MD001/heading-increment : Heading levels should only increment by one level at a time : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md001.md +MD001: true + +# MD003/heading-style : Heading style : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md003.md +MD003: + # Heading style + style: "consistent" + +# MD004/ul-style : Unordered list style : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md004.md +MD004: + # List style + style: "consistent" + +# MD005/list-indent : Inconsistent indentation for list items at the same level : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md005.md +MD005: true + +# MD007/ul-indent : Unordered list indentation : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md007.md +MD007: + # Spaces for indent + indent: 2 + # Whether to indent the first level of the list + start_indented: false + # Spaces for first level indent (when start_indented is set) + start_indent: 2 + +# MD009/no-trailing-spaces : Trailing spaces : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md009.md +MD009: + # Spaces for line break + br_spaces: 2 + # Allow spaces for empty lines in list items + list_item_empty_lines: false + # Include unnecessary breaks + strict: false + +# MD010/no-hard-tabs : Hard tabs : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md010.md +MD010: + # Include code blocks + code_blocks: true + # Fenced code languages to ignore + ignore_code_languages: [] + # Number of spaces for each hard tab + spaces_per_tab: 1 + +# MD011/no-reversed-links : Reversed link syntax : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md011.md +MD011: true + +# MD012/no-multiple-blanks : Multiple consecutive blank lines : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md012.md +MD012: + # Consecutive blank lines + maximum: 1 + +# MD013/line-length : Line length : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md013.md +MD013: + # Number of characters + line_length: 80 + # Number of characters for headings + heading_line_length: 80 + # Number of characters for code blocks + code_block_line_length: 80 + # Include code blocks + code_blocks: true + # Include tables + tables: true + # Include headings + headings: true + # Strict length checking + strict: false + # Stern length checking + stern: false + +# MD014/commands-show-output : Dollar signs used before commands without showing output : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md014.md +MD014: true + +# MD018/no-missing-space-atx : No space after hash on atx style heading : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md018.md +MD018: true + +# MD019/no-multiple-space-atx : Multiple spaces after hash on atx style heading : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md019.md +MD019: true + +# MD020/no-missing-space-closed-atx : No space inside hashes on closed atx style heading : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md020.md +MD020: true + +# MD021/no-multiple-space-closed-atx : Multiple spaces inside hashes on closed atx style heading : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md021.md +MD021: true + +# MD022/blanks-around-headings : Headings should be surrounded by blank lines : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md022.md +MD022: + # Blank lines above heading + lines_above: 1 + # Blank lines below heading + lines_below: 1 + +# MD023/heading-start-left : Headings must start at the beginning of the line : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md023.md +MD023: true + +# MD024/no-duplicate-heading : Multiple headings with the same content : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md024.md +MD024: + # Only check sibling headings + siblings_only: false + +# MD025/single-title/single-h1 : Multiple top-level headings in the same document : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md025.md +MD025: + # Heading level + level: 1 + # RegExp for matching title in front matter + front_matter_title: "^\\s*title\\s*[:=]" + +# MD026/no-trailing-punctuation : Trailing punctuation in heading : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md026.md +MD026: + # Punctuation characters + punctuation: ".,;:!。,;:!" + +# MD027/no-multiple-space-blockquote : Multiple spaces after blockquote symbol : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md027.md +MD027: true + +# MD028/no-blanks-blockquote : Blank line inside blockquote : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md028.md +MD028: true + +# MD029/ol-prefix : Ordered list item prefix : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md029.md +MD029: + # List style + style: "one_or_ordered" + +# MD030/list-marker-space : Spaces after list markers : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md030.md +MD030: + # Spaces for single-line unordered list items + ul_single: 1 + # Spaces for single-line ordered list items + ol_single: 1 + # Spaces for multi-line unordered list items + ul_multi: 1 + # Spaces for multi-line ordered list items + ol_multi: 1 + +# MD031/blanks-around-fences : Fenced code blocks should be surrounded by blank lines : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md031.md +MD031: + # Include list items + list_items: true + +# MD032/blanks-around-lists : Lists should be surrounded by blank lines : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md032.md +MD032: true + +# MD033/no-inline-html : Inline HTML : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md033.md +MD033: + # Allowed elements + allowed_elements: [] + +# MD034/no-bare-urls : Bare URL used : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md034.md +MD034: true + +# MD035/hr-style : Horizontal rule style : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md035.md +MD035: + # Horizontal rule style + style: "consistent" + +# MD036/no-emphasis-as-heading : Emphasis used instead of a heading : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md036.md +MD036: + # Punctuation characters + punctuation: ".,;:!?。,;:!?" + +# MD037/no-space-in-emphasis : Spaces inside emphasis markers : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md037.md +MD037: true + +# MD038/no-space-in-code : Spaces inside code span elements : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md038.md +MD038: true + +# MD039/no-space-in-links : Spaces inside link text : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md039.md +MD039: true + +# MD040/fenced-code-language : Fenced code blocks should have a language specified : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md040.md +MD040: + # List of languages + allowed_languages: [] + # Require language only + language_only: false + +# MD041/first-line-heading/first-line-h1 : First line in a file should be a top-level heading : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md041.md +MD041: + # Heading level + level: 1 + # RegExp for matching title in front matter + front_matter_title: "^\\s*title\\s*[:=]" + +# MD042/no-empty-links : No empty links : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md042.md +MD042: true + +# MD043/required-headings : Required heading structure : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md043.md +MD043: + # List of headings + headings: [] + # Match case of headings + match_case: false + +# MD044/proper-names : Proper names should have the correct capitalization : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md044.md +MD044: + # List of proper names + names: [] + # Include code blocks + code_blocks: true + # Include HTML elements + html_elements: true + +# MD045/no-alt-text : Images should have alternate text (alt text) : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md045.md +MD045: true + +# MD046/code-block-style : Code block style : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md046.md +MD046: + # Block style + style: "consistent" + +# MD047/single-trailing-newline : Files should end with a single newline character : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md047.md +MD047: true + +# MD048/code-fence-style : Code fence style : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md048.md +MD048: + # Code fence style + style: "consistent" + +# MD049/emphasis-style : Emphasis style : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md049.md +MD049: + # Emphasis style + style: "consistent" + +# MD050/strong-style : Strong style : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md050.md +MD050: + # Strong style + style: "consistent" + +# MD051/link-fragments : Link fragments should be valid : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md051.md +MD051: + # Ignore case of fragments + ignore_case: false + +# MD052/reference-links-images : Reference links and images should use a label that is defined : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md052.md +MD052: + # Include shortcut syntax + shortcut_syntax: false + +# MD053/link-image-reference-definitions : Link and image reference definitions should be needed : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md053.md +MD053: + # Ignored definitions + ignored_definitions: + - "//" + +# MD054/link-image-style : Link and image style : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md054.md +MD054: + # Allow autolinks + autolink: true + # Allow inline links and images + inline: true + # Allow full reference links and images + full: true + # Allow collapsed reference links and images + collapsed: true + # Allow shortcut reference links and images + shortcut: true + # Allow URLs as inline links + url_inline: true + +# MD055/table-pipe-style : Table pipe style : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md055.md +MD055: + # Table pipe style + style: "consistent" + +# MD056/table-column-count : Table column count : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md056.md +MD056: true + +# MD058/blanks-around-tables : Tables should be surrounded by blank lines : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md058.md +MD058: true diff --git a/_build/html/_downloads/2f37d86dffc73056d64683994170681d/parser_block.mjs b/_build/html/_downloads/2f37d86dffc73056d64683994170681d/parser_block.mjs new file mode 100644 index 0000000..486d68f --- /dev/null +++ b/_build/html/_downloads/2f37d86dffc73056d64683994170681d/parser_block.mjs @@ -0,0 +1,134 @@ +/** internal + * class ParserBlock + * + * Block-level tokenizer. + **/ + +import Ruler from './ruler.mjs' +import StateBlock from './rules_block/state_block.mjs' + +import r_table from './rules_block/table.mjs' +import r_code from './rules_block/code.mjs' +import r_fence from './rules_block/fence.mjs' +import r_blockquote from './rules_block/blockquote.mjs' +import r_hr from './rules_block/hr.mjs' +import r_list from './rules_block/list.mjs' +import r_reference from './rules_block/reference.mjs' +import r_html_block from './rules_block/html_block.mjs' +import r_heading from './rules_block/heading.mjs' +import r_lheading from './rules_block/lheading.mjs' +import r_paragraph from './rules_block/paragraph.mjs' + +const _rules = [ + // First 2 params - rule name & source. Secondary array - list of rules, + // which can be terminated by this one. + ['table', r_table, ['paragraph', 'reference']], + ['code', r_code], + ['fence', r_fence, ['paragraph', 'reference', 'blockquote', 'list']], + ['blockquote', r_blockquote, ['paragraph', 'reference', 'blockquote', 'list']], + ['hr', r_hr, ['paragraph', 'reference', 'blockquote', 'list']], + ['list', r_list, ['paragraph', 'reference', 'blockquote']], + ['reference', r_reference], + ['html_block', r_html_block, ['paragraph', 'reference', 'blockquote']], + ['heading', r_heading, ['paragraph', 'reference', 'blockquote']], + ['lheading', r_lheading], + ['paragraph', r_paragraph] +] + +/** + * new ParserBlock() + **/ +function ParserBlock () { + /** + * ParserBlock#ruler -> Ruler + * + * [[Ruler]] instance. Keep configuration of block rules. + **/ + this.ruler = new Ruler() + + for (let i = 0; i < _rules.length; i++) { + this.ruler.push(_rules[i][0], _rules[i][1], { alt: (_rules[i][2] || []).slice() }) + } +} + +// Generate tokens for input range +// +ParserBlock.prototype.tokenize = function (state, startLine, endLine) { + const rules = this.ruler.getRules('') + const len = rules.length + const maxNesting = state.md.options.maxNesting + let line = startLine + let hasEmptyLines = false + + while (line < endLine) { + state.line = line = state.skipEmptyLines(line) + if (line >= endLine) { break } + + // Termination condition for nested calls. + // Nested calls currently used for blockquotes & lists + if (state.sCount[line] < state.blkIndent) { break } + + // If nesting level exceeded - skip tail to the end. That's not ordinary + // situation and we should not care about content. + if (state.level >= maxNesting) { + state.line = endLine + break + } + + // Try all possible rules. + // On success, rule should: + // + // - update `state.line` + // - update `state.tokens` + // - return true + const prevLine = state.line + let ok = false + + for (let i = 0; i < len; i++) { + ok = rules[i](state, line, endLine, false) + if (ok) { + if (prevLine >= state.line) { + throw new Error("block rule didn't increment state.line") + } + break + } + } + + // this can only happen if user disables paragraph rule + if (!ok) throw new Error('none of the block rules matched') + + // set state.tight if we had an empty line before current tag + // i.e. latest empty line should not count + state.tight = !hasEmptyLines + + // paragraph might "eat" one newline after it in nested lists + if (state.isEmpty(state.line - 1)) { + hasEmptyLines = true + } + + line = state.line + + if (line < endLine && state.isEmpty(line)) { + hasEmptyLines = true + line++ + state.line = line + } + } +} + +/** + * ParserBlock.parse(str, md, env, outTokens) + * + * Process input string and push block tokens into `outTokens` + **/ +ParserBlock.prototype.parse = function (src, md, env, outTokens) { + if (!src) { return } + + const state = new this.State(src, md, env, outTokens) + + this.tokenize(state, state.line, state.lineMax) +} + +ParserBlock.prototype.State = StateBlock + +export default ParserBlock diff --git a/_build/html/_downloads/532d227f30e072addbadac8808f83d10/prettier.json b/_build/html/_downloads/532d227f30e072addbadac8808f83d10/prettier.json new file mode 100644 index 0000000..29a24e6 --- /dev/null +++ b/_build/html/_downloads/532d227f30e072addbadac8808f83d10/prettier.json @@ -0,0 +1,27 @@ +{ + "comment": "Disables rules that may conflict with Prettier", + + "blanks-around-fences": false, + "blanks-around-headings": false, + "blanks-around-lists": false, + "code-fence-style": false, + "emphasis-style": false, + "heading-start-left": false, + "heading-style": false, + "hr-style": false, + "line-length": false, + "list-indent": false, + "list-marker-space": false, + "no-blanks-blockquote": false, + "no-hard-tabs": false, + "no-missing-space-atx": false, + "no-missing-space-closed-atx": false, + "no-multiple-blanks": false, + "no-multiple-space-atx": false, + "no-multiple-space-blockquote": false, + "no-multiple-space-closed-atx": false, + "no-trailing-spaces": false, + "ol-prefix": false, + "strong-style": false, + "ul-indent": false +} diff --git a/_build/html/_downloads/54b3dc7143c362c21098075b6abf7f19/LICENSE b/_build/html/_downloads/54b3dc7143c362c21098075b6abf7f19/LICENSE new file mode 100644 index 0000000..f785757 --- /dev/null +++ b/_build/html/_downloads/54b3dc7143c362c21098075b6abf7f19/LICENSE @@ -0,0 +1,15 @@ +The ISC License + +Copyright (c) 2010-2023 Isaac Z. Schlueter and Contributors + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/_build/html/_downloads/98319c1e5a1a1f6ada69662000d94630/markdownlint-config-schema.json b/_build/html/_downloads/98319c1e5a1a1f6ada69662000d94630/markdownlint-config-schema.json new file mode 100644 index 0000000..31753a7 --- /dev/null +++ b/_build/html/_downloads/98319c1e5a1a1f6ada69662000d94630/markdownlint-config-schema.json @@ -0,0 +1,1846 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "https://raw.githubusercontent.com/DavidAnson/markdownlint/v0.36.1/schema/markdownlint-config-schema.json", + "title": "markdownlint configuration schema", + "type": "object", + "properties": { + "$schema": { + "description": "JSON Schema URI (expected by some editors)", + "type": "string", + "default": "https://raw.githubusercontent.com/DavidAnson/markdownlint/v0.36.1/schema/markdownlint-config-schema.json" + }, + "default": { + "description": "Default state for all rules", + "type": "boolean", + "default": true + }, + "extends": { + "description": "Path to configuration file to extend", + "type": [ + "string", + "null" + ], + "default": null + }, + "MD001": { + "description": "MD001/heading-increment : Heading levels should only increment by one level at a time : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md001.md", + "type": "boolean", + "default": true + }, + "heading-increment": { + "description": "MD001/heading-increment : Heading levels should only increment by one level at a time : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md001.md", + "type": "boolean", + "default": true + }, + "MD003": { + "description": "MD003/heading-style : Heading style : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md003.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "style": { + "description": "Heading style", + "type": "string", + "enum": [ + "consistent", + "atx", + "atx_closed", + "setext", + "setext_with_atx", + "setext_with_atx_closed" + ], + "default": "consistent" + } + }, + "additionalProperties": false + }, + "heading-style": { + "description": "MD003/heading-style : Heading style : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md003.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "style": { + "description": "Heading style", + "type": "string", + "enum": [ + "consistent", + "atx", + "atx_closed", + "setext", + "setext_with_atx", + "setext_with_atx_closed" + ], + "default": "consistent" + } + }, + "additionalProperties": false + }, + "MD004": { + "description": "MD004/ul-style : Unordered list style : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md004.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "style": { + "description": "List style", + "type": "string", + "enum": [ + "consistent", + "asterisk", + "plus", + "dash", + "sublist" + ], + "default": "consistent" + } + }, + "additionalProperties": false + }, + "ul-style": { + "description": "MD004/ul-style : Unordered list style : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md004.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "style": { + "description": "List style", + "type": "string", + "enum": [ + "consistent", + "asterisk", + "plus", + "dash", + "sublist" + ], + "default": "consistent" + } + }, + "additionalProperties": false + }, + "MD005": { + "description": "MD005/list-indent : Inconsistent indentation for list items at the same level : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md005.md", + "type": "boolean", + "default": true + }, + "list-indent": { + "description": "MD005/list-indent : Inconsistent indentation for list items at the same level : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md005.md", + "type": "boolean", + "default": true + }, + "MD007": { + "description": "MD007/ul-indent : Unordered list indentation : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md007.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "indent": { + "description": "Spaces for indent", + "type": "integer", + "minimum": 1, + "default": 2 + }, + "start_indented": { + "description": "Whether to indent the first level of the list", + "type": "boolean", + "default": false + }, + "start_indent": { + "description": "Spaces for first level indent (when start_indented is set)", + "type": "integer", + "minimum": 1, + "default": 2 + } + }, + "additionalProperties": false + }, + "ul-indent": { + "description": "MD007/ul-indent : Unordered list indentation : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md007.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "indent": { + "description": "Spaces for indent", + "type": "integer", + "minimum": 1, + "default": 2 + }, + "start_indented": { + "description": "Whether to indent the first level of the list", + "type": "boolean", + "default": false + }, + "start_indent": { + "description": "Spaces for first level indent (when start_indented is set)", + "type": "integer", + "minimum": 1, + "default": 2 + } + }, + "additionalProperties": false + }, + "MD009": { + "description": "MD009/no-trailing-spaces : Trailing spaces : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md009.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "br_spaces": { + "description": "Spaces for line break", + "type": "integer", + "minimum": 0, + "default": 2 + }, + "list_item_empty_lines": { + "description": "Allow spaces for empty lines in list items", + "type": "boolean", + "default": false + }, + "strict": { + "description": "Include unnecessary breaks", + "type": "boolean", + "default": false + } + }, + "additionalProperties": false + }, + "no-trailing-spaces": { + "description": "MD009/no-trailing-spaces : Trailing spaces : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md009.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "br_spaces": { + "description": "Spaces for line break", + "type": "integer", + "minimum": 0, + "default": 2 + }, + "list_item_empty_lines": { + "description": "Allow spaces for empty lines in list items", + "type": "boolean", + "default": false + }, + "strict": { + "description": "Include unnecessary breaks", + "type": "boolean", + "default": false + } + }, + "additionalProperties": false + }, + "MD010": { + "description": "MD010/no-hard-tabs : Hard tabs : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md010.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "code_blocks": { + "description": "Include code blocks", + "type": "boolean", + "default": true + }, + "ignore_code_languages": { + "description": "Fenced code languages to ignore", + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "spaces_per_tab": { + "description": "Number of spaces for each hard tab", + "type": "integer", + "minimum": 0, + "default": 1 + } + }, + "additionalProperties": false + }, + "no-hard-tabs": { + "description": "MD010/no-hard-tabs : Hard tabs : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md010.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "code_blocks": { + "description": "Include code blocks", + "type": "boolean", + "default": true + }, + "ignore_code_languages": { + "description": "Fenced code languages to ignore", + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "spaces_per_tab": { + "description": "Number of spaces for each hard tab", + "type": "integer", + "minimum": 0, + "default": 1 + } + }, + "additionalProperties": false + }, + "MD011": { + "description": "MD011/no-reversed-links : Reversed link syntax : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md011.md", + "type": "boolean", + "default": true + }, + "no-reversed-links": { + "description": "MD011/no-reversed-links : Reversed link syntax : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md011.md", + "type": "boolean", + "default": true + }, + "MD012": { + "description": "MD012/no-multiple-blanks : Multiple consecutive blank lines : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md012.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "maximum": { + "description": "Consecutive blank lines", + "type": "integer", + "minimum": 1, + "default": 1 + } + }, + "additionalProperties": false + }, + "no-multiple-blanks": { + "description": "MD012/no-multiple-blanks : Multiple consecutive blank lines : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md012.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "maximum": { + "description": "Consecutive blank lines", + "type": "integer", + "minimum": 1, + "default": 1 + } + }, + "additionalProperties": false + }, + "MD013": { + "description": "MD013/line-length : Line length : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md013.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "line_length": { + "description": "Number of characters", + "type": "integer", + "minimum": 1, + "default": 80 + }, + "heading_line_length": { + "description": "Number of characters for headings", + "type": "integer", + "minimum": 1, + "default": 80 + }, + "code_block_line_length": { + "description": "Number of characters for code blocks", + "type": "integer", + "minimum": 1, + "default": 80 + }, + "code_blocks": { + "description": "Include code blocks", + "type": "boolean", + "default": true + }, + "tables": { + "description": "Include tables", + "type": "boolean", + "default": true + }, + "headings": { + "description": "Include headings", + "type": "boolean", + "default": true + }, + "strict": { + "description": "Strict length checking", + "type": "boolean", + "default": false + }, + "stern": { + "description": "Stern length checking", + "type": "boolean", + "default": false + } + }, + "additionalProperties": false + }, + "line-length": { + "description": "MD013/line-length : Line length : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md013.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "line_length": { + "description": "Number of characters", + "type": "integer", + "minimum": 1, + "default": 80 + }, + "heading_line_length": { + "description": "Number of characters for headings", + "type": "integer", + "minimum": 1, + "default": 80 + }, + "code_block_line_length": { + "description": "Number of characters for code blocks", + "type": "integer", + "minimum": 1, + "default": 80 + }, + "code_blocks": { + "description": "Include code blocks", + "type": "boolean", + "default": true + }, + "tables": { + "description": "Include tables", + "type": "boolean", + "default": true + }, + "headings": { + "description": "Include headings", + "type": "boolean", + "default": true + }, + "strict": { + "description": "Strict length checking", + "type": "boolean", + "default": false + }, + "stern": { + "description": "Stern length checking", + "type": "boolean", + "default": false + } + }, + "additionalProperties": false + }, + "MD014": { + "description": "MD014/commands-show-output : Dollar signs used before commands without showing output : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md014.md", + "type": "boolean", + "default": true + }, + "commands-show-output": { + "description": "MD014/commands-show-output : Dollar signs used before commands without showing output : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md014.md", + "type": "boolean", + "default": true + }, + "MD018": { + "description": "MD018/no-missing-space-atx : No space after hash on atx style heading : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md018.md", + "type": "boolean", + "default": true + }, + "no-missing-space-atx": { + "description": "MD018/no-missing-space-atx : No space after hash on atx style heading : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md018.md", + "type": "boolean", + "default": true + }, + "MD019": { + "description": "MD019/no-multiple-space-atx : Multiple spaces after hash on atx style heading : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md019.md", + "type": "boolean", + "default": true + }, + "no-multiple-space-atx": { + "description": "MD019/no-multiple-space-atx : Multiple spaces after hash on atx style heading : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md019.md", + "type": "boolean", + "default": true + }, + "MD020": { + "description": "MD020/no-missing-space-closed-atx : No space inside hashes on closed atx style heading : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md020.md", + "type": "boolean", + "default": true + }, + "no-missing-space-closed-atx": { + "description": "MD020/no-missing-space-closed-atx : No space inside hashes on closed atx style heading : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md020.md", + "type": "boolean", + "default": true + }, + "MD021": { + "description": "MD021/no-multiple-space-closed-atx : Multiple spaces inside hashes on closed atx style heading : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md021.md", + "type": "boolean", + "default": true + }, + "no-multiple-space-closed-atx": { + "description": "MD021/no-multiple-space-closed-atx : Multiple spaces inside hashes on closed atx style heading : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md021.md", + "type": "boolean", + "default": true + }, + "MD022": { + "description": "MD022/blanks-around-headings : Headings should be surrounded by blank lines : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md022.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "lines_above": { + "description": "Blank lines above heading", + "type": [ + "integer", + "array" + ], + "items": { + "type": "integer" + }, + "minimum": -1, + "default": 1 + }, + "lines_below": { + "description": "Blank lines below heading", + "type": [ + "integer", + "array" + ], + "items": { + "type": "integer" + }, + "minimum": -1, + "default": 1 + } + }, + "additionalProperties": false + }, + "blanks-around-headings": { + "description": "MD022/blanks-around-headings : Headings should be surrounded by blank lines : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md022.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "lines_above": { + "description": "Blank lines above heading", + "type": [ + "integer", + "array" + ], + "items": { + "type": "integer" + }, + "minimum": -1, + "default": 1 + }, + "lines_below": { + "description": "Blank lines below heading", + "type": [ + "integer", + "array" + ], + "items": { + "type": "integer" + }, + "minimum": -1, + "default": 1 + } + }, + "additionalProperties": false + }, + "MD023": { + "description": "MD023/heading-start-left : Headings must start at the beginning of the line : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md023.md", + "type": "boolean", + "default": true + }, + "heading-start-left": { + "description": "MD023/heading-start-left : Headings must start at the beginning of the line : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md023.md", + "type": "boolean", + "default": true + }, + "MD024": { + "description": "MD024/no-duplicate-heading : Multiple headings with the same content : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md024.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "siblings_only": { + "description": "Only check sibling headings", + "type": "boolean", + "default": false + } + }, + "additionalProperties": false + }, + "no-duplicate-heading": { + "description": "MD024/no-duplicate-heading : Multiple headings with the same content : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md024.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "siblings_only": { + "description": "Only check sibling headings", + "type": "boolean", + "default": false + } + }, + "additionalProperties": false + }, + "MD025": { + "description": "MD025/single-title/single-h1 : Multiple top-level headings in the same document : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md025.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "level": { + "description": "Heading level", + "type": "integer", + "minimum": 1, + "maximum": 6, + "default": 1 + }, + "front_matter_title": { + "description": "RegExp for matching title in front matter", + "type": "string", + "default": "^\\s*title\\s*[:=]" + } + }, + "additionalProperties": false + }, + "single-title": { + "description": "MD025/single-title/single-h1 : Multiple top-level headings in the same document : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md025.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "level": { + "description": "Heading level", + "type": "integer", + "minimum": 1, + "maximum": 6, + "default": 1 + }, + "front_matter_title": { + "description": "RegExp for matching title in front matter", + "type": "string", + "default": "^\\s*title\\s*[:=]" + } + }, + "additionalProperties": false + }, + "single-h1": { + "description": "MD025/single-title/single-h1 : Multiple top-level headings in the same document : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md025.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "level": { + "description": "Heading level", + "type": "integer", + "minimum": 1, + "maximum": 6, + "default": 1 + }, + "front_matter_title": { + "description": "RegExp for matching title in front matter", + "type": "string", + "default": "^\\s*title\\s*[:=]" + } + }, + "additionalProperties": false + }, + "MD026": { + "description": "MD026/no-trailing-punctuation : Trailing punctuation in heading : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md026.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "punctuation": { + "description": "Punctuation characters", + "type": "string", + "default": ".,;:!。,;:!" + } + }, + "additionalProperties": false + }, + "no-trailing-punctuation": { + "description": "MD026/no-trailing-punctuation : Trailing punctuation in heading : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md026.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "punctuation": { + "description": "Punctuation characters", + "type": "string", + "default": ".,;:!。,;:!" + } + }, + "additionalProperties": false + }, + "MD027": { + "description": "MD027/no-multiple-space-blockquote : Multiple spaces after blockquote symbol : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md027.md", + "type": "boolean", + "default": true + }, + "no-multiple-space-blockquote": { + "description": "MD027/no-multiple-space-blockquote : Multiple spaces after blockquote symbol : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md027.md", + "type": "boolean", + "default": true + }, + "MD028": { + "description": "MD028/no-blanks-blockquote : Blank line inside blockquote : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md028.md", + "type": "boolean", + "default": true + }, + "no-blanks-blockquote": { + "description": "MD028/no-blanks-blockquote : Blank line inside blockquote : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md028.md", + "type": "boolean", + "default": true + }, + "MD029": { + "description": "MD029/ol-prefix : Ordered list item prefix : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md029.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "style": { + "description": "List style", + "type": "string", + "enum": [ + "one", + "ordered", + "one_or_ordered", + "zero" + ], + "default": "one_or_ordered" + } + }, + "additionalProperties": false + }, + "ol-prefix": { + "description": "MD029/ol-prefix : Ordered list item prefix : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md029.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "style": { + "description": "List style", + "type": "string", + "enum": [ + "one", + "ordered", + "one_or_ordered", + "zero" + ], + "default": "one_or_ordered" + } + }, + "additionalProperties": false + }, + "MD030": { + "description": "MD030/list-marker-space : Spaces after list markers : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md030.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "ul_single": { + "description": "Spaces for single-line unordered list items", + "type": "integer", + "minimum": 1, + "default": 1 + }, + "ol_single": { + "description": "Spaces for single-line ordered list items", + "type": "integer", + "minimum": 1, + "default": 1 + }, + "ul_multi": { + "description": "Spaces for multi-line unordered list items", + "type": "integer", + "minimum": 1, + "default": 1 + }, + "ol_multi": { + "description": "Spaces for multi-line ordered list items", + "type": "integer", + "minimum": 1, + "default": 1 + } + }, + "additionalProperties": false + }, + "list-marker-space": { + "description": "MD030/list-marker-space : Spaces after list markers : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md030.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "ul_single": { + "description": "Spaces for single-line unordered list items", + "type": "integer", + "minimum": 1, + "default": 1 + }, + "ol_single": { + "description": "Spaces for single-line ordered list items", + "type": "integer", + "minimum": 1, + "default": 1 + }, + "ul_multi": { + "description": "Spaces for multi-line unordered list items", + "type": "integer", + "minimum": 1, + "default": 1 + }, + "ol_multi": { + "description": "Spaces for multi-line ordered list items", + "type": "integer", + "minimum": 1, + "default": 1 + } + }, + "additionalProperties": false + }, + "MD031": { + "description": "MD031/blanks-around-fences : Fenced code blocks should be surrounded by blank lines : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md031.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "list_items": { + "description": "Include list items", + "type": "boolean", + "default": true + } + }, + "additionalProperties": false + }, + "blanks-around-fences": { + "description": "MD031/blanks-around-fences : Fenced code blocks should be surrounded by blank lines : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md031.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "list_items": { + "description": "Include list items", + "type": "boolean", + "default": true + } + }, + "additionalProperties": false + }, + "MD032": { + "description": "MD032/blanks-around-lists : Lists should be surrounded by blank lines : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md032.md", + "type": "boolean", + "default": true + }, + "blanks-around-lists": { + "description": "MD032/blanks-around-lists : Lists should be surrounded by blank lines : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md032.md", + "type": "boolean", + "default": true + }, + "MD033": { + "description": "MD033/no-inline-html : Inline HTML : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md033.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "allowed_elements": { + "description": "Allowed elements", + "type": "array", + "items": { + "type": "string" + }, + "default": [] + } + }, + "additionalProperties": false + }, + "no-inline-html": { + "description": "MD033/no-inline-html : Inline HTML : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md033.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "allowed_elements": { + "description": "Allowed elements", + "type": "array", + "items": { + "type": "string" + }, + "default": [] + } + }, + "additionalProperties": false + }, + "MD034": { + "description": "MD034/no-bare-urls : Bare URL used : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md034.md", + "type": "boolean", + "default": true + }, + "no-bare-urls": { + "description": "MD034/no-bare-urls : Bare URL used : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md034.md", + "type": "boolean", + "default": true + }, + "MD035": { + "description": "MD035/hr-style : Horizontal rule style : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md035.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "style": { + "description": "Horizontal rule style", + "type": "string", + "default": "consistent" + } + }, + "additionalProperties": false + }, + "hr-style": { + "description": "MD035/hr-style : Horizontal rule style : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md035.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "style": { + "description": "Horizontal rule style", + "type": "string", + "default": "consistent" + } + }, + "additionalProperties": false + }, + "MD036": { + "description": "MD036/no-emphasis-as-heading : Emphasis used instead of a heading : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md036.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "punctuation": { + "description": "Punctuation characters", + "type": "string", + "default": ".,;:!?。,;:!?" + } + }, + "additionalProperties": false + }, + "no-emphasis-as-heading": { + "description": "MD036/no-emphasis-as-heading : Emphasis used instead of a heading : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md036.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "punctuation": { + "description": "Punctuation characters", + "type": "string", + "default": ".,;:!?。,;:!?" + } + }, + "additionalProperties": false + }, + "MD037": { + "description": "MD037/no-space-in-emphasis : Spaces inside emphasis markers : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md037.md", + "type": "boolean", + "default": true + }, + "no-space-in-emphasis": { + "description": "MD037/no-space-in-emphasis : Spaces inside emphasis markers : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md037.md", + "type": "boolean", + "default": true + }, + "MD038": { + "description": "MD038/no-space-in-code : Spaces inside code span elements : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md038.md", + "type": "boolean", + "default": true + }, + "no-space-in-code": { + "description": "MD038/no-space-in-code : Spaces inside code span elements : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md038.md", + "type": "boolean", + "default": true + }, + "MD039": { + "description": "MD039/no-space-in-links : Spaces inside link text : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md039.md", + "type": "boolean", + "default": true + }, + "no-space-in-links": { + "description": "MD039/no-space-in-links : Spaces inside link text : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md039.md", + "type": "boolean", + "default": true + }, + "MD040": { + "description": "MD040/fenced-code-language : Fenced code blocks should have a language specified : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md040.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "allowed_languages": { + "description": "List of languages", + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "language_only": { + "description": "Require language only", + "type": "boolean", + "default": false + } + }, + "additionalProperties": false + }, + "fenced-code-language": { + "description": "MD040/fenced-code-language : Fenced code blocks should have a language specified : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md040.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "allowed_languages": { + "description": "List of languages", + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "language_only": { + "description": "Require language only", + "type": "boolean", + "default": false + } + }, + "additionalProperties": false + }, + "MD041": { + "description": "MD041/first-line-heading/first-line-h1 : First line in a file should be a top-level heading : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md041.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "level": { + "description": "Heading level", + "type": "integer", + "minimum": 1, + "maximum": 6, + "default": 1 + }, + "front_matter_title": { + "description": "RegExp for matching title in front matter", + "type": "string", + "default": "^\\s*title\\s*[:=]" + } + }, + "additionalProperties": false + }, + "first-line-heading": { + "description": "MD041/first-line-heading/first-line-h1 : First line in a file should be a top-level heading : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md041.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "level": { + "description": "Heading level", + "type": "integer", + "minimum": 1, + "maximum": 6, + "default": 1 + }, + "front_matter_title": { + "description": "RegExp for matching title in front matter", + "type": "string", + "default": "^\\s*title\\s*[:=]" + } + }, + "additionalProperties": false + }, + "first-line-h1": { + "description": "MD041/first-line-heading/first-line-h1 : First line in a file should be a top-level heading : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md041.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "level": { + "description": "Heading level", + "type": "integer", + "minimum": 1, + "maximum": 6, + "default": 1 + }, + "front_matter_title": { + "description": "RegExp for matching title in front matter", + "type": "string", + "default": "^\\s*title\\s*[:=]" + } + }, + "additionalProperties": false + }, + "MD042": { + "description": "MD042/no-empty-links : No empty links : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md042.md", + "type": "boolean", + "default": true + }, + "no-empty-links": { + "description": "MD042/no-empty-links : No empty links : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md042.md", + "type": "boolean", + "default": true + }, + "MD043": { + "description": "MD043/required-headings : Required heading structure : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md043.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "headings": { + "description": "List of headings", + "type": "array", + "items": { + "type": "string", + "pattern": "^(\\*|\\+|#{1,6} .*)$" + }, + "default": [] + }, + "match_case": { + "description": "Match case of headings", + "type": "boolean", + "default": false + } + }, + "additionalProperties": false + }, + "required-headings": { + "description": "MD043/required-headings : Required heading structure : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md043.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "headings": { + "description": "List of headings", + "type": "array", + "items": { + "type": "string", + "pattern": "^(\\*|\\+|#{1,6} .*)$" + }, + "default": [] + }, + "match_case": { + "description": "Match case of headings", + "type": "boolean", + "default": false + } + }, + "additionalProperties": false + }, + "MD044": { + "description": "MD044/proper-names : Proper names should have the correct capitalization : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md044.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "names": { + "description": "List of proper names", + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "code_blocks": { + "description": "Include code blocks", + "type": "boolean", + "default": true + }, + "html_elements": { + "description": "Include HTML elements", + "type": "boolean", + "default": true + } + }, + "additionalProperties": false + }, + "proper-names": { + "description": "MD044/proper-names : Proper names should have the correct capitalization : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md044.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "names": { + "description": "List of proper names", + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "code_blocks": { + "description": "Include code blocks", + "type": "boolean", + "default": true + }, + "html_elements": { + "description": "Include HTML elements", + "type": "boolean", + "default": true + } + }, + "additionalProperties": false + }, + "MD045": { + "description": "MD045/no-alt-text : Images should have alternate text (alt text) : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md045.md", + "type": "boolean", + "default": true + }, + "no-alt-text": { + "description": "MD045/no-alt-text : Images should have alternate text (alt text) : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md045.md", + "type": "boolean", + "default": true + }, + "MD046": { + "description": "MD046/code-block-style : Code block style : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md046.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "style": { + "description": "Block style", + "type": "string", + "enum": [ + "consistent", + "fenced", + "indented" + ], + "default": "consistent" + } + }, + "additionalProperties": false + }, + "code-block-style": { + "description": "MD046/code-block-style : Code block style : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md046.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "style": { + "description": "Block style", + "type": "string", + "enum": [ + "consistent", + "fenced", + "indented" + ], + "default": "consistent" + } + }, + "additionalProperties": false + }, + "MD047": { + "description": "MD047/single-trailing-newline : Files should end with a single newline character : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md047.md", + "type": "boolean", + "default": true + }, + "single-trailing-newline": { + "description": "MD047/single-trailing-newline : Files should end with a single newline character : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md047.md", + "type": "boolean", + "default": true + }, + "MD048": { + "description": "MD048/code-fence-style : Code fence style : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md048.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "style": { + "description": "Code fence style", + "type": "string", + "enum": [ + "consistent", + "backtick", + "tilde" + ], + "default": "consistent" + } + }, + "additionalProperties": false + }, + "code-fence-style": { + "description": "MD048/code-fence-style : Code fence style : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md048.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "style": { + "description": "Code fence style", + "type": "string", + "enum": [ + "consistent", + "backtick", + "tilde" + ], + "default": "consistent" + } + }, + "additionalProperties": false + }, + "MD049": { + "description": "MD049/emphasis-style : Emphasis style : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md049.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "style": { + "description": "Emphasis style", + "type": "string", + "enum": [ + "consistent", + "asterisk", + "underscore" + ], + "default": "consistent" + } + }, + "additionalProperties": false + }, + "emphasis-style": { + "description": "MD049/emphasis-style : Emphasis style : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md049.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "style": { + "description": "Emphasis style", + "type": "string", + "enum": [ + "consistent", + "asterisk", + "underscore" + ], + "default": "consistent" + } + }, + "additionalProperties": false + }, + "MD050": { + "description": "MD050/strong-style : Strong style : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md050.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "style": { + "description": "Strong style", + "type": "string", + "enum": [ + "consistent", + "asterisk", + "underscore" + ], + "default": "consistent" + } + }, + "additionalProperties": false + }, + "strong-style": { + "description": "MD050/strong-style : Strong style : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md050.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "style": { + "description": "Strong style", + "type": "string", + "enum": [ + "consistent", + "asterisk", + "underscore" + ], + "default": "consistent" + } + }, + "additionalProperties": false + }, + "MD051": { + "description": "MD051/link-fragments : Link fragments should be valid : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md051.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "ignore_case": { + "description": "Ignore case of fragments", + "type": "boolean", + "default": false + } + }, + "additionalProperties": false + }, + "link-fragments": { + "description": "MD051/link-fragments : Link fragments should be valid : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md051.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "ignore_case": { + "description": "Ignore case of fragments", + "type": "boolean", + "default": false + } + }, + "additionalProperties": false + }, + "MD052": { + "description": "MD052/reference-links-images : Reference links and images should use a label that is defined : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md052.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "shortcut_syntax": { + "description": "Include shortcut syntax", + "type": "boolean", + "default": false + } + }, + "additionalProperties": false + }, + "reference-links-images": { + "description": "MD052/reference-links-images : Reference links and images should use a label that is defined : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md052.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "shortcut_syntax": { + "description": "Include shortcut syntax", + "type": "boolean", + "default": false + } + }, + "additionalProperties": false + }, + "MD053": { + "description": "MD053/link-image-reference-definitions : Link and image reference definitions should be needed : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md053.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "ignored_definitions": { + "description": "Ignored definitions", + "type": "array", + "items": { + "type": "string" + }, + "default": [ + "//" + ] + } + }, + "additionalProperties": false + }, + "link-image-reference-definitions": { + "description": "MD053/link-image-reference-definitions : Link and image reference definitions should be needed : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md053.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "ignored_definitions": { + "description": "Ignored definitions", + "type": "array", + "items": { + "type": "string" + }, + "default": [ + "//" + ] + } + }, + "additionalProperties": false + }, + "MD054": { + "description": "MD054/link-image-style : Link and image style : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md054.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "autolink": { + "description": "Allow autolinks", + "type": "boolean", + "default": true + }, + "inline": { + "description": "Allow inline links and images", + "type": "boolean", + "default": true + }, + "full": { + "description": "Allow full reference links and images", + "type": "boolean", + "default": true + }, + "collapsed": { + "description": "Allow collapsed reference links and images", + "type": "boolean", + "default": true + }, + "shortcut": { + "description": "Allow shortcut reference links and images", + "type": "boolean", + "default": true + }, + "url_inline": { + "description": "Allow URLs as inline links", + "type": "boolean", + "default": true + } + }, + "additionalProperties": false + }, + "link-image-style": { + "description": "MD054/link-image-style : Link and image style : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md054.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "autolink": { + "description": "Allow autolinks", + "type": "boolean", + "default": true + }, + "inline": { + "description": "Allow inline links and images", + "type": "boolean", + "default": true + }, + "full": { + "description": "Allow full reference links and images", + "type": "boolean", + "default": true + }, + "collapsed": { + "description": "Allow collapsed reference links and images", + "type": "boolean", + "default": true + }, + "shortcut": { + "description": "Allow shortcut reference links and images", + "type": "boolean", + "default": true + }, + "url_inline": { + "description": "Allow URLs as inline links", + "type": "boolean", + "default": true + } + }, + "additionalProperties": false + }, + "MD055": { + "description": "MD055/table-pipe-style : Table pipe style : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md055.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "style": { + "description": "Table pipe style", + "type": "string", + "enum": [ + "consistent", + "leading_only", + "trailing_only", + "leading_and_trailing", + "no_leading_or_trailing" + ], + "default": "consistent" + } + }, + "additionalProperties": false + }, + "table-pipe-style": { + "description": "MD055/table-pipe-style : Table pipe style : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md055.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "style": { + "description": "Table pipe style", + "type": "string", + "enum": [ + "consistent", + "leading_only", + "trailing_only", + "leading_and_trailing", + "no_leading_or_trailing" + ], + "default": "consistent" + } + }, + "additionalProperties": false + }, + "MD056": { + "description": "MD056/table-column-count : Table column count : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md056.md", + "type": "boolean", + "default": true + }, + "table-column-count": { + "description": "MD056/table-column-count : Table column count : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md056.md", + "type": "boolean", + "default": true + }, + "MD058": { + "description": "MD058/blanks-around-tables : Tables should be surrounded by blank lines : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md058.md", + "type": "boolean", + "default": true + }, + "blanks-around-tables": { + "description": "MD058/blanks-around-tables : Tables should be surrounded by blank lines : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md058.md", + "type": "boolean", + "default": true + }, + "headings": { + "description": "headings : MD001, MD003, MD018, MD019, MD020, MD021, MD022, MD023, MD024, MD025, MD026, MD036, MD041, MD043", + "type": "boolean", + "default": true + }, + "bullet": { + "description": "bullet : MD004, MD005, MD007, MD032", + "type": "boolean", + "default": true + }, + "ul": { + "description": "ul : MD004, MD005, MD007, MD030, MD032", + "type": "boolean", + "default": true + }, + "indentation": { + "description": "indentation : MD005, MD007, MD027", + "type": "boolean", + "default": true + }, + "whitespace": { + "description": "whitespace : MD009, MD010, MD012, MD027, MD028, MD030, MD037, MD038, MD039", + "type": "boolean", + "default": true + }, + "hard_tab": { + "description": "hard_tab : MD010", + "type": "boolean", + "default": true + }, + "links": { + "description": "links : MD011, MD034, MD039, MD042, MD051, MD052, MD053, MD054", + "type": "boolean", + "default": true + }, + "blank_lines": { + "description": "blank_lines : MD012, MD022, MD031, MD032, MD047", + "type": "boolean", + "default": true + }, + "line_length": { + "description": "line_length : MD013", + "type": "boolean", + "default": true + }, + "code": { + "description": "code : MD014, MD031, MD038, MD040, MD046, MD048", + "type": "boolean", + "default": true + }, + "atx": { + "description": "atx : MD018, MD019", + "type": "boolean", + "default": true + }, + "spaces": { + "description": "spaces : MD018, MD019, MD020, MD021, MD023", + "type": "boolean", + "default": true + }, + "atx_closed": { + "description": "atx_closed : MD020, MD021", + "type": "boolean", + "default": true + }, + "blockquote": { + "description": "blockquote : MD027, MD028", + "type": "boolean", + "default": true + }, + "ol": { + "description": "ol : MD029, MD030, MD032", + "type": "boolean", + "default": true + }, + "html": { + "description": "html : MD033", + "type": "boolean", + "default": true + }, + "url": { + "description": "url : MD034", + "type": "boolean", + "default": true + }, + "hr": { + "description": "hr : MD035", + "type": "boolean", + "default": true + }, + "emphasis": { + "description": "emphasis : MD036, MD037, MD049, MD050", + "type": "boolean", + "default": true + }, + "language": { + "description": "language : MD040", + "type": "boolean", + "default": true + }, + "spelling": { + "description": "spelling : MD044", + "type": "boolean", + "default": true + }, + "accessibility": { + "description": "accessibility : MD045", + "type": "boolean", + "default": true + }, + "images": { + "description": "images : MD045, MD052, MD053, MD054", + "type": "boolean", + "default": true + }, + "table": { + "description": "table : MD055, MD056, MD058", + "type": "boolean", + "default": true + } + }, + "additionalProperties": { + "type": [ + "boolean", + "object" + ] + } +} \ No newline at end of file diff --git a/_build/html/_downloads/c85208b3027b7d5924e47ab3fbdfc782/help.js b/_build/html/_downloads/c85208b3027b7d5924e47ab3fbdfc782/help.js new file mode 100644 index 0000000..ed6f991 --- /dev/null +++ b/_build/html/_downloads/c85208b3027b7d5924e47ab3fbdfc782/help.js @@ -0,0 +1,520 @@ +const { humanReadableArgName } = require('./argument.js'); + +/** + * TypeScript import types for JSDoc, used by Visual Studio Code IntelliSense and `npm run typescript-checkJS` + * https://www.typescriptlang.org/docs/handbook/jsdoc-supported-types.html#import-types + * @typedef { import("./argument.js").Argument } Argument + * @typedef { import("./command.js").Command } Command + * @typedef { import("./option.js").Option } Option + */ + +// Although this is a class, methods are static in style to allow override using subclass or just functions. +class Help { + constructor() { + this.helpWidth = undefined; + this.sortSubcommands = false; + this.sortOptions = false; + this.showGlobalOptions = false; + } + + /** + * Get an array of the visible subcommands. Includes a placeholder for the implicit help command, if there is one. + * + * @param {Command} cmd + * @returns {Command[]} + */ + + visibleCommands(cmd) { + const visibleCommands = cmd.commands.filter((cmd) => !cmd._hidden); + const helpCommand = cmd._getHelpCommand(); + if (helpCommand && !helpCommand._hidden) { + visibleCommands.push(helpCommand); + } + if (this.sortSubcommands) { + visibleCommands.sort((a, b) => { + // @ts-ignore: because overloaded return type + return a.name().localeCompare(b.name()); + }); + } + return visibleCommands; + } + + /** + * Compare options for sort. + * + * @param {Option} a + * @param {Option} b + * @returns {number} + */ + compareOptions(a, b) { + const getSortKey = (option) => { + // WYSIWYG for order displayed in help. Short used for comparison if present. No special handling for negated. + return option.short + ? option.short.replace(/^-/, '') + : option.long.replace(/^--/, ''); + }; + return getSortKey(a).localeCompare(getSortKey(b)); + } + + /** + * Get an array of the visible options. Includes a placeholder for the implicit help option, if there is one. + * + * @param {Command} cmd + * @returns {Option[]} + */ + + visibleOptions(cmd) { + const visibleOptions = cmd.options.filter((option) => !option.hidden); + // Built-in help option. + const helpOption = cmd._getHelpOption(); + if (helpOption && !helpOption.hidden) { + // Automatically hide conflicting flags. Bit dubious but a historical behaviour that is convenient for single-command programs. + const removeShort = helpOption.short && cmd._findOption(helpOption.short); + const removeLong = helpOption.long && cmd._findOption(helpOption.long); + if (!removeShort && !removeLong) { + visibleOptions.push(helpOption); // no changes needed + } else if (helpOption.long && !removeLong) { + visibleOptions.push( + cmd.createOption(helpOption.long, helpOption.description), + ); + } else if (helpOption.short && !removeShort) { + visibleOptions.push( + cmd.createOption(helpOption.short, helpOption.description), + ); + } + } + if (this.sortOptions) { + visibleOptions.sort(this.compareOptions); + } + return visibleOptions; + } + + /** + * Get an array of the visible global options. (Not including help.) + * + * @param {Command} cmd + * @returns {Option[]} + */ + + visibleGlobalOptions(cmd) { + if (!this.showGlobalOptions) return []; + + const globalOptions = []; + for ( + let ancestorCmd = cmd.parent; + ancestorCmd; + ancestorCmd = ancestorCmd.parent + ) { + const visibleOptions = ancestorCmd.options.filter( + (option) => !option.hidden, + ); + globalOptions.push(...visibleOptions); + } + if (this.sortOptions) { + globalOptions.sort(this.compareOptions); + } + return globalOptions; + } + + /** + * Get an array of the arguments if any have a description. + * + * @param {Command} cmd + * @returns {Argument[]} + */ + + visibleArguments(cmd) { + // Side effect! Apply the legacy descriptions before the arguments are displayed. + if (cmd._argsDescription) { + cmd.registeredArguments.forEach((argument) => { + argument.description = + argument.description || cmd._argsDescription[argument.name()] || ''; + }); + } + + // If there are any arguments with a description then return all the arguments. + if (cmd.registeredArguments.find((argument) => argument.description)) { + return cmd.registeredArguments; + } + return []; + } + + /** + * Get the command term to show in the list of subcommands. + * + * @param {Command} cmd + * @returns {string} + */ + + subcommandTerm(cmd) { + // Legacy. Ignores custom usage string, and nested commands. + const args = cmd.registeredArguments + .map((arg) => humanReadableArgName(arg)) + .join(' '); + return ( + cmd._name + + (cmd._aliases[0] ? '|' + cmd._aliases[0] : '') + + (cmd.options.length ? ' [options]' : '') + // simplistic check for non-help option + (args ? ' ' + args : '') + ); + } + + /** + * Get the option term to show in the list of options. + * + * @param {Option} option + * @returns {string} + */ + + optionTerm(option) { + return option.flags; + } + + /** + * Get the argument term to show in the list of arguments. + * + * @param {Argument} argument + * @returns {string} + */ + + argumentTerm(argument) { + return argument.name(); + } + + /** + * Get the longest command term length. + * + * @param {Command} cmd + * @param {Help} helper + * @returns {number} + */ + + longestSubcommandTermLength(cmd, helper) { + return helper.visibleCommands(cmd).reduce((max, command) => { + return Math.max(max, helper.subcommandTerm(command).length); + }, 0); + } + + /** + * Get the longest option term length. + * + * @param {Command} cmd + * @param {Help} helper + * @returns {number} + */ + + longestOptionTermLength(cmd, helper) { + return helper.visibleOptions(cmd).reduce((max, option) => { + return Math.max(max, helper.optionTerm(option).length); + }, 0); + } + + /** + * Get the longest global option term length. + * + * @param {Command} cmd + * @param {Help} helper + * @returns {number} + */ + + longestGlobalOptionTermLength(cmd, helper) { + return helper.visibleGlobalOptions(cmd).reduce((max, option) => { + return Math.max(max, helper.optionTerm(option).length); + }, 0); + } + + /** + * Get the longest argument term length. + * + * @param {Command} cmd + * @param {Help} helper + * @returns {number} + */ + + longestArgumentTermLength(cmd, helper) { + return helper.visibleArguments(cmd).reduce((max, argument) => { + return Math.max(max, helper.argumentTerm(argument).length); + }, 0); + } + + /** + * Get the command usage to be displayed at the top of the built-in help. + * + * @param {Command} cmd + * @returns {string} + */ + + commandUsage(cmd) { + // Usage + let cmdName = cmd._name; + if (cmd._aliases[0]) { + cmdName = cmdName + '|' + cmd._aliases[0]; + } + let ancestorCmdNames = ''; + for ( + let ancestorCmd = cmd.parent; + ancestorCmd; + ancestorCmd = ancestorCmd.parent + ) { + ancestorCmdNames = ancestorCmd.name() + ' ' + ancestorCmdNames; + } + return ancestorCmdNames + cmdName + ' ' + cmd.usage(); + } + + /** + * Get the description for the command. + * + * @param {Command} cmd + * @returns {string} + */ + + commandDescription(cmd) { + // @ts-ignore: because overloaded return type + return cmd.description(); + } + + /** + * Get the subcommand summary to show in the list of subcommands. + * (Fallback to description for backwards compatibility.) + * + * @param {Command} cmd + * @returns {string} + */ + + subcommandDescription(cmd) { + // @ts-ignore: because overloaded return type + return cmd.summary() || cmd.description(); + } + + /** + * Get the option description to show in the list of options. + * + * @param {Option} option + * @return {string} + */ + + optionDescription(option) { + const extraInfo = []; + + if (option.argChoices) { + extraInfo.push( + // use stringify to match the display of the default value + `choices: ${option.argChoices.map((choice) => JSON.stringify(choice)).join(', ')}`, + ); + } + if (option.defaultValue !== undefined) { + // default for boolean and negated more for programmer than end user, + // but show true/false for boolean option as may be for hand-rolled env or config processing. + const showDefault = + option.required || + option.optional || + (option.isBoolean() && typeof option.defaultValue === 'boolean'); + if (showDefault) { + extraInfo.push( + `default: ${option.defaultValueDescription || JSON.stringify(option.defaultValue)}`, + ); + } + } + // preset for boolean and negated are more for programmer than end user + if (option.presetArg !== undefined && option.optional) { + extraInfo.push(`preset: ${JSON.stringify(option.presetArg)}`); + } + if (option.envVar !== undefined) { + extraInfo.push(`env: ${option.envVar}`); + } + if (extraInfo.length > 0) { + return `${option.description} (${extraInfo.join(', ')})`; + } + + return option.description; + } + + /** + * Get the argument description to show in the list of arguments. + * + * @param {Argument} argument + * @return {string} + */ + + argumentDescription(argument) { + const extraInfo = []; + if (argument.argChoices) { + extraInfo.push( + // use stringify to match the display of the default value + `choices: ${argument.argChoices.map((choice) => JSON.stringify(choice)).join(', ')}`, + ); + } + if (argument.defaultValue !== undefined) { + extraInfo.push( + `default: ${argument.defaultValueDescription || JSON.stringify(argument.defaultValue)}`, + ); + } + if (extraInfo.length > 0) { + const extraDescripton = `(${extraInfo.join(', ')})`; + if (argument.description) { + return `${argument.description} ${extraDescripton}`; + } + return extraDescripton; + } + return argument.description; + } + + /** + * Generate the built-in help text. + * + * @param {Command} cmd + * @param {Help} helper + * @returns {string} + */ + + formatHelp(cmd, helper) { + const termWidth = helper.padWidth(cmd, helper); + const helpWidth = helper.helpWidth || 80; + const itemIndentWidth = 2; + const itemSeparatorWidth = 2; // between term and description + function formatItem(term, description) { + if (description) { + const fullText = `${term.padEnd(termWidth + itemSeparatorWidth)}${description}`; + return helper.wrap( + fullText, + helpWidth - itemIndentWidth, + termWidth + itemSeparatorWidth, + ); + } + return term; + } + function formatList(textArray) { + return textArray.join('\n').replace(/^/gm, ' '.repeat(itemIndentWidth)); + } + + // Usage + let output = [`Usage: ${helper.commandUsage(cmd)}`, '']; + + // Description + const commandDescription = helper.commandDescription(cmd); + if (commandDescription.length > 0) { + output = output.concat([ + helper.wrap(commandDescription, helpWidth, 0), + '', + ]); + } + + // Arguments + const argumentList = helper.visibleArguments(cmd).map((argument) => { + return formatItem( + helper.argumentTerm(argument), + helper.argumentDescription(argument), + ); + }); + if (argumentList.length > 0) { + output = output.concat(['Arguments:', formatList(argumentList), '']); + } + + // Options + const optionList = helper.visibleOptions(cmd).map((option) => { + return formatItem( + helper.optionTerm(option), + helper.optionDescription(option), + ); + }); + if (optionList.length > 0) { + output = output.concat(['Options:', formatList(optionList), '']); + } + + if (this.showGlobalOptions) { + const globalOptionList = helper + .visibleGlobalOptions(cmd) + .map((option) => { + return formatItem( + helper.optionTerm(option), + helper.optionDescription(option), + ); + }); + if (globalOptionList.length > 0) { + output = output.concat([ + 'Global Options:', + formatList(globalOptionList), + '', + ]); + } + } + + // Commands + const commandList = helper.visibleCommands(cmd).map((cmd) => { + return formatItem( + helper.subcommandTerm(cmd), + helper.subcommandDescription(cmd), + ); + }); + if (commandList.length > 0) { + output = output.concat(['Commands:', formatList(commandList), '']); + } + + return output.join('\n'); + } + + /** + * Calculate the pad width from the maximum term length. + * + * @param {Command} cmd + * @param {Help} helper + * @returns {number} + */ + + padWidth(cmd, helper) { + return Math.max( + helper.longestOptionTermLength(cmd, helper), + helper.longestGlobalOptionTermLength(cmd, helper), + helper.longestSubcommandTermLength(cmd, helper), + helper.longestArgumentTermLength(cmd, helper), + ); + } + + /** + * Wrap the given string to width characters per line, with lines after the first indented. + * Do not wrap if insufficient room for wrapping (minColumnWidth), or string is manually formatted. + * + * @param {string} str + * @param {number} width + * @param {number} indent + * @param {number} [minColumnWidth=40] + * @return {string} + * + */ + + wrap(str, width, indent, minColumnWidth = 40) { + // Full \s characters, minus the linefeeds. + const indents = + ' \\f\\t\\v\u00a0\u1680\u2000-\u200a\u202f\u205f\u3000\ufeff'; + // Detect manually wrapped and indented strings by searching for line break followed by spaces. + const manualIndent = new RegExp(`[\\n][${indents}]+`); + if (str.match(manualIndent)) return str; + // Do not wrap if not enough room for a wrapped column of text (as could end up with a word per line). + const columnWidth = width - indent; + if (columnWidth < minColumnWidth) return str; + + const leadingStr = str.slice(0, indent); + const columnText = str.slice(indent).replace('\r\n', '\n'); + const indentString = ' '.repeat(indent); + const zeroWidthSpace = '\u200B'; + const breaks = `\\s${zeroWidthSpace}`; + // Match line end (so empty lines don't collapse), + // or as much text as will fit in column, or excess text up to first break. + const regex = new RegExp( + `\n|.{1,${columnWidth - 1}}([${breaks}]|$)|[^${breaks}]+?([${breaks}]|$)`, + 'g', + ); + const lines = columnText.match(regex) || []; + return ( + leadingStr + + lines + .map((line, i) => { + if (line === '\n') return ''; // preserve empty lines + return (i > 0 ? indentString : '') + line.trimEnd(); + }) + .join('\n') + ); + } +} + +exports.Help = Help; diff --git a/_build/html/_downloads/dac4cd021e66b26d5182dcc369502a7b/.markdownlint.jsonc b/_build/html/_downloads/dac4cd021e66b26d5182dcc369502a7b/.markdownlint.jsonc new file mode 100644 index 0000000..0db3f87 --- /dev/null +++ b/_build/html/_downloads/dac4cd021e66b26d5182dcc369502a7b/.markdownlint.jsonc @@ -0,0 +1,310 @@ +// Example markdownlint configuration with all properties set to their default value +{ + + // Default state for all rules + "default": true, + + // Path to configuration file to extend + "extends": null, + + // MD001/heading-increment : Heading levels should only increment by one level at a time : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md001.md + "MD001": true, + + // MD003/heading-style : Heading style : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md003.md + "MD003": { + // Heading style + "style": "consistent" + }, + + // MD004/ul-style : Unordered list style : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md004.md + "MD004": { + // List style + "style": "consistent" + }, + + // MD005/list-indent : Inconsistent indentation for list items at the same level : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md005.md + "MD005": true, + + // MD007/ul-indent : Unordered list indentation : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md007.md + "MD007": { + // Spaces for indent + "indent": 2, + // Whether to indent the first level of the list + "start_indented": false, + // Spaces for first level indent (when start_indented is set) + "start_indent": 2 + }, + + // MD009/no-trailing-spaces : Trailing spaces : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md009.md + "MD009": { + // Spaces for line break + "br_spaces": 2, + // Allow spaces for empty lines in list items + "list_item_empty_lines": false, + // Include unnecessary breaks + "strict": false + }, + + // MD010/no-hard-tabs : Hard tabs : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md010.md + "MD010": { + // Include code blocks + "code_blocks": true, + // Fenced code languages to ignore + "ignore_code_languages": [], + // Number of spaces for each hard tab + "spaces_per_tab": 1 + }, + + // MD011/no-reversed-links : Reversed link syntax : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md011.md + "MD011": true, + + // MD012/no-multiple-blanks : Multiple consecutive blank lines : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md012.md + "MD012": { + // Consecutive blank lines + "maximum": 1 + }, + + // MD013/line-length : Line length : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md013.md + "MD013": { + // Number of characters + "line_length": 80, + // Number of characters for headings + "heading_line_length": 80, + // Number of characters for code blocks + "code_block_line_length": 80, + // Include code blocks + "code_blocks": true, + // Include tables + "tables": true, + // Include headings + "headings": true, + // Strict length checking + "strict": false, + // Stern length checking + "stern": false + }, + + // MD014/commands-show-output : Dollar signs used before commands without showing output : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md014.md + "MD014": true, + + // MD018/no-missing-space-atx : No space after hash on atx style heading : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md018.md + "MD018": true, + + // MD019/no-multiple-space-atx : Multiple spaces after hash on atx style heading : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md019.md + "MD019": true, + + // MD020/no-missing-space-closed-atx : No space inside hashes on closed atx style heading : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md020.md + "MD020": true, + + // MD021/no-multiple-space-closed-atx : Multiple spaces inside hashes on closed atx style heading : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md021.md + "MD021": true, + + // MD022/blanks-around-headings : Headings should be surrounded by blank lines : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md022.md + "MD022": { + // Blank lines above heading + "lines_above": 1, + // Blank lines below heading + "lines_below": 1 + }, + + // MD023/heading-start-left : Headings must start at the beginning of the line : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md023.md + "MD023": true, + + // MD024/no-duplicate-heading : Multiple headings with the same content : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md024.md + "MD024": { + // Only check sibling headings + "siblings_only": false + }, + + // MD025/single-title/single-h1 : Multiple top-level headings in the same document : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md025.md + "MD025": { + // Heading level + "level": 1, + // RegExp for matching title in front matter + "front_matter_title": "^\\s*title\\s*[:=]" + }, + + // MD026/no-trailing-punctuation : Trailing punctuation in heading : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md026.md + "MD026": { + // Punctuation characters + "punctuation": ".,;:!。,;:!" + }, + + // MD027/no-multiple-space-blockquote : Multiple spaces after blockquote symbol : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md027.md + "MD027": true, + + // MD028/no-blanks-blockquote : Blank line inside blockquote : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md028.md + "MD028": true, + + // MD029/ol-prefix : Ordered list item prefix : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md029.md + "MD029": { + // List style + "style": "one_or_ordered" + }, + + // MD030/list-marker-space : Spaces after list markers : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md030.md + "MD030": { + // Spaces for single-line unordered list items + "ul_single": 1, + // Spaces for single-line ordered list items + "ol_single": 1, + // Spaces for multi-line unordered list items + "ul_multi": 1, + // Spaces for multi-line ordered list items + "ol_multi": 1 + }, + + // MD031/blanks-around-fences : Fenced code blocks should be surrounded by blank lines : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md031.md + "MD031": { + // Include list items + "list_items": true + }, + + // MD032/blanks-around-lists : Lists should be surrounded by blank lines : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md032.md + "MD032": true, + + // MD033/no-inline-html : Inline HTML : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md033.md + "MD033": { + // Allowed elements + "allowed_elements": [] + }, + + // MD034/no-bare-urls : Bare URL used : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md034.md + "MD034": true, + + // MD035/hr-style : Horizontal rule style : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md035.md + "MD035": { + // Horizontal rule style + "style": "consistent" + }, + + // MD036/no-emphasis-as-heading : Emphasis used instead of a heading : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md036.md + "MD036": { + // Punctuation characters + "punctuation": ".,;:!?。,;:!?" + }, + + // MD037/no-space-in-emphasis : Spaces inside emphasis markers : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md037.md + "MD037": true, + + // MD038/no-space-in-code : Spaces inside code span elements : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md038.md + "MD038": true, + + // MD039/no-space-in-links : Spaces inside link text : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md039.md + "MD039": true, + + // MD040/fenced-code-language : Fenced code blocks should have a language specified : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md040.md + "MD040": { + // List of languages + "allowed_languages": [], + // Require language only + "language_only": false + }, + + // MD041/first-line-heading/first-line-h1 : First line in a file should be a top-level heading : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md041.md + "MD041": { + // Heading level + "level": 1, + // RegExp for matching title in front matter + "front_matter_title": "^\\s*title\\s*[:=]" + }, + + // MD042/no-empty-links : No empty links : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md042.md + "MD042": true, + + // MD043/required-headings : Required heading structure : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md043.md + "MD043": { + // List of headings + "headings": [], + // Match case of headings + "match_case": false + }, + + // MD044/proper-names : Proper names should have the correct capitalization : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md044.md + "MD044": { + // List of proper names + "names": [], + // Include code blocks + "code_blocks": true, + // Include HTML elements + "html_elements": true + }, + + // MD045/no-alt-text : Images should have alternate text (alt text) : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md045.md + "MD045": true, + + // MD046/code-block-style : Code block style : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md046.md + "MD046": { + // Block style + "style": "consistent" + }, + + // MD047/single-trailing-newline : Files should end with a single newline character : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md047.md + "MD047": true, + + // MD048/code-fence-style : Code fence style : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md048.md + "MD048": { + // Code fence style + "style": "consistent" + }, + + // MD049/emphasis-style : Emphasis style : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md049.md + "MD049": { + // Emphasis style + "style": "consistent" + }, + + // MD050/strong-style : Strong style : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md050.md + "MD050": { + // Strong style + "style": "consistent" + }, + + // MD051/link-fragments : Link fragments should be valid : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md051.md + "MD051": { + // Ignore case of fragments + "ignore_case": false + }, + + // MD052/reference-links-images : Reference links and images should use a label that is defined : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md052.md + "MD052": { + // Include shortcut syntax + "shortcut_syntax": false + }, + + // MD053/link-image-reference-definitions : Link and image reference definitions should be needed : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md053.md + "MD053": { + // Ignored definitions + "ignored_definitions": [ + "//" + ] + }, + + // MD054/link-image-style : Link and image style : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md054.md + "MD054": { + // Allow autolinks + "autolink": true, + // Allow inline links and images + "inline": true, + // Allow full reference links and images + "full": true, + // Allow collapsed reference links and images + "collapsed": true, + // Allow shortcut reference links and images + "shortcut": true, + // Allow URLs as inline links + "url_inline": true + }, + + // MD055/table-pipe-style : Table pipe style : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md055.md + "MD055": { + // Table pipe style + "style": "consistent" + }, + + // MD056/table-column-count : Table column count : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md056.md + "MD056": true, + + // MD058/blanks-around-tables : Tables should be surrounded by blank lines : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md058.md + "MD058": true +} \ No newline at end of file diff --git a/_build/html/_downloads/dac79542048916ea99efec88f65d98ac/parser_inline.mjs b/_build/html/_downloads/dac79542048916ea99efec88f65d98ac/parser_inline.mjs new file mode 100644 index 0000000..c2cc6a1 --- /dev/null +++ b/_build/html/_downloads/dac79542048916ea99efec88f65d98ac/parser_inline.mjs @@ -0,0 +1,197 @@ +/** internal + * class ParserInline + * + * Tokenizes paragraph content. + **/ + +import Ruler from './ruler.mjs' +import StateInline from './rules_inline/state_inline.mjs' + +import r_text from './rules_inline/text.mjs' +import r_linkify from './rules_inline/linkify.mjs' +import r_newline from './rules_inline/newline.mjs' +import r_escape from './rules_inline/escape.mjs' +import r_backticks from './rules_inline/backticks.mjs' +import r_strikethrough from './rules_inline/strikethrough.mjs' +import r_emphasis from './rules_inline/emphasis.mjs' +import r_link from './rules_inline/link.mjs' +import r_image from './rules_inline/image.mjs' +import r_autolink from './rules_inline/autolink.mjs' +import r_html_inline from './rules_inline/html_inline.mjs' +import r_entity from './rules_inline/entity.mjs' + +import r_balance_pairs from './rules_inline/balance_pairs.mjs' +import r_fragments_join from './rules_inline/fragments_join.mjs' + +// Parser rules + +const _rules = [ + ['text', r_text], + ['linkify', r_linkify], + ['newline', r_newline], + ['escape', r_escape], + ['backticks', r_backticks], + ['strikethrough', r_strikethrough.tokenize], + ['emphasis', r_emphasis.tokenize], + ['link', r_link], + ['image', r_image], + ['autolink', r_autolink], + ['html_inline', r_html_inline], + ['entity', r_entity] +] + +// `rule2` ruleset was created specifically for emphasis/strikethrough +// post-processing and may be changed in the future. +// +// Don't use this for anything except pairs (plugins working with `balance_pairs`). +// +const _rules2 = [ + ['balance_pairs', r_balance_pairs], + ['strikethrough', r_strikethrough.postProcess], + ['emphasis', r_emphasis.postProcess], + // rules for pairs separate '**' into its own text tokens, which may be left unused, + // rule below merges unused segments back with the rest of the text + ['fragments_join', r_fragments_join] +] + +/** + * new ParserInline() + **/ +function ParserInline () { + /** + * ParserInline#ruler -> Ruler + * + * [[Ruler]] instance. Keep configuration of inline rules. + **/ + this.ruler = new Ruler() + + for (let i = 0; i < _rules.length; i++) { + this.ruler.push(_rules[i][0], _rules[i][1]) + } + + /** + * ParserInline#ruler2 -> Ruler + * + * [[Ruler]] instance. Second ruler used for post-processing + * (e.g. in emphasis-like rules). + **/ + this.ruler2 = new Ruler() + + for (let i = 0; i < _rules2.length; i++) { + this.ruler2.push(_rules2[i][0], _rules2[i][1]) + } +} + +// Skip single token by running all rules in validation mode; +// returns `true` if any rule reported success +// +ParserInline.prototype.skipToken = function (state) { + const pos = state.pos + const rules = this.ruler.getRules('') + const len = rules.length + const maxNesting = state.md.options.maxNesting + const cache = state.cache + + if (typeof cache[pos] !== 'undefined') { + state.pos = cache[pos] + return + } + + let ok = false + + if (state.level < maxNesting) { + for (let i = 0; i < len; i++) { + // Increment state.level and decrement it later to limit recursion. + // It's harmless to do here, because no tokens are created. But ideally, + // we'd need a separate private state variable for this purpose. + // + state.level++ + ok = rules[i](state, true) + state.level-- + + if (ok) { + if (pos >= state.pos) { throw new Error("inline rule didn't increment state.pos") } + break + } + } + } else { + // Too much nesting, just skip until the end of the paragraph. + // + // NOTE: this will cause links to behave incorrectly in the following case, + // when an amount of `[` is exactly equal to `maxNesting + 1`: + // + // [[[[[[[[[[[[[[[[[[[[[foo]() + // + // TODO: remove this workaround when CM standard will allow nested links + // (we can replace it by preventing links from being parsed in + // validation mode) + // + state.pos = state.posMax + } + + if (!ok) { state.pos++ } + cache[pos] = state.pos +} + +// Generate tokens for input range +// +ParserInline.prototype.tokenize = function (state) { + const rules = this.ruler.getRules('') + const len = rules.length + const end = state.posMax + const maxNesting = state.md.options.maxNesting + + while (state.pos < end) { + // Try all possible rules. + // On success, rule should: + // + // - update `state.pos` + // - update `state.tokens` + // - return true + const prevPos = state.pos + let ok = false + + if (state.level < maxNesting) { + for (let i = 0; i < len; i++) { + ok = rules[i](state, false) + if (ok) { + if (prevPos >= state.pos) { throw new Error("inline rule didn't increment state.pos") } + break + } + } + } + + if (ok) { + if (state.pos >= end) { break } + continue + } + + state.pending += state.src[state.pos++] + } + + if (state.pending) { + state.pushPending() + } +} + +/** + * ParserInline.parse(str, md, env, outTokens) + * + * Process input string and push inline tokens into `outTokens` + **/ +ParserInline.prototype.parse = function (str, md, env, outTokens) { + const state = new this.State(str, md, env, outTokens) + + this.tokenize(state) + + const rules = this.ruler2.getRules('') + const len = rules.length + + for (let i = 0; i < len; i++) { + rules[i](state) + } +} + +ParserInline.prototype.State = StateInline + +export default ParserInline diff --git a/_build/html/_downloads/f089bb33f63d9d030760b3f0cdb6d9d9/markdownlint-config-schema-strict.json b/_build/html/_downloads/f089bb33f63d9d030760b3f0cdb6d9d9/markdownlint-config-schema-strict.json new file mode 100644 index 0000000..7ec18c8 --- /dev/null +++ b/_build/html/_downloads/f089bb33f63d9d030760b3f0cdb6d9d9/markdownlint-config-schema-strict.json @@ -0,0 +1,1841 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "https://raw.githubusercontent.com/DavidAnson/markdownlint/v0.36.1/schema/markdownlint-config-schema-strict.json", + "title": "markdownlint configuration schema", + "type": "object", + "properties": { + "$schema": { + "description": "JSON Schema URI (expected by some editors)", + "type": "string", + "default": "https://raw.githubusercontent.com/DavidAnson/markdownlint/v0.36.1/schema/markdownlint-config-schema.json" + }, + "default": { + "description": "Default state for all rules", + "type": "boolean", + "default": true + }, + "extends": { + "description": "Path to configuration file to extend", + "type": [ + "string", + "null" + ], + "default": null + }, + "MD001": { + "description": "MD001/heading-increment : Heading levels should only increment by one level at a time : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md001.md", + "type": "boolean", + "default": true + }, + "heading-increment": { + "description": "MD001/heading-increment : Heading levels should only increment by one level at a time : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md001.md", + "type": "boolean", + "default": true + }, + "MD003": { + "description": "MD003/heading-style : Heading style : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md003.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "style": { + "description": "Heading style", + "type": "string", + "enum": [ + "consistent", + "atx", + "atx_closed", + "setext", + "setext_with_atx", + "setext_with_atx_closed" + ], + "default": "consistent" + } + }, + "additionalProperties": false + }, + "heading-style": { + "description": "MD003/heading-style : Heading style : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md003.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "style": { + "description": "Heading style", + "type": "string", + "enum": [ + "consistent", + "atx", + "atx_closed", + "setext", + "setext_with_atx", + "setext_with_atx_closed" + ], + "default": "consistent" + } + }, + "additionalProperties": false + }, + "MD004": { + "description": "MD004/ul-style : Unordered list style : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md004.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "style": { + "description": "List style", + "type": "string", + "enum": [ + "consistent", + "asterisk", + "plus", + "dash", + "sublist" + ], + "default": "consistent" + } + }, + "additionalProperties": false + }, + "ul-style": { + "description": "MD004/ul-style : Unordered list style : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md004.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "style": { + "description": "List style", + "type": "string", + "enum": [ + "consistent", + "asterisk", + "plus", + "dash", + "sublist" + ], + "default": "consistent" + } + }, + "additionalProperties": false + }, + "MD005": { + "description": "MD005/list-indent : Inconsistent indentation for list items at the same level : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md005.md", + "type": "boolean", + "default": true + }, + "list-indent": { + "description": "MD005/list-indent : Inconsistent indentation for list items at the same level : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md005.md", + "type": "boolean", + "default": true + }, + "MD007": { + "description": "MD007/ul-indent : Unordered list indentation : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md007.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "indent": { + "description": "Spaces for indent", + "type": "integer", + "minimum": 1, + "default": 2 + }, + "start_indented": { + "description": "Whether to indent the first level of the list", + "type": "boolean", + "default": false + }, + "start_indent": { + "description": "Spaces for first level indent (when start_indented is set)", + "type": "integer", + "minimum": 1, + "default": 2 + } + }, + "additionalProperties": false + }, + "ul-indent": { + "description": "MD007/ul-indent : Unordered list indentation : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md007.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "indent": { + "description": "Spaces for indent", + "type": "integer", + "minimum": 1, + "default": 2 + }, + "start_indented": { + "description": "Whether to indent the first level of the list", + "type": "boolean", + "default": false + }, + "start_indent": { + "description": "Spaces for first level indent (when start_indented is set)", + "type": "integer", + "minimum": 1, + "default": 2 + } + }, + "additionalProperties": false + }, + "MD009": { + "description": "MD009/no-trailing-spaces : Trailing spaces : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md009.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "br_spaces": { + "description": "Spaces for line break", + "type": "integer", + "minimum": 0, + "default": 2 + }, + "list_item_empty_lines": { + "description": "Allow spaces for empty lines in list items", + "type": "boolean", + "default": false + }, + "strict": { + "description": "Include unnecessary breaks", + "type": "boolean", + "default": false + } + }, + "additionalProperties": false + }, + "no-trailing-spaces": { + "description": "MD009/no-trailing-spaces : Trailing spaces : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md009.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "br_spaces": { + "description": "Spaces for line break", + "type": "integer", + "minimum": 0, + "default": 2 + }, + "list_item_empty_lines": { + "description": "Allow spaces for empty lines in list items", + "type": "boolean", + "default": false + }, + "strict": { + "description": "Include unnecessary breaks", + "type": "boolean", + "default": false + } + }, + "additionalProperties": false + }, + "MD010": { + "description": "MD010/no-hard-tabs : Hard tabs : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md010.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "code_blocks": { + "description": "Include code blocks", + "type": "boolean", + "default": true + }, + "ignore_code_languages": { + "description": "Fenced code languages to ignore", + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "spaces_per_tab": { + "description": "Number of spaces for each hard tab", + "type": "integer", + "minimum": 0, + "default": 1 + } + }, + "additionalProperties": false + }, + "no-hard-tabs": { + "description": "MD010/no-hard-tabs : Hard tabs : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md010.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "code_blocks": { + "description": "Include code blocks", + "type": "boolean", + "default": true + }, + "ignore_code_languages": { + "description": "Fenced code languages to ignore", + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "spaces_per_tab": { + "description": "Number of spaces for each hard tab", + "type": "integer", + "minimum": 0, + "default": 1 + } + }, + "additionalProperties": false + }, + "MD011": { + "description": "MD011/no-reversed-links : Reversed link syntax : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md011.md", + "type": "boolean", + "default": true + }, + "no-reversed-links": { + "description": "MD011/no-reversed-links : Reversed link syntax : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md011.md", + "type": "boolean", + "default": true + }, + "MD012": { + "description": "MD012/no-multiple-blanks : Multiple consecutive blank lines : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md012.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "maximum": { + "description": "Consecutive blank lines", + "type": "integer", + "minimum": 1, + "default": 1 + } + }, + "additionalProperties": false + }, + "no-multiple-blanks": { + "description": "MD012/no-multiple-blanks : Multiple consecutive blank lines : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md012.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "maximum": { + "description": "Consecutive blank lines", + "type": "integer", + "minimum": 1, + "default": 1 + } + }, + "additionalProperties": false + }, + "MD013": { + "description": "MD013/line-length : Line length : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md013.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "line_length": { + "description": "Number of characters", + "type": "integer", + "minimum": 1, + "default": 80 + }, + "heading_line_length": { + "description": "Number of characters for headings", + "type": "integer", + "minimum": 1, + "default": 80 + }, + "code_block_line_length": { + "description": "Number of characters for code blocks", + "type": "integer", + "minimum": 1, + "default": 80 + }, + "code_blocks": { + "description": "Include code blocks", + "type": "boolean", + "default": true + }, + "tables": { + "description": "Include tables", + "type": "boolean", + "default": true + }, + "headings": { + "description": "Include headings", + "type": "boolean", + "default": true + }, + "strict": { + "description": "Strict length checking", + "type": "boolean", + "default": false + }, + "stern": { + "description": "Stern length checking", + "type": "boolean", + "default": false + } + }, + "additionalProperties": false + }, + "line-length": { + "description": "MD013/line-length : Line length : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md013.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "line_length": { + "description": "Number of characters", + "type": "integer", + "minimum": 1, + "default": 80 + }, + "heading_line_length": { + "description": "Number of characters for headings", + "type": "integer", + "minimum": 1, + "default": 80 + }, + "code_block_line_length": { + "description": "Number of characters for code blocks", + "type": "integer", + "minimum": 1, + "default": 80 + }, + "code_blocks": { + "description": "Include code blocks", + "type": "boolean", + "default": true + }, + "tables": { + "description": "Include tables", + "type": "boolean", + "default": true + }, + "headings": { + "description": "Include headings", + "type": "boolean", + "default": true + }, + "strict": { + "description": "Strict length checking", + "type": "boolean", + "default": false + }, + "stern": { + "description": "Stern length checking", + "type": "boolean", + "default": false + } + }, + "additionalProperties": false + }, + "MD014": { + "description": "MD014/commands-show-output : Dollar signs used before commands without showing output : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md014.md", + "type": "boolean", + "default": true + }, + "commands-show-output": { + "description": "MD014/commands-show-output : Dollar signs used before commands without showing output : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md014.md", + "type": "boolean", + "default": true + }, + "MD018": { + "description": "MD018/no-missing-space-atx : No space after hash on atx style heading : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md018.md", + "type": "boolean", + "default": true + }, + "no-missing-space-atx": { + "description": "MD018/no-missing-space-atx : No space after hash on atx style heading : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md018.md", + "type": "boolean", + "default": true + }, + "MD019": { + "description": "MD019/no-multiple-space-atx : Multiple spaces after hash on atx style heading : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md019.md", + "type": "boolean", + "default": true + }, + "no-multiple-space-atx": { + "description": "MD019/no-multiple-space-atx : Multiple spaces after hash on atx style heading : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md019.md", + "type": "boolean", + "default": true + }, + "MD020": { + "description": "MD020/no-missing-space-closed-atx : No space inside hashes on closed atx style heading : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md020.md", + "type": "boolean", + "default": true + }, + "no-missing-space-closed-atx": { + "description": "MD020/no-missing-space-closed-atx : No space inside hashes on closed atx style heading : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md020.md", + "type": "boolean", + "default": true + }, + "MD021": { + "description": "MD021/no-multiple-space-closed-atx : Multiple spaces inside hashes on closed atx style heading : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md021.md", + "type": "boolean", + "default": true + }, + "no-multiple-space-closed-atx": { + "description": "MD021/no-multiple-space-closed-atx : Multiple spaces inside hashes on closed atx style heading : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md021.md", + "type": "boolean", + "default": true + }, + "MD022": { + "description": "MD022/blanks-around-headings : Headings should be surrounded by blank lines : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md022.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "lines_above": { + "description": "Blank lines above heading", + "type": [ + "integer", + "array" + ], + "items": { + "type": "integer" + }, + "minimum": -1, + "default": 1 + }, + "lines_below": { + "description": "Blank lines below heading", + "type": [ + "integer", + "array" + ], + "items": { + "type": "integer" + }, + "minimum": -1, + "default": 1 + } + }, + "additionalProperties": false + }, + "blanks-around-headings": { + "description": "MD022/blanks-around-headings : Headings should be surrounded by blank lines : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md022.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "lines_above": { + "description": "Blank lines above heading", + "type": [ + "integer", + "array" + ], + "items": { + "type": "integer" + }, + "minimum": -1, + "default": 1 + }, + "lines_below": { + "description": "Blank lines below heading", + "type": [ + "integer", + "array" + ], + "items": { + "type": "integer" + }, + "minimum": -1, + "default": 1 + } + }, + "additionalProperties": false + }, + "MD023": { + "description": "MD023/heading-start-left : Headings must start at the beginning of the line : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md023.md", + "type": "boolean", + "default": true + }, + "heading-start-left": { + "description": "MD023/heading-start-left : Headings must start at the beginning of the line : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md023.md", + "type": "boolean", + "default": true + }, + "MD024": { + "description": "MD024/no-duplicate-heading : Multiple headings with the same content : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md024.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "siblings_only": { + "description": "Only check sibling headings", + "type": "boolean", + "default": false + } + }, + "additionalProperties": false + }, + "no-duplicate-heading": { + "description": "MD024/no-duplicate-heading : Multiple headings with the same content : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md024.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "siblings_only": { + "description": "Only check sibling headings", + "type": "boolean", + "default": false + } + }, + "additionalProperties": false + }, + "MD025": { + "description": "MD025/single-title/single-h1 : Multiple top-level headings in the same document : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md025.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "level": { + "description": "Heading level", + "type": "integer", + "minimum": 1, + "maximum": 6, + "default": 1 + }, + "front_matter_title": { + "description": "RegExp for matching title in front matter", + "type": "string", + "default": "^\\s*title\\s*[:=]" + } + }, + "additionalProperties": false + }, + "single-title": { + "description": "MD025/single-title/single-h1 : Multiple top-level headings in the same document : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md025.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "level": { + "description": "Heading level", + "type": "integer", + "minimum": 1, + "maximum": 6, + "default": 1 + }, + "front_matter_title": { + "description": "RegExp for matching title in front matter", + "type": "string", + "default": "^\\s*title\\s*[:=]" + } + }, + "additionalProperties": false + }, + "single-h1": { + "description": "MD025/single-title/single-h1 : Multiple top-level headings in the same document : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md025.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "level": { + "description": "Heading level", + "type": "integer", + "minimum": 1, + "maximum": 6, + "default": 1 + }, + "front_matter_title": { + "description": "RegExp for matching title in front matter", + "type": "string", + "default": "^\\s*title\\s*[:=]" + } + }, + "additionalProperties": false + }, + "MD026": { + "description": "MD026/no-trailing-punctuation : Trailing punctuation in heading : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md026.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "punctuation": { + "description": "Punctuation characters", + "type": "string", + "default": ".,;:!。,;:!" + } + }, + "additionalProperties": false + }, + "no-trailing-punctuation": { + "description": "MD026/no-trailing-punctuation : Trailing punctuation in heading : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md026.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "punctuation": { + "description": "Punctuation characters", + "type": "string", + "default": ".,;:!。,;:!" + } + }, + "additionalProperties": false + }, + "MD027": { + "description": "MD027/no-multiple-space-blockquote : Multiple spaces after blockquote symbol : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md027.md", + "type": "boolean", + "default": true + }, + "no-multiple-space-blockquote": { + "description": "MD027/no-multiple-space-blockquote : Multiple spaces after blockquote symbol : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md027.md", + "type": "boolean", + "default": true + }, + "MD028": { + "description": "MD028/no-blanks-blockquote : Blank line inside blockquote : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md028.md", + "type": "boolean", + "default": true + }, + "no-blanks-blockquote": { + "description": "MD028/no-blanks-blockquote : Blank line inside blockquote : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md028.md", + "type": "boolean", + "default": true + }, + "MD029": { + "description": "MD029/ol-prefix : Ordered list item prefix : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md029.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "style": { + "description": "List style", + "type": "string", + "enum": [ + "one", + "ordered", + "one_or_ordered", + "zero" + ], + "default": "one_or_ordered" + } + }, + "additionalProperties": false + }, + "ol-prefix": { + "description": "MD029/ol-prefix : Ordered list item prefix : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md029.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "style": { + "description": "List style", + "type": "string", + "enum": [ + "one", + "ordered", + "one_or_ordered", + "zero" + ], + "default": "one_or_ordered" + } + }, + "additionalProperties": false + }, + "MD030": { + "description": "MD030/list-marker-space : Spaces after list markers : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md030.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "ul_single": { + "description": "Spaces for single-line unordered list items", + "type": "integer", + "minimum": 1, + "default": 1 + }, + "ol_single": { + "description": "Spaces for single-line ordered list items", + "type": "integer", + "minimum": 1, + "default": 1 + }, + "ul_multi": { + "description": "Spaces for multi-line unordered list items", + "type": "integer", + "minimum": 1, + "default": 1 + }, + "ol_multi": { + "description": "Spaces for multi-line ordered list items", + "type": "integer", + "minimum": 1, + "default": 1 + } + }, + "additionalProperties": false + }, + "list-marker-space": { + "description": "MD030/list-marker-space : Spaces after list markers : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md030.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "ul_single": { + "description": "Spaces for single-line unordered list items", + "type": "integer", + "minimum": 1, + "default": 1 + }, + "ol_single": { + "description": "Spaces for single-line ordered list items", + "type": "integer", + "minimum": 1, + "default": 1 + }, + "ul_multi": { + "description": "Spaces for multi-line unordered list items", + "type": "integer", + "minimum": 1, + "default": 1 + }, + "ol_multi": { + "description": "Spaces for multi-line ordered list items", + "type": "integer", + "minimum": 1, + "default": 1 + } + }, + "additionalProperties": false + }, + "MD031": { + "description": "MD031/blanks-around-fences : Fenced code blocks should be surrounded by blank lines : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md031.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "list_items": { + "description": "Include list items", + "type": "boolean", + "default": true + } + }, + "additionalProperties": false + }, + "blanks-around-fences": { + "description": "MD031/blanks-around-fences : Fenced code blocks should be surrounded by blank lines : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md031.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "list_items": { + "description": "Include list items", + "type": "boolean", + "default": true + } + }, + "additionalProperties": false + }, + "MD032": { + "description": "MD032/blanks-around-lists : Lists should be surrounded by blank lines : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md032.md", + "type": "boolean", + "default": true + }, + "blanks-around-lists": { + "description": "MD032/blanks-around-lists : Lists should be surrounded by blank lines : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md032.md", + "type": "boolean", + "default": true + }, + "MD033": { + "description": "MD033/no-inline-html : Inline HTML : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md033.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "allowed_elements": { + "description": "Allowed elements", + "type": "array", + "items": { + "type": "string" + }, + "default": [] + } + }, + "additionalProperties": false + }, + "no-inline-html": { + "description": "MD033/no-inline-html : Inline HTML : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md033.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "allowed_elements": { + "description": "Allowed elements", + "type": "array", + "items": { + "type": "string" + }, + "default": [] + } + }, + "additionalProperties": false + }, + "MD034": { + "description": "MD034/no-bare-urls : Bare URL used : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md034.md", + "type": "boolean", + "default": true + }, + "no-bare-urls": { + "description": "MD034/no-bare-urls : Bare URL used : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md034.md", + "type": "boolean", + "default": true + }, + "MD035": { + "description": "MD035/hr-style : Horizontal rule style : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md035.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "style": { + "description": "Horizontal rule style", + "type": "string", + "default": "consistent" + } + }, + "additionalProperties": false + }, + "hr-style": { + "description": "MD035/hr-style : Horizontal rule style : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md035.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "style": { + "description": "Horizontal rule style", + "type": "string", + "default": "consistent" + } + }, + "additionalProperties": false + }, + "MD036": { + "description": "MD036/no-emphasis-as-heading : Emphasis used instead of a heading : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md036.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "punctuation": { + "description": "Punctuation characters", + "type": "string", + "default": ".,;:!?。,;:!?" + } + }, + "additionalProperties": false + }, + "no-emphasis-as-heading": { + "description": "MD036/no-emphasis-as-heading : Emphasis used instead of a heading : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md036.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "punctuation": { + "description": "Punctuation characters", + "type": "string", + "default": ".,;:!?。,;:!?" + } + }, + "additionalProperties": false + }, + "MD037": { + "description": "MD037/no-space-in-emphasis : Spaces inside emphasis markers : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md037.md", + "type": "boolean", + "default": true + }, + "no-space-in-emphasis": { + "description": "MD037/no-space-in-emphasis : Spaces inside emphasis markers : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md037.md", + "type": "boolean", + "default": true + }, + "MD038": { + "description": "MD038/no-space-in-code : Spaces inside code span elements : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md038.md", + "type": "boolean", + "default": true + }, + "no-space-in-code": { + "description": "MD038/no-space-in-code : Spaces inside code span elements : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md038.md", + "type": "boolean", + "default": true + }, + "MD039": { + "description": "MD039/no-space-in-links : Spaces inside link text : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md039.md", + "type": "boolean", + "default": true + }, + "no-space-in-links": { + "description": "MD039/no-space-in-links : Spaces inside link text : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md039.md", + "type": "boolean", + "default": true + }, + "MD040": { + "description": "MD040/fenced-code-language : Fenced code blocks should have a language specified : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md040.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "allowed_languages": { + "description": "List of languages", + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "language_only": { + "description": "Require language only", + "type": "boolean", + "default": false + } + }, + "additionalProperties": false + }, + "fenced-code-language": { + "description": "MD040/fenced-code-language : Fenced code blocks should have a language specified : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md040.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "allowed_languages": { + "description": "List of languages", + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "language_only": { + "description": "Require language only", + "type": "boolean", + "default": false + } + }, + "additionalProperties": false + }, + "MD041": { + "description": "MD041/first-line-heading/first-line-h1 : First line in a file should be a top-level heading : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md041.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "level": { + "description": "Heading level", + "type": "integer", + "minimum": 1, + "maximum": 6, + "default": 1 + }, + "front_matter_title": { + "description": "RegExp for matching title in front matter", + "type": "string", + "default": "^\\s*title\\s*[:=]" + } + }, + "additionalProperties": false + }, + "first-line-heading": { + "description": "MD041/first-line-heading/first-line-h1 : First line in a file should be a top-level heading : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md041.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "level": { + "description": "Heading level", + "type": "integer", + "minimum": 1, + "maximum": 6, + "default": 1 + }, + "front_matter_title": { + "description": "RegExp for matching title in front matter", + "type": "string", + "default": "^\\s*title\\s*[:=]" + } + }, + "additionalProperties": false + }, + "first-line-h1": { + "description": "MD041/first-line-heading/first-line-h1 : First line in a file should be a top-level heading : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md041.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "level": { + "description": "Heading level", + "type": "integer", + "minimum": 1, + "maximum": 6, + "default": 1 + }, + "front_matter_title": { + "description": "RegExp for matching title in front matter", + "type": "string", + "default": "^\\s*title\\s*[:=]" + } + }, + "additionalProperties": false + }, + "MD042": { + "description": "MD042/no-empty-links : No empty links : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md042.md", + "type": "boolean", + "default": true + }, + "no-empty-links": { + "description": "MD042/no-empty-links : No empty links : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md042.md", + "type": "boolean", + "default": true + }, + "MD043": { + "description": "MD043/required-headings : Required heading structure : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md043.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "headings": { + "description": "List of headings", + "type": "array", + "items": { + "type": "string", + "pattern": "^(\\*|\\+|#{1,6} .*)$" + }, + "default": [] + }, + "match_case": { + "description": "Match case of headings", + "type": "boolean", + "default": false + } + }, + "additionalProperties": false + }, + "required-headings": { + "description": "MD043/required-headings : Required heading structure : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md043.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "headings": { + "description": "List of headings", + "type": "array", + "items": { + "type": "string", + "pattern": "^(\\*|\\+|#{1,6} .*)$" + }, + "default": [] + }, + "match_case": { + "description": "Match case of headings", + "type": "boolean", + "default": false + } + }, + "additionalProperties": false + }, + "MD044": { + "description": "MD044/proper-names : Proper names should have the correct capitalization : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md044.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "names": { + "description": "List of proper names", + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "code_blocks": { + "description": "Include code blocks", + "type": "boolean", + "default": true + }, + "html_elements": { + "description": "Include HTML elements", + "type": "boolean", + "default": true + } + }, + "additionalProperties": false + }, + "proper-names": { + "description": "MD044/proper-names : Proper names should have the correct capitalization : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md044.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "names": { + "description": "List of proper names", + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "code_blocks": { + "description": "Include code blocks", + "type": "boolean", + "default": true + }, + "html_elements": { + "description": "Include HTML elements", + "type": "boolean", + "default": true + } + }, + "additionalProperties": false + }, + "MD045": { + "description": "MD045/no-alt-text : Images should have alternate text (alt text) : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md045.md", + "type": "boolean", + "default": true + }, + "no-alt-text": { + "description": "MD045/no-alt-text : Images should have alternate text (alt text) : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md045.md", + "type": "boolean", + "default": true + }, + "MD046": { + "description": "MD046/code-block-style : Code block style : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md046.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "style": { + "description": "Block style", + "type": "string", + "enum": [ + "consistent", + "fenced", + "indented" + ], + "default": "consistent" + } + }, + "additionalProperties": false + }, + "code-block-style": { + "description": "MD046/code-block-style : Code block style : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md046.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "style": { + "description": "Block style", + "type": "string", + "enum": [ + "consistent", + "fenced", + "indented" + ], + "default": "consistent" + } + }, + "additionalProperties": false + }, + "MD047": { + "description": "MD047/single-trailing-newline : Files should end with a single newline character : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md047.md", + "type": "boolean", + "default": true + }, + "single-trailing-newline": { + "description": "MD047/single-trailing-newline : Files should end with a single newline character : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md047.md", + "type": "boolean", + "default": true + }, + "MD048": { + "description": "MD048/code-fence-style : Code fence style : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md048.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "style": { + "description": "Code fence style", + "type": "string", + "enum": [ + "consistent", + "backtick", + "tilde" + ], + "default": "consistent" + } + }, + "additionalProperties": false + }, + "code-fence-style": { + "description": "MD048/code-fence-style : Code fence style : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md048.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "style": { + "description": "Code fence style", + "type": "string", + "enum": [ + "consistent", + "backtick", + "tilde" + ], + "default": "consistent" + } + }, + "additionalProperties": false + }, + "MD049": { + "description": "MD049/emphasis-style : Emphasis style : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md049.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "style": { + "description": "Emphasis style", + "type": "string", + "enum": [ + "consistent", + "asterisk", + "underscore" + ], + "default": "consistent" + } + }, + "additionalProperties": false + }, + "emphasis-style": { + "description": "MD049/emphasis-style : Emphasis style : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md049.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "style": { + "description": "Emphasis style", + "type": "string", + "enum": [ + "consistent", + "asterisk", + "underscore" + ], + "default": "consistent" + } + }, + "additionalProperties": false + }, + "MD050": { + "description": "MD050/strong-style : Strong style : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md050.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "style": { + "description": "Strong style", + "type": "string", + "enum": [ + "consistent", + "asterisk", + "underscore" + ], + "default": "consistent" + } + }, + "additionalProperties": false + }, + "strong-style": { + "description": "MD050/strong-style : Strong style : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md050.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "style": { + "description": "Strong style", + "type": "string", + "enum": [ + "consistent", + "asterisk", + "underscore" + ], + "default": "consistent" + } + }, + "additionalProperties": false + }, + "MD051": { + "description": "MD051/link-fragments : Link fragments should be valid : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md051.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "ignore_case": { + "description": "Ignore case of fragments", + "type": "boolean", + "default": false + } + }, + "additionalProperties": false + }, + "link-fragments": { + "description": "MD051/link-fragments : Link fragments should be valid : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md051.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "ignore_case": { + "description": "Ignore case of fragments", + "type": "boolean", + "default": false + } + }, + "additionalProperties": false + }, + "MD052": { + "description": "MD052/reference-links-images : Reference links and images should use a label that is defined : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md052.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "shortcut_syntax": { + "description": "Include shortcut syntax", + "type": "boolean", + "default": false + } + }, + "additionalProperties": false + }, + "reference-links-images": { + "description": "MD052/reference-links-images : Reference links and images should use a label that is defined : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md052.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "shortcut_syntax": { + "description": "Include shortcut syntax", + "type": "boolean", + "default": false + } + }, + "additionalProperties": false + }, + "MD053": { + "description": "MD053/link-image-reference-definitions : Link and image reference definitions should be needed : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md053.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "ignored_definitions": { + "description": "Ignored definitions", + "type": "array", + "items": { + "type": "string" + }, + "default": [ + "//" + ] + } + }, + "additionalProperties": false + }, + "link-image-reference-definitions": { + "description": "MD053/link-image-reference-definitions : Link and image reference definitions should be needed : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md053.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "ignored_definitions": { + "description": "Ignored definitions", + "type": "array", + "items": { + "type": "string" + }, + "default": [ + "//" + ] + } + }, + "additionalProperties": false + }, + "MD054": { + "description": "MD054/link-image-style : Link and image style : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md054.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "autolink": { + "description": "Allow autolinks", + "type": "boolean", + "default": true + }, + "inline": { + "description": "Allow inline links and images", + "type": "boolean", + "default": true + }, + "full": { + "description": "Allow full reference links and images", + "type": "boolean", + "default": true + }, + "collapsed": { + "description": "Allow collapsed reference links and images", + "type": "boolean", + "default": true + }, + "shortcut": { + "description": "Allow shortcut reference links and images", + "type": "boolean", + "default": true + }, + "url_inline": { + "description": "Allow URLs as inline links", + "type": "boolean", + "default": true + } + }, + "additionalProperties": false + }, + "link-image-style": { + "description": "MD054/link-image-style : Link and image style : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md054.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "autolink": { + "description": "Allow autolinks", + "type": "boolean", + "default": true + }, + "inline": { + "description": "Allow inline links and images", + "type": "boolean", + "default": true + }, + "full": { + "description": "Allow full reference links and images", + "type": "boolean", + "default": true + }, + "collapsed": { + "description": "Allow collapsed reference links and images", + "type": "boolean", + "default": true + }, + "shortcut": { + "description": "Allow shortcut reference links and images", + "type": "boolean", + "default": true + }, + "url_inline": { + "description": "Allow URLs as inline links", + "type": "boolean", + "default": true + } + }, + "additionalProperties": false + }, + "MD055": { + "description": "MD055/table-pipe-style : Table pipe style : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md055.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "style": { + "description": "Table pipe style", + "type": "string", + "enum": [ + "consistent", + "leading_only", + "trailing_only", + "leading_and_trailing", + "no_leading_or_trailing" + ], + "default": "consistent" + } + }, + "additionalProperties": false + }, + "table-pipe-style": { + "description": "MD055/table-pipe-style : Table pipe style : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md055.md", + "type": [ + "boolean", + "object" + ], + "default": true, + "properties": { + "style": { + "description": "Table pipe style", + "type": "string", + "enum": [ + "consistent", + "leading_only", + "trailing_only", + "leading_and_trailing", + "no_leading_or_trailing" + ], + "default": "consistent" + } + }, + "additionalProperties": false + }, + "MD056": { + "description": "MD056/table-column-count : Table column count : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md056.md", + "type": "boolean", + "default": true + }, + "table-column-count": { + "description": "MD056/table-column-count : Table column count : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md056.md", + "type": "boolean", + "default": true + }, + "MD058": { + "description": "MD058/blanks-around-tables : Tables should be surrounded by blank lines : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md058.md", + "type": "boolean", + "default": true + }, + "blanks-around-tables": { + "description": "MD058/blanks-around-tables : Tables should be surrounded by blank lines : https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md058.md", + "type": "boolean", + "default": true + }, + "headings": { + "description": "headings : MD001, MD003, MD018, MD019, MD020, MD021, MD022, MD023, MD024, MD025, MD026, MD036, MD041, MD043", + "type": "boolean", + "default": true + }, + "bullet": { + "description": "bullet : MD004, MD005, MD007, MD032", + "type": "boolean", + "default": true + }, + "ul": { + "description": "ul : MD004, MD005, MD007, MD030, MD032", + "type": "boolean", + "default": true + }, + "indentation": { + "description": "indentation : MD005, MD007, MD027", + "type": "boolean", + "default": true + }, + "whitespace": { + "description": "whitespace : MD009, MD010, MD012, MD027, MD028, MD030, MD037, MD038, MD039", + "type": "boolean", + "default": true + }, + "hard_tab": { + "description": "hard_tab : MD010", + "type": "boolean", + "default": true + }, + "links": { + "description": "links : MD011, MD034, MD039, MD042, MD051, MD052, MD053, MD054", + "type": "boolean", + "default": true + }, + "blank_lines": { + "description": "blank_lines : MD012, MD022, MD031, MD032, MD047", + "type": "boolean", + "default": true + }, + "line_length": { + "description": "line_length : MD013", + "type": "boolean", + "default": true + }, + "code": { + "description": "code : MD014, MD031, MD038, MD040, MD046, MD048", + "type": "boolean", + "default": true + }, + "atx": { + "description": "atx : MD018, MD019", + "type": "boolean", + "default": true + }, + "spaces": { + "description": "spaces : MD018, MD019, MD020, MD021, MD023", + "type": "boolean", + "default": true + }, + "atx_closed": { + "description": "atx_closed : MD020, MD021", + "type": "boolean", + "default": true + }, + "blockquote": { + "description": "blockquote : MD027, MD028", + "type": "boolean", + "default": true + }, + "ol": { + "description": "ol : MD029, MD030, MD032", + "type": "boolean", + "default": true + }, + "html": { + "description": "html : MD033", + "type": "boolean", + "default": true + }, + "url": { + "description": "url : MD034", + "type": "boolean", + "default": true + }, + "hr": { + "description": "hr : MD035", + "type": "boolean", + "default": true + }, + "emphasis": { + "description": "emphasis : MD036, MD037, MD049, MD050", + "type": "boolean", + "default": true + }, + "language": { + "description": "language : MD040", + "type": "boolean", + "default": true + }, + "spelling": { + "description": "spelling : MD044", + "type": "boolean", + "default": true + }, + "accessibility": { + "description": "accessibility : MD045", + "type": "boolean", + "default": true + }, + "images": { + "description": "images : MD045, MD052, MD053, MD054", + "type": "boolean", + "default": true + }, + "table": { + "description": "table : MD055, MD056, MD058", + "type": "boolean", + "default": true + } + }, + "additionalProperties": false +} \ No newline at end of file diff --git a/_build/html/_sources/universities/trinity-college-dublin.md b/_build/html/_sources/universities/trinity-college-dublin.md index 328b61e..8f1a8f6 100644 --- a/_build/html/_sources/universities/trinity-college-dublin.md +++ b/_build/html/_sources/universities/trinity-college-dublin.md @@ -25,6 +25,6 @@ The OSPO’s primary function is the empowerment of researchers to execute on th ## Other Context -Examples of open source spinouts from TCD include [Software Radio Systems](https://www.srs.io/) (SRS) and [TerminusDB](https://terminusdb.com/). SRS is an open software radio company. Their mission is to develop high-performance software radio solutions for 4G and 5G, with complete UE and RAN solutions, supporting the creation of new mobile services. They work with commercial partners to develop custom solutions for bespoke production networks across challenging terrestrial, air-to-ground and satellite deployments. +Examples of open source spinouts from TCD include Software Radio Systems (SRS) and [TerminusDB](https://terminusdb.com/). SRS is an open software radio company. Their mission is to develop high-performance software radio solutions for 4G and 5G, with complete UE and RAN solutions, supporting the creation of new mobile services. They work with commercial partners to develop custom solutions for bespoke production networks across challenging terrestrial, air-to-ground and satellite deployments. [TerminusDB](https://terminusdb.com/), the company, is the organization behind TerminusDB, the open source document-oriented graph database focused on collaboration and versioning (as well as query performance). diff --git a/_build/html/universities/trinity-college-dublin.html b/_build/html/universities/trinity-college-dublin.html index 088e8d5..e5e414f 100644 --- a/_build/html/universities/trinity-college-dublin.html +++ b/_build/html/universities/trinity-college-dublin.html @@ -467,7 +467,7 @@

Primary Contacts

Other Context#

-

Examples of open source spinouts from TCD include Software Radio Systems (SRS) and TerminusDB. SRS is an open software radio company. Their mission is to develop high-performance software radio solutions for 4G and 5G, with complete UE and RAN solutions, supporting the creation of new mobile services. They work with commercial partners to develop custom solutions for bespoke production networks across challenging terrestrial, air-to-ground and satellite deployments.

+

Examples of open source spinouts from TCD include Software Radio Systems (SRS) and TerminusDB. SRS is an open software radio company. Their mission is to develop high-performance software radio solutions for 4G and 5G, with complete UE and RAN solutions, supporting the creation of new mobile services. They work with commercial partners to develop custom solutions for bespoke production networks across challenging terrestrial, air-to-ground and satellite deployments.

TerminusDB, the company, is the organization behind TerminusDB, the open source document-oriented graph database focused on collaboration and versioning (as well as query performance).

diff --git a/_config.yml b/_config.yml index 90d3f8a..ea994eb 100644 --- a/_config.yml +++ b/_config.yml @@ -4,7 +4,7 @@ title: SustainOSS Academic Ecosystem Map author: SustainOSS Academic Working Group logo: logo.svg -exclude_patterns: [README.md, CODE_OF_CONDUCT.md, contributing.md] +exclude_patterns: [README.md, CODE_OF_CONDUCT.md, contributing.md, node_modules] # Force re-execution of notebooks on each build. # See https://jupyterbook.org/content/execute.html diff --git a/universities/trinity-college-dublin.md b/universities/trinity-college-dublin.md index 328b61e..8f1a8f6 100644 --- a/universities/trinity-college-dublin.md +++ b/universities/trinity-college-dublin.md @@ -25,6 +25,6 @@ The OSPO’s primary function is the empowerment of researchers to execute on th ## Other Context -Examples of open source spinouts from TCD include [Software Radio Systems](https://www.srs.io/) (SRS) and [TerminusDB](https://terminusdb.com/). SRS is an open software radio company. Their mission is to develop high-performance software radio solutions for 4G and 5G, with complete UE and RAN solutions, supporting the creation of new mobile services. They work with commercial partners to develop custom solutions for bespoke production networks across challenging terrestrial, air-to-ground and satellite deployments. +Examples of open source spinouts from TCD include Software Radio Systems (SRS) and [TerminusDB](https://terminusdb.com/). SRS is an open software radio company. Their mission is to develop high-performance software radio solutions for 4G and 5G, with complete UE and RAN solutions, supporting the creation of new mobile services. They work with commercial partners to develop custom solutions for bespoke production networks across challenging terrestrial, air-to-ground and satellite deployments. [TerminusDB](https://terminusdb.com/), the company, is the organization behind TerminusDB, the open source document-oriented graph database focused on collaboration and versioning (as well as query performance).