Difference between revisions of "User:R3vo"

From Bohemia Interactive Community
Jump to navigation Jump to search
m
m
Line 44: Line 44:
  
 
= Revo_fnc_exportFunctionsToWiki =
 
= Revo_fnc_exportFunctionsToWiki =
<pre>/*
+
*[https://1drv.ms/u/s!AvgETyKiA6bQitJeTQGrrDZHw1cDSw OneDrive Download]
Author: Karel Moricky, updated by Revo (23.12.2018)
 
 
 
Description:
 
Export function descriptions to Community Wiki.
 
Exported text will be copied to clipboard.
 
Import it to wiki using https://community.bistudio.com/wiki?title=Special:Import
 
If the page already exists, it will be replaced only when timestamp is newer.
 
 
 
Parameter(s):
 
0: ARRAY - functions filter in format [<tags>,<categories>,<functions>]
 
tags: STRING or ARRAY of STRINGs - CfgFunctions tags (e.g., "BIS"). Use empty string for all of them.
 
categories: STRING or ARRAY of STRINGs - categories (e.g., "Debug"). Use empty string for all of them.
 
functions: STRING or ARRAY of STRINGs - specific function names (e.g., "BIS_fnc_log"). Use empty string for all of them.
 
1: NUMBER OR STRING - Game Version, default will be the current one. For version 1.00 insert "1.00"
 
 
 
Returns:
 
NOTHING
 
 
 
Example:
 
Export all functions: [] spawn bis_fnc_exportFunctionsToWiki;
 
Export all Array functions: [["","Arrays"]] spawn bis_fnc_exportFunctionsToWiki;
 
Export specific functions: [["","",["BIS_fnc_log","BIS_fnc_param"]]]  spawn bis_fnc_exportFunctionsToWiki;
 
*/
 
_path = _this param [0,[],[[]]];
 
_gameVersion = _this param [1,productVersion # 2 / 100,[0,""]];
 
_pathTags = _path param [0,[],[[],""]];
 
_pathCategories = _path param [1,[],[[],""]];
 
_pathFunctions = _path param [2,[],[[],""]];
 
_text = "";
 
_cfgRoot = configFile >> "cfgfunctions";
 
_projects = ["arma2","arma2oa","tkoh","arma3"];
 
_indent = 1;
 
 
 
if (_pathTags isEqualType "") then {_pathTags = [_pathTags]};
 
if (_pathCategories isEqualType "") then {_pathCategories = [_pathCategories]};
 
if (_pathFunctions isEqualType "") then {_pathFunctions = [_pathFunctions]};
 
 
 
_allTags = {_x != ""} count _pathTags == 0;
 
_allCategories = {_x != ""} count _pathCategories == 0;
 
_allFunctions = {_x != ""} count _pathFunctions == 0;
 
 
 
_fnc_addLine = {
 
for "_t" from 1 to _indent do {_text = _text + " ";};
 
_text = _text + _this + endl;
 
};
 
 
 
_functionsList = call (uiNamespace getVariable ["BIS_functions_list",{[]}]);
 
_functionsListCount = count _functionsList;
 
 
 
{
 
_function = _x;
 
_meta = _x call bis_fnc_functionMeta;
 
_metaPath = _meta # 0;
 
_metaFormat = _meta # 1;
 
_metaTag = _meta # 6;
 
_metaCategory = _meta # 7;
 
_metaName = _meta # 8;
 
 
 
if (
 
(_allTags || {{_metaTag == _x} count _pathTags > 0})
 
&&
 
{_allCategories || {{_metaCategory == _x} count _pathCategories > 0}}
 
&&
 
{_allFunctions || {{_function == _x} count _pathFunctions > 0}}
 
)
 
then
 
{
 
//Header
 
_file = loadFile _metaPath;
 
_headerStart = _file find "/*";
 
_headerEnd = _file find "*/";
 
_fileHeader = _file select [_headerStart,_headerEnd + 2];
 
 
 
_description = if (_fileHeader == "" || _metaFormat != ".sqf") then
 
{
 
"''N/A''"
 
} else
 
{
 
format ["<pre>%1</pre>{{Informative|Placeholder description extracted from the function header by [[BIS_fnc_exportFunctionsToWiki]]}}",_fileHeader]
 
};
 
 
 
_project = getText (_cfgRoot >> _metaTag >> "project");
 
if (_project == "") then {_project = toLower (productVersion # 1)};
 
 
 
_indent = 0;
 
 
 
//Function template
 
"{{Function|= Comments" call _fnc_addLine;
 
"" call _fnc_addLine;
 
format ["| %1 |Game name=",_project] call _fnc_addLine;
 
"" call _fnc_addLine;
 
format ["|%1|Game version=",_gameVersion] call _fnc_addLine;
 
"" call _fnc_addLine;
 
"<!---|arg= local |Multiplayer Arguments=--->" call _fnc_addLine;
 
"" call _fnc_addLine;
 
"<!---|eff= local |Multiplayer Effects=--->" call _fnc_addLine;
 
"" call _fnc_addLine;
 
format ["| %1 |Description=",_description] call _fnc_addLine;
 
"" call _fnc_addLine;
 
format ["|[] call [[%1]]|Syntax=",_function] call _fnc_addLine;
 
"" call _fnc_addLine;
 
"|p1= parameter: Datatype - (Optional, default defValue) description |Parameter 1=" call _fnc_addLine;
 
"" call _fnc_addLine;
 
"|Datatype - description|Return value=" call _fnc_addLine;
 
"" call _fnc_addLine;
 
"|x1= <code></code>|Example 1=" call _fnc_addLine;
 
"" call _fnc_addLine;
 
"| |See also=" call _fnc_addLine;
 
"}}" call _fnc_addLine;
 
"" call _fnc_addLine;
 
//Categories
 
format ["[[Category:Function Group: %2|{{uc:%1}}]]",_metaName,_metaCategory] call _fnc_addLine;
 
format ["[[Category:Functions|{{uc:%1}}]]",_metaName] call _fnc_addLine;
 
_compatible = false;
 
{
 
if (_x == _project) then {_compatible = true;};
 
if (_compatible) then {
 
format ["[[Category:{{Name|%2}}: Functions|{{uc:%1}}]]",_metaName,_x] call _fnc_addLine;
 
};
 
} foreach _projects;
 
};
 
systemChat format ["Progress:%1/100%2",round ((_foreachindex / _functionsListCount) * 100),"%"];
 
} forEach _functionsList;
 
 
 
copyToClipboard _text;</pre>
 

Revision as of 02:09, 24 December 2018