Template:Fg src file: Difference between revisions

From FlightGear wiki
Jump to navigation Jump to search
(Switch the 'site' parameter to use the {{project infrastructure/code}} subtemplate.)
m (Switch from the temporary {{project infrastructure/code}} template to {{project infrastructure}} template with the mode set to 'abbrev'.)
 
Line 1: Line 1:
{{repo link
{{repo link
| site                                          = {{project infrastructure/code}}
| site                                          = {{project infrastructure|abbrev}}
| type                                          = git web
| type                                          = git web
| proj                                          = flightgear
| proj                                          = flightgear

Latest revision as of 16:22, 20 June 2019

$FG_SRC


The following template description is not displayed when the template is inserted in an article.

Goal

This template is for creating links prefixed with $FG_SRC for files in the FlightGear git version control repository. It is a subtemplate of the master {{repo link}} template designed to be specific for creating FlightGear links prefixed with $FG_SRC.

Usage

{{fg src file
| branch     =
| commit     =
| path       =
| line       =
| view       =
}}

All parameters are optional.

Parameter Description Abbreviated
parameter
Numbered
parameter
Status
branch The branch name. This defaults to next. For SourceForge git repositories, if the character / is present in the branch name, the text /~ must be appended to the branch. b optional
commit The commit identifier (git hash). This defaults to HEAD. c optional
path The file or directory path. f 1 optional
line The line number(s) of the file to display.
  • For SourceForge: Use a single line number.
l optional
view View to display:
  • For SourceForge use one of tree, log, commit, or rss. If a commit is specified (the commit parameter is set and path is not), the default is commit. Otherwise the default is tree.
v optional

Design

In this section, the following notation will be used:

Angular brackets + lower case text <xyz>
Template parameters.
Angular brackets + upper case text <XYZ>
Template constructed text.
Square brackets [xyz]
Optional text, only added if the parameter is set.
Or symbol |
The value on the left, if present, otherwise the value on the right of the symbol.

Overview

The general design is:

<cmd> <opt> [<URL> <TEXT>] <post>

Here the square brackets do not denote optional text, but will instead produce a Mediawiki link. This can be modified by setting full = 1 to produce:

<cmd> <opt> <URL> <post>

Site: SourceForge

Project page

For a normal SourceForge project page, the base URL is respectively constructed as:

<protocol>://<DOMAIN>/p/<proj>/<repo>/

For the type parameter value of git, a login is allowed:

<protocol>://[<login>@]<DOMAIN>/p/<proj>/<repo>/

SourceForge <URL> for 'type=git'

For this parameter value, the complete <URL> value will be:

<protocol>://[<login>@]git.code.sf.net/p/<proj>/<repo>/

SourceForge <URL> for 'type=git web'

For this parameter value, the <URL> value will be:

<protocol>://sourceforge.net/p/<proj>/<repo>/ci/<commit|branch>/<VIEW>/<path>[#l<line>]

The <VIEW> value for different values of view is:

tree
tree/.
log
log/?path=.
commit
nothing.

If the parameter setting view=rss is used, a different <URL> value is produced:

<protocol>://sourceforge.net/p/<proj>/<repo>/feed/

SourceForge URL <TEXT> for 'type=git' and 'type=git web'

The link text <TEXT>, if the full parameter is not set, will be:

<proj>/<repo>/<commit|branch>[/<path>][#l<line>] <DESC>

If the simplepath parameter is set, this changes to:

[/<path>][#l<line>] <DESC>

If the pre parameter is supplied, this changes to:

<pre>[/<path>][#l<line>] <DESC>

The RSS feed is a special case in that <TEXT> will be one of:

<proj>/<repo> <DESC>
<pre> <DESC>

The description <DESC> is dependent on the view parameter:

tree
Nothing.
log
log view.
commit
commit view.
rss
RSS feed.

The text parameter trumps all, and <TEXT> is simply:

<text>

Plain text

To create a URL or link as plain text and avoid external links, simply use the {{#tag:tagname|content}} magic word construct:

{{#tag:nowiki|
  {{repo link
  | full = 1
  }}
}}

https://sourceforge.net/p/flightgear/flightgear/ci/next/tree/

To use the <code> tags:

{{#tag:code|{{#tag:nowiki|
  {{repo link
  | full = 1
  }}
}}}}

https://sourceforge.net/p/flightgear/flightgear/ci/next/tree/

Examples

No parameters

{{fg src file}}.

$FG_SRC.

File

{{fg src file
| path = src/Main/fg_init.cxx
}}.

$FG_SRC/src/Main/fg_init.cxx.

File and a tag

{{fg src file
| path   = src/Main/fg_init.cxx
| branch = version/2016.1.1/~
}}.

$FG_SRC/src/Main/fg_init.cxx (branch version/2016.1.1/~).

File and a commit

{{fg src file
| path   = src/Main/fg_init.cxx
| commit = c40040
}}.

$FG_SRC/src/Main/fg_init.cxx (commit c40040).

{{fg src file
| path   = src/Main/fg_init.cxx
| commit = c400405b0a4c63debe7fea0dfc9ec6e5343b0fba
}}.

$FG_SRC/src/Main/fg_init.cxx (commit c400405b0a4c63debe7fea0dfc9ec6e5343b0fba).

Commit

{{fg src file
| commit = 2af076
| view   = commit
}}.

$FG_SRC (commit 2af076) commit view.

File and line number

{{fg src file
| path = src/Environment/environment_mgr.hxx
| line = 39
}}.

$FG_SRC/src/Environment/environment_mgr.hxx#l39.

File, line number, and commit

{{fg src file
| path   = src/Environment/environment_mgr.cxx
| commit = e42a8f597c84d65a66978af76cfbb3aae02abf63
| line   = 47
}}.

$FG_SRC/src/Environment/environment_mgr.cxx#l47 (commit e42a8f597c84d65a66978af76cfbb3aae02abf63).

Aliased parameters

This is for https://sourceforge.net/p/flightgear/flightgear/ci/version/2016.1.1/~/tree/src/Main/fg_init.cxx.

{{fg src file
| f = src/Main/fg_init.cxx
| b = version/2016.1.1/~
}}.

$FG_SRC/src/Main/fg_init.cxx (branch version/2016.1.1/~).

Numbered parameters

This is for https://sourceforge.net/p/flightgear/flightgear/ci/version/2016.1.1/~/tree/src/Main/fg_init.cxx.

{{fg src file | src/Main/fg_init.cxx | b = version/2016.1.1/~ }}.

$FG_SRC/src/Main/fg_init.cxx (branch version/2016.1.1/~).

Related templates