Blake Lewis
Blake Lewis at the 2009 American Music Awards
Background information
Birth name Blake Colin Lewis
Also known as BShorty[1]
Born

(1981-07-21) July 21, 1981


Redmond, Washington
Origin Bothell, Washington, United States
Genres
Occupation(s)
Instruments
Years active 1998–present
Labels
Associated acts
Website www.BlakeLewisOfficial.com

Blake Colin Lewis (born July 21, 1981) is an American singer, songwriter and beatboxer who was the runner-up on the sixth season of American Idol. His major label debut album A.D.D. (Audio Day Dream) was released on December 4, 2007 through 19 Recordings and Arista Records.[2] On October 30, 2007, his first single "Break Anotha" was released. The album landed on number ten on the U.S. Billboard 200 as its highest peak position with 97,500 copies sold in its debut, and has sold over 350,000 copies. After the release of his second single "How Many Words", which peaked at number eight on the U.S. Billboard Dance/Club Play Songs, Lewis was dropped by Arista Records. Lewis eventually signed with Tommy Boy Records.

His second album, Heartbreak on Vinyl, was released on October 6, 2009. The first single "Sad Song" was released on July 21, 2009. The album charted at number 135 on the U.S. Billboard Billboard 200, number twenty on the Billboard Independent Albums, and number seven on the Billboard Dance/Electronic Albums with over 4,000 copies sold in the first week.

His third album, Portrait of a Chameleon, was released on May 20, 2014. This was his first independent record and includes his hit single "Your Touch". Portrait Of A Chameleon was available for pre order on PledgeMusic before its release and included special extras such as posters and insiders on his album.

Biography

Early years

Lewis was born in Redmond, Washington to Dallas and Dinah Lewis.[3][4] Dinah is a former rocker who still sings and plays guitar.[5] He is an only child and is of Welsh, Swiss, German and Irish descent.[6] He attended Kenmore Junior High and later Inglemoor High School in Kenmore, Washington.[7][8] In high school, Lewis participated in many high school state competitions . He also took part in numerous musicals, as well as comedy and rap videos with his friends.[3][9][10][11] In many of these videos, he portrayed his alter ego, Jimmie Walker Blue, the character he introduced during the semi-final round of American Idol.

Lewis started beatboxing at seventeen. He picked up this talent purely by ear, listening to CDs of beatboxing, after he was inspired by Matthew Selby, a former member of the Los Angeles-based a cappella group M-Pact, of which fellow American Idol semi-finalist Rudy Cárdenas was a member.[6][12][13] Aside from singing and beatboxing, Lewis plays the guitar, keyboard, drums and has written many songs such as "She Loves the Way", "Emotional Waterfalls", "Dumpty Humpty" and "Jealousy".[14][15][16] He describes himself as an improv musician and often uses devices such as loop pedals and the Kaoss Pad to layer beatboxing, instruments, vocals and effects to create a song live on stage.[17]

Being a member of the a cappella group Kickshaw for four years after graduating from high school in 1999, Lewis worked with the group on a 10-track album titled Put It In the Microphone but he quit the group in 2002 to become a solo musician going by the stage name Bshorty, which was basically inspired by the nicknames of the members of 311 and "aggressive inline-skate videos during the 1990s", "doing drum and bass shows, and conscious hip hop shows, singer-songwriter stuff, and electronica and hip hop".[10][12][18][19][20][21][22] He made connections with various musicians by performing regularly in many venues in Seattle such as Nectar Lounge in Fremont, SeaMonster Lounge, Lo-Fi Performance Gallery, Jet Deck in Everett (now in Mill Creek) and hosted shows like The Digital Lounge shows at ToST.[6][17][23][24] Before Idol, he was working on a solo album with a number of tracks finished.[25]

American Idol

Overview

