Templates¶
EEex Function Template Details¶
The link and section name for the EEex function is placed a the top of the rst file. Internal link anchors in documents are formatted to begin with .. _
then the section link followed by a :
.. _EEex_Function:
EEex_Function
=============
Note: The section name to be displayed has a line of =
under it, that must at least match the text length of the section name text
The function description follows:
This function does something cool
A declaration of the function and its parameters is placed in a code block. Code blocks begin with ::
followed by a blank line. The function declaration must be indented by three spaces for it to be placed in a code block format. A blank line must follow the end of the code declaration.
::
EEex_Function(Param1, Param2)
Any parameters are then specified, with each parameter name surrounded by *
so that they are shown in italic. A short description of the parameter and notes about it are placed after the -
**Parameters**
* *Param1* - Does something awesome
* *Param2* - A boolean value to indicate if *Param1* is only slighly awesome or fully awesome
Anything returned from the function is specified next
**Returns**
Returns the result of the awesome function as an integer value
Any other information about the function or notes on parameter usage or other specifics is placed under notes
**Notes**
EEex_Function awesome effect is random
Example usage of the function will help understand it better in context with other code. Code blocks begin with ::
followed by a blank line. The example code must be indented by three spaces for it to be placed in a code block format
**Example**
::
local awesome = EEex_Function(10, true)
If there are any other related functions then they are shown as links to them. Links are in the format of :ref:`TextToDisplay<Link>`
**See Also**
:ref:`EEex_AnotherFunction<EEex_AnotherFunction>`
As discussed at the beginning of the EEex Function Template, internal link anchors in documents are formatted to begin with .. _
then the function name followed by a :
. The link used in :ref:`EEex_AnotherFunction<EEex_AnotherFunction>`
would be used in another document as:
.. _EEex_AnotherFunction:
EEex Function Template File¶
The full listing of a template that can be used for documenting EEex functions follows:
Note
Every explicit markup block (line begins with ..
) which isn’t a valid markup construct is regarded as a comment. The lines beginning with, ending with and between the .. #
are multiline comments to help guide your use of the template.
Tip
The EEex Function Template File can also be downloaded from here: EEex_Function_Template.rst
.. _EEex_Function:
EEex_Function
===================================
.. Delete this line and enter the function description
::
EEex_Function()
**Parameters**
.. ###################################################################################
Place any parameters between the ** so that they are shown in italics, for example:
* *Param1*
Enter parameter description after the '-', for example:
* *Param1* - this is parameter one and it does something cool
Remove any unused/empty parameters lines: * ** -
###################################################################################
* ** -
* ** -
* ** -
* ** -
**Returns**
.. Delete this line and enter return values if any
**Notes**
.. Delete this line and enter notes and information
**Example**
.. ###################################################################################
If possible provide example usage. Make sure any code is after the '::' and is
idented by three spaces for it to appear in a code block format. The basic outline
of the example function has been entered below for you to modify (after the '::')
###################################################################################
::
EEex_Function()
**See Also**
.. ###################################################################################
If there are any other related functions then provide links to them. Links are in
the format of :ref:`TextToDisplay<Link>` for example:
:ref:`EEex_AnotherFunction<EEex_AnotherFunction>`
###################################################################################
:ref:`<>`, :ref:`<>`
EEex Function Template Bat¶
Note
The batch file provided will create .rst file output like the EEex Function Template File above.
Copy the contents of the batch file listed below into a text document with a .bat extension
Place the batch file in the appropriate folder
Edit the batch file and add the function names to create
Run the batch file to create the .rst files for each of the entries added
Edit the .rst files to enter the information on each function
Tip
The EEex Function Template Batch file can also be downloaded from here: eeexfunc.bat.txt
@echo off
REM Delete temp files - does not delete any .rst files
for /f "Tokens=*" %%a in ('dir *. /b/a-d') do (
del %%a
)
REM Specify the names of the functions to create .rst files for
REM Do not add an extension to these entries
REM Entries begin with: echo>
REM Copy and paste or add each line manually
REM Example line: echo.>EEex_Function
echo.>EEex_Function1
echo.>EEex_Function2
echo.>EEex_Function3
echo.>EEex_Function4
echo.>EEex_Function5
REM Convert files to .rst
for /f "Tokens=*" %%a in ('dir *. /b/a-d') do (
echo... _%%a:>%%a.rst
echo.>>%%a.rst
echo ===================================>>%%a.rst
echo %%a >>%%a.rst
echo ===================================>>%%a.rst
echo.>>%%a.rst
echo... Delete this line and enter the function description>>%%a.rst
echo.>>%%a.rst
echo ::>>%%a.rst
echo.>>%%a.rst
echo %%a^(^)>>%%a.rst
echo.>>%%a.rst
echo **Parameters**>>%%a.rst
echo.>>%%a.rst
echo... ###################################################################################>>%%a.rst
echo Place any parameters between the ** so that they are shown in italics, for example:>>%%a.rst
echo * *Param1*>>%%a.rst
echo Enter parameter description after the ^'-^', for example:>>%%a.rst
echo * *Param1* - this is parameter one and it does something cool>>%%a.rst
echo Remove any unused/empty parameters lines: * ** - >>%%a.rst
echo ###################################################################################>>%%a.rst
echo.>>%%a.rst
echo * **>>%%a.rst
echo * **>>%%a.rst
echo * **>>%%a.rst
echo * **>>%%a.rst
echo.>>%%a.rst
echo **Returns**>>%%a.rst
echo.>>%%a.rst
echo... Delete this line and enter return values if any>>%%a.rst
echo.>>%%a.rst
echo **Notes**>>%%a.rst
echo.>>%%a.rst
echo... Delete this line and enter notes and information>>%%a.rst
echo.>>%%a.rst
echo **Example**>>%%a.rst
echo.>>%%a.rst
echo... ###################################################################################>>%%a.rst
echo If possible provide example usage. Make sure any code is after the ^'::^' and is>>%%a.rst
echo idented by three spaces for it to appear in a code block format. The basic outline>>%%a.rst
echo of the example function has been entered below for you to modify ^(after the ^'::^'^)>>%%a.rst
echo ###################################################################################>>%%a.rst
echo.>>%%a.rst
echo ::>>%%a.rst
echo.>>%%a.rst
echo %%a^(^)>>%%a.rst
echo.>>%%a.rst
echo **See Also**>>%%a.rst
echo.>>%%a.rst
echo... ###################################################################################>>%%a.rst
echo If there are any other related functions then provide links to them. Links are in>>%%a.rst
echo the format of :ref:`TextToDisplay<Link>` for example:>>%%a.rst
echo :ref:`EEex_AnotherFunction<EEex_AnotherFunction>`>>%%a.rst
echo ###################################################################################>>%%a.rst
echo.>>%%a.rst
echo :ref:^`^<^>^`, :ref:^`^<^>^`>>%%a.rst
echo.>>%%a.rst
)
REM Cleanup and delete temp files
for /f "Tokens=*" %%a in ('dir *. /b/a-d') do (
del %%a > nul
)
del "%%a.rst" > nul
EE Class Template File¶
The full listing of a template that can be used for documenting EE classes follows:
Note
Every explicit markup block (line begins with ..
) which isn’t a valid markup construct is regarded as a comment. You may need to copy and paste some sections and manually adjust spacing in any tables.
Tip
The EE Class Template File can also be downloaded from here: EE_Class_Template.rst
.. _CClassName Class:
==========================
CClassName Class
==========================
.. toctree::
:maxdepth: 1
* :ref:`Overview<CClassName_Overview>`
* :ref:`Quick Reference<CClassName_QuickRef>`
* :ref:`Constructors<CClassName_Constructors>`
* :ref:`Methods<CClassName_Methods>`
----
.. _CClassName_Overview:
Overview
---------------
.. note:: The **CClassName** class handles
The structure used for this class is :ref:`CClassName<CClassName>`
----
.. _CClassName_QuickRef:
Quick Reference
---------------
+-------------------------------------------------------------------------------------------------------------------------------------+
| **Quick Ref** |
+-------------------------------------------------------------------------------------------------------------------------------------+
| |
+-------------------------------------------------------------------------------------------------------------------------------------+
----
.. _CClassName_Constructors:
Constructors
---------------
+---------------------------------------------------------------+------------------------------------------------------+
| **Name** | **Description** |
+---------------------------------------------------------------+------------------------------------------------------+
| :ref:`CClassName\:\:CClassName<CClassNameCClassName>` | Constructs a ``CClassName`` object |
+---------------------------------------------------------------+------------------------------------------------------+
| :ref:`CClassName\:\:CClassName<CClassName~CClassName>` | Destroys a ``CClassName`` object |
+---------------------------------------------------------------+------------------------------------------------------+
.. _CClassNameCClassName:
CClassName\:\:CClassName
^^^^^^^^^^^^^^^^^^^^^^^^^
Constructs a ``CClassName`` object
::
void CClassName::CClassName();
**Remarks**
Constructs a ``CClassName`` object
----
.. _CClassName~CClassName:
CClassName\:\:~CClassName
^^^^^^^^^^^^^^^^^^^^^^^^^
Destroys the ``CClassName`` object
::
virtual void CClassName::~CClassName();
**Remarks**
Destroys the ``CClassName`` object
----
.. _CClassName_Methods:
Methods
---------------
+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------+
| **Name** | **Description** |
+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------+
| :ref:`CClassName\:\:Method<CClassNameMethod>` | |
+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------+
----
.. _CClassNameMethod:
CClassName\:\:Method
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. Delete this line and enter the method description
.. replace x; below with the method declaration including parameters
::
x;
**Parameters**
* * -
* * -
* * -
* * -
**Return Value**
.. Delete this line and enter return values. If no return values, then delete this section
**Remarks**
EE Class Template Bat¶
Note
The batch file provided will create a newindex.rst
file output like the EE Class Template File above. The classname is automatically generated based on the folder the batch file is ran in.
Copy the contents of the batch file listed below into a text document with a .bat extension
Place the batch file in the appropriate folder
Edit the batch file and add the method names to an array entry
Array entries are the
set m[x]=
lines.Classname and method names should be seperated with
\:\:
, for example:CClassName\:\:Method
These when added to an array entry should resemble this:
m[0]=CClassName\:\:Method
Change the total count of methods added as array entries:
methodcount=3
Run the batch file to create the
newindex.rst
file
Once the newindex.rst
file has been generated, it requires some editing before it is usable.
Note: classname
in the following steps is a placeholder for whatever the class name actually is:
In the methods table, replace all
<classname\:\:
with<classname
Adjust the cell spacing for each row in the methods table to properly align the methods table
For the individual method sections, replace all
.. _classname\:\:
with.. _classname
, so that you have.. _classnameMethod:
as the internal linkAdd in any method description; parameter types, names and descriptions; return values and any notes or other information as needed
When the newindex.rst
file has been edited to your satisfaction and is ready to include in the EEex Docs:
Rename the
newindex.rst
toindex.rst
Edit the main EE Game Classes index file (
EE Game Classes (x86)/index.rst
) to include the newly documented class in the table of contents listing
Tip
The EE Class Template Batch file can also be downloaded from here: eeclass.bat.txt
@echo off
REM Define methods here and set count of them
REM Add additonal array entries as required
REM Note the 0 based index for count!
REM For example if methods ended at m[20] the count will be 21
REM Classname and method should be seperated with '\:\:'
REM For example:
REM m[0]=CClassName\:\:Method
REM m[1]=CClassName\:\:AnotherMethod
REM ...
REM m[99]=CClassName\:\:AnyOtherMethod
set methodcount=0
set m[0]=
set m[1]=
set m[2]=
set m[3]=
set m[4]=
set m[5]=
set m[6]=
set m[7]=
set m[8]=
set m[9]=
set m[10]=
set m[11]=
set m[12]=
set m[13]=
set m[14]=
set m[15]=
set m[16]=
set m[17]=
set m[18]=
set m[19]=
set m[20]=
set m[21]=
set m[22]=
set m[23]=
set m[24]=
set m[25]=
set m[26]=
set m[27]=
set m[28]=
set m[29]=
set m[30]=
set m[31]=
set m[32]=
set m[33]=
set m[34]=
set m[35]=
set m[36]=
set m[37]=
set m[38]=
set m[39]=
set m[40]=
set m[41]=
set m[42]=
set m[43]=
set m[44]=
set m[45]=
set m[46]=
set m[47]=
set m[48]=
set m[49]=
set m[50]=
set m[51]=
set m[52]=
set m[53]=
set m[54]=
set m[55]=
set m[56]=
set m[57]=
set m[58]=
set m[59]=
set m[60]=
set m[61]=
set m[62]=
set m[63]=
set m[64]=
set m[65]=
set m[66]=
set m[67]=
set m[68]=
set m[69]=
set m[70]=
set m[71]=
set m[72]=
set m[73]=
set m[74]=
set m[75]=
set m[76]=
set m[77]=
set m[78]=
set m[79]=
set m[80]=
set m[81]=
set m[82]=
set m[83]=
set m[84]=
set m[85]=
set m[86]=
set m[87]=
set m[88]=
set m[89]=
set m[90]=
set m[91]=
set m[92]=
set m[93]=
set m[94]=
set m[95]=
set m[96]=
set m[97]=
set m[98]=
set m[99]=
set m[100]=
set m[101]=
set m[102]=
set m[103]=
set m[104]=
set m[105]=
set m[106]=
set m[107]=
set m[108]=
set m[109]=
set m[110]=
set m[111]=
set m[112]=
set m[113]=
set m[114]=
set m[115]=
set m[116]=
set m[117]=
set m[118]=
set m[119]=
set m[120]=
set m[121]=
set m[122]=
set m[123]=
set m[124]=
set m[125]=
set m[126]=
set m[127]=
set m[128]=
set m[129]=
set m[130]=
set m[131]=
set m[132]=
set m[133]=
set m[134]=
set m[135]=
set m[136]=
set m[137]=
set m[138]=
set m[139]=
set m[140]=
set m[141]=
set m[142]=
set m[143]=
set m[144]=
set m[145]=
set m[146]=
set m[147]=
set m[148]=
set m[149]=
set m[150]=
set m[151]=
set m[152]=
set m[153]=
set m[154]=
set m[155]=
set m[156]=
set m[157]=
set m[158]=
set m[159]=
set m[160]=
REM Get default class name based on current folder's name
:SetDefaultClassName
for /f "delims=" %%A in ('cd') do (
set classname=%%~nxA
)
goto CheckParameter1
REM Output to specific file if passed as a parameter or newindex.rst otherwise
:CheckParameter1
IF "%1"=="" goto SetDefaultOutputFile
set outputfile=%1
goto OutputClassHeader
:SetDefaultOutputFile
set outputfile=newindex.rst
goto OutputClassHeader
REM Output the class header
:OutputClassHeader
ECHO ClassName = %classname%
ECHO OutputFile = %outputfile%
echo... _%classname% Class:>%outputfile%
echo.>>%outputfile%
echo ==========================>>%outputfile%
echo %classname% Class>>%outputfile%
echo ==========================>>%outputfile%
echo.>>%outputfile%
echo... toctree::>>%outputfile%
echo :maxdepth: 1>>%outputfile%
echo.>>%outputfile%
echo * :ref:^`Overview^<%classname%_Overview^>^`>>%outputfile%
echo * :ref:^`Quick Reference^<%classname%_QuickRef^>^`>>%outputfile%
echo * :ref:^`Constructors^<%classname%_Constructors^>^`>>%outputfile%
echo * :ref:^`Methods^<%classname%_Methods^>^`>>%outputfile%
echo.>>%outputfile%
echo ---->>%outputfile%
echo.>>%outputfile%
echo... _%classname%_Overview:>>%outputfile%
echo.>>%outputfile%
echo Overview>>%outputfile%
echo --------------->>%outputfile%
echo.>>%outputfile%
echo... note:: The **%classname%** class handles >>%outputfile%
echo.>>%outputfile%
echo The structure used for this class is :ref:^`%classname%^<%classname%^>^`>>%outputfile%
echo.>>%outputfile%
goto OutputClassQuickRef
REM Output a quick reference table with 1 empty row for copy and pasting
REM After file is generated you will have to manually add this information
:OutputClassQuickRef
echo ---->>%outputfile%
echo.>>%outputfile%
echo... _%classname%_QuickRef:>>%outputfile%
echo.>>%outputfile%
echo Quick Reference>>%outputfile%
echo --------------->>%outputfile%
echo.>>%outputfile%
echo +-------------------------------------------------------------------------------------------------------------------------------------+>>%outputfile%
echo ^| **Quick Ref** ^|>>%outputfile%
echo +-------------------------------------------------------------------------------------------------------------------------------------+>>%outputfile%
echo ^| ^|>>%outputfile%
echo +-------------------------------------------------------------------------------------------------------------------------------------+>>%outputfile%
echo.>>%outputfile%
goto OutputClassConstructors
REM Output class constructors
REM After file is generated you may need to add additional constructors or remove ones that dont exist
REM May need to manually add parameters for constructors that have any
REM By default assume one constructor and one destructor
:OutputClassConstructors
echo.>>%outputfile%
echo ---->>%outputfile%
echo.>>%outputfile%
echo... _%classname%_Constructors:>>%outputfile%
echo.>>%outputfile%
echo Constructors>>%outputfile%
echo --------------->>%outputfile%
echo.>>%outputfile%
echo +---------------------------------------------------------------+------------------------------------------------------+>>%outputfile%
echo ^| **Name** ^| **Description** ^|>>%outputfile%
echo +---------------------------------------------------------------+------------------------------------------------------+>>%outputfile%
echo ^| :ref:^`%classname%\:\:%classname%^<%classname%%classname%^>^` ^| Constructs a ^`^`%classname%^`^` object ^|>>%outputfile%
echo +---------------------------------------------------------------+------------------------------------------------------+>>%outputfile%
echo ^| :ref:^`%classname%\:\:%classname%^<%classname%~%classname%^>^` ^| Destroys a ^`^`%classname%^`^` object ^|>>%outputfile%
echo +---------------------------------------------------------------+------------------------------------------------------+>>%outputfile%
echo.>>%outputfile%
echo... _%classname%%classname%:>>%outputfile%
echo.>>%outputfile%
echo %classname%\:\:%classname%>>%outputfile%
echo ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^>>%outputfile%
echo.>>%outputfile%
echo Constructs a ^`^`%classname%^`^` object>>%outputfile%
echo.>>%outputfile%
echo ::>>%outputfile%
echo.>>%outputfile%
echo void %classname%::%classname%();>>%outputfile%
echo.>>%outputfile%
echo **Remarks**>>%outputfile%
echo.>>%outputfile%
echo Constructs a ^`^`%classname%^`^` object>>%outputfile%
echo.>>%outputfile%
echo.>>%outputfile%
echo ---->>%outputfile%
echo.>>%outputfile%
echo... _%classname%~%classname%:>>%outputfile%
echo.>>%outputfile%
echo %classname%\:\:~%classname%>>%outputfile%
echo ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^>>%outputfile%
echo.>>%outputfile%
echo Destroys the ^`^`%classname%^`^` object>>%outputfile%
echo.>>%outputfile%
echo ::>>%outputfile%
echo.>>%outputfile%
echo virtual void %classname%::~%classname%();>>%outputfile%
echo.>>%outputfile%
echo **Remarks**>>%outputfile%
echo.>>%outputfile%
echo Destroys the ^`^`%classname%^`^` object>>%outputfile%
echo.>>%outputfile%
goto OutputClassMethods
REM Output class methods into a table
REM After file is generated you will need to edit this table
REM Replace '<classname\:\:' with just '<classname' (without the ' quote marks)
REM Copy method name in table to end of '<classname' so that you have '<classnameMethod>' as the link
REM Adjust spacing to align table
:OutputClassMethods
echo.>>%outputfile%
echo ---->>%outputfile%
echo.>>%outputfile%
echo... _%classname%_Methods:>>%outputfile%
echo.>>%outputfile%
echo Methods>>%outputfile%
echo --------------->>%outputfile%
echo.>>%outputfile%
echo +------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------+>>%outputfile%
echo ^| **Name** ^| **Description** ^|>>%outputfile%
echo +------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------+>>%outputfile%
goto OutputClassMethodList
:OutputClassMethodList
set method=0
goto OutputClassMethodListLoop
:OutputClassMethodListLoop
if %method% equ %methodcount% goto OutputClassMethodListEnd
for /f "usebackq delims== tokens=2" %%j in (`set m[%method%]`) do (
echo ^| :ref:^`%%j^<%%j^>^` ^| ^|>>%outputfile%
echo +------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------+>>%outputfile%
)
set /a method=%method%+1
goto OutputClassMethodListLoop
:OutputClassMethodListEnd
echo.>>%outputfile%
rem goto end
goto OutputClassMethodDetails
REM Output individual class methods sections
REM After file is generated you will need to replace '.. _classname\:\:' with just '.. _classname' (without the ' quote marks)
:OutputClassMethodDetails
set method=0
goto OutputClassMethodDetailsLoop
:OutputClassMethodDetailsLoop
if %method% equ %methodcount% goto OutputClassMethodDetailsEnd
for /f "usebackq delims== tokens=2" %%j in (`set m[%method%]`) do (
echo.>>%outputfile%
echo ---->>%outputfile%
echo.>>%outputfile%
echo... _%%j:>>%outputfile%
echo.>>%outputfile%
echo %%j>>%outputfile%
echo ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^>>%outputfile%
echo.>>%outputfile%
echo.>>%outputfile%
echo.>>%outputfile%
echo ::>>%outputfile%
echo.>>%outputfile%
echo x;>>%outputfile%
echo.>>%outputfile%
echo **Parameters**>>%outputfile%
echo.>>%outputfile%
echo * * - >>%outputfile%
echo * * - >>%outputfile%
echo * * - >>%outputfile%
echo * * - >>%outputfile%
echo.>>%outputfile%
echo **Return Value**>>%outputfile%
echo.>>%outputfile%
echo Returns >>%outputfile%
echo.>>%outputfile%
echo **Remarks**>>%outputfile%
echo.>>%outputfile%
echo.>>%outputfile%
echo.>>%outputfile%
)
set /a method=%method%+1
goto OutputClassMethodDetailsLoop
:OutputClassMethodDetailsEnd
:end