Difference between revisions of "Template:StreamLinkTable"
m (fixed variable substitution. using template inside itself to show its inner workings) |
m (corrected uri buildup (position of underscores are now more 'generic')) |
||
(4 intermediate revisions by 2 users not shown) | |||
Line 21: | Line 21: | ||
The parameters all default to something useful for [[CCC]] and each has a specific syntax: | The parameters all default to something useful for [[CCC]] and each has a specific syntax: | ||
baseURL | baseURL | ||
− | * <code>baseURL</code>: first common part of the link, defaults to '''<nowiki> | + | * <code>baseURL</code>: first common part of the link, defaults to '''<nowiki>https://cdn.c3voc.de/</nowiki>''' |
* <code>stages</code>: comma separated (''',''') list of ''<code>Stage Label;urlPart</code>'' (note the semicolon ''';'''), defaults to 3 × '''Stage ''n'';s''n''''' | * <code>stages</code>: comma separated (''',''') list of ''<code>Stage Label;urlPart</code>'' (note the semicolon ''';'''), defaults to 3 × '''Stage ''n'';s''n''''' | ||
− | * <code>languages</code>: comma separated (''',''') list of ''<code>Language Label;urlPart</code>'' (note the semicolon ''';'''), defaults to '''Native; | + | * <code>languages</code>: comma separated (''',''') list of ''<code>Language Label;urlPart</code>'' (note the semicolon ''';'''), defaults to '''Native;_native,Translated;_translated''' |
* <code>languageCount</code>: number used for setting the correct table header span, set to reflect the amount of languages, defaults to '''2''' | * <code>languageCount</code>: number used for setting the correct table header span, set to reflect the amount of languages, defaults to '''2''' | ||
* <code>formats</code>: comma separated (''',''') list of ''<code>Format Label;urlPart</code>'' (note the semicolon ''';'''), defaults to '''WebM;.webm,HLS;.m3u8''' | * <code>formats</code>: comma separated (''',''') list of ''<code>Format Label;urlPart</code>'' (note the semicolon ''';'''), defaults to '''WebM;.webm,HLS;.m3u8''' | ||
− | * <code>types</code>: comma separated (''',''') list of ''<code>Type Label;urlPart</code>'' (note the semicolon ''';'''), defaults to '''HD; | + | * <code>types</code>: comma separated (''',''') list of ''<code>Type Label;urlPart</code>'' (note the semicolon ''';'''), defaults to '''HD;_hd,SD;_sd,Slides;_slides''' |
* <code>typeCount</code>: number used for setting the correct table header span, set to reflect the amount of types, defaults to '''3''' | * <code>typeCount</code>: number used for setting the correct table header span, set to reflect the amount of types, defaults to '''3''' | ||
The links are generated as followed (always using the item part ''after'' the semicolon: | The links are generated as followed (always using the item part ''after'' the semicolon: | ||
− | <code>baseURL</code>+<code>stage</code>(outer row)+<code>language</code>(inner row)+<code>type</code>(inner column)+<code>format</code>(outer column), for example ''Stage 3 Native Slides as HLS'' will have the link: <code> | + | <code>baseURL</code>+<code>stage</code>(outer row)+<code>language</code>(inner row)+<code>type</code>(inner column)+<code>format</code>(outer column), for example ''Stage 3 Native Slides as HLS'' will have the link: <code>https://cdn.c3voc.de/s3_native_slides.m3u8</code> |
=== css === | === css === | ||
Line 56: | Line 56: | ||
=== example === | === example === | ||
− | Edit the page to see how the following | + | Edit the page to see how the following tables are generated: |
+ | |||
+ | The default is written like this: | ||
+ | <nowiki>{{</nowiki>{{PAGENAME}}<nowiki>}}</nowiki> | ||
+ | looks like this: {{ {{PAGENAME}} }} | ||
+ | ---- | ||
+ | For a different set of stages, use this: | ||
+ | <nowiki>{{</nowiki>{{PAGENAME}} | ||
+ | |stages=Main stage;stage1,Backup stage;stageb | ||
+ | <nowiki>}}</nowiki> | ||
+ | to generate: {{ {{PAGENAME}}|stages=Main stage;stage1,Backup stage;stageb}} | ||
+ | ---- | ||
+ | For an extra set of languages, use this: | ||
+ | <nowiki>{{</nowiki>{{PAGENAME}} | ||
+ | |languages=English;_eng,German;_deu,French;_fra,Dutch;_ned | ||
+ | |languageCount=4 | ||
+ | <nowiki>}}</nowiki> | ||
+ | to generate: {{ {{PAGENAME}}|languages=English;_eng,German;_deu,French;_fra,Dutch;_ned|languageCount=4}} | ||
+ | |||
− | |||
</noinclude> | </noinclude> | ||
<includeonly> | <includeonly> | ||
Line 73: | Line 90: | ||
{{#arraymap:{{{stages|Stage 1;s1, Stage 2;s2,Stage 3;s3}}}|,|stage| | {{#arraymap:{{{stages|Stage 1;s1, Stage 2;s2,Stage 3;s3}}}|,|stage| | ||
− | {{#arraymap:{{{languages|Native; | + | {{#arraymap:{{{languages|Native;_native,Translated;_translated}}}|,|languageVar| |
<tr> | <tr> | ||
<th class="span{{{languageCount|2}}}" rowspan="{{{languageCount|2}}}">{{#explode:stage|;|0}}</th> | <th class="span{{{languageCount|2}}}" rowspan="{{{languageCount|2}}}">{{#explode:stage|;|0}}</th> | ||
<th>{{#explode:languageVar|;|0}}</th> | <th>{{#explode:languageVar|;|0}}</th> | ||
{{#arraymap:{{{formats|WebM;.webm,HLS;.m3u8}}}|,|format| | {{#arraymap:{{{formats|WebM;.webm,HLS;.m3u8}}}|,|format| | ||
− | {{#arraymap:{{{types|HD; | + | {{#arraymap:{{{types|HD;_hd,SD;_sd,Slides;_slides}}}|,|type|<td>[{{{baseURL|https://cdn.c3voc.de/}}}{{#ifeq:{{#explode:format|;|0}}|HLS|hls/}}{{#explode:stage|;|1}}{{#explode:languageVar|;|1}}{{#explode:type|;|1}}{{#explode:format|;|1}} link]</td>|}} |
|}} | |}} | ||
Latest revision as of 13:52, 27 December 2019
Contents
synopsis
This is the "StreamLinkTable" template.
It will generate a table with various links derived from the stages
, languages
, formats
and types
.
It should be called in the following format (all parameters are optional):
{{StreamLinkTable |baseURL= |stages= |languages= |languageCount= |formats= |types= |typeCount= }}
parameters
The parameters all default to something useful for CCC and each has a specific syntax: baseURL
baseURL
: first common part of the link, defaults to https://cdn.c3voc.de/stages
: comma separated (,) list ofStage Label;urlPart
(note the semicolon ;), defaults to 3 × Stage n;snlanguages
: comma separated (,) list ofLanguage Label;urlPart
(note the semicolon ;), defaults to Native;_native,Translated;_translatedlanguageCount
: number used for setting the correct table header span, set to reflect the amount of languages, defaults to 2formats
: comma separated (,) list ofFormat Label;urlPart
(note the semicolon ;), defaults to WebM;.webm,HLS;.m3u8types
: comma separated (,) list ofType Label;urlPart
(note the semicolon ;), defaults to HD;_hd,SD;_sd,Slides;_slidestypeCount
: number used for setting the correct table header span, set to reflect the amount of types, defaults to 3
The links are generated as followed (always using the item part after the semicolon:
baseURL
+stage
(outer row)+language
(inner row)+type
(inner column)+format
(outer column), for example Stage 3 Native Slides as HLS will have the link: https://cdn.c3voc.de/s3_native_slides.m3u8
css
Note that for the best results, this table needs extra CSS in MediaWiki:Common.css:
/* CSS span table rowspan only showing the first row header (assuming there are 2 column headers stacked, hence +3) */ table.span tr>th.span2, table.span tr>th.span3, table.span tr>th.span4, table.span tr>th.span5 { display: none; } table.span tr:nth-of-type(2n+3)>th.span2, table.span tr:nth-of-type(3n+3)>th.span3, table.span tr:nth-of-type(4n+3)>th.span4, table.span tr:nth-of-type(5n+3)>th.span5 { display: table-cell; }
If it is not possible to have this CSS added, or you want to repeat every row header, make sure to set languageCount = 1
(or the table layout will break without the added CSS).
example
Edit the page to see how the following tables are generated:
The default is written like this:
{{StreamLinkTable}}
looks like this:
WebM | HLS | ||||||
---|---|---|---|---|---|---|---|
HD | SD | Slides | HD | SD | Slides | ||
Stage 1 | Native | link | link | link | link | link | link |
Stage 1 | Translated | link | link | link | link | link | link |
Stage 2 | Native | link | link | link | link | link | link |
Stage 2 | Translated | link | link | link | link | link | link |
Stage 3 | Native | link | link | link | link | link | link |
Stage 3 | Translated | link | link | link | link | link | link |
For a different set of stages, use this:
{{StreamLinkTable |stages=Main stage;stage1,Backup stage;stageb }}
to generate:
WebM | HLS | ||||||
---|---|---|---|---|---|---|---|
HD | SD | Slides | HD | SD | Slides | ||
Main stage | Native | link | link | link | link | link | link |
Main stage | Translated | link | link | link | link | link | link |
Backup stage | Native | link | link | link | link | link | link |
Backup stage | Translated | link | link | link | link | link | link |
For an extra set of languages, use this:
{{StreamLinkTable |languages=English;_eng,German;_deu,French;_fra,Dutch;_ned |languageCount=4 }}
to generate:
WebM | HLS | ||||||
---|---|---|---|---|---|---|---|
HD | SD | Slides | HD | SD | Slides | ||
Stage 1 | English | link | link | link | link | link | link |
Stage 1 | German | link | link | link | link | link | link |
Stage 1 | French | link | link | link | link | link | link |
Stage 1 | Dutch | link | link | link | link | link | link |
Stage 2 | English | link | link | link | link | link | link |
Stage 2 | German | link | link | link | link | link | link |
Stage 2 | French | link | link | link | link | link | link |
Stage 2 | Dutch | link | link | link | link | link | link |
Stage 3 | English | link | link | link | link | link | link |
Stage 3 | German | link | link | link | link | link | link |
Stage 3 | French | link | link | link | link | link | link |
Stage 3 | Dutch | link | link | link | link | link | link |