Though he initially found American Idol unappealing, Lewis auditioned for it in Seattle with "Crazy" by Seal and an off-screen rendition of "Sunday Morning" by Maroon 5.[26][27][28] Introducing himself as the local beatboxing champion in the audition, Lewis beatboxed along with his teammates, including Chris Sligh, Rudy Cárdenas and Tom Lowe, to "How Deep Is Your Love" by Bee Gees in the Hollywood's Week. The memorable performance received a standing ovation from the audience and Paula Abdul, who commented "that brought down the house". In an early episode of the United Kingdom edition of American Idol, Lewis recalled his first solo performance in the Hollywood's Week was "Papa Was a Rollin' Stone" by The Temptations. When later he sang it in front of the other finalists, Phil Stacey felt that it was the best performance he has seen from Lewis.[29]

Lewis ended up the last male contestant standing, despite Simon's first impression that the singer was a bit "over the top" adding "I don't know if you're as good as you think you are". But soon afterward, the judges began predicting Lewis' "front runner" status. In an exclusive interview with X17Online on March 4, 2007, Simon Cowell foresaw Lewis' chance to take the crown.[30] After Lewis' performance of "Lovesong" by The Cure/311 on March 27, Paula Abdul said that she would love to see him in the finale. Cowell further confirmed that Lewis was the front runner of male contestants on American Idol. Lewis, upon entering the top 2 on May 16, 2007, he thus became the first ever contestant from the Northwestern United States (specifically, Washington) to compete in the finale.

I've tried to stay true to myself this whole entire time, and I think I've represented myself as creatively as I could with what I got on the show.

Blake Lewis, interview with MTV.com[14]
Lewis' beatboxing and scat singing skills had been featured occasionally throughout the competition, notably in the performances such as "Virtual Insanity", "All Mixed Up", "Time of the Season", "You Give Love a Bad Name", "You Should Be Dancing", "This Is Where I Came In" and "This Love". He had also rearranged songs including "You Keep Me Hangin' On" and "You Give Love a Bad Name". Although Lewis' first performance in the semi-final weeks, "Somewhere Only We Know", was pure singing and inspired judges to make comments about his contemporary vibe, his signature performance on the show was probably "You Give Love a Bad Name" by Bon Jovi. Lewis incorporated a substantial beatboxing component, making the song sound significantly different from its original version. Jon Bon Jovi, the lead singer of the band who also coached the contestants that week, noted that Lewis' rendition was "rolling the dice". All three judges acknowledged the huge risk of Lewis' arrangement, but also praised him for his originality including beatboxing. Randy Jackson believed that it was the most original performance ever on the show. Cowell even predicted that 50% of the audience "would absolutely hate it" but another half would love it. The groundbreaking performance was later ranked number six in top 20 all-time greatest American Idol performances on AOL.com.[31]

Several original versions of songs Lewis performed re-entered Billboard Hot Digital Songs chart shortly after the show. Lewis' first performance on-stage, "Somewhere Only We Know" by Keane, re-entered the chart at number 26 (number 19 on Hot Digital Tracks chart);[32] "Time of the Season", a The Zombies' hit in 1968, reached number 67;[33] Ryan Adams’s "When the Stars Go Blue" hit number 39 (number 37 on Hot Digital Tracks chart);[34] Bon Jovi's "You Give Love a Bad Name" shot up to number 29;[35] "This Love" and "She Will Be Loved" by Maroon 5 jumped to number 41 and number 45 respectively.[36][37] Maroon 5’s album Songs About Jane had re-entered the Top Pop Catalog Albums chart at number five on June 2, 2007 as well.[38]

On May 11, 2007, Lewis visited his hometown, Seattle, Washington for the traditional Idol Top 3 hometown visits. He made numerous appearances at radio stations and then played a concert in Seattle at Westlake Center, including a performance of "Baby Got Back" with Sir Mix-a-Lot. He also visited the top of the Space Needle. Fans followed him to Bothell for a parade and concert at the Sammamish River Park. Afterwards, he proceeded to Safeco Field to sing the national anthem, "The Star-Spangled Banner", for the Seattle Mariners's Game.

