Difference: WysiwygPlugin (9 vs. 10)

Revision 1018 Apr 2009 - Main.TWikiContributor

Line: 1 to 1
 

Wysiwyg Plugin

<-- 
  • Set SHORTDESCRIPTION = Translator framework for Wysiwyg editors
-->
Deleted:
<
<
<-- Do not attempt to edit this topic; it is auto-generated. Please add comments/questions/remarks to the Dev topic instead. -->
 Translator framework for Wysiwyg editors
Added:
>
>
<--
   Contributions to this plugin are appreciated. Please update the plugin page
   at http://twiki.org/cgi-bin/view/Plugins/WysiwygPlugin or provide feedback
   at http://twiki.org/cgi-bin/view/Plugins/WysiwygPluginDev.
   If you are a TWiki contributor please update the plugin in the SVN repository.
-->
  Support for the integration of WYSIWYG (What-You-See-Is-What-You-Get) editors. On its own, the only thing this plugin gives you is a stand-alone HTML to TWiki translator script. For WYSIWYG editing in TWiki, you will also need to install a specific editor package such as TWiki:Plugins.KupuEditorContrib or TWiki:Plugins.WikiwygContrib.
Line: 94 to 100
 

Other techniques

Asynchronous saves

Changed:
<
<
Editors can use XmlHttpRequest to perform saves, by POSTing to the TWiki save script with the wysiwyg_edit parameter set to 1. This parameter tells the beforeSaveHandler in the WysiwygPlugin to convert the content back to TML. See TWikiScripts for details of the other parameters to the save script.
>
>
Editors can use XmlHttpRequest to perform saves, by POSTing to the TWiki save script with the wysiwyg_edit parameter set to 1. This parameter tells the beforeSaveHandler in the WysiwygPlugin to convert the content back to TML. See TWikiScripts for details of the other parameters to the save script.
  Once the save script has completed it responds with a redirect, either to an Oops page if the save failed, or to the appropriate post-save URL (usually a view). The editor must be ready to handle this redirect.
Line: 143 to 149
 

Plugin Configuration Settings

Translator control

Changed:
<
<
The global TWiki Variable WYSIWYG_EXCLUDE can be set to make the plugin sensitive to what is in a topic, before allowing it to be edited. You can set it up to veto an edit if the topic contains:
  • html - HTML tags (e.g. <div>, not including <br>), or
  • variables - simple variables (e.g. %VAR%) or
  • calls - TWiki variables with parameters e.g. %VARIABLE{...}%
  • pre blocks (<pre>)
  • HTML comments (<!-- ... -->)
If the plugin detects an excluded construct in the topic, it will refuse to allow the edit and will redirect to the default editor.

If you excluded calls in WYSIWYG_EXCLUDE, you can still define a subset of TWiki variables that do not block edits. this is done in the global TWiki variable WYSIWYG_EDITABLE_CALLS, which should be a list of TWiki variable names separated by vertical bars, with no spaces, e.g: * Set WYSIWYG_EDITABLE_CALLS = COMMENT|CALENDAR|INCLUDE

You should set WYSIWYG_EXCLUDE and WYSIWYG_EDITABLE_CALLS in TWikiPreferences, or in WebPreferences for each web.

You can define the global variable WYSIWYGPLUGIN_STICKYBITS to stop the plugin from ever trying to convert specific HTML tags into HTML when certain specific attributes are present on the tag. This is most useful when you have styling or alignment information in tags that must be preserved.

This variable is used to tell the translator which attributes, when present on a tag, make it "stick" i.e. block conversion. For example, setting it to table=background,lang;tr=valign will stop the translator from trying to handle any table tag that has background or lang attributes, and any tr tag that has a valign attribute.

You can use perl regular expressions to match tag and attribute names, so .*=id,on.* will ensure that any tag with an on* event handler is kept as HTML.

The default setting for this variable is:

    .*=id,lang,title,dir,on.*;
    A=accesskey,coords,shape,target;
    BDO=dir;
    BR=clear;
    COL=char,charoff,span,valign,width;
    COLGROUP=align,char,charoff,span,valign,width;
    DIR=compact;
    DIV=align;
    DL=compact;
    FONT=size,face;
    H\d=align;
    HR=align,noshade,size,width;
    LEGEND=accesskey,align;
    LI=type,value;
    OL=compact,start,type;
    P=align;
    PARAM=name,type,value,valuetype;
    PRE=width;
    Q=cite;
    TABLE=align,bgcolor,border,cellpadding,cellspacing,frame,rules,summary,width;
    TBODY=align,char,charoff,valign;
    TD=abbr,align,axis,bgcolor,char,charoff,colspan,headers,height,nowrap,rowspan,scope,valign,width;
    TFOOT=align,char,charoff,valign;
    TH=abbr,align,axis,bgcolor,char,charoff,colspan,height,nowrap,rowspan,scope,valign,width,headers;
    THEAD=align,char,charoff,valign;
    TR=bgcolor,char,charoff,valign;
    UL=compact,type

