|
|
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>
| |