Lewis claimed 311 as his all-time favorite band after his performance of "All Mixed Up".[39] Responding to a viewer question on March 13, 2007, he had also confessed his love of "underground hip hop, electronic music" such as Common Market and Panda Conspiracy, with an addition of The Mob Law, which in Lewis' opinion, "should be signed to a major label".[40]

While being the last two contestants waiting for the results on May 2, Lewis and Chris Richardson answered Ryan Seacrest's question about their close relationship, saying that they are best friends.[41] Interestingly, Lewis has "Chris Sligh, Rudy Cárdenas", contestants from the sixth season of American Idol, listed as his own "American idols" on his profile on American Idol official website, while Sligh and Cárdenas also have Lewis on their lists.[42][43][44] Furthermore, Lewis claimed in an interview with The Blaker Girls that besides Richardson, Cárdenas and Sligh, his best friends on the show were Brandon Rogers, Jordin Sparks and Gina Glocksen.[16] In the episode of The View on June 14, 2007, Lewis said that there were "a lot of writers on the show", including Richardson, Sligh and himself.[45]

Jimmie Walker Blue, his alter ego was introduced in the middle of the Idol.[46]

Performances and results

Week Theme Song Choice Artist Order # Result
Top 24 (12 Men) N/A "Somewhere Only We Know" Keane 7 Safe
Top 20 (10 Men) N/A "Virtual Insanity" Jamiroquai 7 Safe
Top 16 (8 Men) N/A "All Mixed Up" 311 1 Safe
Top 12 Diana Ross "You Keep Me Hangin' On" The Supremes 9 Safe
Top 11 British Invasion "Time of the Season" The Zombies 4 Safe
Top 10 No Doubt/Artists who inspire Gwen Stefani "Lovesong" The Cure 8 Safe
Top 9 American Classics "Mack the Knife" Bobby Darin 1 Safe
Top 8 Latin "I Need to Know" Marc Anthony 7 Safe
Top 7 Country "When the Stars Go Blue" Ryan Adams 7 Bottom 3
Top 6 Inspirational "Imagine" John Lennon 3 Safe
Top 6 Bon Jovi "You Give Love a Bad Name" Bon Jovi 4 Safe
Top 4 Barry Gibb "You Should Be Dancing"
"This Is Where I Came In"
Bee Gees 2
6
Safe
Top 3 Judge's Choice (Paula Abdul)
Producers' Choice
Contestant's Choice
"Roxanne"
"This Love"
"When I Get You Alone"
The Police
Maroon 5
Robin Thicke
2
5
8
Safe
Finale Previous Song
New Song
Coronation Song
"You Give Love a Bad Name"
"She Will Be Loved"
"This Is My Now"
Bon Jovi
Maroon 5
Jordin Sparks
1
3
5
Runner-up

Post-Idol

Lewis's songs from American Idol have been on sale at the iTunes Store and the American Idol official website as Blake Lewis - EP (called a "bundle" on Idol official website) shortly after the finale of Idol, along with other songs that did not make the EP's cut that are being sold as individual singles. Figures from SoundScan which were posted on USA Today indicated that Lewis' "You Give Love a Bad Name" was "the biggest-selling download of the season", with 192,000 copies sold.[47]

After the finale of Idol, Blake Lewis has made several appearances on television shows. He performed Maroon 5's "She Will Be Loved" on The Morning Show with Mike and Juliet (combined with a snippet of U2's "With or Without You"), The Today Show, Live with Regis and Kelly and The Early Show.[48][49] In the episode of The View on June 14, 2007, he sang "Somewhere Only We Know" by Keane.[45] Lewis had also appeared on Total Request Live, The Morning Show with Mike and Juliet with the winner of Idol, Jordin Sparks and Larry King Live with contestants who made into the top ten of American Idol.[50][51][52] On July 4, 2007, Lewis performed "God Bless America" and "America the Beautiful" on Macy's Fourth of July Fireworks Spectacular with Sparks and Melinda Doolittle.[53][54]

