SetDirectory["C:\\drorbn\\AcademicPensieve\\Projects"]

Make

Make::usage = "Make[targets, sources, Hold[action]] makes a target, or a list of targets, given sources, or a list of sources, in the style of the unix 'make' command.";
Make[target_String, sources_, action_Hold] := Make[Evaluate@{target}, sources, action];
Make[targets_, source_String, action__Hold] := Make[targets, Evaluate@{source}, action];
Make[targets_List, sources_List, action_Hold] := Module[{},
If[
(And @@ ((FileType[#] =!= None)& /@ sources)) &&
Or[
Or @@ ((FileType[#]===None)& /@ targets),
Min[AbsoluteTime[FileDate[#]]& /@ targets] < Max[AbsoluteTime[FileDate[#]]& /@ sources]
],
Print["Making ",targets, " ..."];
ReleaseHold[action]
]
];

WordCloud

sources=StringSplit["WKO1/WKO1.tex WKO1/abstract.tex WKO1/intro.tex WKO1/braids.tex WKO1/knots.tex WKO1/odds.tex WKO2/WKO2.tex WKO2/abstract.tex WKO2/intro.tex WKO2/alg.tex WKO2/tangles.tex WKO2/foams.tex WKO2/odds.tex WKO3/DoubleTree.tex WKO3/abstract.tex WKO4/WKO4.tex WKO4/abstract.tex WKO4/intro.tex WKO4/El.tex WKO4/comp.tex"];
target="WKOWordCloud.png";

words=DeleteStopwords@Flatten[TextWords[
StringSplit[
StringDelete[
StringDelete[
ToLowerCase@ReadString[#],
"\\begin{figure}"|"\\end{figure}"
],
"\\aft"|"\\begin"|"\\caption"|"\\cite"|"\\em"|"\\end"|"\\equation"|"\\fig"|"\\figure"|"\\item"|"\\label"|"\\left"|"\\quad"|"\\ref"|"\\right"|"\\section"|"\\subsection"|"\\text"
],
Except[CharacterRange["a","z"]]
]& /@ sources
]];

MakeWC[opts___]:= Module[{words,words1,dict,T,dict1},
words= ToLowerCase@DeleteStopwords@Flatten[
StringSplit[TextWords[ReadString[#]], "-"]& /@ sources
];
dict=Complement[
Union[ToLowerCase@DictionaryLookup[], StringSplit[
"aarhus abelian acknowledgements adjoint adjoints albert alekseev alexander antipode anton archibald artin arxiv associator associators bardakov basepoint behaviour berceanu bialgebra bialgebras bijection borromean brendle brochier cablings centres chern chu claspers coadjoint cocommutative cocycle coface cofactor colour coloured colourful colourings colours combinatorially combinatorics componentwise conjecturally crans dancso det diffeomorphism drinfeld dror duflo enriquez equivariant etingof exp exponentiate fenn fibre flavours formulae framings functionals functor functorial functoriality functors furusho gluings goussarov grothendieck grouplike habiro halacheva harinck hatcher haviv homfly homomorphic homomorphicity homonymous homotopic homotopies hopf ihx injective isometries isotopies isotopy jacobian kamnitzer kanenobu karene kashiwara kauffman kazhdan  kishino kneissler knottings kohno kontsevich kricker kuperberg kurlin lescop leung lieberum linearization linearizations loday mccool meilhan meinrenken metrized milnor moded moding modulo multicategory multinary multiplicatively naot natan ohtsuki operad overcrossing overcrossings papadima parametrizing parentehesized parentetization parenthesization parenthesizations parenthetization perturbative planarity postfix preprint projectivization projectivizations proven quadrivalent quandle quandles reassociate reidemeister reutenauer rimanyi rolfsen roukema saito sanderson satoh sder selflinking semidirect semivirtual shima simons sinh skeleta skype subalgebra subalgebras subring surjection surjections surjective symmetrized tder teichmuller thurston torossian tr trivalence trivolution unbraided undercrossing undercrossings unfavourably unforbidden unignoring unipotent unital unitarity unitrivalent unknot unoriented usb valent vassiliev vergne verma versa vertices virtuals voldemort warmup watanabe wirings wirtinger wko zhang zsuzsanna zsuzsi"
]],
StringSplit["ac aft begin cali dj em end equation fa ill left minus plus ref rh right rs ts tv ty"]
];
dict1=Dispatch[(#->T[#])& /@ dict];
words1 =Cases[words /.dict1, T[w_]:>w,{1}];
WordCloud[words1, opts]
]

MakeWC[MaxItems->256, ImageSize -> {960,540}]

Make[target,"index.nb", Hold[Export[target, MakeWC[MaxItems->All, ImageSize -> {1920,1080}]]]]

Output

{
"TitleNotes" -> "This is my projects folder.\n<p>"
}