World Library  
Flag as Inappropriate
Email this Article

David Kilcullen

Article Id: WHEBN0009327221
Reproduction Date:

Title: David Kilcullen  
Author: World Heritage Encyclopedia
Language: English
Subject: Fareed Zakaria GPS, Marine Corps War College, Radicalization, Insurgency, Hybrid warfare
Collection:
Publisher: World Heritage Encyclopedia
Publication
Date:
 

David Kilcullen

Lt. Col. (res.)
David John Kilcullen
Born 1967 (age 47–48)
Residence U.S.A.
Nationality Australian
Education Ph.D., Politics, Australian Defence Force Academy, University of New South Wales, 2000
Alma mater Royal Military College, Duntroon
Known for Theory and practice of counter-insurgency and conflict ethnography
Awards United States Army Superior Civilian Service Medal[1]

David John Kilcullen FRGS (born 1967) is an Australian author, strategist and counterinsurgency expert and is currently the non-executive Chairman of Caerus Associates, a strategy and design consulting firm that he founded.[2]

From 2005 to 2006, he was Chief Strategist in the Office of the Coordinator for Counterterrorism at the U.S. State Department.[3] Kilcullen was a senior counter-insurgency advisor to General David Petraeus in 2007 and 2008, where he helped design and monitor the Iraq War troop surge.[4] He was then a special advisor for counter-insurgency to Secretary of State Condoleezza Rice.[5] Kilcullen has been a Senior Fellow of the Center for a New American Security[6] and an Adjunct Professor at the Paul H. Nitze School of Advanced International Studies at Johns Hopkins University.[7] He has written three books: The Accidental Guerrilla, Counterinsurgency, and Out of the Mountains.[8]

Education

Kilcullen graduated from St Pius X College in 1984. He then attended the Australian Defence Force Academy and completed a Bachelor of Arts with Honours in Military Art and Science through the University of New South Wales and graduated as a Distinguished Graduate and was awarded the Chief of Defence Force Army Prize in 1989.require('Module:No globals')

local p = {}

-- articles in which traditional Chinese preceeds simplified Chinese local t1st = { ["228 Incident"] = true, ["Chinese calendar"] = true, ["Lippo Centre, Hong Kong"] = true, ["Republic of China"] = true, ["Republic of China at the 1924 Summer Olympics"] = true, ["Taiwan"] = true, ["Taiwan (island)"] = true, ["Taiwan Province"] = true, ["Wei Boyang"] = true, }

-- the labels for each part local labels = { ["c"] = "Chinese", ["s"] = "simplified Chinese", ["t"] = "traditional Chinese", ["p"] = "pinyin", ["tp"] = "Tongyong Pinyin", ["w"] = "Wade–Giles", ["j"] = "Jyutping", ["cy"] = "Cantonese Yale", ["poj"] = "Pe̍h-ōe-jī", ["zhu"] = "Zhuyin Fuhao", ["l"] = "literally", }

-- article titles for wikilinks for each part local wlinks = { ["c"] = "Chinese language", ["s"] = "simplified Chinese characters", ["t"] = "traditional Chinese characters", ["p"] = "pinyin", ["tp"] = "Tongyong Pinyin", ["w"] = "Wade–Giles", ["j"] = "Jyutping", ["cy"] = "Yale romanization of Cantonese", ["poj"] = "Pe̍h-ōe-jī", ["zhu"] = "Bopomofo", }

-- for those parts which are to be treated as languages their ISO code local ISOlang = { ["c"] = "zh", ["t"] = "zh-Hant", ["s"] = "zh-Hans", ["p"] = "zh-Latn-pinyin", ["tp"] = "zh-Latn", ["w"] = "zh-Latn-wadegile", ["j"] = "yue-jyutping", ["cy"] = "yue", ["poj"] = "hak", ["zhu"] = "zh-Bopo", }

local italic = { ["p"] = true, ["tp"] = true, ["w"] = true, ["j"] = true, ["cy"] = true, ["poj"] = true, } -- Categories for different kinds of Chinese text local cats = { ["c"] = "", ["s"] = "", ["t"] = "", }

function p.Zh(frame) -- load arguments module to simplify handling of args local getArgs = require('Module:Arguments').getArgs local args = getArgs(frame) return p._Zh(args) end function p._Zh(args) local uselinks = not (args["links"] == "no") -- whether to add links local uselabels = not (args["labels"] == "no") -- whether to have labels local capfirst = args["scase"] ~= nil

        local t1 = false -- whether traditional Chinese characters go first
        local j1 = false -- whether Cantonese Romanisations go first
        local testChar
        if (args["first"]) then
                 for testChar in mw.ustring.gmatch(args["first"], "%a+") do
          if (testChar == "t") then
           t1 = true
           end
          if (testChar == "j") then
           j1 = true
           end
         end
        end
        if (t1 == false) then
         local title = mw.title.getCurrentTitle()
         t1 = t1st[title.text] == true
        end