Lewis took part in the "American Idols Live! Tour 2007" from July 6 - September 23, 2007, along with other contestants in the top ten. He revealed on The View on June 14, 2007 that all the male contestants on the show would be playing musical instruments on the tour (for the first time ever), "doing like a folk band," and that he would bring along his loop pedals for his beatboxing.[45] Before several shows, Lewis improvised, got dressed up as a janitor character named Bob Bobberson and sometimes as a Pop-Tart.[55] He performed "She Loves the Way" on the last show, becoming the first Idol who sang their pre-Idol original materials on the tour. He and Chris Richardson have "started working on a little documentary" on the tour and it will be published at their MySpace profiles.[55][56]

Lewis was named number five in the list of the ten sexiest Idol contestants ever on the website during the running of the sixth season of American Idol and was ranked number 21 in the list of music's 21 sexiest single men on June 11, 2007 on AOL.com.[57][58] Later in the issue of People magazine on June 15, 2007, the brand-new runner-up of Idol appeared on its list of "Hottest Bachelors of 2007".[59][60][61] He has also made a cut on the list of 50 hottest guys on Elle Girl.[62]

Career

2007-2008: A.D.D. (Audio Day Dream)

On March 6, 2008, he performed "How Many Words", from his album A.D.D. (Audio Day Dream), on the American Idol result show.

On the release of his second single, Blake Lewis spent much of his time promoting the single "How Many Words" at various radio stations. While Blake Lewis parted with his label, Arista Records, in June 2008,[63] he will begin his national tour starting on the East Coast at the end of September with the help of 19 Recordings and will be playing songs from A.D.D. as well as new songs.[64] Details about the tour can be found at Blake Lewis's Myspace page[55] or the website of his official street team, the Blake Lewis Army.[65]

Upon his record deal with Arista Records/19 Recordings which was announced officially on August 24, 2007, A.D.D. (Audio Day Dream), Lewis' "electro-funk-soul-pop" first studio album, was released on December 4, 2007.[66][67][68] In fact, the singer has been recording his album in the studio "for all night long" since June 18.[68][69] "Break Anotha", the first single from A.D.D., was released to radio on October 30, 2007 and on iTunes Store on November 13.[70][71]

Blake's second single, "How Many Words" was released on March 10, 2008. A.D.D. has been made available at iTunes and includes his music video for his first single "Break Anotha". On June 25, 2008 Entertainment Weekly officially announced that Lewis was dropped by his label, Arista, but will remain on Idol creator Simon Fuller's 19 Recordings roster.[72]

Lewis has said he's already written four songs for his second album, which he's working on with his band's drummer, KJ "Quantize" Sawka. The pair will be co-producing the effort, which Lewis describes as "Massive Attack meets Zero 7 — drum-and-bass with a little pop influence."[63]

Lewis said he may release the disc through his own label, which he's in the process of getting off the ground. "I'm super-passionate about this record," he said. "Who knows what's in store? Half the year's over, and it's only going to keep going."[63] According to MTV News, the album is expected to have the electronica genre like the first album, and "he is experimenting with his own music" by implementing blue-eyed soul, pop music, rock, jazz, emo, indie and some metal genre. It was also reported on KIIS-FM that Lewis will collaborate with Chris Richardson, KJ Sawka and Ryan "Alias" Tedder.

As of August 2008, the artist has added one song to his sophomore LP, which may be out on the last quarter of 2008 or first quarter of 2009. Lewis told the interviewers that he is very excited to premiere his new songs, and he has learned some lessons from his "A.D.D." era. On an interview, he said, "Where to start… Orchestral Drive-By: KJ and I are about 5 songs deep now. Can’t wait for you all to hear this. I haven’t been this excited in a while. I haven’t been able to produce in a year and half, besides a couple songs on ‘A.D.D.’ and from what I have learned in the last year, it sure has paid off. STOKED!!!"[73]

