Snippets syntax: Difference between revisions

From Bluefish Wiki
Jump to navigation Jump to search
mNo edit summary
Line 15: Line 15:


* The import file must have a valid XML syntax.
* The import file must have a valid XML syntax.
* The document must include the header: <nowiki><?xml version="1.0"?></nowiki>.
* The document must include the header: <tt><nowiki><?xml version="1.0"?></nowiki></tt>.
* The document must be included in the container: <nowiki><snippets> <snippets></nowiki>
* The document must be included in the container: <tt><nowiki><snippets> <snippets></nowiki></tt>
* Any snippet must be contained in a branch: <nowiki><branch title="example"> </branch></nowiki>
* Any snippet must be contained in a branch: <tt><nowiki><branch title="example"> </branch></nowiki></tt>
* The branches may contain other branches.
* The branches may contain other branches.
* Each snippet is described in a container: <nowiki><leaf> </leaf></nowiki>
* Each snippet is described in a container: <tt><nowiki><leaf> </leaf></nowiki></tt>


== Syntax examples ==
== Syntax examples ==
Line 51: Line 51:


;searchpat and replacepat tags,
;searchpat and replacepat tags,
: are replacing before and after.
: are replacing before and after tags.
;leaf tag have new attibutes,:
;leaf tag have new attibutes,:
:;region :''values'': b (Entire document), c (forword from cursor position), s (Selection), or a (All open files).
:;region :''values'': <tt>b</tt> (Entire document), <tt>c</tt> (forword from cursor position), <tt>s</tt> (Selection), or <tt>a</tt> (All open files).
:;matchtype :''values'': normal, word, posix or perl.
:;matchtype :''values'': <tt>normal</tt>, <tt>word</tt>, <tt>posix</tt> or <tt>perl</tt>.
:;casesens :''values'':  1 (set) or 0 (unset).
:;casesens :''values'':  <tt>1</tt> (set) or <tt>0</tt> (unset).
:;escapechars :''values'':  1 (set) or 0 (unset).
:;escapechars :''values'':  <tt>1</tt> (set) or <tt>0</tt> (unset).
 
== My stylesheet to snippets ==
 


{{Man2bottom
{{Man2bottom

Revision as of 11:35, 21 March 2010

 

The snippets are stored in ~/.bluefish/snippets. It is an XML file, like import and export snippets files.

Bluefish has an excellent editor snippets. So it is useless to read this page unless you intend to create a large number of snippets from some documentation, eg: SVG, DOM, etc.

  • The import file must have a valid XML syntax.
  • The document must include the header: <?xml version="1.0"?>.
  • The document must be included in the container: <snippets> <snippets>
  • Any snippet must be contained in a branch: <branch title="example"> </branch>
  • The branches may contain other branches.
  • Each snippet is described in a container: <leaf> </leaf>

Syntax examples

There are two types of snippets: insert and snr, aka Search N Replace.

Insert snippets

    1. <?xml version="1.0"?>
    2. <snippets>
    3. <branch title="Facebook">
    4. <leaf type="insert" title="bold"><before>&lt;b&gt;</before><after>&lt;/b&gt;</after></leaf>
    5. <leaf type="insert" title="italic" tooltip="insert an italic tag"><before>&lt;i&gt;</before><after>&lt;/i&gt;</after></leaf>
    6. <leaf type="insert" title="Hyperlink"><before>&lt;a href="%0"&gt;</before><after>&lt;/a&gt;</after><param name="url"/></leaf>
    7. <leaf type="insert" title="em-dash"><before>&amp;mdash;</before><after></after></leaf>
    8. </branch>
    9. </snippets>
First and important,
if you want to insert any XML reserved characters ie: < > & you have to escape them (red highlighted in example).
  • A leaf tag must have type and title attributes,
  • it also may have a tooltip attribute (line 5 of example).
  • Before tag is used for text to insert before, and after tag for text inserted after.
  • You have to add one or more param tags (with name attibute) if you want tu use parameters (line 6 of example).

Search and replace snippets

SnR snippets are a little more complex:

<leaf type="snr" title="replace 1" tooltip="introduce events" region="b" matchtype="normal" casesens="0" escapechars="0">
 <searchpat>jpg</searchpat>
 <replacepat>jpg" alt="" onmouseout="out(this);" onmouseover="popup(this,'th/</replacepat>
</leaf>

searchpat and replacepat tags,
are replacing before and after tags.
leaf tag have new attibutes,
region
values: b (Entire document), c (forword from cursor position), s (Selection), or a (All open files).
matchtype
values: normal, word, posix or perl.
casesens
values: 1 (set) or 0 (unset).
escapechars
values: 1 (set) or 0 (unset).

My stylesheet to snippets