-- based on setting/preference specify order local orderlist = {"c", "s", "t", "p", "tp", "w", "j", "cy", "poj", "zhu", "l"} if (t1) then orderlist[2] = "t" orderlist[3] = "s" end if (j1) then orderlist[4] = "j" orderlist[5] = "cy" orderlist[6] = "p" orderlist[7] = "tp" orderlist[8] = "w" end -- rename rules. Rules to change parameters and labels based on other parameters if args["hp"] then -- hp an alias for p ([hanyu] pinyin) args["p"] = args["hp"] end if args["tp"] then -- if also Tongyu pinyin use full name for Hanyu pinyin labels["p"] = "Hanyu Pinyin" end if (args["s"] and args["s"] == args["t"]) then -- Treat simplified + traditional as Chinese if they're the same args["c"] = args["s"] args["s"] = nil args["t"] = nil elseif (not (args["s"] and args["t"])) then -- use short label if only one of simplified and traditional labels["s"] = labels["c"] labels["t"] = labels["c"] end local body = "" -- the output string local params -- for creating HTML spans local label -- the label, i.e. the bit preceeding the supplied text local val -- the supplied text -- go through all possible fields in loop, adding them to the output for i, part in ipairs(orderlist) do if (args[part]) then -- build label label = "" if (uselabels) then label = labels[part] if (capfirst) then label = mw.language.getContentLanguage():ucfirst( He took his army officer training at the Royal Military College, Duntroon. After twelve months of training in Indonesia, Kilcullen graduated from the Australian Defence Force School of Languages[9] in 1993 with an Advanced Diploma in Applied Linguistics. He is fluent in Indonesian and speaks some Arabic and French.[1]

Kilcullen received a PhD in politics from the Australian Defence Force Academy at the University of New South Wales in 2000. His thesis, entitled "The Political Consequences of Military Operations in Indonesia 1945-99: A Fieldwork Analysis of the Political Power-Diffusion Effects of Guerrilla Conflict," focused on the effects of guerrilla warfare on non-state political systems in traditional societies. He drew on ethnographic methods to research traditional systems of governance in East Timor and West Papua.

His research centered on investigating power diffusion in Indonesia during the Darul Islam Era of 1948 to 1962 and the Indonesian Occupation of East Timor of 1974 to 1999. Kilcullen argues that counter-insurgency operations, whether successful or not, cause the diffusion of political power from central to local leaders and that populations are the major actors in insurgency and counter-insurgency dynamics.[10]

Australian military career

Kilcullen was commissioned as a Second Lieutenant in the Australian Army and served in a number of operational, strategic, command, and staff positions in the Royal Australian Infantry Corps and Australian Defence Force. He served in several counter-insurgency and peacekeeping operations in East Timor, Bougainville, and the Middle East.[1]

Kilcullen attained the rank of Lieutenant Colonel in the Australian Army and served as a Staff Officer in the Australian Defence Force Headquarters. In 2004, he became a Senior Analyst in the Australian Office of National Assessments, where he served on the writing team for the Australian Government's 2004 Terrorism White Paper, "Transnational Terrorism: The Threat to Australia".[1]

He left active duty in 2005[4] and is commissioned as a Lieutenant Colonel in the Australian Army Reserve.[11]

Career in the United States

Kilcullen was seconded to the United States Department of Defense in 2004, where he wrote the counter-terrorism strategy for the Quadrennial Defense Review that appeared in 2006.[5] After going to reserve status in the Australian Army, Kilcullen worked for the United States Department of State in 2005 and 2006, serving as the Chief Strategist in the Office of the Coordinator for Counterterrorism.[5] He worked in the field in Pakistan, Afghanistan, Iraq, the Horn of Africa and Southeast Asia. He helped design and implement the Regional Strategic Initiative.[1]

Kilcullen helped write the United States Army's Field Manual 3-24, Counterinsurgency, published in December 2006.[12][13] He also wrote an appendix, entitled "A Guide to Action."

In early 2007, Kilcullen became a member of a small group of civilian and military experts, including Colonel H. R. McMaster, who worked on the personal staff of General David Petraeus, the Commander of the Multi-National Force – Iraq.[14] There, Kilcullen served as the Senior Counterinsurgency Advisor until 2008 and was responsible for planning and executing counterinsurgency strategy and operations. He was a principal architect of the Joint Campaign Plan which guided the Iraq War 2007 Troop Surge.[15]

