Extension:Poem
|
Poem Release status: stable |
|||
|---|---|---|---|
| Implementation | Tag | ||
| Description | adds <poem> tag for poem formatting | ||
| Author(s) | Nikola Smolenskitalk | ||
| Last version | continuous updates | ||
| MediaWiki | 1.7+ | ||
| Database changes | no | ||
| License | GPL v2+ | ||
| Download |
log |
||
|
|||
| Check usage and version matrix; stats | |||
| Bugs: list open list all report | |||
The Poem extension allows easy formatting of poems and similar material within Wikitext. Once the extension is enabled, you can put any block of text within <poem></poem> tags, which has the following effects:
- All newlines are preserved by converted them into <br /> tags
- The block of text is enclosed in <p></p> tags (as well as a div of class "poem")
- Colons at the beginning of a line are converted into 1 em indentation
- Spaces at the beginning of a line are preserved and no longer invoke the <pre> tag
The extension preserves wikilinks, bolding, etc. if they are present in the poem.
Nikola Smolenski made the extension in order to practice working on extensions, after an idea by Yann Forget.[1]
It was activated on Wikisource and tested on 2006-06-23, and on the rest of the project sites on 2007-02-07.
Contents |
Usage[edit]
Example[edit]
| Input text | Output |
|---|---|
<poem> In [[Wikipedia:Xanadu|Xanadu]] did Kubla Khan A stately pleasure-dome decree: Where Alph, the sacred river, ran Through caverns measureless to man Down to a sunless sea. So twice five miles of fertile ground With walls and towers were girdled round: And there were gardens bright with sinuous rills, Where blossomed many an incense-bearing tree; And here were forests ancient as the hills, Enfolding sunny spots of greenery. </poem> |
In Xanadu did Kubla Khan |
Example with indentation[edit]
| Input text | Output |
|---|---|
<poem> Une terre au flanc maigre, âpre, avare, inclément Où les vivants pensifs travaillent tristement, ::Et qui donne à regret à cette race humaine Un peu de pain pour tant de labeur et de peine ; ::Des hommes durs, éclos sur ces sillons ingrats ; Des cités d’où s’en vont, en se tordant les bras, ::La charité, la paix, la foi, sœurs vénérables ; L’orgueil chez les puissants et chez les misérables ; </poem> |
Une terre au flanc maigre, âpre, avare, inclément |
Style[edit]
The poem text is wrapped in a div, which has no style by default; but inherits any style or class option passed to the poem.
For example, while indented text can be used for simple examples to prevent filling and draw a nice blue box, it can be hard to read in some cases, since long lines aren't broken. A similar, but somewhat better effect can be obtained with
<poem style="border: 2px solid #d6d2c5; background-color: #f9f4e6; padding: 1em;">
When applied to the above example, the result is as follows:
In Xanadu did Kubla Khan
A stately pleasure-dome decree:
Where Alph, the sacred river, ran
Through caverns measureless to man
Down to a sunless sea.
So twice five miles of fertile ground
With walls and towers were girdled round:
And there were gardens bright with sinuous rills,
Where blossomed many an incense-bearing tree;
And here were forests ancient as the hills,
Enfolding sunny spots of greenery.
"compact" option[edit]
Applying the <poem> tag with the compact option to a text of more than two lines, every line becomes a separate paragraph. (This seems to be a bug, as it is opposite to what the term suggests.)
Subsequent use of the <poem> tag with the compact option, with up to two newlines in between, gives just a single newline between texts, not a new paragraph. Thus, applied to texts of more than two lines each, every line becomes a separate paragraph, except that the last line of each text and the first line of the next text are combined into one paragraph.
| Input | Output | Input | Output |
|---|---|---|---|
<poem> One, Two. </poem> <poem> Three? Four! </poem> |
One, Three? |
<poem compact> One, Two. </poem> <poem compact> Three? Four! </poem> |
One,
Two. Three?
Four! |
| Input | Output | Input | Output |
|---|---|---|---|
<poem> One, Two. Extra. </poem> <poem> Three? Four! Extra. </poem> |
One, Three? |
<poem compact> One, Two. Extra. </poem> <poem compact> Three? Four! Extra. </poem> |
One,
Two. Three?
Four! |
Problems and solutions[edit]
- Variables and ParserFunctions do work inside the <poem> ... </poem> container, but NOT within the <poem ... > tag itself ; this prevents templates with code such as <poem style="{{{1}}}">.
- One workaround is to use <div style="{{{1}}}"><poem> ... </poem></div> instead.
- Another way is to use the
#tagmagic word: {{#tag:poem| ... |style="{{{1}}}"}}.- NB: this would however seem not to work with the "compact" option.
| Input (inside OK, within not OK) | Output |
|---|---|
<poem style="{{{1|border: 1px solid Black;}}}">
One,
{{{2|Two.}}}
</poem>
|
One, |
| Input (both inside and within OK) | Output |
<div style="{{{1|border: 1px solid Black;}}}"><poem>
One,
{{{2|Two.}}}
</poem></div>
|
One, |
{{#tag:poem|
One,
{{{2|Two.}}}
|style="{{{1|border: 1px solid Black;}}}"
}}
|
One, |
Download[edit]
You can download the extension directly from the MediaWiki source code repository (browse code). You can get:
- One of the extensions tags
Not all extensions have tags. Some extensions have tags for each release, in which case those tags have the same stability as the release. To download a tag
- Go to the tags list
- Click the name of the tag you want to download
- Click "snapshot"
- The latest version of one of the extensions branches
Each extension has a master branch containing the latest code (might be unstable). Extensions can have further branches as well.
- Go to the branches list
- Click the branch name
- Click "snapshot"
- A snapshot made during the release of a MediaWiki version.
This might be unstable and is not guaranteed to work with the associated MediaWiki version.
After you've got the code, save it into the extensions/Poem directory of your wiki.
If you are familiar with git and have shell access to your server, you can obtain the extension, with all its tags and branches, as follows:
cd extensions
git clone https://gerrit.wikimedia.org/r/p/mediawiki/extensions/Poem.git
Installation[edit]
- Add to the end of LocalSettings.php:
require_once("$IP/extensions/Poem/Poem.php");
- Installation can now be verified through Special:Version on your wiki
References[edit]
| This extension is being used on one or more Wikimedia projects. This probably means that the extension is stable and works well enough to be used by such high-traffic websites. Look for this extension's name in Wikimedia's CommonSettings.php and InitialiseSettings.php configuration files to see where it's installed. A full list of the extensions installed on a particular wiki can be seen on the wiki's Special:Version page. |