From b5d3b82ad44ab2d53ff1874da7b222965ca2cad5 Mon Sep 17 00:00:00 2001 From: Marco Berzborn Date: Tue, 22 Nov 2016 14:27:54 +0100 Subject: [PATCH] some code refactoring --- .../HTMLhelp/ita_generate_documentation.m | 16 ++-- .../HTMLhelp/ita_generate_helpOverview.m | 91 ++++++++++--------- 2 files changed, 57 insertions(+), 50 deletions(-) diff --git a/applications/HTMLhelp/ita_generate_documentation.m b/applications/HTMLhelp/ita_generate_documentation.m index e276a30d..45470130 100644 --- a/applications/HTMLhelp/ita_generate_documentation.m +++ b/applications/HTMLhelp/ita_generate_documentation.m @@ -29,24 +29,24 @@ ita_generate_helpOverview(sArgs.rootpath); cd(sArgs.rootpath) %% Get folders for m2html -ignoreList = {'.svn','private','tmp','prop-base','props','text-base','template','doc','GuiCallbacks'}; +ignoreList = {'.svn','.git','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)]; +tokenIdx = [0 strfind(pathStr,pathsep)]; 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? + foundIdx = strfind(tokenCell{idx},ignoreList{ignIdx}); %folder in ignore list? isIgnore = ~isempty(foundIdx) || isIgnore; end if ~isIgnore %add string token outpathStr = [outpathStr,pathsep,tokenCell{idx}]; %#ok<*AGROW> - idxITA = findstr(tokenCell{idx},prefixToolbox); %pdi + idxITA = strfind(tokenCell{idx},prefixToolbox); %pdi outpathList = [outpathList; {tokenCell{idx}(idxITA:end)}]; %throw away 'C:\...' until ITA-TB path end end @@ -63,7 +63,8 @@ if graphInst else graphState = 'off'; end -docFolder = [sArgs.rootpath filesep 'HTML' filesep 'doc']; +htmlFolder = fullfile(sArgs.rootpath, 'HTML'); +docFolder = fullfile(htmlFolder, 'doc'); % cd required for m2html cd .. tic @@ -75,10 +76,13 @@ toc %% Build search database for helpdesk % switching to basic rendering to fix bug with builddocsearchdb webutils.htmlrenderer('basic'); +% MATLAB requires the html files to be in its search path +addpath(htmlFolder, docFolder); +savepath; % switching seems to take a while sometimes pause(1); if nargin == 0 - builddocsearchdb( [sArgs.rootpath filesep 'HTML' ] ); %generate help search + builddocsearchdb(htmlFolder); %generate help search rehash toolboxcache end % switch back to standard renderer diff --git a/applications/HTMLhelp/ita_generate_helpOverview.m b/applications/HTMLhelp/ita_generate_helpOverview.m index 23467fef..f950270a 100644 --- a/applications/HTMLhelp/ita_generate_helpOverview.m +++ b/applications/HTMLhelp/ita_generate_helpOverview.m @@ -26,22 +26,24 @@ function ita_generate_helpOverview(folder) % 2. open index.html and look for insertion point with ita_openHTML % 3. looks for avaliable tutorials in Toolbox Folder (tutorials) % 4. Generate helptoc.xml and index_demo.html->link existing tutorials -%%%%%%%%%%%%%%%%%%%%%%%%% +%% % 1. .... -oldfolder = cd; -pos = strfind(folder,filesep); -toolboxFolderName = folder(pos(end)+1:end); +oldfolder = pwd; +[~, toolboxFolderName] = fileparts(folder); +templateFolder = fullfile(ita_toolbox_path, 'applications', 'HTMLhelp', 'templates'); +htmlFolder = fullfile(folder, 'HTML'); +[helpXML_begin, helpXML_end] = ita_openHTML(fullfile(templateFolder, 'template_helptoc.xml')); -[helpXML_begin, helpXML_end] = ita_openHTML([ita_toolbox_path filesep 'applications' filesep 'HTMLhelp' filesep 'templates' filesep 'template_helptoc.xml']); % 2. .... -[index_demoHTML_begin, index_demoHTML_end] = ita_openHTML([ita_toolbox_path filesep 'applications' filesep 'HTMLhelp' filesep 'templates' filesep 'template_index_demos.html']); +[index_demoHTML_begin, index_demoHTML_end] = ita_openHTML(fullfile(templateFolder, 'template_index_demos.html')); + % 3. .... cd(folder); tutFiles = rdir(['**' filesep 'ita_tutorial*.m']); %search for tutorial files % 4. .... -helpXML = [helpXML_begin]; %now build a new helptoc.xml -index_demoHTML = [index_demoHTML_begin]; %now build a new index_demo.html +helpXML = helpXML_begin; %now build a new helptoc.xml +index_demoHTML = index_demoHTML_begin; %now build a new index_demo.html idxApp=1; appDemo=[]; for idx = 1:length(tutFiles) @@ -50,7 +52,9 @@ for idx = 1:length(tutFiles) continue end end - tutFiles(idx).html = publish(tutFiles(idx).name,struct('evalCode',false,'outputDir',[folder filesep 'HTML' filesep 'tutorials']));%finally generate linked HTML File + %finally generate linked HTML File + tutFiles(idx).html = publish(tutFiles(idx).name, struct('evalCode', false, 'outputDir', ... + fullfile(htmlFolder, 'tutorials'))); pos = strfind(tutFiles(idx).html,toolboxFolderName); tutFiles(idx).html = tutFiles(idx).html(pos(1)+length(toolboxFolderName)+1:end); tutFiles(idx).html = strrep(tutFiles(idx).html,filesep,'/');%conversion for html @@ -75,7 +79,6 @@ for idx = 1:length(tutFiles) if isempty(app) % generate new helptoc.xml - fileLocationHTML = strrep(tutFiles(idx).name,filesep,'/');%conversion for html helpXML = [helpXML,... ' Application Demos',... sprintf('\n')]; for idx = 1:length(appDemo) - fileLocationHTML = strrep(appDemo{idx}.name,filesep,'/'); - appDemo{idx}.name = appDemo{idx}.name(14:end); %no "/applications/" in front of the name + % no "/applications/" in front of the name + appDemo{idx}.name = appDemo{idx}.name(14:end); %#ok helpXML = [helpXML,... '
',... sprintf('\n') - ]; + ]; %#ok end if ~isempty(appName) classesHTML = [classesHTML '

The following classes are app-classes
' sprintf('\n')]; @@ -234,7 +237,7 @@ if ~isempty(appName) appFileName{appIdx(idx)}(1:end-2),... '
',... sprintf('\n') - ]; + ]; %#ok else %next App headline+file classesHTML = [classesHTML,... '
',... @@ -246,7 +249,7 @@ if ~isempty(appName) appFileName{appIdx(idx)}(1:end-2),... '
',... sprintf('\n') - ]; + ]; %#ok end else %first App headline+file classesHTML = [classesHTML,... @@ -259,17 +262,17 @@ if ~isempty(appName) appFileName{appIdx(idx)}(1:end-2),... '
',... sprintf('\n') - ]; + ]; %#ok end end end classesHTML=[classesHTML, '
', sprintf('\n'), classesHTML_end]; %write edited file -ita_writeHTML([folder filesep 'HTML' filesep 'classes.html'],classesHTML) +ita_writeHTML(fullfile(htmlFolder, 'classes.html'), classesHTML); % -> edit apps.html -[appsHTML_begin appsHTML_end] = ita_openHTML([ita_toolbox_path filesep 'applications' filesep 'HTMLhelp' filesep 'templates' filesep 'template_apps.html']); -appsHTML= [appsHTML_begin]; +[appsHTML_begin, appsHTML_end] = ita_openHTML(fullfile(templateFolder, 'template_apps.html')); +appsHTML= appsHTML_begin; %%%%%%%%%%%%%%%%%%% appfolder = rdir([folder filesep '**' filesep 'ita_apps.m']); if isempty(appfolder) @@ -311,17 +314,17 @@ else '', appname, '', sprintf('\n'),... '', data, sprintf('\n'),... '',sprintf('\n'),... - '', sprintf('\n')]; + '', sprintf('\n')]; %#ok end appsHTML = [appsHTML '' appsHTML_end]; end %write edited file -ita_writeHTML([folder filesep 'HTML' filesep 'apps.html'],appsHTML) +ita_writeHTML(fullfile(htmlFolder, 'apps.html'), appsHTML); %% Generate Kernel Documentation -[kernelHTML_begin kernelHTML_end] = ita_openHTML([ita_toolbox_path filesep 'applications' filesep 'HTMLhelp' filesep 'templates' filesep 'template_kernel.html']); -kernelHTML= [kernelHTML_begin]; +[kernelHTML_begin, kernelHTML_end] = ita_openHTML(fullfile(templateFolder, 'template_kernel.html')); +kernelHTML= kernelHTML_begin; kernelList = rdir([folder filesep 'kernel' filesep '**' filesep 'KernelDescription.txt']); kernelHTML = [kernelHTML '' sprintf('\n')]; @@ -330,9 +333,9 @@ for idx = 1:numel(kernelList) % get Kernelfoldername kernelDescriptionPath = kernelList(idx).name; pos = strfind(kernelDescriptionPath,'kernel'); - kernelName{idx} = kernelDescriptionPath(pos(1)+7:end); + kernelName{idx} = kernelDescriptionPath(pos(1)+7:end); %#ok pos = strfind(kernelName{idx},'KernelDescription.txt'); - kernelName{idx} = kernelName{idx}(1:pos(1)-2); + kernelName{idx} = kernelName{idx}(1:pos(1)-2); %#ok %get m2html documentation fileposition: pos = strfind(kernelDescriptionPath,'kernel'); @@ -364,10 +367,10 @@ for idx = 1:numel(kernelList) '', sprintf('\n'),... '',sprintf('\n'),... - '', sprintf('\n')]; + '', sprintf('\n')]; %#ok end kernelHTML = [kernelHTML '
', kernelName{idx}, '', data, sprintf('\n'),... '
' kernelHTML_end]; -ita_writeHTML([folder filesep 'HTML' filesep 'kernel.html'],kernelHTML) +ita_writeHTML(fullfile(htmlFolder, 'kernel.html'), kernelHTML); cd(oldfolder); end -- GitLab