See CommentPlugin: Customisation  for help.
While this topic can be viewed as a TWiki topic, it is used by the CommentPlugin  as a template file - see TWikiTemplates . The important content in here is in the verbatim blocks. The rest of the topic is just comments.
  See CommentPluginExamples  to view rendered templates.
  A note on security with the URLPARAM  variable: Comments are passed along via URL parameters. They are safely encoded by default to reduce the exposure to cross-site scripting. To preserve user text "as is", and at the cost of security, you can turn off encoding by using encode="off" in the URLPARAM variable. The newline="" parameter of URLPARAM gets encoded with the same encoding as the actual URL parameter. In TWiki 5.0 and later you can specify newline="$br" to add a <br />, regardless of the encoding used.
WARNING: THIS FILE WILL BE OVERWRITTEN WHEN YOU UPGRADE THE COMMENT PLUGIN
Put your local templates into UserCommentsTemplate   (create if it does not exist yet). Local templates defined in that topic will override templates defined below. 
  Template definitions  
  Templates used in rest of file  
Generic prompt box used by other templates
%TMPL:DEF{promptbox}%<div class="commentPlugin commentPluginPromptBox" style="margin: 5px 0;">%IF{ "istopic '%SYSTEMWEB%.ScrollBoxAddOn'" then="$percntINCLUDE{ \"%SYSTEMWEB%.ScrollBoxAddOn\" section=\"scroll_box_engine\" }$percnt $percntINCLUDE{ \"%SYSTEMWEB%.ScrollBoxAddOn\" section=\"static_box_start\" boxstyle=\"padding: 7px; width: auto; background-color: #f6f6fb;\" }$percnt" }% <div><textarea %DISABLED% rows="%rows|5%" cols="%cols|80%" name="comment" class="twikiTextarea" wrap="soft" style="width: 100%" onfocus="if(this.value=='%MESSAGE%')this.value=''" onblur="if(this.value=='')this.value='%MESSAGE%'">%MESSAGE%</textarea></div><div style="padding: 5px 0 0 0;"><input %DISABLED% type="submit" value="%button|Add comment%" class="twikiButton" /></div> %IF{ "istopic '%SYSTEMWEB%.ScrollBoxAddOn'" then="$percntINCLUDE{ \"%SYSTEMWEB%.ScrollBoxAddOn\" section=\"static_box_end\" }$percnt" }%</div><!--/commentPlugin-->%TMPL:END%
 
Short comment, signed and dated
%TMPL:DEF{outputoneliner}%   * %URLPARAM{"comment"}% -- %WIKIUSERNAME% - %DATE%%TMPL:END%
 
  See rendered template Default 
  User templates  
  top  
Comments, signed and dated, added at top of file
%TMPL:DEF{PROMPT:top}%%TMPL:P{promptbox}%%TMPL:END%
 
%TMPL:DEF{OUTPUT:top}%%TMPL:P{outputoneliner}%%POS:TOP%
%TMPL:END%
 
  See rendered template top 
  bottom  
Comments, signed and dated, added at end of file
%TMPL:DEF{PROMPT:bottom}%%TMPL:P{promptbox}%%TMPL:END%
 
%TMPL:DEF{OUTPUT:bottom}%%POS:BOTTOM%%TMPL:P{outputoneliner}%%TMPL:END%
 
  See rendered template bottom 
  above  
Comments, signed and dated, added immediately before anchor
%TMPL:DEF{PROMPT:above}%%TMPL:P{promptbox}%%TMPL:END%
 
%TMPL:DEF{OUTPUT:above}%%POS:BEFORE%%TMPL:P{OUTPUT:threadmode}%%TMPL:END%
 
  See rendered template above 
  bulletabove  
Bullet item added immediately before anchor. The input field width is passed with variable inputsize, for example:
%COMMENT{type="bulletabove" inputsize="20"}%
  
%TMPL:DEF{PROMPT:bulletabove}%<input class="twikiInputField" name="bullet_above_item" id="bullet_above_item" type="text" size="%inputsize|40%" value="%URLPARAM{"bullet_above_item"}%" /> <input %DISABLED% type="submit" value="%button|Add item%" class="twikiButton" />%TMPL:END%
 
%TMPL:DEF{OUTPUT:bulletabove}%   * %URLPARAM{"bullet_above_item"}%%POS:BEFORE%
%TMPL:END%
 
  See rendered template bulletabove 
  threadmode  
