From 689def73251cd0dace2576d51e7acb50f2c1b600 Mon Sep 17 00:00:00 2001 From: twanvl Date: Sat, 14 Jul 2007 00:29:25 +0000 Subject: [PATCH] Yet more function documentation git-svn-id: svn://svn.code.sf.net/p/magicseteditor/code/trunk@571 0fc631ac-6414-0410-93d0-97cfa31319b6 --- doc/function/bool_no.png | Bin 0 -> 318 bytes doc/function/bool_yes.png | Bin 0 -> 316 bytes doc/function/built_in_image.txt | 18 +++++++++++++ doc/function/chosen.txt | 0 doc/function/combine_blend.txt | 22 +++++++++++++++ doc/function/combined_editor.txt | 0 doc/function/contains.txt | 1 + doc/function/copy_file.txt | 0 doc/function/curly_quotes.txt | 0 doc/function/drop_shadow.txt | 0 doc/function/english_number.txt | 24 +++++++++++++++++ doc/function/english_plural.txt | 0 doc/function/enlarge.txt | 0 doc/function/filter_list.txt | 1 + doc/function/filter_text.txt | 0 doc/function/format.txt | 2 ++ doc/function/image1.png | Bin 0 -> 8038 bytes doc/function/image2.png | Bin 0 -> 7706 bytes doc/function/image3.png | Bin 0 -> 978 bytes doc/function/image_combine_blend.png | Bin 0 -> 6143 bytes doc/function/image_enlarge.png | Bin 0 -> 8434 bytes doc/function/image_linear_blend.png | Bin 0 -> 12466 bytes doc/function/image_masked_blend.png | Bin 0 -> 8879 bytes doc/function/image_set_alpha.png | Bin 0 -> 5509 bytes doc/function/image_set_mask.png | Bin 0 -> 3754 bytes doc/function/index.txt | 14 +++++----- doc/function/linear_blend.txt | 28 +++++++++++++++++++ doc/function/masked_blend.txt | 24 +++++++++++++++++ doc/function/match.txt | 3 ++- doc/function/number_of_items.txt | 1 + doc/function/position.txt | 1 + doc/function/process_english_hints.txt | 0 doc/function/remove_choice.txt | 0 doc/function/remove_tag.txt | 0 doc/function/replace.txt | 36 +++++++++++++++++++++++++ doc/function/require_choice.txt | 0 doc/function/reverse.txt | 1 + doc/function/set_alpha.txt | 0 doc/function/set_combine.txt | 0 doc/function/set_mask.txt | 0 doc/function/sort_list.txt | 1 + doc/function/substring.txt | 1 + doc/function/symbol_variation.txt | 0 doc/function/symbols_to_html.txt | 0 doc/function/tag_contents.txt | 0 doc/function/to_html.txt | 0 doc/function/to_lower.txt | 1 + doc/function/to_text.txt | 0 doc/function/to_title.txt | 1 + doc/function/to_upper.txt | 1 + doc/function/trace.txt | 1 + doc/function/write_image_file.txt | 0 doc/function/write_text_file.txt | 0 53 files changed, 174 insertions(+), 8 deletions(-) create mode 100644 doc/function/bool_no.png create mode 100644 doc/function/bool_yes.png create mode 100644 doc/function/built_in_image.txt create mode 100644 doc/function/chosen.txt create mode 100644 doc/function/combine_blend.txt create mode 100644 doc/function/combined_editor.txt create mode 100644 doc/function/copy_file.txt create mode 100644 doc/function/curly_quotes.txt create mode 100644 doc/function/drop_shadow.txt create mode 100644 doc/function/english_number.txt create mode 100644 doc/function/english_plural.txt create mode 100644 doc/function/enlarge.txt create mode 100644 doc/function/filter_text.txt create mode 100644 doc/function/image1.png create mode 100644 doc/function/image2.png create mode 100644 doc/function/image3.png create mode 100644 doc/function/image_combine_blend.png create mode 100644 doc/function/image_enlarge.png create mode 100644 doc/function/image_linear_blend.png create mode 100644 doc/function/image_masked_blend.png create mode 100644 doc/function/image_set_alpha.png create mode 100644 doc/function/image_set_mask.png create mode 100644 doc/function/linear_blend.txt create mode 100644 doc/function/masked_blend.txt create mode 100644 doc/function/process_english_hints.txt create mode 100644 doc/function/remove_choice.txt create mode 100644 doc/function/remove_tag.txt create mode 100644 doc/function/replace.txt create mode 100644 doc/function/require_choice.txt create mode 100644 doc/function/set_alpha.txt create mode 100644 doc/function/set_combine.txt create mode 100644 doc/function/set_mask.txt create mode 100644 doc/function/symbol_variation.txt create mode 100644 doc/function/symbols_to_html.txt create mode 100644 doc/function/tag_contents.txt create mode 100644 doc/function/to_html.txt create mode 100644 doc/function/to_text.txt create mode 100644 doc/function/write_image_file.txt create mode 100644 doc/function/write_text_file.txt diff --git a/doc/function/bool_no.png b/doc/function/bool_no.png new file mode 100644 index 0000000000000000000000000000000000000000..aad5139400ab9aecd1b65e5e24a9d0c97ffb02a8 GIT binary patch literal 318 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!6#=yXs@#Xw?AcwQSBeIx*f$uN~Gak=hkpdDd zag8W(&d<$F%`0JG=+x>3YGAnS>EaktF(-M($pZ%%4)FvWt7j__Y!MOo%v`9piJ@a! zleX)1CHCOfb*w%vjE3d{>s>eUbwpk~>l|LdpC!UE|Io4r){~e7-noZ2h)!N|fMY(B z{|ae`H_0#lu_f}Yco3?g+jX|9GvH)GP8f@WYPs`EZwH+gxohGJa<~=lc}_DwdFTa` zkHa3uj_nINjhQ#{3s?&n9pKi~3uiXu7m#-q`pt9XYRjGkt|Rv8i`06G9dtZ$BzBxX z;uERB+}$uka6022hZ+gr%Rwt*jAnIjdsy74Eb!csS4CUQ;~0b6%*)&B=d>>adXvG^ L)z4*}Q$iB}YaMSP literal 0 HcmV?d00001 diff --git a/doc/function/bool_yes.png b/doc/function/bool_yes.png new file mode 100644 index 0000000000000000000000000000000000000000..12936af646c6907023785bfa1623ddc7bf4f0afa GIT binary patch literal 316 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!6#=yXs@#Xw?AcwQSBeIx*f$uN~Gak=hkpdDd zag8W(&d<$F%`0JG=+x>3YGAnO>EaktF()}8BO!qyS>Yhhk^hntTrWrn+~G?8b9`wN z>&(l{!HFzK!cIi(WBOPalcw<4LP77CT3}CyMS+^!&&0h@-^)ALFCT4mQjk@=2dtMXucVAMkr))n|Eu>63-| zc5IL`v9j{K8o^fTtF=;Z2G`feUOe?e7bG~hezX-h{gA6!H{fzT^G4o~Ciaf^PDjNb zZ)G_(qftaOc;U9D8xL9bwjX)vX2g=xAnJHF;!pyoK=cG5V}{QDbqdoge%=FmlEKr} K&t;ucLK6TSWOOzF literal 0 HcmV?d00001 diff --git a/doc/function/built_in_image.txt b/doc/function/built_in_image.txt new file mode 100644 index 00000000..87ab7419 --- /dev/null +++ b/doc/function/built_in_image.txt @@ -0,0 +1,18 @@ +Function: built_in_image + +--Usage-- +> built_in_image(image_name) + +Retrieve an image built into the program. + +--Parameters-- +! Parameter Type Description +| @input@ [[type:string]] Name of the image to retrieve + +--Possible values-- +! Image name Image +| @"bool_yes"@ bool_yes +| @"bool_no"@ bool_no + +--Examples-- +> built_in_image("bool_yes") == [[Image]] diff --git a/doc/function/chosen.txt b/doc/function/chosen.txt new file mode 100644 index 00000000..e69de29b diff --git a/doc/function/combine_blend.txt b/doc/function/combine_blend.txt new file mode 100644 index 00000000..3b67af60 --- /dev/null +++ b/doc/function/combine_blend.txt @@ -0,0 +1,22 @@ +Function: linear_blend + +--Usage-- +> combine_blend(image1: image, image2: image, combine: combine_mode) + +Blend two images together using a [[type:combine|combine function]]. + +The images must have the same size. + +--Parameters-- +! Parameter Type Description +| @image1@ [[type:image]] First image to blend +| @image2@ [[type:image]] Second image to blend +| @combine@ [[type:combine]] Combining function to use + +--Examples-- +> combine_blend(image1: "image1.png", image2: "image2.png", combine: "add") == [[Image]] +
 combine_blend(image1: "image1.png", image2: "image2.png", combine: "add") == "image_combine_blend.png"
