Difference between revisions of "MediaWiki/ExtensionV5"

From Jmol
Jump to navigation Jump to search
(new documentation for v.5 of the Extension)
(Third-level subtags)
 
(15 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
{{Running_Jmol_Sections}}
 
{{Running_Jmol_Sections}}
  
= Jmol MediaWiki Extension (version 5) =
+
= Jmol (JSmol) Extension for MediaWiki, version 5 =
 
 
''... this is a work in progress ...''
 
  
 
For general information on this Extension and particularly about how to install and set it up, visit the [[MediaWiki]] page.
 
For general information on this Extension and particularly about how to install and set it up, visit the [[MediaWiki]] page.
Line 13: Line 11:
 
:''Please check the version you have installed in your wiki (browse to ''Special pages'', then ''Version''). Documentation for former versions of the Extension may be found in [[MediaWiki/ExtensionV3]] and [[MediaWiki/ExtensionV4]].''
 
:''Please check the version you have installed in your wiki (browse to ''Special pages'', then ''Version''). Documentation for former versions of the Extension may be found in [[MediaWiki/ExtensionV3]] and [[MediaWiki/ExtensionV4]].''
  
There are 4 ways to use JSmol models in a wiki that implements this extension:
 
# '''In-page models''': Inserting a JSmol object within the page content, allowing scripts and custom rendering. Additionally, inserting controls that will act on the JSmol object (links, buttons, radio buttons, menus... that will apply scripts to the model).
 
# '''Pop-in calls''': Inserting a link that, when clicked, will insert a JSmol object inline below the link, allowing scripts and custom rendering.
 
# '''Pop-up calls''': Inserting a link or a button that will open a JSmol model in a popup window, allowing scripts and custom rendering.
 
# '''Simple calls''': Inserting a link that will open a JSmol model in a popup window, with no custom rendering, no scripting.
 
  
  
__TOC__
+
== How to use the Jmol Extension ==
 +
''This applies to version 5 of the Extension''
  
== In-page models ==
+
=== Simple tags ===
 +
There are 4 tags that will render a link in the page that, when clicked by the user,
 +
will open a small window (pop-up) with a JSmol panel that displays a structure. No custom rendering or scripting on the structure is possible.
 +
* <code>jmolFile</code>
 +
* <code>jmolMol</code>
 +
* <code>jmolSmiles</code>
 +
* <code>jmolPdb</code>
  
=== Tag {{Tag|jmolApplet}} ===
+
See [[MediaWiki/Simple_Tags]] for details and demonstration with examples.
  
This tag in a MediaWiki page inserts a Jmol object (by default the JSmol HTML5 modality). It may be complemented with the insertion of controls that will apply some scripting on the model (see next section).
+
=== Full-featured tag ===
 +
==== First level tag ====
 +
The <code>jmol</code> tag encloses different subtags that offer more flexibility in how and when the model will be displayed,
 +
as well as its rendering or scripting.
  
The tag and its complements must be enclosed in an enveloping {{Tag|jmol}} tag.  
+
==== Second-level subtags that insert a JSmol panel (either inline or in a popup) ====
All these tags and sub-tags must open (<code>&lt;keyword&gt;</code>) and close (<code>&lt;/keyword&gt;</code>) and in between contain the information.
+
* Inline JSmol panel:
 +
** <code>jmolApplet</code> inserts the JSmol panel in the page as soon as it is loaded. See [[MediaWiki/Tags for In-page Models]] for details.
 +
** <code>jmolAppletInlineButton</code>
 +
** <code>jmolAppletInlineLink</code> both will, upon user action, insert into the page a JSmol panel displaying a structure. See [[MediaWiki/Tags for Pop-in Models]] for details.
 +
* Pop-up JSmol panel:
 +
** <code>jmolAppletButton</code>
 +
** <code>jmolAppletLink</code> both will, upon user action, open a small window (pop-up) with a JSmol panel displaying the structure. See [[MediaWiki/Tags for Pop-up Models]] for details.
  
To insert a Jmol object into a MediaWiki page, start with the following:
+
==== Second-level subtags that insert controls to act on one JSmol panel ====
{{Tag|jmol}}
+
See [[MediaWiki/Tags for Controls]] for details and examples.
  {{Tag|jmolApplet}}
+
* <code>jmolButton</code>
    ''...(additional information using sub-tags, read below)''
+
* <code>jmolLink</code>
  {{Tag|/jmolApplet}}
+
* <code>jmolCheckbox</code>
{{Tag|/jmol}}
+
* <code>jmolMenu</code>
 +
* <code>jmolRadioGroup</code>
  
==== Sub-tags for model sources ====
+
==== Third-level subtags ====
The model data may come from one of several sources, and is specified in a subtag inside the {{Tag|jmolApplet}} tag:
+
These are relevant for <code>jmolApplet</code>, and some of them also for some other 2nd-level subtags:
 +
* <code>text</code>  (displayed in the page or in the UI control)
 +
* <code>script</code>  (commands for the molecule display in JSmol)
 +
* <code>uploadedFileContents</code> (model to be loaded)
 +
* <code>urlContents</code>
 +
* <code>wikiPageContents</code>
 +
* <code>inlineContents</code>
 +
* <code>title</code>  (either tooltip for the UI control or text to be displayed above the JSmol panel)
 +
* <code>caption</code>  (text to be displayed below the JSmol panel)
 +
* <code>color</code>  (background color of JSmol panel)
 +
* <code>size</code>  (dimensions of JSmol panel)
 +
* <code>controls</code>  (display of optional buttons below the JSmol panel; value: any combination of spin | quality | labels | popup)
 +
* <code>frame</code>  (border around the JSmol panel)
 +
* <code>image</code> (cover image to be displayed; replaced with the JSmol panel upon click)
 +
* <code>pspeed</code>  (performance: higher speed vs. higher quality, relevant for mobile platforms)
 +
* <code>name</code>  (applies to <code>jmolApplet</code>, needed when several JSmol panels are presemt in a page)
 +
These are more specific and relevant just for some 2nd-level subtags:
 +
* <code>target</code>  applies to <code>jmolButton</code>, <code>jmolLink</code>, <code>jmolCheckbox</code>, <code>jmolMenu</code>, <code>jmolRadioGroup</code>
 +
* <code>scriptWhenChecked</code>  applies only to <code>jmolCheckbox</code>
 +
* <code>scriptWhenUnchecked</code>  applies only to <code>jmolCheckbox</code>
 +
* <code>checked</code> applies only to <code>jmolMenu</code> and <code>jmolRadioGroup</code>
 +
* <code>item</code>  applies only to <code>jmolMenu</code> and <code>jmolRadioGroup</code>
 +
* <code>vertical</code> applies only to <code>jmolRadioGroup</code>
 +
* <code>menuheight</code>  applies only to <code>jmolMenu</code>
  
* A file uploaded in the wiki, containing the molecular data:
+
== How to install the Jmol Extension ==
{{Tag|jmol}}
+
Please see [[MediaWiki/Installation]]
  {{Tag|jmolApplet}}
 
    {{Tag|uploadedFileContents}} name of file in the wiki {{Tag|/uploadedFileContents}}
 
  {{Tag|/jmolApplet}}
 
{{Tag|/jmol}}
 
:The file must be uploaded to the wiki as if it were an image, using the "Upload file" link in the "Toolbox" panel on the left. Its location is hence <nowiki>[[Image:MyMolecule.mol]]</nowiki>, but only the name, '''MyMolecule.mol''', must be inserted inside the <uploadedFileContents> tag.
 
:<span style="color:white;font-weight:bold;background:#008F00;padding:0 1ex;">Admin:</span>
 
:This possibility can be globally disabled by the Wiki administrator with the <tt>$wgJmolAuthorizeUploadedFile</tt> setting. If it is enabled, the Wiki needs to be configured to authorize the upload of molecular data files, using <tt>$wgFileExtensions</tt>. Both settings are in {{File|LocalSettings.php}}.
 
  
* A page of the wiki which contains as text the molecular data:
+
= Former versions =
{{Tag|jmol}}
 
  {{Tag|jmolApplet}}
 
    {{Tag|wikiPageContents}} page of the wiki containing the molecular data {{Tag|/wikiPageContents}}
 
  {{Tag|/jmolApplet}}
 
{{Tag|/jmol}}
 
  
* The contents of the molecular data, written inside the tag:
+
For documentation on former versions of the Extension, see [[MediaWiki/ExtensionV3]] and [[MediaWiki/ExtensionV4]].
{{Tag|jmol}}
 
  {{Tag|jmolApplet}}
 
    {{Tag|inlineContents}} the molecular data {{Tag|/inlineContents}}
 
  {{Tag|/jmolApplet}}
 
{{Tag|/jmol}}
 
 
 
* An external file located anywhere in the web:
 
{{Tag|jmol}}
 
  {{Tag|jmolApplet}}
 
    {{Tag|urlContents}} URL of the molecular file {{Tag|/urlContents}}
 
  {{Tag|/jmolApplet}}
 
{{Tag|/jmol}}
 
:<span style="color:white;font-weight:bold;background:#008F00;padding:0 1ex;">Admin:</span>
 
: This possibility can be globally disabled by the Wiki administrator with the <tt>$wgJmolAuthorizeUrl</tt> setting in {{File|LocalSettings.php}}.
 
: If the file is in a server different than the wiki, you need to have <code>jsmol.php</code> properly configured in your wiki server setup<!--, or use the signed Java applet (via the {{Tag|signed}} tag, which may not be available to every user system)--> (see [[Jmol_JavaScript_Object/Info#Files_and_paths|serverURL]])
 
 
 
==== Sub-tags for features of the Jmol object ====
 
 
 
* {{Tag|color}} Sets the background color of the Jmol object (default is white). You can specify it:
 
** With a named color belonging to the set that is recognized by Jmol (e.g. paleGoldenrod).
 
** With an hexadecimal value in the HTML format (e.g. #EEE8AA).
 
** With an hexadecimal value in the JmolScript fomat (e.g. [xEEE8AA]).
 
* {{Tag|size}} Size of the applet. Only a number should be given, meaning pixels. Only square applets are currently suported (width=height).
 
* {{Tag|float}} <tt>left</tt> or <tt>right</tt>
 
* {{Tag|frame}} if <tt>true</tt>, draws a frame around the Jmol object.
 
* {{Tag|title}} Text displayed above the Jmol object.
 
* {{Tag|titlecss}} CSS style for the title.
 
* {{Tag|caption}} Text displayed below the Jmol object. Be careful with formatting or special characters; must be enabled for wikitext, i.e. you can include double square bracket links.</caption>
 
* {{Tag|captioncss}} CSS style for the caption.
 
* {{Tag|controls}} Inserts some utility control buttons below the Jmol object; values may be <tt>all | spin | quality | popup</tt>
 
* {{Tag|script}} Jmol commands to execute right after loading the molecule.
 
* {{Tag|name}} When a page includes several Jmol objects, this name allows to associate action of Jmol controls to this particular Jmol object (via a matching {{Tag|target}} in those controls).
 
* {{Tag|pspeed}} Platform speed parameter for Jmol (numeric from 1 to 8)
 
* {{Tag|animgifurl}} URL of an animated GIF file to display before rendering the model. ''This is not yet implemented.''
 
 
 
==== Examples ====
 
 
 
{|
 
|-
 
! wikitext code:
 
! result:
 
|-
 
|
 
{{Tag|jmol}}
 
  {{Tag|jmolApplet}}
 
    {{Tag|name}}Jmol_A{{Tag|/name}}
 
    {{Tag|title}}Cyclohexane{{Tag|/title}}
 
    {{Tag|caption}}Chair conformation{{Tag|/caption}}
 
    {{Tag|float}}right{{Tag|/float}}
 
    {{Tag|color}}blueTint{{Tag|/color}}
 
    {{Tag|size}}250{{Tag|/size}}
 
    {{Tag|uploadedFileContents}}Chair.xyz{{Tag|/uploadedFileContents}}
 
    {{Tag|pspeed}}2{{Tag|/pspeed}}
 
    {{Tag|controls}}spin popup{{Tag|/controls}}
 
  {{Tag|/jmolApplet}}
 
{{Tag|/jmol}}
 
Note: excess spaces inside the tags may prevent proper operation.
 
|
 
<jmol>
 
  <jmolApplet>
 
    <name>Jmol_A</name>
 
    <title>Cyclohexane</title>
 
    <caption>Chair conformation</caption>
 
    <float>right</float>
 
    <color>blueTint</color>
 
    <size>250</size>
 
    <uploadedFileContents>Chair.xyz</uploadedFileContents>
 
    <pspeed>2</pspeed>
 
    <controls>spin popup</controls>
 
  </jmolApplet>
 
</jmol>
 
 
 
|}
 
 
 
=== Tags for controls acting on the Jmol object ===
 
  
Each type of control has specific options as sub-tags, but all should include a text to be displayed in the control
+
== Test Pages ==
and a script of Jmol commands. If the text is omitted, it will be a (shortened) copy of the script.
 
 
 
Tags for controls may be included within their own, separate {{Tag|jmol}} tag or be combined with the {{Tag|jmolApplet}} under a single {{Tag|jmol}} tag.
 
 
 
The {{Tag|target}} sub-tag is useful only when the page includes more than one Jmol object, and must match the respective {{Tag|name}} sub-tag of the {{Tag|jmolApplet}} tag.
 
 
 
==== Tag {{Tag|jmolButton}} ====
 
{{Tag|jmol}}
 
  {{Tag|jmolButton}}
 
    {{Tag|script}} script to execute when the button is pressed {{Tag|/script}}
 
    {{Tag|text}} text displayed in the button {{Tag|/text}}
 
    {{Tag|name}} html name of the button {{Tag|/name}}
 
    {{Tag|target}} name of the Jmol object on which the script will be applied {{Tag|/target}}
 
  {{Tag|/jmolButton}}
 
{{Tag|/jmol}}
 
 
 
==== Tag {{Tag|jmolLink}} ====
 
{{Tag|jmol}}
 
  {{Tag|jmolLink}}
 
    {{Tag|script}} script to execute when the link is clicked {{Tag|/script}}
 
    {{Tag|text}} text displayed in the link {{Tag|/text}}
 
    {{Tag|name}} html name of the &lt;a&gt; element {{Tag|/name}}
 
    {{Tag|target}} name of the Jmol object on which the script will be applied {{Tag|/target}}
 
  {{Tag|/jmolLink}}
 
{{Tag|/jmol}}
 
 
 
==== Tag {{Tag|jmolCheckbox}} ====
 
{{Tag|jmol}}
 
  {{Tag|jmolCheckbox}}
 
    {{Tag|scriptWhenChecked}} script to execute when the checkbox is checked {{Tag|/scriptWhenChecked}}
 
    {{Tag|scriptWhenUnchecked}} script to execute when the checkbox is unchecked {{Tag|/scriptWhenUnchecked}}
 
    {{Tag|checked}} true {{Tag|/checked}}
 
    {{Tag|text}} text beside the checkbox {{Tag|/text}}
 
    {{Tag|name}} html name of the checkbox element {{Tag|/name}}
 
    {{Tag|target}} name of the Jmol object on which the scripts will be applied {{Tag|/target}}
 
  {{Tag|/jmolCheckbox}}
 
{{Tag|/jmol}}
 
 
 
{{Tag|checked}} indicates if the checkbox is initially checked when the page loads (default is false).
 
 
 
==== Tag {{Tag|jmolRadioGroup}} ====
 
Inserts a group of mutually exclusive radio buttons.
 
{{Tag|jmol}}
 
  {{Tag|jmolRadioGroup}}
 
    {{Tag|vertical}} true or false {{Tag|/vertical}}
 
    {{Tag|name}} html name of the radio group {{Tag|/name}}
 
    {{Tag|target}} name of the Jmol object on which the scripts will be applied {{Tag|/target}}
 
    {{Tag|item}}
 
      {{Tag|script}} script to execute when first radio button is selected {{Tag|/script}}
 
      {{Tag|text}} text displayed beside first radio button {{Tag|/text}}
 
      {{Tag|checked}} true {{Tag|/checked}}
 
    {{Tag|/item}}
 
    {{Tag|item}}
 
      {{Tag|script}} script to execute when second radio button is selected {{Tag|/script}}
 
      {{Tag|text}} text displayed beside second radio button {{Tag|/text}}
 
    {{Tag|/item}}
 
  {{Tag|/jmolRadioGroup}}
 
{{Tag|/jmol}}
 
 
 
{{Tag|vertical}} indicates if the radio buttons are stacked vertically (separated by line break) or horizontally (separated by space).
 
 
 
{{Tag|checked}} indicates that particular (item) radio button is initially checked when the page loads (default is false).
 
 
 
==== Tag {{Tag|jmolMenu}} ====
 
{{Tag|jmol}}
 
  {{Tag|jmolMenu}}
 
    {{Tag|menuHeight}} number {{Tag|/menuHeight}}
 
    {{Tag|name}} html name of the menu object {{Tag|/name}}
 
    {{Tag|target}} name of the Jmol object on which the scripts will be applied {{Tag|/target}}
 
    {{Tag|item}}
 
      {{Tag|script}} script to execute when first menu item is selected {{Tag|/script}}
 
      {{Tag|text}} text of first menu item {{Tag|/text}}
 
      {{Tag|checked}} true {{Tag|/checked}}
 
    {{Tag|/item}}
 
    {{Tag|item}}
 
      {{Tag|script}} script to execute when second menu item is selected {{Tag|/script}}
 
      {{Tag|text}} text of second menu item {{Tag|/text}}
 
    {{Tag|/item}}
 
  {{Tag|/jmolMenu}}
 
{{Tag|/jmol}}
 
 
 
The value in {{Tag|menuHeight}} is the number of visible menu options (if 2 or more). '''1''' (the default) gives a combo-box. '''-1''' expands to make all options visible.''
 
 
 
{{Tag|checked}} indicates that particular (item) option is initially selected when the page loads (default is the first option in the menu).
 
 
 
== Pop-in calls ==
 
 
 
This tag in a MediaWiki page generates a hyperlink that, when clicked, will insert a JSmol object right below the link. The JSmol panel may later be hidden if the user clicks on its close button.
 
 
 
The tag must be enclosed in an enveloping {{Tag|jmol}} tag.
 
 
 
All sub-tags of {{Tag|jmolApplet}} are allowed here (but some of them may be not applicable in this case).
 
The model data may come from one of several sources, same as for the {{Tag|jmolApplet}} (described above).
 
 
 
=== Tag {{Tag|jmolAppletInlineLink}} ===
 
{{Tag|jmol}}
 
  {{Tag|jmolAppletInlineLink}}
 
    {{Tag|uploadedFileContents}} file uploaded in the wiki containing the molecular data {{Tag|/uploadedFileContents}}
 
    {{Tag|text}} text displayed in the link {{Tag|/text}}
 
    {{Tag|size}} number of pixels for width and height of the JSmol panel {{Tag|/size}}
 
    {{Tag|title}} text displayed above the JSmol object {{Tag|/title}}
 
    {{Tag|caption}} text displayed below the JSmol object {{Tag|/caption}}
 
  {{Tag|/jmolAppletLink}}
 
{{Tag|/jmol}}
 
 
 
 
 
== Pop-up calls ==
 
 
 
These tags in a MediaWiki page generate a hyperlink or a button that will open a new window (pop-up) filled with a JSmol object. The JSol object will fit the window, which is resizable.
 
 
 
These tags use the same method as the {{Tag|jmolApplet}} tag described in a previous section, and can contain the same sub-tags (if applicable). Hence, description and examples here are minimal.
 
 
 
The tags must be enclosed in an enveloping {{Tag|jmol}} tag, which may also enclose additional tags to achieve custom rendering styles and any scripting.
 
 
 
The model data may come from one of several sources, same as for the {{Tag|jmolApplet}} (described above).
 
 
 
=== Tag {{Tag|jmolAppletButton}} ===
 
{{Tag|jmol}}
 
  {{Tag|jmolAppletButton}}
 
    {{Tag|uploadedFileContents}} file uploaded in the wiki containing the molecular data {{Tag|/uploadedFileContents}}
 
    {{Tag|title}} text displayed as title of the popup window {{Tag|/title}}
 
    {{Tag|text}} text displayed in the button {{Tag|/text}}
 
    {{Tag|x}} number of pixels {{Tag|/x}}
 
    {{Tag|y}} number of pixels {{Tag|/y}}
 
  {{Tag|/jmolAppletButton}}
 
{{Tag|/jmol}}
 
 
 
{{Tag|title}} defaults to "JSmol popup". It will be displayed in the title bar of the pop window and also below the model (by the side of any control buttons)
 
 
 
{{Tag|text}} defaults to the contents of {{Tag|title}}.
 
 
 
{{Tag|x}} sets the horizontal position of the popup window.
 
 
 
{{Tag|y}} sets the vertical position of the popup window.
 
 
 
=== Tag {{Tag|jmolAppletLink}} ===
 
{{Tag|jmol}}
 
  {{Tag|jmolAppletLink}}
 
    {{Tag|uploadedFileContents}} file uploaded in the wiki containing the molecular data {{Tag|/uploadedFileContents}}
 
    {{Tag|title}} text displayed as title of the popup window {{Tag|/title}}
 
    {{Tag|text}} text displayed in the link {{Tag|/text}}
 
    {{Tag|x}} number of pixels {{Tag|/x}}
 
    {{Tag|y}} number of pixels {{Tag|/y}}
 
  {{Tag|/jmolAppletLink}}
 
{{Tag|/jmol}}
 
 
 
{{Tag|title}} defaults to "JSmol popup". It will be displayed in the title bar of the pop window and also below the model (by the side of any control buttons)
 
 
 
{{Tag|text}} defaults to the contents of {{Tag|title}}.
 
 
 
{{Tag|x}} sets the horizontal position of the popup window.
 
 
 
{{Tag|y}} sets the vertical position of the popup window.
 
 
 
 
== Simple calls ==
 
 
 
These tags in a MediaWiki page generate a hyperlink that will open a new window (pop-up) filled with a JSmol object. This will fit the window, which is resizable. No custom rendering styles or scripting can be applied to the model.
 
 
 
The model data may come from one of 4 sources:
 
# a file that has been previously uploaded to the wiki;
 
# a file retrieved from the RCSB [https://www.rcsb.org/ PDB] database server (macromolecules);
 
# a file retrieved from the [https://cactus.nci.nih.gov/chemical/structure CACTUS] NIH server.
 
# a file retrieved from either the CACTUS server or any other server (defined by the wiki administrator).
 
 
 
All 4 tags need to include just a text that specifies the model to be loaded (file name or ID).
 
They may optionally include a <code>text=</code> attribute that will serve as the visible text making the link; if omitted, the model string will also be used as the link text.
 
 
 
Note that these tags do not require a {{Tag|jmol}} tag (in contrast to the tags described in the preceding sections).
 
 
 
=== Tag {{Tag|jmolFile}} ===
 
This tag produces a link that opens a popup JSmol object and loads the model from a file that has been previously uploaded to the wiki. The model is displayed in the default rendering (ball and stick, CPK color, white background).
 
 
 
The file must be uploaded to the wiki as if it were an image, using the "Upload file" link in the "Toolbox" panel on the left. Its location is hence <nowiki>[[File:MyMolecule.mol]]</nowiki>, but only the name, MyMolecule.mol, must be inserted inside the {{Tag|jmolFile}} tag.
 
:<span style="color:white;font-weight:bold;background:#008F00;padding:0 1ex;">Admin:</span>
 
:This possibility can be globally disabled by the Wiki administrator with the <tt>$wgJmolAuthorizeUploadedFile</tt> setting. If it is enabled, the Wiki needs to be configured to authorize the upload of molecular data files, using <tt>$wgFileExtensions</tt>. Both settings are in {{File|LocalSettings.php}}.
 
 
 
Examples:
 
{{Tag|jmolFile}}Chair.cml{{Tag|/jmolFile}}
 
is rendered as <jmolFile>Chair.cml</jmolFile> which, when clicked, will open a Jmol object with the model read from [[:File:Chair.cml|File:Chair.cml]].
 
{{Tag|<nowiki>jmolFile text="Show ethanol"</nowiki>}}Ethanol.xyz{{Tag|/jmolFile}}
 
is rendered as <jmolFile text="Show ethanol">Ethanol.xyz</jmolFile> which, when clicked, will open a Jmol object with the model read from [[:File:Ethanol.xyz|File:Ethanol.xyz]].
 
 
 
=== Tag {{Tag|jmolPdb}} ===
 
This tag produces a link that opens a popup JSmol object and loads the model from the [http://www.rcsb.org/pdb/ RCSB PDB] database server. The model is displayed in the default rendering (ball and stick, CPK color, white background).
 
 
 
:<span style="color:white;font-weight:bold;background:#008F00;padding:0 1ex;">Admin:</span>
 
:The server to be used may be changed by the wiki administrator from the default to any other that holds a copy of the PDB database (e.g., PDBe, PDBj, Proteopedia)
 
 
 
Only the 4-character ID of the molecule in the PDB must be inserted inside the {{Tag|jmolPdb}} tag.
 
 
 
Examples:
 
{{Tag|jmolPdb}}2CDS{{Tag|/jmolPdb}}
 
is rendered as <jmolPdb>2CDS</jmolPdb> which, when clicked, will open a Jmol object with the model retrieved from the PDB server.
 
{{Tag|<nowiki>jmolPdb text="structure of lysozyme"</nowiki>}}2CDS{{Tag|/jmolPdb}}
 
is rendered as <jmolPdb text="structure of lysozyme">2CDS</jmolPdb> which, when clicked, will open a Jmol object with the model read from the PDB server.
 
 
 
=== Tag {{Tag|jmolSmiles}} ===
 
This tag produces a link that opens a popup JSmol object and loads the model from the [https://cactus.nci.nih.gov/chemical/structure CACTUS] NIH server, constructed from a SMILES string, CAS number, InChI key or chemical name. The model is displayed in the default rendering (ball and stick, CPK color, white background).
 
 
 
The name or key of the molecule must be inserted inside the {{Tag|jmolSmiles}} tag.
 
 
 
Examples:
 
{{Tag|jmolSmiles}}CCCNC{{Tag|/jmolSmiles}}
 
is rendered as <jmolSmiles>CCCNC</jmolSmiles> which, when clicked, will open a Jmol object with the propylmethylamine structure (of which CCCNC is the [[:en:SMILES|SMILES string]]) retrieved from the CACTUS server.
 
{{Tag|<nowiki>jmolSmiles text="something for your headache"</nowiki>}}aspirin{{Tag|/jmolSmiles}}
 
is rendered as <jmolSmiles text="something for your headache">aspirin</jmolSmiles> which, when clicked, will open a Jmol object with the structure of aspirin read from the CACTUS server.
 
 
 
=== Tag {{Tag|jmolMol}} ===
 
This tag produces a link that opens a popup JSmol object and loads the model from the [https://cactus.nci.nih.gov/chemical/structure CACTUS] NIH server, constructed from a chemical name. The model is displayed in the default rendering (ball and stick, CPK color, white background).
 
 
 
By default this tag does the same as {{Tag|jmolSmiles}} but this one may be configured to use a different server.
 
 
 
:<span style="color:white;font-weight:bold;background:#008F00;padding:0 1ex;">Admin:</span>
 
:The server to be used may be changed from the default (CACTUS) to any other that can deliver files in a format suitable for Jmol, given their name or another kind of ID.
 
 
 
Only the name or ID of the molecule must be inserted inside the {{Tag|jmolMol}} tag.
 
 
 
Examples:
 
{{Tag|jmolMol}}caffeine{{Tag|/jmolMol}}
 
is rendered as [[MediaWiki/ExtensionV5#1|caffeine]] which, when clicked, will open a JSmol object with the structure of caffeine retrieved from the CACTUS or another server.
 
{{Tag|<nowiki>jmolMol text="something in your coffee"</nowiki>}}caffeine{{Tag|/jmolMol}}
 
is rendered as [[MediaWiki/ExtensionV5#1|something in your coffee]] which, when clicked, will open a JSmol object with the structure of caffeine read from the CACTUS or another server.
 
 
 
 
 
= Test Pages =
 
  
 
# A few [[MediaWiki/Basic Example|basic examples]] of the {{tag|jmolFile}}, {{tag|jmolPdb}} and {{tag|jmolSmiles}} tags.
 
# A few [[MediaWiki/Basic Example|basic examples]] of the {{tag|jmolFile}}, {{tag|jmolPdb}} and {{tag|jmolSmiles}} tags.
Line 374: Line 94:
 
# [[Load SMILES]] via script -- Includes test of signed applet and  {{tag|jmolMenu}}
 
# [[Load SMILES]] via script -- Includes test of signed applet and  {{tag|jmolMenu}}
 
# [[User:Bduke#Tests_of_Jmol_incorporated_into_a_MediaWiki_wiki | Test page]] (Brian's)
 
# [[User:Bduke#Tests_of_Jmol_incorporated_into_a_MediaWiki_wiki | Test page]] (Brian's)
 
= Former versions =
 
 
For documentation on former versions of the Extension, see [[MediaWiki/ExtensionV3]] and [[MediaWiki/ExtensionV4]].
 

Latest revision as of 21:01, 12 May 2024

Running Jmol / JSmol

Jmol (JSmol) Extension for MediaWiki, version 5

For general information on this Extension and particularly about how to install and set it up, visit the MediaWiki page.

This version of the Extension has been developed and tested with MediaWiki 1.32.

It will use by default JSmol objects in the HTML5 modality, but configuration may be adjusted to allow the Java modality (signed applet) or the WebGL modality (note that JSmol has limited functionality with the latter). All mentions of either Jmol or JSmol in this documentation are synonyms. Note also that the use of "applet" in names and references is maintained for legacy reasons but Java is not involved any more (unless forced by the user and allowed by the wiki administrator).

Please check the version you have installed in your wiki (browse to Special pages, then Version). Documentation for former versions of the Extension may be found in MediaWiki/ExtensionV3 and MediaWiki/ExtensionV4.


How to use the Jmol Extension

This applies to version 5 of the Extension

Simple tags

There are 4 tags that will render a link in the page that, when clicked by the user, will open a small window (pop-up) with a JSmol panel that displays a structure. No custom rendering or scripting on the structure is possible.

  • jmolFile
  • jmolMol
  • jmolSmiles
  • jmolPdb

See MediaWiki/Simple_Tags for details and demonstration with examples.

Full-featured tag

First level tag

The jmol tag encloses different subtags that offer more flexibility in how and when the model will be displayed, as well as its rendering or scripting.

Second-level subtags that insert a JSmol panel (either inline or in a popup)

  • Inline JSmol panel:
  • Pop-up JSmol panel:
    • jmolAppletButton
    • jmolAppletLink both will, upon user action, open a small window (pop-up) with a JSmol panel displaying the structure. See MediaWiki/Tags for Pop-up Models for details.

Second-level subtags that insert controls to act on one JSmol panel

See MediaWiki/Tags for Controls for details and examples.

  • jmolButton
  • jmolLink
  • jmolCheckbox
  • jmolMenu
  • jmolRadioGroup

Third-level subtags

These are relevant for jmolApplet, and some of them also for some other 2nd-level subtags:

  • text (displayed in the page or in the UI control)
  • script (commands for the molecule display in JSmol)
  • uploadedFileContents (model to be loaded)
  • urlContents
  • wikiPageContents
  • inlineContents
  • title (either tooltip for the UI control or text to be displayed above the JSmol panel)
  • caption (text to be displayed below the JSmol panel)
  • color (background color of JSmol panel)
  • size (dimensions of JSmol panel)
  • controls (display of optional buttons below the JSmol panel; value: any combination of spin | quality | labels | popup)
  • frame (border around the JSmol panel)
  • image (cover image to be displayed; replaced with the JSmol panel upon click)
  • pspeed (performance: higher speed vs. higher quality, relevant for mobile platforms)
  • name (applies to jmolApplet, needed when several JSmol panels are presemt in a page)

These are more specific and relevant just for some 2nd-level subtags:

  • target applies to jmolButton, jmolLink, jmolCheckbox, jmolMenu, jmolRadioGroup
  • scriptWhenChecked applies only to jmolCheckbox
  • scriptWhenUnchecked applies only to jmolCheckbox
  • checked applies only to jmolMenu and jmolRadioGroup
  • item applies only to jmolMenu and jmolRadioGroup
  • vertical applies only to jmolRadioGroup
  • menuheight applies only to jmolMenu

How to install the Jmol Extension

Please see MediaWiki/Installation

Former versions

For documentation on former versions of the Extension, see MediaWiki/ExtensionV3 and MediaWiki/ExtensionV4.

Test Pages

  1. A few basic examples of the <jmolFile>, <jmolPdb> and <jmolSmiles> tags.
  2. A demo page for the <jmol> tag
  3. Uploaded XYZ File -- includes test of <jmolCheckbox>, <jmolLink>, <jmolButton>, and <jmolMenu>
  4. Uploaded MDL Molfile
  5. Uploaded CML File
  6. Uploaded PDB File opening in a pop-up -- tests jmolAppletLink
  7. Inlined MDL Molfile
  8. Inlined PDB File
  9. Inlined CML File
  10. Load SMILES via script -- Includes test of signed applet and <jmolMenu>
  11. Test page (Brian's)

Contributors

AngelHerraez