Wiki thread mode comment, signed and dated
%TMPL:DEF{PROMPT:threadmode}%%TMPL:P{promptbox}%%TMPL:END%
 
%TMPL:DEF{OUTPUT:threadmode}%%POS:BEFORE%
%URLPARAM{"comment"}%
%STARTSECTION{ type="expandvariables" }%%IF{ "defined 'BUBBLESIGNATUREFORMAT'" then="$percntBUBBLESIGNATUREFORMAT$percnt" else="-- $percntWIKIUSERNAME$percnt - $percntDATE$percnt" }%%ENDSECTION{ type="expandvariables" }%
%TMPL:END%
 
  See rendered template threadmode 
  belowthreadmode  
Comments, signed and dated, added recurse after comment box.
%TMPL:DEF{PROMPT:belowthreadmode}%%TMPL:P{promptbox}%%TMPL:END%
 
%TMPL:DEF{OUTPUT:belowthreadmode}%%POS:AFTER%
---++++ %WIKIUSERNAME% - %SERVERTIME%
%URLPARAM{"comment"}%
%TMPL:END%
 
  See rendered template belowthreadmode 
  below  
Comments, signed and dated, added immediately below anchor
%TMPL:DEF{PROMPT:below}%%TMPL:P{promptbox}%%TMPL:END%
 
%TMPL:DEF{OUTPUT:below}%%POS:AFTER%%TMPL:P{outputoneliner}%
%TMPL:END%
 
  See rendered template below 
  tableprepend  
Comments, signed and dated, added at top of table below the
anchor/location/COMMENT
%TMPL:DEF{PROMPT:tableprepend}%%TMPL:P{promptbox}%%TMPL:END%
 
%TMPL:DEF{OUTPUT:tableprepend}%%POS:AFTER%| %URLPARAM{"comment" newline="$br"}% | %WIKIUSERNAME% | %SERVERTIME% |
%TMPL:END%
 
  See rendered template tableprepend 
  tableappend  
Comments, signed and dated, added at end of table above the anchor/location/COMMENT
%TMPL:DEF{PROMPT:tableappend}%%TMPL:P{promptbox}%%TMPL:END%
 
%TMPL:DEF{OUTPUT:tableappend}%%POS:BEFORE%| %URLPARAM{"comment" newline="$br"}% | %WIKIUSERNAME% | %SERVERTIME% |
%TMPL:END%
 
  See rendered template tableappend 
  after: Add before the comment box, after the last comment  
%TMPL:DEF{PROMPT:after}%%TMPL:P{promptbox}%%TMPL:END%
 
%TMPL:DEF{OUTPUT:after}%%NOP%%TMPL:P{outputoneliner}%
%POS:BEFORE%%TMPL:END%
 
  See rendered template after 
  action  
Action added to action table directly above comment box
(requires TWiki:Plugins/ActionTrackerPlugin )
%TMPL:DEF{PROMPT:action}%
%TABLE{databg="#ffffff" tableborder="0" cellborder="0"}%
|        <label for="action_who">Action for</label>| <input class="twikiInputField" name="action_who" id="action_who" type="text" size="50" value="%URLPARAM{"who"}%" /> |
| <label for="action_due">Due date</label>| <input class="twikiInputField" name="action_due" id="action_due" type="text" size="30" value="%URLPARAM{"due"}%" /> |
|    <label for="action_comment">Comment</label>| <textarea %DISABLED% rows="%rows|3%" cols="%cols|50%" name="action_comment" id="action_comment" class="twikiInputField" wrap="soft" onfocus="if(this.value=='%MESSAGE%')this.value=''" onblur="if(this.value=='')this.value='%MESSAGE%'">%MESSAGE%</textarea> |
|| <input %DISABLED% type="submit" class="twikiButton" value="Add action" /> |
%TMPL:END%
 
%TMPL:DEF{OUTPUT:action}%%POS:BEFORE%%AC%NOP%TION{who="%URLPARAM{"action_who"}%" due="%URLPARAM{"action_due"}%"}% %URLPARAM{"action_comment" newline="<br />"}%<br />- Created by %WIKIUSERNAME%, %SERVERTIME%
%ENDAC%NOP%TION%
%TMPL:END%
 
  See rendered template action 
  table  