He has also served as the Special Advisor for Counterinsurgency to Secretary of State Condoleezza Rice in 2007 and 2008.[5]

Kilcullen was a Member of the International Security Assistance Force and to several private sector institutions and companies.

He was a Senior Fellow and a member of the Advisory Board of the Center for a New American Security.[16] He was a Partner at the Crumpton Group, but left due to moral and principled differences.[17] He has also been an Adjunct Professor of Security Studies at the Johns Hopkins School of Advanced International Studies.[7][18]

Kilcullen founded Caerus Associates, LLC in 2010. Caerus is a Washington, DC-based strategic and design consultancy firm that specializes in working in complex and frontier environments.[19]

Contributions to counter-insurgency

Complex Warfighting

In 2004, Kilcullen wrote Complex Warfighting, which became the basis of the Australian Army's Future Land Operating Concept, approved the next year.[4] It identifies an operating environment heavily influenced by globalization and the United States' conventional military dominance. The concept claims that future conflicts will feature asymmetric threats requiring land forces to be flexible, able to deploy quickly and operate in urban terrain. The paper calls for "modular, highly educated and skilled forces with a capacity for network-enabled operations, optimised for close combat in combined arms teams. These teams will be small, semi-autonomous and highly networked, incorporating traditional elements of the combined arms team as well as non-traditional elements such as civil affairs, intelligence and psychological warfare capabilities. They will have a capacity for protracted independent operations within a joint interagency framework."[20] While not strictly limited to counter-insurgency, it stated that counter-insurgency and other non-traditional actions were going to compose a greater part of warfare in the 21st Century.[4]

"Countering Global Insurgency"

"Countering Global Insurgency" proposed a new strategic approach to the War on Terrorism. It was first published in Small Wars Journal in 2004[21] and then a shorter version appeared in the Journal of Strategic Studies in 2005.[22] The paper argues that al-Qaeda is best understood as a "global Islamic insurgency" that seeks to promote its takfiri version of Islam and increase its role in the world order. Thus, counter-insurgency strategies and tactics need updating to deal with a globalized movement like al-Qaeda, especially increasing participation and cooperation of many states' intelligence and police agencies.[4]

"Counterinsurgency Redux"

Kilcullen's 2006 paper "Counterinsurgency Redux" questions the relevance of classical counterinsurgency theory to modern conflict. It argues from field evidence gathered in Iraq, Afghanistan, Pakistan and the Horn of Africa that:

[T]oday's insurgencies differ significantly from those of the 1960s. Insurgents may not be seeking to overthrow the state, may have no coherent strategy or may pursue a faith-based approach difficult to counter with traditional methods. There may be numerous competing insurgencies in one theater, meaning that the counterinsurgent must control the overall environment rather than defeat a specific enemy. The actions of individuals and the propaganda effect of a subjective "single narrative" may far outweigh practical progress, rendering counter-insurgency even more non-linear and unpredictable than before. The counterinsurgent, not the insurgent, may initiate the conflict and represent the forces of revolutionary change. The economic relationship between insurgent and population may be diametrically opposed to classical theory. And insurgent tactics, based on exploiting the propaganda effects of urban bombing, may invalidate some classical tactics and render others, like patrolling, counterproductive under some circumstances. Thus, field evidence suggests, classical theory is necessary but not sufficient for success against contemporary insurgencies

"Twenty-Eight Articles"

Kilcullen's paper "Twenty-Eight Articles"[23] is a practical guide for junior officers and non-commissioned officers engaged in counter-insurgency operations in Afghanistan and Iraq. The paper's publication history is an illustration of new methods of knowledge propagation in the military-professional community. It first appeared as an e-mail that was widely circulated informally among U.S. Army and Marine officers in April 2006, and was subsequently published in Military Review in May 2006. Later versions of it were published in IoSphere and the Marine Corps Gazette, and it has been translated into Arabic, Russian, Pashtu and Spanish.[24] It was later formalized as Appendix A to FM 3-24, the US military's counterinsurgency doctrine, and is in use by the US, Australian, British, Canadian, Dutch, Iraqi and Afghan armies as a training document.[25]

Conflict ethnography

Kilcullen has argued in most of his works for a deeper cultural understanding of the conflict environment, an approach he has called conflict ethnography: "a deep, situation-specific understanding of the human, social and cultural dimensions of a conflict, understood not by analogy with some other conflict, but in its own terms."[26] In the same essay, "Religion and Insurgency", published in May 2007 on the Small Wars Journal, he expanded this view:

