Template:CB: Difference between revisions
No edit summary |
No edit summary |
||
(2 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
< | {{{2|}}}{| style="white-space: pre; width:100%; table-layout: fixed; font-family: monospace; line-height: 1em; border-spacing: 0; padding: 0; margin: 0; background-color: #f8f9fa; color: #000; border-width: 1px; border-style: solid; border-color: rgb(234, 236, 240);" | ||
|<div style="width: calc(100% - 3*{{{3|1em}}}); overflow-x: auto; float: left; padding: {{{3|1em}}}">{{{1}}}</div> | |||
|}<noinclude> | |||
== Purpose == | == Purpose == | ||
Line 10: | Line 12: | ||
MY_SPECIAL_TAG = A B C | MY_SPECIAL_TAG = A B C | ||
However, this syntax does not allow indenting, e.g., in lists. The <code>CB</code> (as in '''C'''ode '''B'''lock) template allows the box to be indented any level. {{NB|warning| | However, this syntax does not allow indenting, e.g., in lists. The <code>CB</code> (as in '''C'''ode '''B'''lock) template allows the box to be indented any level. {{NB|warning|There are some unresolved issues with this template, see bottom of this page.}} | ||
== Parameters == | == Parameters == | ||
<nowiki> {{CB|<content>|<<padding>>}}</nowiki> | <nowiki> {{CB|<content>|<<indent>>|<<padding>>}}</nowiki> | ||
* <code>content</code>: The content of the code block. | * <code>content</code>: The content of the code block. | ||
* <code>indent</code>: ('''optional''') Allows to indent the whole box with regular colon sign. Use multiple ":" signs to get any level of indentation. Can be left empty if no indentation is needed but <code>padding</code> is required. Any other character than ":" may produce unexpected results! | |||
* <code>padding</code>: ('''optional''') Specifies the padding of the code box, the default is <code>1em</code>. | * <code>padding</code>: ('''optional''') Specifies the padding of the code box, the default is <code>1em</code>. | ||
Line 23: | Line 26: | ||
Without optional arguments the following example | Without optional arguments the following example | ||
<nowiki> | <nowiki>{{CB|MY_SPECIAL_TAG {{=}} A B C}}</nowiki> | ||
gives: | gives: | ||
{{CB|MY_SPECIAL_TAG {{=}} A B C}} | |||
This should be very close to the regular preformatted text boxes we can obtain via MediaWiki syntax. Here are two examples for indentation levels: | |||
<nowiki>: | <nowiki>{{CB|MY_SPECIAL_TAG {{=}} A B C|:}}</nowiki> | ||
<nowiki>{{CB|MY_SPECIAL_TAG {{=}} A B C|::}}</nowiki> | |||
results in: | results in: | ||
: | {{CB|MY_SPECIAL_TAG {{=}} A B C|:}} | ||
{{CB|MY_SPECIAL_TAG {{=}} A B C|::}} | |||
Note that the boxes are correctly indented one and two levels. The padding can be reduced with the optional argument, e.g.: | |||
<nowiki>{{CB|MY_SPECIAL_TAG {{=}} A B C|:|0.5em}}</nowiki> | |||
<nowiki>{{CB|MY_SPECIAL_TAG {{=}} A B C|::|0.5em}}</nowiki> | |||
gives this: | |||
{| | {{CB|MY_SPECIAL_TAG {{=}} A B C|:|0.5em}} | ||
{{CB|MY_SPECIAL_TAG {{=}} A B C|::|0.5em}} | |||
|} | |||
Finally, the padding can also be specified without any indentation: | |||
<nowiki>{{CB|MY_SPECIAL_TAG {{=}} A B C||0.5em}}</nowiki> | |||
shows as: | |||
{| | {{CB|MY_SPECIAL_TAG {{=}} A B C||0.5em}} | ||
== Problems and workarounds == | |||
The <code>content</code> cannot contain the "=" or "|" character because this has a special meaning for named template parameters. Therefore, we have to use the <code><nowiki>{{=}}</nowiki></code> and <code><nowiki>{{!}}</nowiki></code> template, respectively. | |||
< | |||
== Demonstration with complex contents == | |||
MediaWiki syntax: | |||
{{TAG|ML_MODE}} Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. | {{TAG|ML_MODE}} Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. | ||
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. | Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. | ||
Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, | Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, | ||
This template with indentation level 2: | |||
{{CB|{{TAG|ML_MODE}} Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. | |||
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. | |||
Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet,|::}} | |||
== Unsolved problems == | |||
Multi-line code blocks seem to give wrong line spacing depending on placement of newlines in the content: | |||
{{CB| | |||
blabla | |||
blabla | |||
blabla | |||
blabla | |||
blabla | |||
}} | |||
{{CB|blabla | |||
blabla | |||
blabla | |||
blabla | |||
blabla | |||
}} | |||
{{CB|blabla | |||
blabla | |||
blabla | |||
blabla | |||
blabla}} | |||
{{CB|blabla | |||
blabla | |||
blabla | |||
blabla | |||
blabla}} | |||
</noinclude> | </noinclude> |
Latest revision as of 11:00, 26 February 2024
{{{1}}}
|
Purpose
Create a code block which can be indented with the usual :
indentation marker. Normally, a preformatted text block can be inserted with an additional space in the beginning, e.g.
MY_SPECIAL_TAG = A B C
will print as:
MY_SPECIAL_TAG = A B C
However, this syntax does not allow indenting, e.g., in lists. The CB
(as in Code Block) template allows the box to be indented any level.
Warning: There are some unresolved issues with this template, see bottom of this page. |
Parameters
{{CB|<content>|<<indent>>|<<padding>>}}
content
: The content of the code block.indent
: (optional) Allows to indent the whole box with regular colon sign. Use multiple ":" signs to get any level of indentation. Can be left empty if no indentation is needed butpadding
is required. Any other character than ":" may produce unexpected results!padding
: (optional) Specifies the padding of the code box, the default is1em
.
Examples
Without optional arguments the following example
{{CB|MY_SPECIAL_TAG {{=}} A B C}}
gives:
MY_SPECIAL_TAG = A B C
|
This should be very close to the regular preformatted text boxes we can obtain via MediaWiki syntax. Here are two examples for indentation levels:
{{CB|MY_SPECIAL_TAG {{=}} A B C|:}} {{CB|MY_SPECIAL_TAG {{=}} A B C|::}}
results in:
- MY_SPECIAL_TAG = A B C
- MY_SPECIAL_TAG = A B C
Note that the boxes are correctly indented one and two levels. The padding can be reduced with the optional argument, e.g.:
{{CB|MY_SPECIAL_TAG {{=}} A B C|:|0.5em}} {{CB|MY_SPECIAL_TAG {{=}} A B C|::|0.5em}}
gives this:
- MY_SPECIAL_TAG = A B C
- MY_SPECIAL_TAG = A B C
Finally, the padding can also be specified without any indentation:
{{CB|MY_SPECIAL_TAG {{=}} A B C||0.5em}}
shows as:
MY_SPECIAL_TAG = A B C
|
Problems and workarounds
The content
cannot contain the "=" or "|" character because this has a special meaning for named template parameters. Therefore, we have to use the {{=}}
and {{!}}
template, respectively.
Demonstration with complex contents
MediaWiki syntax:
ML_MODE Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet,
This template with indentation level 2:
- ML_MODE Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet,
Unsolved problems
Multi-line code blocks seem to give wrong line spacing depending on placement of newlines in the content:
blabla blabla blabla blabla blabla |
blabla
blabla blabla blabla blabla |
blabla
blabla blabla blabla blabla |
blabla
blabla blabla blabla blabla |