It was reported that Lewis has collaborated with his friends on the band, Project Lionheart at a track called "My Eyes" and "Hell Yeah".[74] Aside from that, he also collaborated with Common Market's "Trouble Is", where he contributed backing vocals.[75] Blake says who is currently producing his record with his drummer, KJ Sawka. Blake also recorded a track at 311 frontman Nick Hexum’s house for the next album. Blake finished a charity song called "Selfless" with Darude for Dance4Life. In September, Blake was featured on a song for BT's album, which he says is a “throwback to Flock of Seagulls.”.[76] Blake has also been in Darude's song "I Ran" which hit the charts and is on local radio stations constantly.

2009-2012: Heartbreak on Vinyl

On April 30, 2009, Lewis performed at the 2009 Congressional Clubs' First Lady's Luncheon to Honor Michelle Obama.[77] He performed three songs including a beatbox version of "America the Beautiful".

His second album, Heartbreak on Vinyl, was distributed under Tommy Boy Records[78] - a dance/hip hop/electronic label whose catalog includes albums by Africa Bambaataa, Biz Markie and De La Soul. He signed a deal on Tommy Boy Entertainment to record an electronica album.

The first single from the album, "Sad Song", was released on July 21, 2009. The album was released on October 6, 2009.

2013-present: Portrait of a Chameleon

On February 25, 2013, it was announced that Lewis has signed with Republic Records. He was going to release his third studio album Portrait of a Chameleon in spring 2013 and the first single "Your Touch" premiered on February 26, 2013 on a commercial for Internet Explorer 10.[79] The song was released to iTunes on March 4, 2013.

On February 17, 2014, Blake Lewis officially announced that his new album would be released May 20, 2014 on his own record label, Audio Day Dream Records.[80]

Voice acting

Lewis made his voice acting debut in the English dub of the anime series, Durarara!!, in which he voiced Kasuka Heiwajima.[81][82] Lewis had also voiced a character named Thump on one episode of Generator Rex.[83]

Philanthropy

Lewis has been supporting Title Album details Peak chart positions Certifications
and sales US
[86] US
Indie

[87] US
Dance

[88] A.D.D. (Audio Day Dream)

10 — —
  • US sales: 309,000[89]
Heartbreak on Vinyl 135 20 7
  • US sales: 10,000[90]
Portrait of a Chameleon
  • Released: May 20, 2014
  • Label: Audio Day Dream Records[80]
  • Format: CD, digital download
