Difference between revisions 585887 and 585889 on mediawikiwiki

<noinclude>{{Documentation subpage}}
{{timw|{{BASEPAGENAME}}}}
</noinclude>
<!-- PUT HERE THE DOCUMENTATION -->
This generates a link to a file on [[Gerrit]].

The goal is to avoid ugly URLs in wiki text like
  https://gerrit.wikimedia.org/r/gitweb?p=mediawiki/extensions/examples.git;f=BoilerPlate/README;hb=HEAD
(contracted; show full): optional. The text that's linked.  If not specified, defaults to file.
; action
: optional. You can give a gerrit action, e.g. <code>action=blob_raw</code> , <code>action=tree</code> (gerrit/gitweb infers this if file= a directory)... ''TODO: what are the other values?''
; line
: optional. <code>line=42</code> will add a fragment to the URL that positions the browser at line 42 of the file.

== Issues ==

* every gerrit project is under mediawiki/ and most under extensions, so maybe one or both is redundant?
* why does the semicolon in the <nowiki>{{#if: TEST|;need that semicolon|}}</nowiki> test introduce whitespace?  (Workaround is to use HTML entity &amp;#59; )
* action= is gerrit-specific, maybe abstract away from gerrit to format=raw/''mimetype''/...
* TODO: add branch= parameter
* ? Merge with {{tl|Git}}, or maybe {{tl|Gerrit}}, {{tl|MW file}}, etc. but simpler?

== Notes ==
The template has to use numeric entities <code>&amp;#59;</code> and <code>&amp;32;</code> for semicolon and hashmark because as [[w:Wikipedia:Advanced_template_coding#MediaWiki_wiki-formats_the_clauses_inside_.23if|WP:Advanced template coding]] says "MediaWiki wiki-formats the clauses inside #if".
MW would sometimes parse these characters as introducing a definition term and numbered list (even though t they're not at the start of new lines!).

== See also ==
* this replaces Template:GitwebFile that had almost exactly the same functionality (but undocumented and uncategorized so spage missed it)
* {{tl|MW file}} generates complicated link to file, used by [[Manual]]
* lots of other fancy templates for extensions on gerrit, see [[:Category:Git]]
<includeonly>
<!-- PUT HERE THE CATEGORIES OF THE TEMPLATE -->
[[Category:Git]]
</includeonly>