This is a redirect from a page that has been moved (renamed). This page was kept as a redirect to avoid breaking links, both internal and external, that may have been made to the old page name. For more information follow the category link.}
}}: Ritterkreuz des Eisernen Kreuzes mit Eichenlaub). The Knight's Cross of the Iron Cross and its higher grade Oak Leaves was awarded to recognise extreme battlefield bravery or successful military leadership.
Early life and career
Hartmann was born on 11 December 1902 in Silstedt near Wernigerode in the Province of Saxony, a province of the Kingdom of Prussia in the German Empire. He was the third child of Albert Hartmann, an evangelic pastor in Wernigerode, and Helene Hartmann, née Wernicke. Hartmann had one older brother, Rudolf, and an older sister, Edith. From 1909 to 1914, he attended the Volksschule, a primary school, in Silstedt and later the Gymnasium, a secondary school, in the district of Magdeburg.[1]
On 1 April 1914, Hartmann joined the Königlich Preußischen Kadettenkorps (Royal Prussian Cadet Corps) in Oranienstein near Diez. He initially served in the Vorkorps (pre corps) before he transferred to the Hauptkadettenanstalt (Main Military Academy) in Berlin-Lichterfelde on 1 April 1917. There he graduated with his Abitur (diploma) in 1921. Following his graduation he began his naval career with the Reichsmarine of the Weimar Republic on 1 April 1921 as a member of "Crew 21" (the incoming class of 1921).[1]
Until 30 September 1925, he underwent a number of military and naval training courses.[2] It began with basic military training (1 April – 30 September 1921) in Stralsund at the Baltic Sea and weapons courses at the Naval Academy at Mürwik. Hartmann was then transferred to the Hannover (1 October 1921 – April 1922) for onboard training and then to the training ship Niobe (April – 30 June 1922).[3] During this timeframe, he advanced in rank to Fähnrich zur See (officer cadet) on 1 April 1923 and to Oberfähnrich zur See (Senior Ensign) on 4 April 1925.[2]
He went on to serve as commander of the torpedo boats Seeadler and Albatros, before transferring to the U-boat arm in 1935.
Spanish Civil War
As commander of U-26 he patrolled Spanish waters during the Civil War in 1937–38 with Günther Prien as his first watch officer.
World War II
From January–May 1940 Hartmann was commander of both U-37 and 2nd U-boat Flotilla, but directing U-boats while at sea proved inefficient, and the Befehlshaber der U-Boote ("U-boat High Command") decided henceforth to direct the U-boats from land. After three patrols, and sinking 19 ships totalling 78,559 GRT, Hartmann received the Knight's Cross of the Iron Cross.[4] His senior officers on his four patrols on U-37 were future Knight's Cross winners, first watch officer Oberleutnant zur See Ernst Bauer (two patrols) and later Oberleutnant zur See Nicolai Clausen (two patrols), second watch officer Leutnant zur See Gustav Poel and chief engineer Oberleutnant (Ing.) Gerd Suhren.[5]
First patrol
Hartmann's first patrol (19 August 1939 – 15 September 1939) on U-37 left Wilhelmshaven almost two weeks before the outbreak of World War II on Friday 1 September 1939 when German forces invaded Poland.[2] Commander of U-37 on this patrol was Kapitänleutnant Heinrich Schuch.
Ashore
Hartmann then moved to the BdU as a staff officer, and in November 1940 became commander of the 2nd ULD (U-boat Training Division). A year later he took command of the 27th U-boat Flotilla in Gotenhafen. In November 1942 he took command of the large Type IXD U-198 for a patrol to the Indian Ocean lasting 200 days, the third longest patrol ever undertaken, and sank 7 ships totalling 36,778 GRT. Chief engineer was Johann-Friedrich Wessels who received the Knight's Cross for his services on this patrol. In 1944 Hartmann became Führer der Unterseeboote Mittelmeer ("Commander of U-boats in the Mediterranean") and in this post received the Knight's Cross with Oak Leaves.[4]
Bundesmarine and later life
After the war he joined the Bundesmarine on 1 July 1956, commanding the 1. Schiffsstammregiment (1st Naval training regiment) in Glückstadt, retiring on 1 April 1962.[6] He died on 26 April 1963 in Usseln/Waldeck of pulmonary embolism. He was buried in a family grave in Glückstadt.[7]
Summary of career
Ships attacked
As a U-boat commander of U-37 and U-198 Werner Hartmann is credited with the sinking of 26 ships for a total of 115,337 gross register tons (GRT).
Date
|
U-boat
|
Name
|
Nationality
|
Tonnage
(GRT)
|
Fate
|
8 September 1939
|
U-37
|
Vistula
|
Sweden
|
1,018
|
Sunk at grid AF 7774, about 45 nmi (83 km; 52 mi) north of Muckle Flugga, Shetland[8]
|
12 October 1939
|
U-37
|
Artis
|
Greece
|
4,810
|
Sunk at [8]
|
15 October 1939
|
U-37
|
Vermont
|
France
|
5,186
|
Sunk
|
17 October 1939
|
U-37
|
Yorkshire
|
United Kingdom
|
10,183
|
Sunk
|
24 October 1939
|
U-37
|
Ledbury
|
United Kingdom
|
3,528
|
Sunk
|
24 October 1939
|
U-37
|
Menin Ridge
|
United Kingdom
|
2,474
|
Sunk
|
24 October 1939
|
U-37
|
Tafna
|
United Kingdom
|
4,413
|
Sunk
|
30 October 1939
|
U-37
|
Thrasyvoulos
|
Greece
|
3,693
|
Sunk
|
4 February 1940
|
U-37
|
Hop
|
Norway
|
1,365
|
Sunk
|
4 February 1940
|
U-37
|
Leo Dawson
|
United Kingdom
|
4,330
|
Sunk
|
10 February 1940
|
U-37
|
Silja
|
Norway
|
1,259
|
Sunk
|
11 February 1940
|
U-37
|
Togimo
|
United Kingdom
|
290
|
Sunk
|
15 February 1940
|
U-37
|
Aase
|
Denmark
|
1,206
|
Sunk
|
17 February 1940
|
U-37
|
Pyrrhus
|
United Kingdom
|
7,418
|
Sunk
|
18 February 1940
|
U-37
|
Elin
|
Greece
|
4,917
|
Sunk
|
18 February 1940
|
U-37
|
P.L.M. 15
|
France
|
3,754
|
Sunk
|
10 April 1940
|
U-37
|
Sveaborg
|
Sweden
|
9,076
|
Sunk
|
10 April 1940
|
U-37
|
Tosca
|
Norway
|
5,128
|
Sunk
|
12 April 1940
|
U-37
|
Stancliffe
|
United Kingdom
|
4,511
|
Sunk
|
17 May 1943
|
U-198
|
Northmoor
|
United Kingdom
|
4,392
|
Sunk
|
29 May 1943
|
U-198
|
Hopetarn
|
United Kingdom
|
5,231
|
Sunk
|
5 June 1943
|
U-198
|
Dumra
|
United Kingdom
|
2,304
|
Sunk
|
6 June 1943
|
U-198
|
William King
|
United States
|
7,176
|
Sunk
|
6 July 1943
|
U-198
|
Hydraios
|
Greece
|
4,476
|
Sunk
|
7 July 1943
|
U-198
|
Leana
|
United Kingdom
|
4,742
|
Sunk
|
1 August 1943
|
U-198
|
Mangkalihat
|
Netherlands
|
8,457
|
Sunk
|
Awards
Wehrmachtbericht references
Date
|
Original German Wehrmachtbericht wording
|
Direct English translation
|
Friday, 1 March 1940
|
Wie durch Sondermeldung bereits bekanntgegeben, hat ein von Fernfahrt zurückgekehrtes, unter dem Kommando von Korvettenkapitän Werner Hartmann stehendes Unterseeboot die Versenkung von 45 000 BRT gemeldet. Das Unterseeboot hat damit in zwei Unternehmungen die Gesamt-Versenkungsziffer von 80 000 BRT erreicht.[15]
|
As already announced by special bulletin, a submarine returning from war patrol under the command of Lieutenant Commander Werner Hartmann, reported the sinking of 45,000 GRT. The submarine has reached in two undertakings, the total of 80,000 GRT sunk.
|
Friday, 19 April 1940
|
Zu der schon bekanntgegebenen Torpedierung eines Kreuzers der "GLASGOW"-Klasse nördlich der Shetland Inseln meldet der von Feindfahrt zurückgekehrte Unterseeboot-Kommandant, daß der von feindlichen Zerstörern stark gesicherte Kreuzer durch eine unmittelbar nach dem Torpedotreffer ausgelösten innere Detonation vernichtet wurde. Die von diesem Unterseeboot-Kommandanten, Korvettenkapitän Hartmann, versenkte Tonnage beläuft sich nach der letzten Fernfahrt auf insgesamt rund 107 000 BRT.[16]
|
In addition to the already announced torpedoing of a cruiser of the "GLASGOW" class north of the Shetland Islands reports the from patrol returning submarine commander, that the by enemy destroyers heavily protected cruiser was destroyed by an internal detonation, triggered immediately after the torpedo hit.[Note 1] The total tonnage sunk after the last war patrol of this submarine commander, Captain Hartmann, amounts to some 107,000 GRT.
|
Promotions
1 April 1924:
|
Fähnrich zur See (Officer Cadet)[2]
|
4 April 1925:
|
Oberfähnrich zur See (Senior Ensign)[2]
|
1 October 1925:
|
Leutnant zur See (Second Lieutenant)[2]
|
1 July 1927:
|
Oberleutnant zur See (First Lieutenant)[2]
|
1 October 1933:
|
Kapitänleutnant (Captain Lieutenant)
|
1 July 1937:
|
Korvettenkapitän (Corvette Captain)
|
1 April 1941:
|
Fregattenkapitän (Frigatte Captain)
|
1 April 1943:
|
Kapitän zur See (Captain at Sea)
|
Notes
-- Module:Hatnote -- -- -- -- This module produces hatnote links and links to related articles. It -- -- implements the and meta-templates and includes -- -- helper functions for other Lua hatnote modules. --
local libraryUtil = require('libraryUtil') local checkType = libraryUtil.checkType local mArguments -- lazily initialise Module:Arguments local yesno -- lazily initialise Module:Yesno
local p = {}
-- Helper functions
local function getArgs(frame) -- Fetches the arguments from the parent frame. Whitespace is trimmed and -- blanks are removed. mArguments = require('Module:Arguments') return mArguments.getArgs(frame, {parentOnly = true}) end
local function removeInitialColon(s) -- Removes the initial colon from a string, if present. return s:match('^:?(.*)') end
function p.findNamespaceId(link, removeColon) -- Finds the namespace id (namespace number) of a link or a pagename. This -- function will not work if the link is enclosed in double brackets. Colons -- are trimmed from the start of the link by default. To skip colon -- trimming, set the removeColon parameter to true. checkType('findNamespaceId', 1, link, 'string') checkType('findNamespaceId', 2, removeColon, 'boolean', true) if removeColon ~= false then link = removeInitialColon(link) end local namespace = link:match('^(.-):') if namespace then local nsTable = mw.site.namespaces[namespace] if nsTable then return nsTable.id end end return 0 end
function p.formatPages(...) -- Formats a list of pages using formatLink and returns it as an array. Nil -- values are not allowed. local pages = {...} local ret = {} for i, page in ipairs(pages) do ret[i] = p._formatLink(page) end return ret end
function p.formatPageTables(...) -- Takes a list of page/display tables and returns it as a list of -- formatted links. Nil values are not allowed. local pages = {...} local links = {} for i, t in ipairs(pages) do checkType('formatPageTables', i, t, 'table') local link = t[1] local display = t[2] links[i] = p._formatLink(link, display) end return links end
function p.makeWikitextError(msg, helpLink, addTrackingCategory) -- Formats an error message to be returned to wikitext. If -- addTrackingCategory is not false after being returned from -- Module:Yesno, and if we are not on a talk page, a tracking category -- is added. checkType('makeWikitextError', 1, msg, 'string') checkType('makeWikitextError', 2, helpLink, 'string', true) yesno = require('Module:Yesno') local title = mw.title.getCurrentTitle() -- Make the help link text. local helpText if helpLink then helpText = ' (help)' else helpText = end -- Make the category text. local category if not title.isTalkPage and yesno(addTrackingCategory) ~= false then category = 'Hatnote templates with errors' category = string.format( '%s:%s', mw.site.namespaces[14].name, category ) else category = end return string.format( '%s', msg, helpText, category ) end
-- Format link -- -- Makes a wikilink from the given link and display values. Links are escaped -- with colons if necessary, and links to sections are detected and displayed -- with " § " as a separator rather than the standard MediaWiki "#". Used in -- the template.
function p.formatLink(frame) local args = getArgs(frame) local link = args[1] local display = args[2] if not link then return p.makeWikitextError( 'no link specified', 'Template:Format hatnote link#Errors', args.category ) end return p._formatLink(link, display) end
function p._formatLink(link, display) -- Find whether we need to use the colon trick or not. We need to use the -- colon trick for categories and files, as otherwise category links -- categorise the page and file links display the file. checkType('_formatLink', 1, link, 'string') checkType('_formatLink', 2, display, 'string', true) link = removeInitialColon(link) local namespace = p.findNamespaceId(link, false) local colon if namespace == 6 or namespace == 14 then colon = ':' else colon = end -- Find whether a faux display value has been added with the | magic -- word. if not display then local prePipe, postPipe = link:match('^(.-)|(.*)$') link = prePipe or link display = postPipe end -- Find the display value. if not display then local page, section = link:match('^(.-)#(.*)$') if page then display = page .. ' § ' .. section end end -- Assemble the link. if display then return string.format('%s', colon, link, display) else return string.format('%s%s', colon, link) end end
-- Hatnote -- -- Produces standard hatnote text. Implements the template.
function p.hatnote(frame) local args = getArgs(frame) local s = args[1] local options = {} if not s then return p.makeWikitextError( 'no text specified', 'Template:Hatnote#Errors', args.category ) end options.extraclasses = args.extraclasses options.selfref = args.selfref return p._hatnote(s, options) end
function p._hatnote(s, options) checkType('_hatnote', 1, s, 'string') checkType('_hatnote', 2, options, 'table', true) local classes = {'hatnote'} local extraclasses = options.extraclasses local selfref = options.selfref if type(extraclasses) == 'string' then classes[#classes + 1] = extraclasses end if selfref then classes[#classes + 1] = 'selfref' end return string.format( '
%s
', table.concat(classes, ' '), s )
end
return p-------------------------------------------------------------------------------- -- Module:Hatnote -- -- -- -- This module produces hatnote links and links to related articles. It -- -- implements the and meta-templates and includes -- -- helper functions for other Lua hatnote modules. --
local libraryUtil = require('libraryUtil') local checkType = libraryUtil.checkType local mArguments -- lazily initialise Module:Arguments local yesno -- lazily initialise Module:Yesno
local p = {}
-- Helper functions
local function getArgs(frame) -- Fetches the arguments from the parent frame. Whitespace is trimmed and -- blanks are removed. mArguments = require('Module:Arguments') return mArguments.getArgs(frame, {parentOnly = true}) end
local function removeInitialColon(s) -- Removes the initial colon from a string, if present. return s:match('^:?(.*)') end
function p.findNamespaceId(link, removeColon) -- Finds the namespace id (namespace number) of a link or a pagename. This -- function will not work if the link is enclosed in double brackets. Colons -- are trimmed from the start of the link by default. To skip colon -- trimming, set the removeColon parameter to true. checkType('findNamespaceId', 1, link, 'string') checkType('findNamespaceId', 2, removeColon, 'boolean', true) if removeColon ~= false then link = removeInitialColon(link) end local namespace = link:match('^(.-):') if namespace then local nsTable = mw.site.namespaces[namespace] if nsTable then return nsTable.id end end return 0 end
function p.formatPages(...) -- Formats a list of pages using formatLink and returns it as an array. Nil -- values are not allowed. local pages = {...} local ret = {} for i, page in ipairs(pages) do ret[i] = p._formatLink(page) end return ret end
function p.formatPageTables(...) -- Takes a list of page/display tables and returns it as a list of -- formatted links. Nil values are not allowed. local pages = {...} local links = {} for i, t in ipairs(pages) do checkType('formatPageTables', i, t, 'table') local link = t[1] local display = t[2] links[i] = p._formatLink(link, display) end return links end
function p.makeWikitextError(msg, helpLink, addTrackingCategory) -- Formats an error message to be returned to wikitext. If -- addTrackingCategory is not false after being returned from -- Module:Yesno, and if we are not on a talk page, a tracking category -- is added. checkType('makeWikitextError', 1, msg, 'string') checkType('makeWikitextError', 2, helpLink, 'string', true) yesno = require('Module:Yesno') local title = mw.title.getCurrentTitle() -- Make the help link text. local helpText if helpLink then helpText = ' (help)' else helpText = end -- Make the category text. local category if not title.isTalkPage and yesno(addTrackingCategory) ~= false then category = 'Hatnote templates with errors' category = string.format( '%s:%s', mw.site.namespaces[14].name, category ) else category = end return string.format( '%s', msg, helpText, category ) end
-- Format link -- -- Makes a wikilink from the given link and display values. Links are escaped -- with colons if necessary, and links to sections are detected and displayed -- with " § " as a separator rather than the standard MediaWiki "#". Used in -- the template.
function p.formatLink(frame) local args = getArgs(frame) local link = args[1] local display = args[2] if not link then return p.makeWikitextError( 'no link specified', 'Template:Format hatnote link#Errors', args.category ) end return p._formatLink(link, display) end
function p._formatLink(link, display) -- Find whether we need to use the colon trick or not. We need to use the -- colon trick for categories and files, as otherwise category links -- categorise the page and file links display the file. checkType('_formatLink', 1, link, 'string') checkType('_formatLink', 2, display, 'string', true) link = removeInitialColon(link) local namespace = p.findNamespaceId(link, false) local colon if namespace == 6 or namespace == 14 then colon = ':' else colon = end -- Find whether a faux display value has been added with the | magic -- word. if not display then local prePipe, postPipe = link:match('^(.-)|(.*)$') link = prePipe or link display = postPipe end -- Find the display value. if not display then local page, section = link:match('^(.-)#(.*)$') if page then display = page .. ' § ' .. section end end -- Assemble the link. if display then return string.format('%s', colon, link, display) else return string.format('%s%s', colon, link) end end
-- Hatnote -- -- Produces standard hatnote text. Implements the template.
function p.hatnote(frame) local args = getArgs(frame) local s = args[1] local options = {} if not s then return p.makeWikitextError( 'no text specified', 'Template:Hatnote#Errors', args.category ) end options.extraclasses = args.extraclasses options.selfref = args.selfref return p._hatnote(s, options) end
function p._hatnote(s, options) checkType('_hatnote', 1, s, 'string') checkType('_hatnote', 2, options, 'table', true) local classes = {'hatnote'} local extraclasses = options.extraclasses local selfref = options.selfref if type(extraclasses) == 'string' then classes[#classes + 1] = extraclasses end if selfref then classes[#classes + 1] = 'selfref' end return string.format( '
%s
', table.concat(classes, ' '), s )
end
return p
References
Citations
-- Module:Hatnote -- -- -- -- This module produces hatnote links and links to related articles. It -- -- implements the and meta-templates and includes -- -- helper functions for other Lua hatnote modules. --
local libraryUtil = require('libraryUtil') local checkType = libraryUtil.checkType local mArguments -- lazily initialise Module:Arguments local yesno -- lazily initialise Module:Yesno
local p = {}
-- Helper functions
local function getArgs(frame) -- Fetches the arguments from the parent frame. Whitespace is trimmed and -- blanks are removed. mArguments = require('Module:Arguments') return mArguments.getArgs(frame, {parentOnly = true}) end
local function removeInitialColon(s) -- Removes the initial colon from a string, if present. return s:match('^:?(.*)') end
function p.findNamespaceId(link, removeColon) -- Finds the namespace id (namespace number) of a link or a pagename. This -- function will not work if the link is enclosed in double brackets. Colons -- are trimmed from the start of the link by default. To skip colon -- trimming, set the removeColon parameter to true. checkType('findNamespaceId', 1, link, 'string') checkType('findNamespaceId', 2, removeColon, 'boolean', true) if removeColon ~= false then link = removeInitialColon(link) end local namespace = link:match('^(.-):') if namespace then local nsTable = mw.site.namespaces[namespace] if nsTable then return nsTable.id end end return 0 end
function p.formatPages(...) -- Formats a list of pages using formatLink and returns it as an array. Nil -- values are not allowed. local pages = {...} local ret = {} for i, page in ipairs(pages) do ret[i] = p._formatLink(page) end return ret end
function p.formatPageTables(...) -- Takes a list of page/display tables and returns it as a list of -- formatted links. Nil values are not allowed. local pages = {...} local links = {} for i, t in ipairs(pages) do checkType('formatPageTables', i, t, 'table') local link = t[1] local display = t[2] links[i] = p._formatLink(link, display) end return links end
function p.makeWikitextError(msg, helpLink, addTrackingCategory) -- Formats an error message to be returned to wikitext. If -- addTrackingCategory is not false after being returned from -- Module:Yesno, and if we are not on a talk page, a tracking category -- is added. checkType('makeWikitextError', 1, msg, 'string') checkType('makeWikitextError', 2, helpLink, 'string', true) yesno = require('Module:Yesno') local title = mw.title.getCurrentTitle() -- Make the help link text. local helpText if helpLink then helpText = ' (help)' else helpText = end -- Make the category text. local category if not title.isTalkPage and yesno(addTrackingCategory) ~= false then category = 'Hatnote templates with errors' category = string.format( '%s:%s', mw.site.namespaces[14].name, category ) else category = end return string.format( '%s', msg, helpText, category ) end
-- Format link -- -- Makes a wikilink from the given link and display values. Links are escaped -- with colons if necessary, and links to sections are detected and displayed -- with " § " as a separator rather than the standard MediaWiki "#". Used in -- the template.
function p.formatLink(frame) local args = getArgs(frame) local link = args[1] local display = args[2] if not link then return p.makeWikitextError( 'no link specified', 'Template:Format hatnote link#Errors', args.category ) end return p._formatLink(link, display) end
function p._formatLink(link, display) -- Find whether we need to use the colon trick or not. We need to use the -- colon trick for categories and files, as otherwise category links -- categorise the page and file links display the file. checkType('_formatLink', 1, link, 'string') checkType('_formatLink', 2, display, 'string', true) link = removeInitialColon(link) local namespace = p.findNamespaceId(link, false) local colon if namespace == 6 or namespace == 14 then colon = ':' else colon = end -- Find whether a faux display value has been added with the | magic -- word. if not display then local prePipe, postPipe = link:match('^(.-)|(.*)$') link = prePipe or link display = postPipe end -- Find the display value. if not display then local page, section = link:match('^(.-)#(.*)$') if page then display = page .. ' § ' .. section end end -- Assemble the link. if display then return string.format('%s', colon, link, display) else return string.format('%s%s', colon, link) end end
-- Hatnote -- -- Produces standard hatnote text. Implements the template.
function p.hatnote(frame) local args = getArgs(frame) local s = args[1] local options = {} if not s then return p.makeWikitextError( 'no text specified', 'Template:Hatnote#Errors', args.category ) end options.extraclasses = args.extraclasses options.selfref = args.selfref return p._hatnote(s, options) end
function p._hatnote(s, options) checkType('_hatnote', 1, s, 'string') checkType('_hatnote', 2, options, 'table', true) local classes = {'hatnote'} local extraclasses = options.extraclasses local selfref = options.selfref if type(extraclasses) == 'string' then classes[#classes + 1] = extraclasses end if selfref then classes[#classes + 1] = 'selfref' end return string.format( '
%s
', table.concat(classes, ' '), s )
end
return p-------------------------------------------------------------------------------- -- Module:Hatnote -- -- -- -- This module produces hatnote links and links to related articles. It -- -- implements the and meta-templates and includes -- -- helper functions for other Lua hatnote modules. --
local libraryUtil = require('libraryUtil') local checkType = libraryUtil.checkType local mArguments -- lazily initialise Module:Arguments local yesno -- lazily initialise Module:Yesno
local p = {}
-- Helper functions
local function getArgs(frame) -- Fetches the arguments from the parent frame. Whitespace is trimmed and -- blanks are removed. mArguments = require('Module:Arguments') return mArguments.getArgs(frame, {parentOnly = true}) end
local function removeInitialColon(s) -- Removes the initial colon from a string, if present. return s:match('^:?(.*)') end
function p.findNamespaceId(link, removeColon) -- Finds the namespace id (namespace number) of a link or a pagename. This -- function will not work if the link is enclosed in double brackets. Colons -- are trimmed from the start of the link by default. To skip colon -- trimming, set the removeColon parameter to true. checkType('findNamespaceId', 1, link, 'string') checkType('findNamespaceId', 2, removeColon, 'boolean', true) if removeColon ~= false then link = removeInitialColon(link) end local namespace = link:match('^(.-):') if namespace then local nsTable = mw.site.namespaces[namespace] if nsTable then return nsTable.id end end return 0 end
function p.formatPages(...) -- Formats a list of pages using formatLink and returns it as an array. Nil -- values are not allowed. local pages = {...} local ret = {} for i, page in ipairs(pages) do ret[i] = p._formatLink(page) end return ret end
function p.formatPageTables(...) -- Takes a list of page/display tables and returns it as a list of -- formatted links. Nil values are not allowed. local pages = {...} local links = {} for i, t in ipairs(pages) do checkType('formatPageTables', i, t, 'table') local link = t[1] local display = t[2] links[i] = p._formatLink(link, display) end return links end
function p.makeWikitextError(msg, helpLink, addTrackingCategory) -- Formats an error message to be returned to wikitext. If -- addTrackingCategory is not false after being returned from -- Module:Yesno, and if we are not on a talk page, a tracking category -- is added. checkType('makeWikitextError', 1, msg, 'string') checkType('makeWikitextError', 2, helpLink, 'string', true) yesno = require('Module:Yesno') local title = mw.title.getCurrentTitle() -- Make the help link text. local helpText if helpLink then helpText = ' (help)' else helpText = end -- Make the category text. local category if not title.isTalkPage and yesno(addTrackingCategory) ~= false then category = 'Hatnote templates with errors' category = string.format( '%s:%s', mw.site.namespaces[14].name, category ) else category = end return string.format( '%s', msg, helpText, category ) end
-- Format link -- -- Makes a wikilink from the given link and display values. Links are escaped -- with colons if necessary, and links to sections are detected and displayed -- with " § " as a separator rather than the standard MediaWiki "#". Used in -- the template.
function p.formatLink(frame) local args = getArgs(frame) local link = args[1] local display = args[2] if not link then return p.makeWikitextError( 'no link specified', 'Template:Format hatnote link#Errors', args.category ) end return p._formatLink(link, display) end
function p._formatLink(link, display) -- Find whether we need to use the colon trick or not. We need to use the -- colon trick for categories and files, as otherwise category links -- categorise the page and file links display the file. checkType('_formatLink', 1, link, 'string') checkType('_formatLink', 2, display, 'string', true) link = removeInitialColon(link) local namespace = p.findNamespaceId(link, false) local colon if namespace == 6 or namespace == 14 then colon = ':' else colon = end -- Find whether a faux display value has been added with the | magic -- word. if not display then local prePipe, postPipe = link:match('^(.-)|(.*)$') link = prePipe or link display = postPipe end -- Find the display value. if not display then local page, section = link:match('^(.-)#(.*)$') if page then display = page .. ' § ' .. section end end -- Assemble the link. if display then return string.format('%s', colon, link, display) else return string.format('%s%s', colon, link) end end
-- Hatnote -- -- Produces standard hatnote text. Implements the template.
function p.hatnote(frame) local args = getArgs(frame) local s = args[1] local options = {} if not s then return p.makeWikitextError( 'no text specified', 'Template:Hatnote#Errors', args.category ) end options.extraclasses = args.extraclasses options.selfref = args.selfref return p._hatnote(s, options) end
function p._hatnote(s, options) checkType('_hatnote', 1, s, 'string') checkType('_hatnote', 2, options, 'table', true) local classes = {'hatnote'} local extraclasses = options.extraclasses local selfref = options.selfref if type(extraclasses) == 'string' then classes[#classes + 1] = extraclasses end if selfref then classes[#classes + 1] = 'selfref' end return string.format( '
%s
', table.concat(classes, ' '), s )
end
return p
-
^ a b Röll 2010, p. 11.
-
^ a b c d e f g Busch & Röll 2003, p. 29.
-
^ Röll 2010, p. 150.
-
^ a b
-
^ Busch & Röll 2003, p. 31.
-
^ a b c d e f Busch & Röll 2003, p. 30.
-
^ Röll 2010, p. 149.
-
^ a b Röll 2010, pp. 154–155.
-
^ Röll 2010, p. 152.
-
^ a b Thomas 1997, p. 251.
-
^ Williamson & Pavlovic 1995, p. 48.
-
^ a b Scherzer 2007, p. 369.
-
^ Fellgiebel 2000, p. 215.
-
^ Fellgiebel 2000, p. 92.
-
^ Die Wehrmachtberichte 1939–1945 Band 1, pp. 82–83.
-
^ Die Wehrmachtberichte 1939–1945 Band 1, p. 117.
-
^ Rohwer 2005, p. 19.
Bibliography
-
-
-
-
-
Rohwer, Jürgen (2005). Chronology of the War at Sea, 1939-1945: The Naval History of World War II. Annapolis, Md. : Naval Institute Press. ISBN 1-59114-119-2.
-
-
-
-
Williamson, Gordon & Pavlovic, Darko (1995). U-Boat Crews 1914–45. Oxford, UK: Osprey Publishing Limited. ISBN 1-85532-545-4.
-
External links
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
in chronological order
This along with the ? (question mark) indicates doubt regarding the veracity and formal correctness of the listing.
|
|
|
|
|
|
|
|
|
|
|
|
in alphabetical order
This along with the ? (question mark) indicates doubt regarding the veracity and formal correctness of the listing.
|
|
This article was sourced from Creative Commons Attribution-ShareAlike License; additional terms may apply. World Heritage Encyclopedia content is assembled from numerous content providers, Open Access Publishing, and in compliance with The Fair Access to Science and Technology Research Act (FASTR), Wikimedia Foundation, Inc., Public Library of Science, The Encyclopedia of Life, Open Book Publishers (OBP), PubMed, U.S. National Library of Medicine, National Center for Biotechnology Information, U.S. National Library of Medicine, National Institutes of Health (NIH), U.S. Department of Health & Human Services, and USA.gov, which sources content from all federal, state, local, tribal, and territorial government publication portals (.gov, .mil, .edu). Funding for USA.gov and content contributors is made possible from the U.S. Congress, E-Government Act of 2002.
Crowd sourced content that is contributed to World Heritage Encyclopedia is peer reviewed and edited by our editorial staff to ensure quality scholarly research articles.
By using this site, you agree to the Terms of Use and Privacy Policy. World Heritage Encyclopedia™ is a registered trademark of the World Public Library Association, a non-profit organization.