Template:Function: Difference between revisions

From Kolmafia
Jump to navigation Jump to search
imported>StDoodle
mNo edit summary
No edit summary
 
(100 intermediate revisions by 3 users not shown)
Line 1: Line 1:
<noinclude>This is the main function template. Supply the function ''name,'' the data type of the value it ''returns,'' and what, if any, ''parameters'' it takes.</noinclude>
<includeonly><p><b>{{#if: {{{aggregate|}}}|{{Lnkstart}}Data Types#Aggregate{{!}}{{{return_type}}}{{Lnkend}}|{{Lnkstart}}Data Types#{{{return_type}}}{{!}}{{{return_type}}}{{Lnkend}} }}{{#if: {{{return_also|}}}|&nbsp;/&nbsp;{{#if: {{{aggregate|}}}|{{Lnkstart}}Aggregate|{{{return_also}}}{{Lnkend}}|{{Lnkstart}}{{{return_also}}}{{Lnkend}} }} }}&nbsp;{{{name}}}(</b>{{#if: {{{parameter1|}}}|{{{parameter1}}} }}{{#if: {{{parameter2|}}}|<b>,</b>{{{parameter2}}} }}{{#if: {{{parameter3|}}}|<b>,</b>{{{parameter3}}} }}{{#if: {{{parameter4|}}}|<b>,</b>{{{parameter4}}} }}{{#if: {{{parameter5|}}}|<b>,</b>{{{parameter5}}} }}<b>)</b></p>{{
<includeonly>
#if: {{{p1desc|}}}|<ul><li> {{{p1desc}}}</li>}}{{
{{#customtitle:{{{name}}}()|{{{name}}}()}}
#if: {{{p2desc|}}}|<li> {{{p2desc}}}</li>}}{{
'''[[{{{returns}}}]]''' '''{{{name}}}('''<nowiki></nowiki>{{{parameters}}}<nowiki></nowiki>''')'''
#if: {{{p3desc|}}}|<li> {{{p3desc}}}</li>}}{{
{{#if: parameter1 | {{params|p1}} }}
#if: {{{p4desc|}}}|<li> {{{p4desc}}}</li>}}{{
{{#if: parameter2 | {{params|p2}} }}
#if: {{{p5desc|}}}|<li> {{{p5desc}}}</li>}}{{#if: {{{p1desc|}}}| </ul> }}</includeonly>
[[Category:Ash Functions]]
<noinclude>This is the template to display a line of function information (for the function page template, see [[Template:FunctionPage]]).
</includeonly>
==Using This Template==
*"name" should be set to the name of the function, without parentheses (for link-building & displaying with parameters; parentheses will automatically be added by the template in the appropriate place).
*"aggregate" should be listed and set to anything you'd like if the function returns an [[aggregate]] (map) data type. If this function returns a simple data type, delete this line.
*"return_type" should be set to the datatype returned by the function.
*"return_also" should be set to a secondary datatype. For instance, some functions can return both a [[string]] and a [[buffer]]. For most functions, which only return a single datatype, this line should be deleted.
*"parameter1" through "parameter5" should be set to the parameters the function accepts. Each should be set using [[Template:Param]]. Use these parameters in order: don't start with "parameter2" if you don't include a "parameter1". (They can be listed in any order, if you really desire; you just can't skip an earlier parameter if you want them to display correctly.)
**The first argument is the data type of the parameter
**The second argument is the short description to display for the parameter (optional).
**If the parameter is an aggregate, you should include "ag=yes" in the template call.
**For more information, see [[Template:Param]].
*"p1desc" through "p5desc" are for long descriptions of the parameter. They will be displayed in list form below the function call line if used.
**Again, it's recommended that you list them in numerical order.
**For consistency, if you refer to the short description of the parameter, wrap it in [[Template:Pspan]].
**If you want sub-listing for the parameter description, use additional lines in the assignment that start with <nowiki>"**"</nowiki> to create a nested list.
<pre>
{{Function|
name=NAME_OF_FUNCTION|
aggregate=ANYTHING_IF_RETURNS_AGGREGATE_OR_DELETE|
return_type=DATATYPE_RETURNED_(IF_AGGREGATE_FULL_MAP_DEFINITION)|
return_also=SECONDARY_DATATYPE_RETURNED_OR_DELETE|
parameter1={{Param|DATATYPE|SHORT_DESC}}|
parameter2={{Param|DATATYPE|SHORT_DESC}}|
parameter3={{Param|DATATYPE|SHORT_DESC}}|
parameter4={{Param|DATATYPE|SHORT_DESC}}|
parameter5={{Param|DATATYPE|SHORT_DESC}}|
p1desc=LONG_DESCRIPTION_OF_PARAMETER|
p2desc=LONG_DESCRIPTION_OF_PARAMETER|
p3desc=LONG_DESCRIPTION_OF_PARAMETER|
p4desc=LONG_DESCRIPTION_OF_PARAMETER|
p5desc=LONG_DESCRIPTION_OF_PARAMETER}}
</pre>
<templatedata>
{
  "description": "Display the call signature of an ASH function",
  "params": {
    "name": {
      "label": "Function name",
      "description": "Function name without parentheses",
      "required": true,
      "example": "{{#var:name}}",
      "type": "line"
    },
    "aggregate": {
      "label": "Returns aggregate?",
      "description": "\"yes\" if the function returns an aggregate type. Otherwise, this parameter must be empty.",
      "example": "{{#var:aggregate}}",
      "type": "line"
    },
    "return_type": {
      "label": "Return type",
      "description": "Return type of the function",
      "required": true,
      "example": "{{#var:return_type}}",
      "type": "line"
    },
    "return_also": {
      "label": "Secondary return type",
      "description": "Secondary return type of the function. Used only for functions that can return multiple types (e.g. string or buffer).",
      "example": "{{#var:return_also}}",
      "type": "line"
    },
    "parameter1": {
      "label": "Parameter 1",
      "description": "Parameter 1. Use {{Param}} to describe a parameter",
      "example": "{{Param|param_type|param_name}}",
      "type": "string"
    },
    "parameter2": {
      "label": "Parameter 2",
      "description": "Parameter 2. Use {{Param}} to describe a parameter.",
      "example": "{{Param|param_type|param_name}}",
      "type": "string"
    },
    "parameter3": {
      "label": "Parameter 3",
      "description": "Parameter 3. Use {{Param}} to describe a parameter.",
      "example": "{{Param|param_type|param_name}}",
      "type": "string"
    },
    "parameter4": {
      "label": "Parameter 4",
      "description": "Parameter 4. Use {{Param}} to describe a parameter.",
      "example": "{{Param|param_type|param_name}}",
      "type": "string"
    },
    "parameter5": {
      "label": "Parameter 5",
      "description": "Parameter 5. Use {{Param}} to describe a parameter.",
      "example": "{{Param|param_type|param_name}}",
      "type": "string"
    },
    "p1desc": {
      "label": "Parameter 1 description",
      "description": "Long description for parameter 1",
      "example": "{{Pspan|param_name}} is the parameter",
      "type": "string"
    },
    "p2desc": {
      "label": "Parameter 2 description",
      "description": "Long description for parameter 2",
      "example": "{{Pspan|param_name}} is the parameter",
      "type": "string"
    },
    "p3desc": {
      "label": "Parameter 3 description",
      "description": "Long description for parameter 3",
      "example": "{{Pspan|param_name}} is the parameter",
      "type": "string"
    },
    "p4desc": {
      "label": "Parameter 4 description",
      "description": "Long description for parameter 4",
      "example": "{{Pspan|param_name}} is the parameter",
      "type": "string"
    },
    "p5desc": {
      "label": "Parameter 5 description",
      "description": "Long description for parameter 5",
      "example": "{{Pspan|param_name}} is the parameter",
      "type": "string"
    }
  },
  "sets": [
    {
      "label": "Param1",
      "params": ["parameter1", "p1desc"]
    },
    {
      "label": "Param2",
      "params": ["parameter2", "p2desc"]
    },
    {
      "label": "Param3",
      "params": ["parameter3", "p3desc"]
    },
    {
      "label": "Param4",
      "params": ["parameter4", "p4desc"]
    },
    {
      "label": "Param5",
      "params": ["parameter5", "p5desc"]
    }
  ]
}
</templatedata>
[[Category:Basic Templates]]
</noinclude>

Latest revision as of 12:25, 18 December 2020

This is the template to display a line of function information (for the function page template, see Template:FunctionPage).

Using This Template

  • "name" should be set to the name of the function, without parentheses (for link-building & displaying with parameters; parentheses will automatically be added by the template in the appropriate place).
  • "aggregate" should be listed and set to anything you'd like if the function returns an aggregate (map) data type. If this function returns a simple data type, delete this line.
  • "return_type" should be set to the datatype returned by the function.
  • "return_also" should be set to a secondary datatype. For instance, some functions can return both a string and a buffer. For most functions, which only return a single datatype, this line should be deleted.
  • "parameter1" through "parameter5" should be set to the parameters the function accepts. Each should be set using Template:Param. Use these parameters in order: don't start with "parameter2" if you don't include a "parameter1". (They can be listed in any order, if you really desire; you just can't skip an earlier parameter if you want them to display correctly.)
    • The first argument is the data type of the parameter
    • The second argument is the short description to display for the parameter (optional).
    • If the parameter is an aggregate, you should include "ag=yes" in the template call.
    • For more information, see Template:Param.
  • "p1desc" through "p5desc" are for long descriptions of the parameter. They will be displayed in list form below the function call line if used.
    • Again, it's recommended that you list them in numerical order.
    • For consistency, if you refer to the short description of the parameter, wrap it in Template:Pspan.
    • If you want sub-listing for the parameter description, use additional lines in the assignment that start with "**" to create a nested list.
{{Function|
name=NAME_OF_FUNCTION|
aggregate=ANYTHING_IF_RETURNS_AGGREGATE_OR_DELETE|
return_type=DATATYPE_RETURNED_(IF_AGGREGATE_FULL_MAP_DEFINITION)|
return_also=SECONDARY_DATATYPE_RETURNED_OR_DELETE|
parameter1={{Param|DATATYPE|SHORT_DESC}}|
parameter2={{Param|DATATYPE|SHORT_DESC}}|
parameter3={{Param|DATATYPE|SHORT_DESC}}|
parameter4={{Param|DATATYPE|SHORT_DESC}}|
parameter5={{Param|DATATYPE|SHORT_DESC}}|
p1desc=LONG_DESCRIPTION_OF_PARAMETER|
p2desc=LONG_DESCRIPTION_OF_PARAMETER|
p3desc=LONG_DESCRIPTION_OF_PARAMETER|
p4desc=LONG_DESCRIPTION_OF_PARAMETER|
p5desc=LONG_DESCRIPTION_OF_PARAMETER}}

Display the call signature of an ASH function

Template parameters[Edit template data]

ParameterDescriptionTypeStatus
Function namename

Function name without parentheses

Example
{{#var:name}}
Linerequired
Returns aggregate?aggregate

"yes" if the function returns an aggregate type. Otherwise, this parameter must be empty.

Example
{{#var:aggregate}}
Lineoptional
Return typereturn_type

Return type of the function

Example
{{#var:return_type}}
Linerequired
Secondary return typereturn_also

Secondary return type of the function. Used only for functions that can return multiple types (e.g. string or buffer).

Example
{{#var:return_also}}
Lineoptional
Parameter 1parameter1

Parameter 1. Use {{Param}} to describe a parameter

Example
{{Param|param_type|param_name}}
Stringoptional
Parameter 2parameter2

Parameter 2. Use {{Param}} to describe a parameter.

Example
{{Param|param_type|param_name}}
Stringoptional
Parameter 3parameter3

Parameter 3. Use {{Param}} to describe a parameter.

Example
{{Param|param_type|param_name}}
Stringoptional
Parameter 4parameter4

Parameter 4. Use {{Param}} to describe a parameter.

Example
{{Param|param_type|param_name}}
Stringoptional
Parameter 5parameter5

Parameter 5. Use {{Param}} to describe a parameter.

Example
{{Param|param_type|param_name}}
Stringoptional
Parameter 1 descriptionp1desc

Long description for parameter 1

Example
{{Pspan|param_name}} is the parameter
Stringoptional
Parameter 2 descriptionp2desc

Long description for parameter 2

Example
{{Pspan|param_name}} is the parameter
Stringoptional
Parameter 3 descriptionp3desc

Long description for parameter 3

Example
{{Pspan|param_name}} is the parameter
Stringoptional
Parameter 4 descriptionp4desc

Long description for parameter 4

Example
{{Pspan|param_name}} is the parameter
Stringoptional
Parameter 5 descriptionp5desc

Long description for parameter 5

Example
{{Pspan|param_name}} is the parameter
Stringoptional