Tablerows adding on end - TWiki:Main/FranzJosefSilli 
%TMPL:DEF{PROMPT:table}%
%TABLE{databg="#ffffff" tableborder="0" cellborder="0"}%
|        <label for="comment_date">Date</label>| <input class="twikiInputField" %DISABLED% type="text" size="40" name="comment_date" id="comment_date" /> |
|        <label for="comment_city">City</label>| <input class="twikiInputField" %DISABLED% type="text" size="40" name="comment_city" id="comment_city" value="" /> |
|| <input %DISABLED% type="submit" class="twikiButton" value="%button|Add entry%" /> |
%TMPL:END%
 
%TMPL:DEF{OUTPUT:table}%%POS:BEFORE%| %URLPARAM{"comment_date"}% | %WIKIUSERNAME% | %URLPARAM{"comment_city"}% |
%TMPL:END%
 
  See rendered template table 
  toctalk  
Talk using TOC adding on end - TWiki:Main/FranzJosefSilli 
%TMPL:DEF{PROMPT:toctalk}%
%TABLE{databg="#ffffff" tableborder="0" cellborder="0"}%
|        <label for="comment_summary">Summary</label>| <input class="twikiInputField" %DISABLED% type="text" size="40" name="comment_summary" id="comment_summary" /> |
|        <label for="toctalk_comment_text">Message</label>| <textarea %DISABLED% rows="%rows|3%" cols="%cols|50%" name="toctalk_comment_text" id="toctalk_comment_text" class="twikiInputField" wrap="soft" onfocus="if(this.value=='%MESSAGE%')this.value=''" onblur="if(this.value=='')this.value='%MESSAGE%'">%MESSAGE%</textarea> |
|| <input %DISABLED% type="submit" value="%button|Add%" class="twikiButton" /> |
%TMPL:END%
 
%TMPL:DEF{OUTPUT:toctalk}%
%POS:BEFORE%---++++ %SERVERTIME% %WIKIUSERNAME%: %URLPARAM{"comment_summary"}%
%POS:BEFORE%%URLPARAM{"toctalk_comment_text" }%
%POS:BEFORE%
%TMPL:END%
 
  See rendered template toctalk 
  bookmark  
Create a list of annotated bookmarks - TWiki:Main/FranzJosefSilli 
%TMPL:DEF{PROMPT:bookmark}%
%TABLE{databg="#ffffff" tableborder="0" cellborder="0"}%
|        <label for="comment_url">Url</label>| <input class="twikiInputField" %DISABLED% type="text" size="40" name="comment_url" id="comment_url" value="http://" /> |
| <label for="comment_link">Link label</label>| <input class="twikiInputField" %DISABLED% type="text" size="40" name="comment_link" id="comment_link" /> |
|    <label for="bookmark_comment_text">Comment</label>| <input class="twikiInputField" %DISABLED% type="text" size="40" name="bookmark_comment_text" id="bookmark_comment_text" value="%MESSAGE%" /> |
|| <input %DISABLED% type="submit" value="%button|Add bookmark%" class="twikiButton" /> |
%TMPL:END%
 
%TMPL:DEF{OUTPUT:bookmark}%%POS:BEFORE%   * [[%URLPARAM{"comment_url" encode="entity"}%][%URLPARAM{"comment_link" encode="entity"}%]] %IF{" '%URLPARAM{"bookmark_comment_text" encode="entity"}%' = '' " then="" else="- "}%%URLPARAM{"bookmark_comment_text" encode="entity"}%
%TMPL:END%
 
  See rendered template bookmark 
  return  
Post to a different topic and return to here. The comment target is set in the PROMPT. In the form below the redirectto is set to the current (including) topic.  Available with TWiki 4.1.  
%TMPL:DEF{returnpromptbox}%
<input type="hidden" name="redirectto" value="%BASEWEB%.%BASETOPIC%" />
%TMPL:P{promptbox}%
%TMPL:END%
 
%TMPL:DEF{PROMPT:return}%%TMPL:P{returnpromptbox}%%TMPL:END%
 
%TMPL:DEF{OUTPUT:return}%%POS:BEFORE%%TMPL:P{OUTPUT:threadmode}%%TMPL:END%
 
  See rendered template return 
  Include UserComments  
Including UserComments  :
%TMPL:INCLUDE{"UserComments"}%