While using the simple text cutting and pasting available in most operating systems is useful for plain text, spikes provide the ability to move complex elements around an article or between articles.
The advantages of spikes over normal cut-and-paste are:
While the spikes allow a lot of flexibility, the To facility is faster for many simple move operations.
Using the spike is much like using copy and paste, except that the complexity of elements makes it a little more involved.
|a||Add||By clicking on the spike to add to under an element's Actions cell, usually represented like 1|0, being the spike number with the number of items already on it|
|b||Append||Add the spike item after the last child of the selected element|
|c||Insert||Insert the spike item after the currently selected element|
|d||Replace||Replace the currently selected element with the spike item. Requires confirmation because the current selection contents are overwritten|
Append and Insert function exactly as for an element, but using the selected spike item rather than an empty element. The flexibility of these operations is enhanced when used as described in the Substitutes section.
Adding to a spike copies the element to the spike, but pasting moves the element from the spike. This ensures that there is always a copy of the element in the article while spike operations are being undertaken. Unwanted elements can be deleted after any use of the spikes is complete. If wanting to paste multiple copies of the same element from a spike, add it to the spike the number of times it is needed.
Spikes are owned by a user, but they are only available for specific uses, and deleted afterwards.
There are three spikes, with each normally holding up to nine items. An item is a complete element with all its children. When adding an element to a spike, a copy is made, leaving the existing element where it is. This ensures that there is always a copy of the element available, regardless of whether a session gets interrupted or times out.
All three spikes can be used within the current version of the document being edited. However, spike 3 can also be used to collect items from previous versions or from other documents. If intending to copy from other than the current version, focus on using spikes 1 and 2 for the current version.
The items from the current article that are placed on spikes will be deleted when the current editing is complete because access to the current article is discontinued so it makes sense to cease access to any material from it.
When other articles are specified as sources for the current article, any items placed on spikes from them will be deleted when access to those source articles is finished, typically along with the end of current editing of the current article. However, if any spike items are from source articles for other articles still being edited by a user, those will remain on their spikes.
Block elements can only be put on spikes when in the master locale, in line with that the article structure can only be modified there. However, rich text inline elements can be moved around in any locale to cater for the different grammatical renderings of each.
Many elements have the same internal structure but are known by other names. Some of these can be substituted for each other when moving off a spike.
Paragraphs, introductions, list items and table cells are all what is called rich text in that they can contain a variety of inline elements for formatting text. Without substitutions, all the inline text elements would have to be copied into a new element having a different name. When moving from a spike with substitutions, the outer element is renamed while leaving its internal structure intact.
A glossary item is a rich text element with a heading. When it is used as a substitute, that heading will be stripped off. Conversely, substituting something else for a glossary item, a heading in need of text will be added.
Here, the table cell can only be appended to the article as a paragraph.
With a paragraph selected, there are more opportunities for substitutions, being:
Under Details, if the item is from another article, that article's ID is shown underneath the other details.
A simple scenario is when having started a paragraph with some formatting, it may be better to use it as an introduction to a list. That can be done by:
Rather than placing all the children of an element on a spike one at a time, some elements allow all their children to be put on a spike at the same time.
Normally a spike can only hold up to nine items, but if spike 3 is empty and the parent element allows it, all children can be deposited on the spike at once, regardless of how many children there are.
In general, most elements can be unwrapped, including whole articles, but some of the elements unwrapped may only be able to replace the same element type in another article of the same type. For example, the policies items of a policies article section can only replace policies items in another policies article.
If wanting to restructure a full group of children for an element, the spikes can be used as content scratchpads.
Articles, such as procedures and tests, allow a few introductory blocks, just so that they don't over-shadow the main purpose of the article type. If the limit is reached, the only way be able to add anything is to delete some blocks, or restructure the content by using the spikes as a temporary holding bay to substitute those elements into a new structural block. Of course, the originals of what is cloned to the spike needs to be deleted from the host element to make space for the new structural blocks, be they a list or a table.
For example, restructuring a few paragraphs into a list involves:
- a.Saving all the paragraphs involved to a spike, or unwrapping the host element and deleting what is not required from the spike.
- b.Deleting those same paragraphs from the host element itself, freeing up space for more blocks.
- c.Inserting a list element.
- d.Append the first paragraph as an item to the list, making it the current element.
- e.Insert the remaining paragraphs on the spike as items after each other, eventually emptying the spike.
- f.Add text to the list introduction.
- g.Clone items to be split, and edit each to item to suit.
A table would be similar, except that the new table would have to be fully constructed, and then the paragraphs substituted for the cells where their content is to go.
To quickly move certain block elements to another block that can parent them, the To facility is provided.
The To option is found in the Actions cell of those elements that can be moved using it. Checking the box will display the table of available parent elements to move the current element to. Click the Target column jump for the required new parent element and the current element will be appended to it. This can make operations like moving a paragraph to a section much faster and more straightforward than using a spike.
If the target parent is disabled, its name in the Target column will have a strike through it. If the target is disabled due to errors in it, the row will have a thicker red outline and a light orange background.
The limitations of the To facility are:
- a.Only available for block elements that can be moved to available parent elements that allow it.
- b.Only for moving, not copying.
- c.Not available where moving the element would make its current or target parent have an invalid number of children.
- d.Not available where the element has the same id attribute as a child of the intended target. Only relevant for elements with headings like glossary entries or sections.
- e.Only appended to the new parent element. Use the move buttons to place it in the required position.
- f.Only available for movements within the current version.
- g.No substitutions or unwrapping that spikes allow.
A typical scenario for this is when editing a large monolithic article to use sections. After creating a section, each paragraph to go into it can be appended to it using the paragraph's To table. Of course, a paragraph can also be moved to an aside, block quote, or any other element that allows it.