The bottom line is that no handbook relieves a professional counterinsurgent from the personal obligation to study, internalize and interpret the physical, human, informational and ideological setting in which the conflict takes place. Conflict ethnography is key; to borrow a literary term, there is no substitute for a "close reading" of the environment. But it is a reading that resides in no book, but around you; in the terrain, the people, their social and cultural institutions, the way they act and think. You have to be a participant observer. And the key is to see beyond the surface differences between our societies and these environments (of which religious orientation is one key element) to the deeper social and cultural drivers of conflict, drivers that locals would understand on their own terms.[26]

Counterinsurgency

In 2010, Kilcullen brought together his writings in Counterinsurgency and developed his understanding of counterinsurgency to address the globalized threat of radical Islam. He argues that successful counterinsurgency is about out-governing the enemy and winning the adaptation battle to provide integrated measures to defeat insurgent tactics through political, administrative, military, economic, psychological and informational means.

Positions on American policy

Iraq War

In an interview with Spencer Ackerman of the Washington Independent in 2008, Kilcullen called the decision to invade Iraq "fucking stupid" and suggested that if policy-makers apply his manual's lessons, similar wars can be avoided in the future. "The biggest stupid idea," Kilcullen said, "was to invade Iraq in the first place."[27] Kilcullen didn't deny saying it, but rather that "I can categorically state that the word ‘fucking’ was said off the record".[3] Kilcullen explained his comment the next day:[28]

[I]n my view, the decision to invade Iraq in 2003 was an extremely serious strategic error. But the task of the moment is not to cry over spilt milk, rather to help clean it up: a task in which the surge, the comprehensive counterinsurgency approach, and our troops on the ground are admirably succeeding. ... The question of whether we were right to invade Iraq is a fascinating debate for historians and politicians, and a valid issue for the American people to consider in an election year. As it happens, I think it was a mistake. But that is not my key concern. The issue for practitioners in the field is not to second-guess a decision from six years ago, but to get on with the job at hand which, I believe, is what both Americans and Iraqis expect of us. In that respect, the new strategy and tactics implemented in 2007, and which relied for their effectiveness on the extra troop numbers of the Surge, ARE succeeding and need to be supported.[29]

Criticizing American policy

On 6 March 2009, Kilcullen published a piece on Small Wars Journal titled "Accidental Guerrilla: Read Before Burning." The piece responded to Andrew Bacevich's review[30] of Kilcullen's book, The Accidental Guerilla: Fighting Small Wars in the Midst of a Big One, and also addressed his criticisms of American administrations. Kilcullen wrote:
... my views have been on the public record for years, since well before I came to work for the government and since before I served in the field in Iraq, Afghanistan and Pakistan. They hired me anyway. And secondly, surprising as it may be, the last administration – just like the present administration – was big enough, open enough and intellectually honest enough to tolerate and, indeed, welcome constructive criticism and genuine attempts to fix policy problems. I never found that it needed much moral courage to be honest about my opinions – non-partisan honesty was exactly what Secretary Rice wanted from me, and she told me that more than once. The ability to tolerate and integrate different opinions, and thus to self-correct, is one of the foremost strengths of our form of government, and I suspect this is true of all administrations, though perhaps it is true of some more than others.[31]

Drone use

Kilcullen argues that targeted killings with drone strikes in Afghanistan and Pakistan is a mistake. "These strikes are totally counter-productive. It is a strategic error to personalize the conflict in this way, it’ll strengthen the enemy and weaken our friends. How can one expect the civilian population to support us if we kill their families and destroy their homes."[3]

Publications and testimony

  • Longer draft version of journal article.
  • Different version
  • Video
  • Video

Books

See also

References


-- 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
  1. ^ a b c d e
  2. ^
  3. ^ a b c
  4. ^ a b c d e
  5. ^ a b c d
  6. ^
  7. ^ a b
  8. ^
  9. ^
  10. ^
  11. ^
  12. ^
  13. ^
  14. ^
  15. ^
  16. ^
  17. ^
  18. ^
  19. ^
  20. ^
  21. ^
  22. ^
  23. ^
  24. ^
  25. ^
  26. ^ a b
  27. ^
  28. ^
  29. ^
  30. ^
  31. ^

External links

  • Appearances on C-SPAN
  • Citation
  • 23 (4): 23.
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.
 


Copyright © World Library Foundation. All rights reserved. eBooks from Project Gutenberg are sponsored by the World Library Foundation,
a 501c(4) Member's Support Non-Profit Organization, and is NOT affiliated with any governmental agency or department.