+ +--See also-- +| [[fun:linear_blend]] Blend two images together using a linear gradient. +| [[fun:masked_blend]] Blend two images together using a third mask image. diff --git a/doc/function/combined_editor.txt b/doc/function/combined_editor.txt new file mode 100644 index 00000000..e69de29b diff --git a/doc/function/contains.txt b/doc/function/contains.txt index b9cd0364..93463605 100644 --- a/doc/function/contains.txt +++ b/doc/function/contains.txt @@ -16,3 +16,4 @@ Does one string contain another at any position? --See also-- | [[fun:match|match / match_rule]] Does a string match a regular expression? +| [[fun:chosen]] Is the given choice selected in a multiple choice value? diff --git a/doc/function/copy_file.txt b/doc/function/copy_file.txt new file mode 100644 index 00000000..e69de29b diff --git a/doc/function/curly_quotes.txt b/doc/function/curly_quotes.txt new file mode 100644 index 00000000..e69de29b diff --git a/doc/function/drop_shadow.txt b/doc/function/drop_shadow.txt new file mode 100644 index 00000000..e69de29b diff --git a/doc/function/english_number.txt b/doc/function/english_number.txt new file mode 100644 index 00000000..30daa6c2 --- /dev/null +++ b/doc/function/english_number.txt @@ -0,0 +1,24 @@ +Function: english_number + +--Usage-- +> english_number(number) +> english_number_a(number) +> english_number_multiple(number) +> english_number_ordinal(number) + +Convert a number to English. +These four functions all behave slightly differently: +! Function function(1) function(2) function(3) +| @english_number@ @"one"@ @"two"@ @"three"@ +| @english_number_a@ @"a"@ @"two"@ @"three"@ +| @english_number_multiple@ @""@ @"two"@ @"three"@ +| @english_number_ordinal@ @"first"@ @"second"@ @"third"@ + +If the input is a keyword parameter value, it leaves a hint tag for [[fun:process_english_hints]], to indicate whether the following word should be plural or singular. + +--Parameters-- +! Parameter Type Description +| @input@ [[type:int]] Number to convert + +--Examples-- +> english_number(1) == "one" diff --git a/doc/function/english_plural.txt b/doc/function/english_plural.txt new file mode 100644 index 00000000..e69de29b diff --git a/doc/function/enlarge.txt b/doc/function/enlarge.txt new file mode 100644 index 00000000..e69de29b diff --git a/doc/function/filter_list.txt b/doc/function/filter_list.txt index 05a9716d..9100ce3b 100644 --- a/doc/function/filter_list.txt +++ b/doc/function/filter_list.txt @@ -8,6 +8,7 @@ Returns a new list that contain all elements in the list for which the filter pr If possible, when using a set, use the [[fun:position]] and [[fun:number_of_items]] functions instead. --Parameters-- +! Parameter Type Description | @input@ [[type:list]] or [[type:set]] List to filter. | @filter@ [[type:function]] Function indicating which values to keep, Will be called with @input@ set to an item in the list. diff --git a/doc/function/filter_text.txt b/doc/function/filter_text.txt new file mode 100644 index 00000000..e69de29b diff --git a/doc/function/format.txt b/doc/function/format.txt index 2580ecd6..f6897dc0 100644 --- a/doc/function/format.txt +++ b/doc/function/format.txt @@ -5,9 +5,11 @@ Function: format > format_rule(format: format_specification)(some_number) Format a number or other string as a string, [[http://www.cplusplus.com/reference/clibrary/cstdio/printf.html|printf]] style. + This function is available in [[script:rule form]]. --Parameters-- +! Parameter Type Description | @input@ [[type:int]] or [[type:double]] or [[type:string]] Item to format. | @format@ [[type:string]] Format specification. diff --git a/doc/function/image1.png b/doc/function/image1.png new file mode 100644 index 0000000000000000000000000000000000000000..d10286063e31fb5d6d588b100ef67d806493c71f GIT binary patch literal 8038 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 U;wFA4$^ZZW07*qoM6N<$g0(%+*8l(j literal 0 HcmV?d00001 diff --git a/doc/function/image3.png b/doc/function/image3.png new file mode 100644 index 0000000000000000000000000000000000000000..54af18344e3b576d8150e68d55856dcb236c30b4 GIT binary patch literal 978 zcmV;@11pF33NqRbVF}#ZDnqB004<9jRpV!18+%0K~#90?OMI6!Y~-Eh^U)x z4vGlkU{|4ws5t4ai<3{#7w`p~)JN#(D!3JV1$QSwCtXE_g5K|4i`>LxJ+e*L1A@@rQk)&|Uy!kBhryWKv%fX=fl3qNe=fi^&7 z012@{GMOZ)ACJdqgFwgidY!F-;y)#P+WZ>$BOZ^3?FX7R_`w(WHDtZ4u^xT>#C|2i^W>4Hl0qra|;V1fjv(t!9c(i7XkS5BPf+hQKH+}@Anu2E}?B` zn)X7F$z=Ev0M_gEooOb7z>k1|V6)kXi2gE6SF08G=$M(zH#$C5gr@NpejfL{v*$DAjsu%{v9wF3_=p5(`owgGaL@t2 zn-xLetcyfM2S82~O8|LSECJ+pu>?>*o&>&!JmCQ~>PavfjYJTu0lwe>Ajk5JjuHU!`Fxb2&BfG5ig{_>IToZ1cny znx?@&Lb!qd%OSylt-Sjh_X0s_<8x`CuB6KZ8b5AK3rfIqbV^*VlH@kcRdvQc9em~&;IppWSd-6v# zaL4`7Q6iGbBuQt$p14}A$`-F2k4GPcRHqWMZ0vTsKy3`?LT?*Xk2@+#ggKd8tyUs3 z73{@Bh>3bOy4h@?{Ds>~WHK4p#6}eGJDrw|Kk}s1`0ecoi2wiq07*qoM6N<$g0aEE A1poj5 literal 0 HcmV?d00001 diff --git a/doc/function/image_combine_blend.png b/doc/function/image_combine_blend.png new file mode 100644 index 0000000000000000000000000000000000000000..4b123a1be8e6b7dd10e9585f38c43c86dbbe178c GIT binary patch literal 6143 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 RXMq3!002ovPDHLkV1mDz;S2x( literal 0 HcmV?d00001 diff --git a/doc/function/image_enlarge.png b/doc/function/image_enlarge.png new file mode 100644 index 0000000000000000000000000000000000000000..3157a62b09e4ee317aabae1c1ec0e41b357c2552 GIT binary patch literal 8434 zcmVVGd000SeMObu0Z*6U5ZgcXNVRrMDt}C4A{pb3PY%AFzT*pT@Z?U)) zh_k`-JtNaUX=9Hhh3mLgoxyfrJZsq1O#8I0Kb&Msw^>eZ*}@M$S@|CJPz5iXXkT=2 z@VuVo0Na0#lPuPHD#hvz_RR;4z2{t((A6HP=ns|Weny(vBbgq$(BEzB_mm<93VZi) zBG+ZL2YJqA&?v5>&0MeTvI3ZvXlMl!97@$4LdG3%$$Q) z-%1l1p+)^6a8RJ{JmL+9D!ccV_CGhZVT*2Wl3fj2z?KZ`U`5&pwnPjNQTZS$0)8{i z`p>mf7d$;ytZ_AoW0Z7NYlluM(SbMXKin<#@Da|_Om63 zTX%>*RaNPHr!h>>1y`=yl-2fWo7jWp{gLF`mvL``4k#(ALS^lZhHy#=$hxIue9_(u zCD=pdJ-L^y*m3)^|G|I%(`%ln;wk-X-5w!v=(IH-ZO>NsyS}hDQmywaJAXBHJP}#<*0c2Ke)OC^U$WKU5aia8Qc5i7b-oSd#v@@5T73OFKf2aa0XsNlIJfg23JQ;1t?kXwh`pyo?xuIWt(ZL?9 zAZEvPviX}WGb>z!+^{7sD41Zc)U&T=`mu9VTx{VMZHdYx`-$Cb@iuMe=-D6gsb{^LhhdwG-zJ zL0GWaN_F-J%V}4oI@`i6o_SNU+G~bZC{WU$tr0NjH^zueic@nh6clJVw&I)Yl`|XA}9yx10rYgTc#|4c>D(|}H#!X+e zg$s-=6)tD-UG!Hjpy1f^YxQH4CR-wbhfeW%*xRfPN^rC#V4c0uuiikmV|`}{{k!6b zK^Z@MO2WEvUs$JfXDto+61w{0ZAuO~?LN(4t1p!P^rbf*&QYZQU5$-AYqm%Z<7ejjwLkNv zTG~CO?cy~NW9UNbGfSQM%oV9CT8R8X9%TQEj!q31sgQFM`g`t5)%satcL7u+Ng_bX z4xRGPJ1GA%H>f19WjSSh>JqS8zqwiifxd86Nn{OrJ~cz9_@blH>?u2~QQmhQwNjnb z9&=YheJC>4xWA0=JW8Wf&CgsXB_c)K?$jmml@8QvhEt=*&Z@d06s>5{7Oyunh8ECS z3YV4a6)qd&hR~f>%D2RtyAmRSpd%`@!bT&Ict^a@dfdXLt6(J`KtY2QE{Wzy$+HG! z1Xl2zmP8ykg_UhSs88w)QjrlW5hGE#D;+pxpS2V9X`sY`#!(DsuQ;A;z+8k+y%FuB zpI*J8_C`MN62QCVkc2bjgP5dMU^SmLs`~Y8CH2f@d#{P-u7m>5TJPk8eX#{9|JC}A z(LpOIK}rh%xg9v5P<01eLKoY1*aBAmK%y!Qtgu9=Jip;4_>UuJ?9E2rbD9sDpJydh z6|C4Y?0T(%4Ot+mqQ|l%yrL=7hmr2I;mYvtWAsjWAk+jmiNMjK7i?CerQ*>ffsv++ zVzFQ;Jjz{(-i`MItAX>a-yDA{SV5A6E`#-~4UVBe3b!BjBEl*LcZmZwHyGw~HwCP+ z)ReFxe{SORC5#5y#rJS${y%pm;-G=|2?~m;fK_(D3dCvh@m=w};lo=Z4#t>fgL7EA zUB3Z9@&Q(FH?|(r@Gr1b8|C+;imc-~a#uvEV-QnqK zRDg^waWGNf5`cv&!QE4psYB&osi7M;bvxQ2uCx18$KaygWCE-xfIn83KSRB!OA?9H zM;pyuY4KLoV0>2z9Rq>tyqrc0KB+ZGT>-4v4Osnp!5B6`8{18GPhL=xZe+*6YR*On zEA-{yDV0h{s?jr&d*z9Vsz#$|9=Co2F$rBBTNMY1EfD9&&q;@R zPNUA$8o7JHvVJ8~-e%fbZ!*e0ZXK{H=fC~#3=n`{uDfC8mi=UpR}$d4D^cxyjd!ax z$Rb{`Feo2Cr@;)PhgnBqu}b&FJ64vSirHv7N?7gtRaj-+(njgvm3ldyVdYMHqO$+~ zyJ`bd_n+v5|E851kF<~5sA9+#?E_LWXV83W50nbfj;TZrLtJ2#l_VTs6 z^Q^S%m>MX{sE-}sYpc=USN?2IR)I_U>fkBO<(($ksHI-47Fw)4XJ*G2sG6Fo>E$jWybtqZ3AeBR7TP*IGqDpZ(q4njE^Xuvl51sUa)Qt3N3wM*6lS? zMX5xhm$MRfY0CjiPPeZH_^O}%$tnu*{sh&*drg&tZ@;$}YDZ2;4kCc&fcCLK^Lxw4 zcs`o!oAx=1kkW_tDA4$j;zJ5@SK55QRkH&EXq6ayr9BLrAGPqVQ*7KaqLD5{-SYX{ zpncHXe>o%VVdH^mN-!)~4rmo++!;|3mrvW|St&6vZP^Zo(8wqxJOR_1T9?T-Y_Yvu zN8JI?uH`b#p#Y#U_%pRcOoPp=L<%0OB>g7$^ox&Ld8@H`@`QC=C8lY(zfVlF_nTSA ziT3SMD^@#}(-E?qXuit$kSCa%g86D{M3 zN-`TPb1Hz=ZHiHzuZU?eK)Vo_Hu?t#v=3WoFnTa3@?&BeO~ERCZ7X)_@B~QM7NC*B z_TzohDtn=3o|PClvec0L#07h|iFcml5ol)xnyeu;L|LDAp<0FCk_8KeXXR7{Ui zKslh5bFAY>Ev@BP_Ug}naw|U3G*JC(D{D7i zxhYmtdo55>HU3&XX&7EJcO|B~muegHZ5USs+LSd~2GEY4jRnxeGTr9Yxb+iof0151-Bx6QB|ArEBUvfCdFv z2GH2DKueZ_z_g0#F3^%KD$gTlVt;9+A5UBrD^}A5TAVZ1VKhf9_8!y3veTF7jd^0a zr?fzOp_WF$cH<+^q!$7$Ni7l3$j$ma5^O-Do9z8HFm0@jUm+Oq$??l(c7D z*9i%Gg=r%f%YD8VK!ZnUe>i-|gWlxTl1@OQ-=NT0fobIC%YL#P>-R})FsB0TxTCP} zWx@)7_A4DsM3XOFpK|OxS$cNl3>?c&Vb~X(~N@JE6Xes zXjZO=W)@6J?n-PqFwNKQkyG1RDo7g(+4dk0&VyrG41U}^hRZo zZo;^T?Gvq8IaHb__dTRW!fJS$cHT2AUQ zfu>;rrqORuXbcogyAnV{KwqjWvFSL`@o0xnD?}&*Xmk_ipQIiF>fs9NWCa6gB|CWP zaG$v$&r1KE|Nea|{RcvVkPS!JZ@<~+?WOcPj!@}pV_)_cx!@+Hj9c09iz?o8m*@sj6X%NrGeXUaya5vO)7?L(`}0LEbx! z6%5@9^MWj(63FkTZS0RJGLQ?m=sZ1bxQ=ehbQY|8j;Zw{*(eba($pT%@s~4ZK6-m- z|A&yE8NpQRCr2F7Y~w!BjBHfssm#K0PO1qh}QE)t4Lz7juXeMR9 zL$lW#Nag#_)#bfsskIePm7C(*?^ft=y7f5SABsL*P2=6XAGMQOgVg-vyC^esg$;XS zd|0`+f}s&SRG$8(=NW{G0%qOJFH3Ldo zEAIo%Xid*l*Q|;^W+bAJ81wNluZm`>6KKYG)PIgnndz7>*7EZinnp+$gCF_)FwpF{ zXr^q}ABvcI$&T`3&}^k>rnX5HkeMP$5?May+qh10MfHZrx8xI2x$df;?T2)di5SyC z5OwgN!7!Ag$_N0xiU=EtW;)rU<^K_yHPtByGy_HK5&LE?dQCL*f%BBE9@8x|D+bM8 zsHLMqoao(ga(wJYG^?ijEZTy8#6+{3UZ#s0B+Z0QDVp_F<{=Kgogr%T0R=;a<8EpV zk}n18J-_BhJjRIahjr=#&B!CY205ZrGx$a{gXm4aRT7{X7KqGXcKKz8i8?|eGoo2t zot0B3{pU!dde77tRwC7(tEpo&tQ%O+z}YwAQ8a~t*ynB1wxnji$I3{}WIm`~eu)5p zAl8ZQy=J!_eNzr)yXx`=!(`-^ZqxQq#n0O0mnBG9HqZ=nOu80rWn|S!SWq*AW(DK* zvdhT}_RN>|UNaG<$5b8j6U-&i%~`Jh6@HzE}gaYVD@sy%|? zayl5lWZucI)rOiuxDbGn5zR*FnbF)$vdPZ|n%&6uPLm{YW4`xaFX)`7cmv6Czu7uG z=si<&bcu%YQTV}e%LP!I@5Gb$n`;wv7%E}P8ar{3KI88- zbG&4C(M-~ODN?gklt2$?M6=nJaoyetYIg3jocrCSz2gMOA^?P%=DFydE~5tYj+4~P ze?I0+07ax`c3aJ8qrUwYeH+(N%3gP{Aeb$h#hwz))V>)GP#t{6xhu~21|y;us{T2o z&)W&PhQl=^&0Mb|VuE?Mu?i_tvyn?AzR>Koh-UNTh8Qt`fSY2ZL2J?~=?C~hiBDRq zaJkRotvav(>Fk@H(8V8>n#ES{R>!L*HIqOGn#IT%YF4(Z2#?!>W{k$Wk9*Oo%pWl< zQp>T*JW~kPi9zIzH1+ZH>FQ(ogwzZ*E3Nlnj-Jue7tp07I!{s(urnt_Gievbr|+Cx znqhFB|4I>xW{H~N;0aUVQz<%W#+zX^>I~NKSE`fLj7_f*&17V525*KGVQ_+)IgJ%8 zQitm>8z3YADgIfY89IrFLZ3)D@cp@oUeEzh+}7ZQ;(0zHF;1dp*qQg5YTAQlXw=Av zX7%)J8YLLAK-EP^$X%pn=dQ#itWai9Gp6UiwA2&)9GWHQd19t$ChT_~a|{ZDZl&IV zX1x>x!xNo@P-zm-jL{B9hvm&tvlgOR+wYu0LNm`ovzpGN#+Lfd(oUc~y81?{c9>5{ zqFEE|;112sUDgTgtMx3r@g~F8W11@Atww5^N6+cNgRonTlMSP3LNf}I5&GWJ3I@C> zZh|2L4Ce>{?E#u$Y9J3I+LoYZWxMG}pw_?`)w?jFS&E>!8E950(Cqj*xh)t$#rB-8 z525{)Ouae5P>OxIb3pmePQ3GEy=^q+2R)DBrzKMD`VHj-X{KpHvp3U3Ga?+jENYq} zCsqgn*ndK=M?4T{MkT~WG&`UcNux~a6$@%6nqhFr82$jo%L;172(xgjreyB(S zz1lz{nzK=c=&78hDQ|&w949r?S@BzqXY}@bhP0OmDJQN1)_g+3 zk|Bt%)^|piZ{`U(lms5Wm8Nqp-2V6#I<;vzR@(Y$P%|v~5~-QqSID}hm#v`Lu46hl z6U~B}RT0g6(|)}>`B+dhz5hB;0HG0SYq38qMjqa-%QeX_;h}?RHC6k!kb}``^*gQd!*?h)`bioyG+gnH6!~Ugg$fN zq(%T#xZaQ$yCE}o)C`wM@5hS}OhmI?N9Aiu2RjpJW(&5&81Ing&@|;O3Y4;GYox2i zf|{{V`gDzn@Cur}-oRh3t9NsUEL1REr>GIpVE$BHmrPlsF)^QzhAxzF^_eBh^lqRT z_Zq)amJ~HZyZ_osYDV*!yHOaY4VO2gX<`m{AJgNvhbnkPGh8!&Ubjbcj?}D^MQ7R#{tlS1I?6#&qXue zd{B=A`7qGTsswL_kH$@tH!_n$v$A@llk#}Fs%v)4(pe|-(&W{^O!Yc6BbZ(@Vt2*G zhA#3zGriQB5newBR?+O5>@wpF5z;>q+oq#r9Y1dE*y~+K^$uq~A#tyXvNIY17+ODW zCD)9wVl?lMcZ?FAHLjBmngh-B9$uB+VpO1+9@cC=pl4n*Rz9pFn&~|%{JUIp3pL`_ zV|C<|OS3c@gWj8hQ3Fx4>oJ-p!Jw<7zn6&Lq1khyS&Ru<`ZPvt`dd3WQm|$SqRw$o z`Gmy2TaM9gJ{HY1oZ+wTE%OgF`{{^n+%J&6%%PdQ*^m46Iy0!~AU!nAK?~$dUaqI7YWNyx#)lp6(5!|IZKto*JsXXbhx($u zJw;}Y>9FnoGFU)Ug@h^uHB*-W-9R(7aA@|pCQVngT5zQ`mBmfWxmB&(uW+&xk$sw$cW=Gohw!?atgeH+sNa5VfqC-GJe>_?L)&ZJv zi(X#4y)QtYdwt9vU0Hb*!Ltf^^I!eL_ z(abwf*3%R+BbuGkYhF}A+6ce-yF;@lt4MNI{;c!buLfu*Nj+tGw;j@pyWpGLE9W1) z{BuaCS)iG)=cmk-^p<2DHEBcx4+eN7`;m&uUZ9zxowtdmsdwIx=19#*!sJ!zkHu=D zW^yZE&(!1XVT;sWiZ_r6xO_bZ>#!Z&rs{Z%pP^=FF6rL{L9=F~WR59mf&r-|+tjja z^jA-h4`*`g_c#U2max1ui5lOii{uj$^&pxZ*8@6Olp>nx=nG{Fr^kAP!f$RxYF5q{ z{HT9?5P36#q2Cos3^dEoTNB~MWxe?ec?QhY>mel?=+%MKmt>0z#OciuuKFm@43~U| zW(4#1c6!8zDlFcn9M%~m;>35AV?>AO9FHXF-|VoHlzys+=vXhGkRauzK(nf%SAqwVXqRl$DMEAxK-keyI1S*)SsAD|8|BcfV4xY9!OJkDP&31q=>Ajl(zL!SvW3zm0;UZnk8G*kOtu|wR;OEZiJ@jO&cZ$42-H3!IcKqX8)@t5kDUr0qn zGliafn`S$Ys0#&}sc8n9Q68chtN`Qofo2Tn>^q`a#tjJoYKD9<)faEz(W|4-3}e+} zs{V}VJyRn_gcDb36sKtd!6$8E2tee61I?snOdpRVhbIjCbu5w4U0$Sme>pmS#*dL= z8Wi@w`M3GiQgjqf9yjcbUfj}XO-o?};1&xu>rE8KfC}=n0001SNkl literal 0 HcmV?d00001 diff --git a/doc/function/image_linear_blend.png b/doc/function/image_linear_blend.png new file mode 100644 index 0000000000000000000000000000000000000000..8619df24b989ddc794599c2fa3f8e97bd15f7542 GIT binary patch literal 12466 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 literal 0 HcmV?d00001 diff --git a/doc/function/image_masked_blend.png b/doc/function/image_masked_blend.png new file mode 100644 index 0000000000000000000000000000000000000000..3768781d2238b11e0c5373bffe2121bb6844b9fc GIT binary patch literal 8879 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 literal 0 HcmV?d00001 diff --git a/doc/function/image_set_alpha.png b/doc/function/image_set_alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..ae5bcf8222472f855be4ce23c4064f30fba0ed82 GIT binary patch literal 5509 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 "cards"@. -| [[fun:english_singular]] Find the singular of a word, @"cards" -> "card"@. -| [[fun:process_english_hints]] Process the hints left by english_ functions in a keyword's reminder text. +| [[fun:english_number]] Convert a number to text (@"one"@, @"two"@, ''etc.'') +| [[fun:english_number|english_number_a]] Convert a number to text (@"a"@, @"two"@, ''etc.'') +| [[fun:english_number|english_number_multiple]] Convert a number to text (@""@, @"two"@, ''etc.'') +| [[fun:english_number|english_number_ordinal]] Convert a number to text (@"first"@, @"second"@, ''etc.'') +| [[fun:english_plural]] Find the plural of a word, @"card" -> "cards"@. +| [[fun:english_plural|english_singular]] Find the singular of a word, @"cards" -> "card"@. +| [[fun:process_english_hints]] Process the hints left by english_ functions in a keyword's reminder text. ! Fields and values <<< | [[fun:combined_editor|forward_editor]] Use one field to edit another. diff --git a/doc/function/linear_blend.txt b/doc/function/linear_blend.txt new file mode 100644 index 00000000..767a3372 --- /dev/null +++ b/doc/function/linear_blend.txt @@ -0,0 +1,28 @@ +Function: linear_blend + +--Usage-- +> linear_blend( +> image1: image, image2: image, +> x1: coordinate, y1: coordinate, +> x2: coordinate, y2: coordinate, +> ) + +Blend two images together using a linear gradient. + +The images must have the same size. + +--Parameters-- +! Parameter Type Description +| @image1@ [[type:image]] First image to blend +| @image2@ [[type:image]] Second image to blend +| @x1@,@y1@ [[type:double]] Coordinates where the gradient begins, and the first image is shown for 100% +| @x2@,@y2@ [[type:double]] Coordinates where the gradient ends, and the second image is shown for 100% + +--Examples-- +This gives a vertical gradient: +> linear_blend(image1: "image1.png", image2: "image2.png", x1:0, y1:0, x2:1, y2:1) == [[Image]] +
 linear_blend(image1: "image1.png", image2: "image2.png", x1:0, y1:0, x2:1, y2:1) == "image_linear_blend.png"
+ +--See also-- +| [[fun:masked_blend]] Blend two images together using a third mask image. +| [[fun:combine_blend]] Blend two images together using a given [[type:combine|combining mode]]. diff --git a/doc/function/masked_blend.txt b/doc/function/masked_blend.txt new file mode 100644 index 00000000..3d990773 --- /dev/null +++ b/doc/function/masked_blend.txt @@ -0,0 +1,24 @@ +Function: linear_blend + +--Usage-- +> linear_blend(light: image, dark: image, mask: image) + +Blend two images together using a third as a mask. +On pixels the mask is white the 'light' image is used, where the mask is black the 'dark' image is used. +For grey pixels the images are blended. + +The images must have the same size. + +--Parameters-- +! Parameter Type Description +| @light@ [[type:image]] Image for the light colores in the mask +| @dark@ [[type:image]] Image for the dark colores in the mask +| @mask@ [[type:image]] Mask image that selects between the two images + +--Examples-- +> masked_blend(light: "image1.png", dark: "image2.png", mask: "image3.png") == [[Image]] +
 masked_blend(light: "image1.png", dark: "image2.png", mask: "image3.png") == "image_masked_blend.png"
+ +--See also-- +| [[fun:linear_blend]] Blend two images together using a linear gradient. +| [[fun:combine_blend]] Blend two images together using a given [[type:combine|combining mode]]. diff --git a/doc/function/match.txt b/doc/function/match.txt index d135a1a8..1627f90f 100644 --- a/doc/function/match.txt +++ b/doc/function/match.txt @@ -2,7 +2,7 @@ Function: match --Usage-- > match(some_string, match: regular expression) -> match_rule(regular expression)() +> match_rule(match:regular expression)(some_string) Does a string match the given [[type:regex|regular expression]]? @@ -10,6 +10,7 @@ This function is available in [[script:rule form]]. When the match is performed many times the rule form is more efficient, because the regular expression is only compiled once. --Parameters-- +! Parameter Type Description | @input@ [[type:string]] String to match. | @match@ [[type:regex]] Regular expression to match. diff --git a/doc/function/number_of_items.txt b/doc/function/number_of_items.txt index 8f09d5f3..3c6014e7 100644 --- a/doc/function/number_of_items.txt +++ b/doc/function/number_of_items.txt @@ -6,6 +6,7 @@ Function: number_of_items Returns the position of an item in a list or characters in a string. --Parameters-- +! Parameter Type Description | @in@ [[type:list]] or [[type:map]] or [[type:set]] or [[type:string]] Object to determine the number of items of. When it is a set, returns the number of cards. diff --git a/doc/function/position.txt b/doc/function/position.txt index 3c7f7c31..70352c38 100644 --- a/doc/function/position.txt +++ b/doc/function/position.txt @@ -8,6 +8,7 @@ The first position is @0@. If the item is not found in the list, returns @-1@. --Parameters-- +! Parameter Type Description | @of@ ''anything'' Item to look for. | @in@ [[type:list]] or [[type:set]] List to look in. Can be a [[type:set]] when looking for a card. diff --git a/doc/function/process_english_hints.txt b/doc/function/process_english_hints.txt new file mode 100644 index 00000000..e69de29b diff --git a/doc/function/remove_choice.txt b/doc/function/remove_choice.txt new file mode 100644 index 00000000..e69de29b diff --git a/doc/function/remove_tag.txt b/doc/function/remove_tag.txt new file mode 100644 index 00000000..e69de29b diff --git a/doc/function/replace.txt b/doc/function/replace.txt new file mode 100644 index 00000000..9bf4f79b --- /dev/null +++ b/doc/function/replace.txt @@ -0,0 +1,36 @@ +Function: replace + +--Usage-- +> replace(some_string, match: regular expression, replace: replacement, in_context: regular expression) +> replace_rule(match: ..., replace: ..., in_context: ...)(some_string) + +Replace all matches of a regular expression with a replacement value. +The replacement can either be a string or a function. +* The string can contain backreference @"\\0"@, @"\\1"@, etc. refering to the components captured by the parentheses in the regular expression. +* When the replacement is a function, the variable @input@ contains the whole match and @_1@, @_2@, etc. contains the components. + +Optionally a context can be given. The replacement is only performed if the string where the match is represented as <match> also matches the context. + +This function is available in [[script:rule form]]. +When the replacement is performed many times the rule form is more efficient, because the regular expression is only compiled once. + +--Parameters-- +! Parameter Type Description +| @input@ [[type:string]] String to replace in. +| @match@ [[type:regex]] Regular expression to match. +| @replace@ [[type:string]] or [[type:function]] + Replacement +| @in_context@ [[type:regex]] (optional) Context to match + +--Examples-- +> replace(match: "a", replace: "e", "banana") == "benene" +> replace(match: "a", replace: "e", in_context: "n", "banana") == "benena" +> replace(match: "(a|b)x", replace: "[\\0,\\1]", "axabxc") == "[ax,a]a[bx,b]c" +> replace(match: "[ab]", replace: { to_upper(input) }, "banana") == "BAnAnA" +> +> f := replace_rule(match: "xx+", replace: "A") +> f("xyzxxyyzz") == "xyzAAyyzz" + +--See also-- +| [[fun:filter_text|filter_text / filter_rule]] + Keep only the text matching a regular expression. diff --git a/doc/function/require_choice.txt b/doc/function/require_choice.txt new file mode 100644 index 00000000..e69de29b diff --git a/doc/function/reverse.txt b/doc/function/reverse.txt index 4f720029..bd5d047f 100644 --- a/doc/function/reverse.txt +++ b/doc/function/reverse.txt @@ -6,6 +6,7 @@ Function: reverse Reverse a string. --Parameters-- +! Parameter Type Description | @input@ [[type:string]] String to reverse. --Examples-- diff --git a/doc/function/set_alpha.txt b/doc/function/set_alpha.txt new file mode 100644 index 00000000..e69de29b diff --git a/doc/function/set_combine.txt b/doc/function/set_combine.txt new file mode 100644 index 00000000..e69de29b diff --git a/doc/function/set_mask.txt b/doc/function/set_mask.txt new file mode 100644 index 00000000..e69de29b diff --git a/doc/function/sort_list.txt b/doc/function/sort_list.txt index 771ab8d3..c202ef12 100644 --- a/doc/function/sort_list.txt +++ b/doc/function/sort_list.txt @@ -7,6 +7,7 @@ Order the elements in a list in lexicographical order, from smallest to largest. Optionally order by some other property. --Parameters-- +! Parameter Type Description | @input@ [[type:list]] or [[type:set]] List to sort. | @order_by@ [[type:function]] (optional) Function to order by, for example when @order_by: {input.name}@ orders items by their name property. diff --git a/doc/function/substring.txt b/doc/function/substring.txt index 72450482..f3e0e814 100644 --- a/doc/function/substring.txt +++ b/doc/function/substring.txt @@ -6,6 +6,7 @@ Function: substring Extract a subsection of a string. --Parameters-- +! Parameter Type Description | @input@ [[type:string]] String to extract something from. | @begin@ [[type:int]] (optional) Index of first character to keep (the first index is 0). If ommitted, starts at the begining of the string. diff --git a/doc/function/symbol_variation.txt b/doc/function/symbol_variation.txt new file mode 100644 index 00000000..e69de29b diff --git a/doc/function/symbols_to_html.txt b/doc/function/symbols_to_html.txt new file mode 100644 index 00000000..e69de29b diff --git a/doc/function/tag_contents.txt b/doc/function/tag_contents.txt new file mode 100644 index 00000000..e69de29b diff --git a/doc/function/to_html.txt b/doc/function/to_html.txt new file mode 100644 index 00000000..e69de29b diff --git a/doc/function/to_lower.txt b/doc/function/to_lower.txt index e3f16a4e..35ad5d49 100644 --- a/doc/function/to_lower.txt +++ b/doc/function/to_lower.txt @@ -6,6 +6,7 @@ Function: to_lower Convert a string to lower case. --Parameters-- +! Parameter Type Description | @input@ [[type:string]] String to convert. --Examples-- diff --git a/doc/function/to_text.txt b/doc/function/to_text.txt new file mode 100644 index 00000000..e69de29b diff --git a/doc/function/to_title.txt b/doc/function/to_title.txt index 049333a3..345b500a 100644 --- a/doc/function/to_title.txt +++ b/doc/function/to_title.txt @@ -6,6 +6,7 @@ Function: to_title Convert a string to title case, where each words starts with an upper case leter. --Parameters-- +! Parameter Type Description | @input@ [[type:string]] String to convert. --Examples-- diff --git a/doc/function/to_upper.txt b/doc/function/to_upper.txt index 31b46ab1..7ad35e40 100644 --- a/doc/function/to_upper.txt +++ b/doc/function/to_upper.txt @@ -6,6 +6,7 @@ Function: to_upper Convert a string to upper case. --Parameters-- +! Parameter Type Description | @input@ [[type:string]] String to convert. --Examples-- diff --git a/doc/function/trace.txt b/doc/function/trace.txt index c8836615..eb40ea83 100644 --- a/doc/function/trace.txt +++ b/doc/function/trace.txt @@ -6,6 +6,7 @@ Function: trace Output a message for debugging purposes, for example to investigate what is going on in some function. --Parameters-- +! Parameter Type Description | @input@ [[type:string]] Message --Examples-- diff --git a/doc/function/write_image_file.txt b/doc/function/write_image_file.txt new file mode 100644 index 00000000..e69de29b diff --git a/doc/function/write_text_file.txt b/doc/function/write_text_file.txt new file mode 100644 index 00000000..e69de29b