function ita_generate_documentation(varargin)
%ITA_GENERATE_DOCUMENTATION - Generate Toolbox Help
% This function automatically generated the html help used for the Toolbox
%
% See also help, doc, helpdesk, ita_toolbox_setup.
%
% Reference page in Help browser
% doc ita_generate_documentation
%
% This file is part of the application HTMLhelp for the ITA-Toolbox. All rights reserved.
% You can find the license for this m-file in the application folder.
%
%
% Author: Pascal Dietrich -- Email: pdi@akustik.rwth-aachen.de
% Created: 17-Apr-2009
% Edited: 18-May-2012 Tumbr�gel
% pdi not for preferences
sArgs = struct('rootpath',ita_toolbox_path);
sArgs = ita_parse_arguments(sArgs,varargin);
currentDir = pwd;
%generate helpbrowser html files - Tumbr�gel 05/2012:
ita_generate_helpOverview(sArgs.rootpath);
cd(sArgs.rootpath)
%% Get folders for m2html
ignoreList = {'.svn','private','tmp','prop-base','props','text-base','template','doc','GuiCallbacks'};
pathStr = genpath(sArgs.rootpath); %generates folderlist with ';' to seperate folders
prefixToolbox = fliplr(strtok(fliplr(sArgs.rootpath),filesep)); %get Toolbox folder name
outpathStr = [];
outpathList = [];
tokenIdx = [0 findstr(pathStr,pathsep)];
if isunix
separator = ':';
else
separator = ';';
end
for idx=1:(length(tokenIdx)-1)
tokenCell{idx} = pathStr(tokenIdx(idx)+1:tokenIdx(idx+1)-1); %get single folder name
isIgnore = false;
for ignIdx = 1:length(ignoreList)
foundIdx = findstr(tokenCell{idx},ignoreList{ignIdx}); %folder in ignore list?
isIgnore = ~isempty(foundIdx) || isIgnore;
end
if ~isIgnore %add string token
outpathStr = [outpathStr separator tokenCell{idx}]; %#ok<*AGROW>
idxITA = findstr(tokenCell{idx},prefixToolbox); %pdi
outpathList = [outpathList; {tokenCell{idx}(idxITA:end)}]; %throw away 'C:\...' until ITA-TB path
end
end
% delete old one first
graphInst = ita_preferences('isGraphVizInstalled');
if ischar(graphInst), graphInst = str2double(graphInst); end;
%% ignorelist -- doc - guicallbacks - externalpackages
if graphInst
graphState = 'on';
disp('Generating with GraphViz')
else
graphState = 'off';
end
docFolder = [sArgs.rootpath filesep 'HTML' filesep 'doc'];
% cd required for m2html
cd ..
tic
m2html('mfiles',outpathList, 'htmldir',docFolder, 'recursive','off', 'source','off', 'syntaxHighlighting','on', ...
'global','on', 'globalHypertextLinks','on', 'todo','on', ...
'verbose','on','template','blue', 'indexFile','index', 'graph',graphState);
toc
%% Build search database for helpdesk
% switching to basic rendering to fix bug with builddocsearchdb
webutils.htmlrenderer('basic');
% switching seems to take a while sometimes
pause(1);
if nargin == 0
builddocsearchdb( [sArgs.rootpath filesep 'HTML' ] ); %generate help search
rehash toolboxcache
end
% switch back to standard renderer
webutils.htmlrenderer('default');
ita_verbose_info('Please restart MATLAB if the MATLAB ITA Toolbox entry does not show in the documentation browser.',0);
%% Go back to the last working directory
cd(currentDir)