ita_generate_documentation.m 3.14 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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
%        <a href="matlab:doc ita_generate_documentation">doc ita_generate_documentation</a>

% <ITA-Toolbox>
% 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.
% </ITA-Toolbox>

%
% Author: Pascal Dietrich -- Email: pdi@akustik.rwth-aachen.de
% Created:  17-Apr-2009
18
% Edited: 18-May-2012 Tumbr�gel
19
20
21
22
23
24


% pdi not for preferences
sArgs = struct('rootpath',ita_toolbox_path);
sArgs = ita_parse_arguments(sArgs,varargin);

25
currentDir = pwd;
26

27
%generate helpbrowser html files - Tumbr�gel 05/2012:
28
29
ita_generate_helpOverview(sArgs.rootpath); 

30
cd(sArgs.rootpath)
31
32
%% Get folders for m2html
ignoreList  = {'.svn','private','tmp','prop-base','props','text-base','template','doc','GuiCallbacks'};
33
34
pathStr = genpath(sArgs.rootpath); %generates folderlist with ';' to seperate folders
prefixToolbox = fliplr(strtok(fliplr(sArgs.rootpath),filesep)); %get Toolbox folder name
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67

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';
68
    disp('Generating with GraphViz')
69
70
71
else
    graphState = 'off';
end
72
73
74
docFolder = [sArgs.rootpath filesep 'HTML' filesep 'doc'];
% cd required for m2html
cd ..
75
76
77
78
79
80
81
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
82
83
84
% switching to basic rendering to fix bug with builddocsearchdb
webutils.htmlrenderer('basic');
% switching seems to take a while sometimes
85
pause(1);
86
if nargin == 0
87
    builddocsearchdb( [sArgs.rootpath filesep 'HTML' ] ); %generate help search
88
89
    rehash toolboxcache
end
90
91
92
% switch back to standard renderer
webutils.htmlrenderer('default');

93
ita_verbose_info('Please restart MATLAB if the MATLAB ITA Toolbox entry does not show in the documentation browser.',0);
94
95
%% Go back to the last working directory
cd(currentDir)