If you edit using the plain-text editor, you can use the <sticky>..</sticky> tags to delimit HTML (or TML) that you do not want to be WYSIWYG edited.

>
>
The global TWiki Variable WYSIWYG_EXCLUDE can be set to make the plugin sensitive to what is in a topic, before allowing it to be edited. You can set it up to veto an edit if the topic contains:
  • html - HTML tags (e.g. <div>, not including <br>), or
  • variables - simple variables (e.g. %VAR%) or
  • calls - TWiki variables with parameters e.g. %VARIABLE{...}%
  • pre blocks (<pre>)
  • HTML comments (<!-- ... -->)
If the plugin detects an excluded construct in the topic, it will refuse to allow the edit and will redirect to the default editor.

If you excluded calls in WYSIWYG_EXCLUDE, you can still define a subset of TWiki variables that do not block edits. this is done in the global TWiki variable WYSIWYG_EDITABLE_CALLS, which should be a list of TWiki variable names separated by vertical bars, with no spaces, e.g: * Set WYSIWYG_EDITABLE_CALLS = COMMENT|CALENDAR|INCLUDE

You should set WYSIWYG_EXCLUDE and WYSIWYG_EDITABLE_CALLS in TWikiPreferences, or in WebPreferences for each web.

You can define the global variable WYSIWYGPLUGIN_STICKYBITS to stop the plugin from ever trying to convert specific HTML tags into HTML when certain specific attributes are present on the tag. This is most useful when you have styling or alignment information in tags that must be preserved.

This variable is used to tell the translator which attributes, when present on a tag, make it "stick" i.e. block conversion. For example, setting it to table=background,lang;tr=valign will stop the translator from trying to handle any table tag that has background or lang attributes, and any tr tag that has a valign attribute.

You can use perl regular expressions to match tag and attribute names, so .*=id,on.* will ensure that any tag with an on* event handler is kept as HTML.

The default setting for this variable is:

    .*=id,lang,title,dir,on.*;
    A=accesskey,coords,shape,target;
    BDO=dir;
    BR=clear;
    COL=char,charoff,span,valign,width;
    COLGROUP=align,char,charoff,span,valign,width;
    DIR=compact;
    DIV=align;
    DL=compact;
    FONT=size,face;
    H\d=align;
    HR=align,noshade,size,width;
    LEGEND=accesskey,align;
    LI=type,value;
    OL=compact,start,type;
    P=align;
    PARAM=name,type,value,valuetype;
    PRE=width;
    Q=cite;
    TABLE=align,bgcolor,border,cellpadding,cellspacing,frame,rules,summary,width;
    TBODY=align,char,charoff,valign;
    TD=abbr,align,axis,bgcolor,char,charoff,colspan,headers,height,nowrap,rowspan,scope,valign,width;
    TFOOT=align,char,charoff,valign;
    TH=abbr,align,axis,bgcolor,char,charoff,colspan,height,nowrap,rowspan,scope,valign,width,headers;
    THEAD=align,char,charoff,valign;
    TR=bgcolor,char,charoff,valign;
    UL=compact,type

If you edit using the plain-text editor, you can use the <sticky>..</sticky> tags to delimit HTML (or TML) that you do not want to be WYSIWYG edited.

  Implementors note if you are using your own before/after edit handlers, you can call TWiki::Plugins::WysiwygPlugin::isWysiwygEditable() to check these controls.
Line: 179 to 185
 

Plugin Author(s): TWiki:Main.CrawfordCurrie http://www.c-dot.co.uk
Changed:
<
<
Copyright © ILOG 2005 http://www.ilog.fr
>
>
Copyright © ILOG 2005 http://www.ilog.fr, 2007 TWIKI.NET
 
License GPL (Gnu General Public License)
Changed:
<
<
Plugin Version: 17829 (30 Mar 2009)
>
>
Plugin Version: 18020 (29 Apr 2009)
 
Change History:  
Added:
>
>
18 Apr 2009 Fixed TWikibug:Item6251 (require http post for REST upload)
 
22 Oct 2008 Fixed TWikibug:Item5961 (emphasis), TWikibug:Item6089 (backslash in verbatim)
7 Aug 2008 Fixed TWikibug:Item5707 (mod_perl)
3 Aug 2008 TWiki 4.2.1 release version
Line: 209 to 216
 
Feedback: TWiki:Plugins/WysiwygPluginDev
Appraisal: http://twiki.org/cgi-bin/view/Plugins/WysiwygPluginAppraisal
Changed:
<
<
Related Topics: TWikiPreferences, TWikiPlugins

<-- Do not attempt to edit this topic; it is auto-generated. Please add comments/questions/remarks to the Dev topic instead. -->
>
>
Related Topics: TWikiPreferences, TWikiPlugins
 
META FILEATTACHMENT attr="h" comment="" name="wikiringlogo20x20.png" version="1"
 
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback
Note: Please contribute updates to this topic on TWiki.org at TWiki:TWiki.WysiwygPlugin