https://en.wikipedia.org/w/index.php?action=history&feed=atom&title=Module%3AClade%2Fconverter Module:Clade/converter - Revision history 2025-06-10T08:01:26Z Revision history for this page on the wiki MediaWiki 1.45.0-wmf.4 https://en.wikipedia.org/w/index.php?title=Module:Clade/converter&diff=1117704721&oldid=prev Legoktm: Replace Module:No globals with require( "strict" ) 2022-10-23T04:16:44Z <p>Replace <a href="/w/index.php?title=Module:No_globals&amp;action=edit&amp;redlink=1" class="new" title="Module:No globals (page does not exist)">Module:No globals</a> with require( &quot;strict&quot; )</p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="en"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 04:16, 23 October 2022</td> </tr><tr> <td colspan="2" class="diff-lineno">Line 1:</td> <td colspan="2" class="diff-lineno">Line 1:</td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>--require('<del style="font-weight: bold; text-decoration: none;">Module:No globals</del>') -- comment out until clade also uses noglobals</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>--require('<ins style="font-weight: bold; text-decoration: none;">strict</ins>') -- comment out until clade also uses noglobals</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>local p = {}</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>local p = {}</div></td> </tr> </table> Legoktm https://en.wikipedia.org/w/index.php?title=Module:Clade/converter&diff=928200247&oldid=prev Jts1882: use main entry function 2019-11-27T13:25:59Z <p>use main entry function</p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="en"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 13:25, 27 November 2019</td> </tr><tr> <td colspan="2" class="diff-lineno">Line 17:</td> <td colspan="2" class="diff-lineno">Line 17:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>]]</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>]]</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>function p.cladeConverter(frame)</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>function p.cladeConverter(frame)</div></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> if frame.args['newickstring'] or pargs['newick'] or pargs['newickstring'] then</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div> </div></td> <td colspan="2" class="diff-empty diff-side-added"></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> return p.newickConverter(frame)</div></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> elseif frame.args['list'] or pargs['list'] then</div></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> return p.listConverter(frame)</div></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> end</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>end</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>end</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td colspan="2" class="diff-lineno">Line 28:</td> <td colspan="2" class="diff-lineno">Line 32:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>function p.newickConverter(frame)</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>function p.newickConverter(frame)</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> </div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> </div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div> local newickString = frame.args['newickstring'] or <del style="font-weight: bold; text-decoration: none;">mw.getCurrentFrame():getParent().args</del>['newick']</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> local newickString = frame.args['newickstring'] or <ins style="font-weight: bold; text-decoration: none;">pargs</ins>['newick<ins style="font-weight: bold; text-decoration: none;">'] or pargs['newickstring</ins>']</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> </div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> </div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> --if newickString == '{{{newickstring}}}' then return newickString end</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> --if newickString == '{{{newickstring}}}' then return newickString end</div></td> </tr> </table> Jts1882 https://en.wikipedia.org/w/index.php?title=Module:Clade/converter&diff=928197794&oldid=prev Jts1882: modify newick converter output with annotations 2019-11-27T13:02:29Z <p>modify newick converter output with annotations</p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="en"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 13:02, 27 November 2019</td> </tr><tr> <td colspan="2" class="diff-lineno">Line 52:</td> <td colspan="2" class="diff-lineno">Line 52:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> else</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> else</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> -- show the Newick string</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> -- show the Newick string</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;"> </del> resultString = '&lt;<del style="font-weight: bold; text-decoration: none;">pre</del>&gt;'<del style="font-weight: bold; text-decoration: none;">..newickString..'&lt;/pre&gt;' </del></div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"> </ins> resultString = '&lt;<ins style="font-weight: bold; text-decoration: none;">div</ins>&gt;<ins style="font-weight: bold; text-decoration: none;">Modified Newick string:</ins>'</div></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> .. '&lt;pre&gt;'..newickString..'&lt;/pre&gt;' </div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> -- show the converted clade structure</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> -- show the converted clade structure</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div> resultString = resultString .. '<del style="font-weight: bold; text-decoration: none;">&lt;pre&gt;'..</del> <del style="font-weight: bold; text-decoration: none;">cladeString</del> <del style="font-weight: bold; text-decoration: none;">..'&lt;/pre&gt;</del>'<del style="font-weight: bold; text-decoration: none;"> </del></div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> resultString = resultString .. '<ins style="font-weight: bold; text-decoration: none;">Output</ins> <ins style="font-weight: bold; text-decoration: none;">of</ins> <ins style="font-weight: bold; text-decoration: none;">clade template structure:</ins>'</div></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> .. '&lt;pre&gt;'.. cladeString ..'&lt;/pre&gt;&lt;/div&gt;' </div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> end</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> end</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> --resultString = frame:expandTemplate{ title = 'clade', frame:preprocess(cladeString) }</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> --resultString = frame:expandTemplate{ title = 'clade', frame:preprocess(cladeString) }</div></td> </tr> <tr> <td colspan="2" class="diff-lineno">Line 158:</td> <td colspan="2" class="diff-lineno">Line 160:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> resultString = cladeString </div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> resultString = cladeString </div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> else</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> else</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div> -- show the <del style="font-weight: bold; text-decoration: none;">Newick</del> string</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> -- show the <ins style="font-weight: bold; text-decoration: none;">list</ins> string</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div> resultString = '&lt;pre&gt;'..listString..'&lt;/pre&gt;' </div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> <ins style="font-weight: bold; text-decoration: none;">--</ins>resultString = '&lt;pre&gt;'..listString..'&lt;/pre&gt;' </div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> -- show the converted clade structure</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> -- show the converted clade structure</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> resultString = resultString .. '&lt;pre&gt;'.. cladeString ..'&lt;/pre&gt;' </div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> resultString = resultString .. '&lt;pre&gt;'.. cladeString ..'&lt;/pre&gt;' </div></td> </tr> </table> Jts1882 https://en.wikipedia.org/w/index.php?title=Module:Clade/converter&diff=928194702&oldid=prev Jts1882: call process newick from main module 2019-11-27T12:27:18Z <p>call process newick from main module</p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="en"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 12:27, 27 November 2019</td> </tr><tr> <td colspan="2" class="diff-lineno">Line 1:</td> <td colspan="2" class="diff-lineno">Line 1:</td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>--require('Module:No globals') -- comment out until clade also uses noglobals</div></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>local p = {}</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>local p = {}</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td colspan="2" class="diff-lineno">Line 30:</td> <td colspan="2" class="diff-lineno">Line 32:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> --if newickString == '{{{newickstring}}}' then return newickString end</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> --if newickString == '{{{newickstring}}}' then return newickString end</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div> newickString = <del style="font-weight: bold; text-decoration: none;">p</del>.processNewickString(newickString,"") -- "childNumber")</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> newickString = <ins style="font-weight: bold; text-decoration: none;">require('Module:Clade')</ins>.processNewickString(newickString,"") -- "childNumber")</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> </div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> </div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> </div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> </div></td> </tr> <tr> <td colspan="2" class="diff-lineno">Line 90:</td> <td colspan="2" class="diff-lineno">Line 92:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> end)</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> end)</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> </div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> </div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div> local s = p.strsplit(innerTerm2, ",")</div></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> <ins style="font-weight: bold; text-decoration: none;">--</ins>local s = p.strsplit(innerTerm2, ",")</div></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div> local s = mw.text.split(innerTerm2, ",")</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> local i=1 </div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> local i=1 </div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> while s[i] do </div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div> while s[i] do </div></td> </tr> </table> Jts1882 https://en.wikipedia.org/w/index.php?title=Module:Clade/converter&diff=928192277&oldid=prev Jts1882: parent args variable 2019-11-27T12:00:07Z <p>parent args variable</p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="en"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 12:00, 27 November 2019</td> </tr><tr> <td colspan="2" class="diff-lineno">Line 1:</td> <td colspan="2" class="diff-lineno">Line 1:</td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>local p = {}</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>local p = {}</div></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>local pargs = mw.getCurrentFrame():getParent().args</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>--[[ =================== parser for conversion to clade structure =============================</div></td> <td class="diff-marker"></td> <td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>--[[ =================== parser for conversion to clade structure =============================</div></td> </tr> </table> Jts1882 https://en.wikipedia.org/w/index.php?title=Module:Clade/converter&diff=928192027&oldid=prev Jts1882: move newick and list converter functions here 2019-11-27T11:56:48Z <p>move newick and list converter functions here</p> <p><b>New page</b></p><div>local p = {}<br /> <br /> --[[ =================== parser for conversion to clade structure =============================<br /> <br /> Function p.newickConverter()<br /> convert Newick strings to clade format<br /> Usage: {{#invoke:Module:Sandbox/Jts1882/CladeN|newickConverter|newickstring={{{NEWICK_STRING}}} }}<br /> <br /> Function p.listConverter()<br /> convert wikitext-like lists to clade format<br /> use @ instead of * in wikitext to avoid processing<br /> Usage: {{#invoke:Module:Clade/converter|listConverter|list={{{LIST_STRING}}} }}<br /> ]]<br /> function p.cladeConverter(frame)<br /> <br /> end<br /> <br /> --[[ =================== Newick to clade parser function =============================<br /> <br /> Function of convert Newick strings to clade format<br /> <br /> Usage: {{#invoke:Module:Sandbox/Jts1882/CladeN|newickConverter|newickstring={{{NEWICK_STRING}}} }}<br /> ]]<br /> function p.newickConverter(frame)<br /> <br /> local newickString = frame.args[&#039;newickstring&#039;] or mw.getCurrentFrame():getParent().args[&#039;newick&#039;]<br /> <br /> --if newickString == &#039;{{{newickstring}}}&#039; then return newickString end<br /> <br /> newickString = p.processNewickString(newickString,&quot;&quot;) -- &quot;childNumber&quot;)<br /> <br /> <br /> -- show the Newick string<br /> local cladeString = &#039;&#039;<br /> local levelNumber = 1 -- for depth of iteration<br /> local childNumber = 1 -- number of sister elements on node (always one for root)<br /> <br /> -- converted the newick string to the clade structure<br /> cladeString = cladeString .. &#039;{{clade&#039;<br /> cladeString = cladeString .. p.newickParseLevel(newickString, levelNumber, childNumber) <br /> cladeString = cladeString .. &#039;\r}}&#039; <br /> <br /> local resultString = &#039;&#039;<br /> local option = mw.getCurrentFrame():getParent().args[&#039;option&#039;] or &#039;&#039;<br /> if option == &#039;tree&#039; then<br /> --show the transcluded clade diagram<br /> resultString = cladeString <br /> else<br /> -- show the Newick string<br /> resultString = &#039;&lt;pre&gt;&#039;..newickString..&#039;&lt;/pre&gt;&#039; <br /> -- show the converted clade structure<br /> resultString = resultString .. &#039;&lt;pre&gt;&#039;.. cladeString ..&#039;&lt;/pre&gt;&#039; <br /> end<br /> --resultString = frame:expandTemplate{ title = &#039;clade&#039;, frame:preprocess(cladeString) }<br /> <br /> return resultString<br /> end<br /> <br /> --[[ Parse one level of Newick string<br /> This function receives a Newick string, which has two components<br /> 1. the right hand term is a clade label: |labelN=labelname<br /> 2. the left hand term in parenthesis has common delimited child nodes, each of which can be<br /> i. a taxon name which just needs: |N=leafname <br /> ii. a Newick string which needs further processing through reiteration<br /> ]]<br /> function p.newickParseLevel(newickString,levelNumber,childNumber)<br /> <br /> <br /> local cladeString = &quot;&quot;<br /> local indent = p.getIndent(levelNumber) <br /> --levelNumber=levelNumber+1<br /> <br /> local j=0<br /> local k=0<br /> j,k = string.find(newickString, &#039;%(.*%)&#039;) -- find location of outer parenthesised term<br /> local innerTerm = string.sub(newickString, j+1, k-1) -- select content in parenthesis<br /> local outerTerm = string.gsub(newickString, &quot;%b()&quot;, &quot;&quot;) -- delete parenthetic term<br /> <br /> cladeString = cladeString .. indent .. &#039;|label&#039;..childNumber..&#039;=&#039; .. outerTerm<br /> cladeString = cladeString .. indent .. &#039;|&#039; .. childNumber..&#039;=&#039; .. &#039;{{clade&#039;<br /> <br /> levelNumber=levelNumber+1<br /> indent = p.getIndent(levelNumber)<br /> <br /> -- protect commas in inner parentheses from split; temporarily replace commas between parentheses<br /> local innerTerm2 = string.gsub(innerTerm, &quot;%b()&quot;, function (n)<br /> return string.gsub(n, &quot;,%s*&quot;, &quot;XXX&quot;) -- also strip spaces after commas here<br /> end)<br /> <br /> local s = p.strsplit(innerTerm2, &quot;,&quot;)<br /> local i=1 <br /> while s[i] do <br /> local restoredString = string.gsub(s[i],&quot;XXX&quot;, &quot;,&quot;) -- convert back to commas<br /> <br /> local outerTerm = string.gsub(restoredString, &quot;%b()&quot;, &quot;&quot;)<br /> if string.find(restoredString, &#039;%(.*%)&#039;) then<br /> --cladeString = cladeString .. indent .. &#039;|y&#039; .. i .. &#039;=&#039; .. p.newickParseLevel(restoredString,levelNumber+1,i) <br /> cladeString = cladeString .. p.newickParseLevel(restoredString,levelNumber,i) <br /> else<br /> cladeString = cladeString .. indent .. &#039;|&#039; .. i .. &#039;=&#039; .. restoredString --.. &#039;(level=&#039; .. levelNumber .. &#039;)&#039;<br /> end<br /> i=i+1<br /> end<br /> -- end -- end splitting of strings<br /> <br /> cladeString = cladeString .. indent .. &#039;}}&#039; <br /> return cladeString<br /> end<br /> <br /> function p.getIndent(levelNumber)<br /> local indent = &quot;\r&quot;<br /> local extraIndent = pargs[&#039;indent&#039;] or mw.getCurrentFrame().args[&#039;indent&#039;] or 0<br /> <br /> while tonumber(extraIndent) &gt; 0 do<br /> indent = indent .. &quot; &quot; -- an extra indent to make aligining compound trees easier<br /> extraIndent = extraIndent - 1<br /> end<br /> <br /> while levelNumber &gt; 1 do<br /> indent = indent .. &quot; &quot;<br /> levelNumber = levelNumber-1<br /> end<br /> return indent<br /> end<br /> <br /> <br /> --[[ =================== experimental list to clade parser function =============================<br /> <br /> Function of convert wikitext-like listss to clade format<br /> - use @ instead of * in wikitext to avoid processing<br /> <br /> Usage: {{#invoke:Module:Clade/converter|listConverter|list={{{LIST_STRING}}} }}<br /> ]]<br /> <br /> function p.listConverter(frame)<br /> <br /> local listString = frame.args[&#039;list&#039;] or mw.getCurrentFrame():getParent().args[&#039;list&#039;]<br /> <br /> -- show the list string<br /> local cladeString = &#039;&#039;<br /> local levelNumber = 1 -- for depth of iteration<br /> local childNumber = 1 -- number of sister elements on node (always one for root)<br /> local indent = p.getIndent(levelNumber)<br /> -- converted the newick string to the clade structure<br /> cladeString = cladeString .. indent .. &#039;{{clade&#039;<br /> cladeString = cladeString .. p.listParseLevel(listString, levelNumber, childNumber) <br /> --cladeString = cladeString .. &#039;\r}}&#039; <br /> <br /> local resultString = &#039;&#039;<br /> local option = mw.getCurrentFrame():getParent().args[&#039;option&#039;] or &#039;&#039;<br /> if option == &#039;tree&#039; then<br /> --show the transcluded clade diagram<br /> resultString = cladeString <br /> else<br /> -- show the Newick string<br /> resultString = &#039;&lt;pre&gt;&#039;..listString..&#039;&lt;/pre&gt;&#039; <br /> -- show the converted clade structure<br /> resultString = resultString .. &#039;&lt;pre&gt;&#039;.. cladeString ..&#039;&lt;/pre&gt;&#039; <br /> end<br /> --resultString = frame:expandTemplate{ title = &#039;clade&#039;, frame:preprocess(cladeString) }<br /> <br /> return resultString<br /> end<br /> <br /> function p.listParseLevel(listString,levelNumber,childNumber)<br /> <br /> local cladeString = &quot;&quot;<br /> local indent = p.getIndent(levelNumber)<br /> levelNumber=levelNumber+1<br /> <br /> local list = mw.text.split(listString, &quot;\n&quot;)<br /> local i=1<br /> local child=1<br /> local lastNode=0<br /> <br /> while list[i] do<br /> list[i]=list[i]:gsub(&quot;^@&quot;, &quot;&quot;) -- strip the first @<br /> <br /> if not string.match( list[i], &quot;^@&quot;, 1 ) then -- count children at this level (not beginning wiht @)<br /> lastNode = lastNode+1 <br /> end<br /> i=i+1<br /> end<br /> i=1<br /> <br /> while list[i] do<br /> <br /> --[[ pseudocode: <br /> if next value begins with @ we have a subtree, <br /> which must be recombined and past iteratively<br /> else we have a simple leaf<br /> ]]<br /> <br /> -- if the next value begins with @, we have a subtree which should be recombined<br /> if list[i+1] and string.match( list[i+1], &quot;^@&quot;, 1 ) then<br /> <br /> local label=list[i]<br /> i=i+1<br /> local recombined = list[i]<br /> while list[i+1] and string.match( list[i+1], &quot;^@&quot;, 1 ) do<br /> recombined = recombined .. &quot;\n&quot; .. list[i+1] <br /> i=i+1<br /> end<br /> cladeString = cladeString .. indent .. &#039;|label&#039; .. child ..&#039;=&#039; .. label <br /> cladeString = cladeString .. indent .. &#039;|&#039; .. child ..&#039;=&#039; .. &#039;{{clade&#039;<br /> .. p.listParseLevel(recombined,levelNumber,i) <br /> else<br /> cladeString = cladeString .. indent .. &#039;|&#039; .. child ..&#039;=&#039; .. list[i] <br /> end<br /> i=i+1<br /> child=child+1<br /> end<br /> <br /> <br /> cladeString = cladeString .. indent .. &#039;}}&#039; <br /> return cladeString<br /> end<br /> return p</div> Jts1882