- - -
  • US sales: 2,000require('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(

"—" denotes album that did not chart or was not released.

Extended plays

Title Album details Peak chart positions Certifications
and sales
US
Comp.

[91]
US
Digital

[92]
Blake Lewis1 30 3
  • US sales: 46,000[93]

Notes:

Singles

Year Title Peak chart positions Album
US
[95]
US Pop
[96]
US Dance
[97]
AUS
[98]
GER
[99]
IRE
[100]
UK
[100]
2007 "You Give Love a Bad Name" 18 15 Blake Lewis
2008 "Break Anotha" 110 85 A.D.D. (Audio Day Dream)
"How Many Words" 8
2009 "Sad Song" 11 Heartbreak on Vinyl
2010 "Heartbreak on Vinyl" 1
"Till We See the Sun"
2013 "Your Touch" 21 93 32 79 38 Portrait of a Chameleon
2014 "Retro Romance"
"—" denotes single that did not chart or was not released in that territory.

As featured artist

Year Title Album
2012 "Stay In The Moment"
(Daniel Wanrooy featuring Blake Lewis)[101]
Non-album single

Notes:

  • 1 While Jordin Sparks, the winner of the sixth season of American Idol, had "This Is My Now" as her official single, Lewis did not announce his choice of single officially, despite the fact that "You Give Love a Bad Name" was the highest-charting track among his "bundle" of songs available for downloading. "You Give Love a Bad Name" entered a number of charts.
  • ² Unlike the debut songs of previous winners and runners-up of American Idol, all five songs that appeared on Blake Lewis (EP) were released digitally only, not physically.[94]
  • ³ While not being announced as a single, "Time of the Season", the song Lewis performed in the British Invasion week on American Idol, has debuted on the Billboard Hot 100 chart at number 99, the Pop 100 chart at number 74 and the Hot Digital Songs chart at number 70 in the issue of the charts on June 9, 2007.[94] Several tracks by Lewis have made appearances that week on the Billboard Bubbling Under Hot 100 Singles chart and the Pop 100 chart as well, including "This Love" (number 2; number 80), "When the Stars Go Blue" (number 10; number 92) and "I Need to Know" (number nineteen on the Bubbling Under Hot 100 Singles chart).

Unreleased original works

Guest vocals

  • 2003: Unexpected Arrival, "Julie" (featuring Blake Lewis); "Take Control" (featuring Blake Lewis) Both chorus's written by Blake
  • 2007: Caleb Cunningham and K-Tone, "My Eyes" (featuring Blake Lewis)[107]
  • 2007: KJ Sawka, "Brotherhood of the Drum" (featuring Blake Lewis); "Move On" (featuring Blake Lewis); "WTO" (featuring Blake Lewis) (from the album Cyclonic Steel)[108]
  • 2008: Darude, "Selfless" (featuring Blake Lewis); "I Ran (So Far Away) (featuring Blake Lewis)
  • 2009: DJ Dan, "Operator" (featuring Blake Lewis)

Cameos

  • 2006: The Sampler, "The Chuck Norris Rap, The Harry Potter Rap, Snakes On A Plane Rap" (Music Video)
  • 2007: Jordin Sparks, "Tattoo" (music video)

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. ^
  2. ^
  3. ^ a b
  4. ^
  5. ^
  6. ^ a b c
  7. ^
  8. ^
  9. ^ a b
  10. ^ a b
  11. ^
  12. ^ a b
  13. ^
  14. ^ a b
  15. ^
  16. ^ a b
  17. ^ a b
  18. ^
  19. ^
  20. ^
  21. ^
  22. ^
  23. ^
  24. ^
  25. ^
  26. ^
  27. ^
  28. ^
  29. ^
  30. ^
  31. ^
  32. ^
  33. ^
  34. ^
  35. ^
  36. ^
  37. ^
  38. ^
  39. ^
  40. ^
  41. ^
  42. ^
  43. ^
  44. ^
  45. ^ a b c
  46. ^ YouTube - Blake Lewis as Jimmie Walker Blue
  47. ^
  48. ^
  49. ^
  50. ^
  51. ^
  52. ^
  53. ^
  54. ^
  55. ^ a b c d
  56. ^
  57. ^
  58. ^
  59. ^
  60. ^
  61. ^
  62. ^
  63. ^ a b c 'American Idol' Alum Blake Lewis Parts With Label - News Story | Music, Celebrity, Artist News | MTV News
  64. ^
  65. ^
  66. ^
  67. ^
  68. ^ a b
  69. ^
  70. ^
  71. ^
  72. ^ Blake Lewis dropped from Arista
  73. ^
  74. ^
  75. ^
  76. ^ [1]
  77. ^
  78. ^ [2]
  79. ^
  80. ^ a b
  81. ^
  82. ^
  83. ^
  84. ^
  85. ^
  86. ^
  87. ^
  88. ^
  89. ^ Washington Post 05-23-2011
  90. ^
  91. ^
  92. ^
  93. ^ Idol Chatter 01-10-2008
  94. ^ a b c
  95. ^
  96. ^
  97. ^
  98. ^ See Issue 32273: http://www.ariacharts.com.au/news/33225/chartifacts
  99. ^ http://www.officialcharts.de/song.asp?artist=Blake+Lewis&title=Your+Touch&cat=s&country=de
  100. ^ a b http://www.officialcharts.com/artist/_/blake%20lewis/
  101. ^ [3] amazon.com
  102. ^ Blake Lewis Closer To Reason - FREE MP3 Stream - Listen on IMEEM Music
  103. ^ =
  104. ^
  105. ^ =
  106. ^ Blake Lewis Drivin' Me Crazy (with friends from Seattle) - FREE MP3 Stream - Listen on IMEEM Music
  107. ^
  108. ^

External links