Template:Nowrap begin/doc

This template prevents word wraps (line breaks) in text and links with spaces in. It is designed to handle the really tricky wrapping cases where you need full control. For instance in very complex long link lists. It works similarly to nowrap and nowraplinks.

This template takes no parameters, instead it works in pair with nowrap end.

Helper templates
This template has a number of helper templates which allows you to tell the web browser exactly where line breaks may occur:
 * wrap - Marks where a wrap may occur.
 * ·wrap - Looks like this: " · ". For dotted lists. Renders a bold middot surrounded by spaces and then marks that a wrap may occur after the midddot.
 * •wrap - Looks like this: " • ". For dotted lists that use small font and thus need a bigger dot. Renders a bullet surrounded by spaces and then marks that a wrap may occur after the bullet.
 * –wrap - Looks like this: " – ". For dashed lists. Renders a ndash surrounded by spaces and then marks that a wrap may occur after the ndash.
 * !wrap - Looks like this: " &#124; ". For pipe separated lists. Renders a pipe surrounded by spaces and then marks that a wrap may occur after the pipe. The pipe used is not a real pipe but the code  so should work within wiki tables etc.

Note! The helper templates may only be used in sections surrounded by nowrap begin and nowrap end or they may cause weird behaviour of your page.

Usage
Salt and Pepper and Curry and Saffron. Salt and Pepper and Curry and Saffron.

It will render something like this:


 * Salt and Pepper and Curry and
 * Saffron. Salt and Pepper and
 * Curry and Saffron.

But it will not render like this:


 * Salt and Pepper and Curry
 * and Saffron. Salt and Pepper
 * and Curry and Saffron.

To make your code readable and easy to edit, you can put each wrappable "line" on its own line. And let's use some dots too. Like this:

Salt and Pepper Pepper and Curry Curry and Saffron Saffron and Salt

It will render something like this:


 * Salt and Pepper · Pepper and Curry ·
 * Curry and Saffron · Saffron and Salt

But it will not render like this:


 * Salt and Pepper · Pepper
 * and Curry · Curry and Saffron
 * · Saffron and Salt

Examples
Here are the above examples in actual running code in a table. Try dragging the width of your web browser window so it becomes smaller and smaller and watch how the line wrapping behaves:

An example demonstrating all the helper templates:

Technical details
The actual code that does the job is this HTML+CSS code:



It means that wraps may only happen in the unprotected space between the  and the. That's what the nowrap begin and its helper templates are packaging in an easy to use way.

The ·wrap and the •wrap tolerates anything from no to several spaces and newlines on either side. They will always render only one space on each side of the dot, and if a wrap occurs then the wrap will come after the dot, not before.

The ·wrap causes problems if inside sections of bolded text. Do end the bold text before the ·wrap and continue the bold text after it to avoid the problems. •wrap does not have this problem.