https://wiki.pbbg.com/api.php?action=feedcontributions&user=FoohonPie&feedformat=atomPBBG Wiki, The enyclopedia of Persistent Browser-Based Games - User contributions [en]2024-03-29T09:07:42ZUser contributionsMediaWiki 1.35.1https://wiki.pbbg.com/index.php?title=Main_Page&diff=271094Main Page2021-01-24T18:42:57Z<p>FoohonPie: </p>
<hr />
<div><div style="padding:1em; border:1px solid #ddd; background-color:#f9f9f9; color:#000; text-align:center;"><br />
<div style="font-size:200%;">Welcome to [[The PBBG Wiki]],</div><br />
<div>the encyclopedia for [[Persistent Browser-Based Game|Persistent Browser-Based Games]] that [[The PBBG Wiki:Contributing|anyone can edit]].</div><br />
<div style="font-size:80%;">[[Special:Statistics|{{NUMBEROFARTICLES}}]] articles</div><br />
</div><br />
<br />
Welcome to The PBBG Wiki, the online encyclopedia for any and all possible information about Persistent Browser Based Games.<br />
<br />
This is public and open wiki, which means anybody can help contribute to the articles within this site. For more information to get started, please see our [[The PBBG Wiki:Contributing|contribution guide]].<br />
<br />
==Newest Pages==<br />
<br />
{{Special:Newestpages/-/5}}</div>FoohonPiehttps://wiki.pbbg.com/index.php?title=Main_Page&diff=271093Main Page2021-01-24T18:41:57Z<p>FoohonPie: Undo revision 271091 by FoohonPie (talk)</p>
<hr />
<div>Preview the music that you are about to buy. Such previews let you hear a couple of seconds of a song prior to making a purchase decision. They won't cost you a dime and can be found on most sites that let you download music. That way, you will stop yourself from buying entire albums that you wind up hating.<br><br>You should make sure you take advantage of using the "Preview" option on each track of an album before you download it. This is a good idea for songs that are new to you. That way, you can just download tracks that you like. This can save you money since you won't need to buy a whole album for just a few songs you like.<br><br>If you are looking for [https://youtu.be/yHkza3IAvcs alan walker new song] music to download, consider visiting websites that provide music from up and coming artists. These music sites offer song tracks plus reviews from listeners who have listened to them through streaming. This is a good way to add good music to your collection that is not in the mainstream yet.<br><br>Don't try to download music from a place where you can't trust where it's coming from. For instance, you shouldn't use pirating software to get [https://youtu.be/-ALhnzIYPNM alan walker alone] your music. This is because you could end up downloading a virus or spyware. It's also against the law to do this, so only get downloads from trusted sources.<br><br>You can obtain free and cheap music downloads from some band websites. Some popular bands like to give away rare tracks, live tracks, and rough cuts that you won't find on their albums. These are usually free or really cheap on their own websites. This is a great way to not only get music from a band you like, but to get access to cool extras that you won't find at large online music retailers.<br><br>Watch the file sizes of your music downloads carefully. A normal music download will be somewhere between 2 megabytes and 5 megabytes. If you see something much less or much more, there could be something fishy about the file. It may be spyware and not the song you were hoping it was.<br><br>A [https://www.rewards-insiders.Marriott.com/search.jspa?q=website website] that offers legal music downloads will usually not have a wide range of custom files and mixes available. This is because they are distributing the music from reputable labels. If the website has a dozen versions of the song you are looking for, you are probably not on a legal download site.<br><br>Amazon and iTunes are popular markets for finding downloaded music. You can set up a free account and browse songs from millions of artists. In many cases, you can even listen to a small sample of a song before you buy it. This is a great way to access a lot of music all in one place.<br><br>If you are having problems downloading with a peer to peer program, check your firewall. Unless you allow the program, you won't be able to do any uploading or downloading. Windows comes with a firewall built in, and this will have to be altered to allow for your program's actions.<br><br>If you install peer to peer networking software, don't install any of the add-ons or extra software which it offers you. These programs are often adware which can eat up resources on your computer or internet connection, plus they add no benefit to the software itself, so just uncheck those boxes.<br><br>Before downloading any music on a new site, make sure you read the reviews on that site to avoid downloading a virus. Read reviews that talk about malware or viruses. If there are any reviews indicating that the website has malicious files, you should avoid it. Even if there are no bad reviews, you should still be careful.<br><br>Always have an updated anti-virus program on any device that you download music on. There are many people who would love to have access to the files on your system. If you do not have a good anti-virus program on your device, you are leaving yourself vulnerable to hacking attempts and viruses.<br><br>When you are looking for websites for music downloads, be sure that you are downloading from a reputable distributor. There have been instances when users have downloaded malware along with the song tracks. This will not happen at established digital music distributors with a good reputation. Keep this mind before you click on the download button.<br><br>Avoid the temptation of downloading popular music from [https://youtu.be/jIZ4ZEHJo1I alan walker new song] websites that promise you free music downloads. Due to copyright reasons, most legitimate music downloads are available only with a fee. Websites that advertise free downloads of the latest songs need to be scrutinized because there are often strings attached to their offer which makes the download much more complicated.<br><br>Always make sure that you download your music from a legal website. If you download music illegally, you can face harsh fines. In many cases you can be fined up to $500 per song. The artists deserve to be paid for the music they make, so download only legal copies of the songs that you love.<br><br>If you enjoy quite a few of an artist's songs, it is probably a good idea to buy the album. Regardless of vendor, it is often more expensive to buy single songs than an entire album. It also gives you the opportunity to explore more and listen longer. It may even introduce you to your new favorite song.</div>FoohonPiehttps://wiki.pbbg.com/index.php?title=Main_Page&diff=271091Main Page2021-01-24T18:40:42Z<p>FoohonPie: Reverted edits by IlanaMoreno (talk) to last revision by VidaSelle62</p>
<hr />
<div>0 second time [https://www.liveinternet.ru/users/z1tfgch832/post475221479// wholesale mlb jerseys] to throw "He's a pro," [http://a9qexuw774.nation2.com/preview-of-49ers-football-games-in-september-2009 authentic basketball jerseys China] O'Brien [https://inthehiddenwiki.net/index.php?title=Football_-_Football_Moments_-_Great_And_Not_So_4892212747&oldid=271238 wholesale football jerseys China] said. "He came back in here and had a great recall of our offense when he got back here. He's got a really good demeanor. NS: The things that you didn't do right sometimes can be a gift. If you didn't get them right, they can help you for the next game. The things that we didn't do right, we have been working on in accordance to how they are going to help us this week.<br><br> Wazzu held a 24 13 lead, but as was the case the week before, Cal stormed out of the gates after halftime and took a 27 24 lead. Connor Halliday and River Cracraft connected for an 86 yard touchdown, and Washington State took a 38 27 lead midway through the before Trevor Davis returned the ensuing kickoff 100 yards for a score. Isiah Myers put Wazzu up 45 34, and Davis returned another kickoff 98 yards for a score.</div>FoohonPiehttps://wiki.pbbg.com/index.php?title=Persistent_Browser-Based_Game&diff=403Persistent Browser-Based Game2019-11-12T23:25:01Z<p>FoohonPie: /* External Links */</p>
<hr />
<div>A persistent browser-based game (PBBG) is a game that can be played in a web browser, that offers its players a persistent game universe to play in.<br />
<br />
PBBGs usually, but not always, rely on some kind of server-side code.<br />
<br />
==External Links==<br />
<br />
* [https://pbbg.com pbbg.com]<br />
* [https://reddit.com/r/pbbg /r/PBBG]<br />
* [https://discord.gg/KvwaEqC Discord Server]</div>FoohonPiehttps://wiki.pbbg.com/index.php?title=OpenDominion&diff=400OpenDominion2019-11-11T20:30:26Z<p>FoohonPie: </p>
<hr />
<div>{{Infobox game<br />
| name = OpenDominion<br />
| subheader = Where Power Still Prevails<br />
| image = [[File:OpenDominion-homepage-2019-10-09.png|250px|alt={{{name}}}]]<br />
<br />
| developer = [[Wavehack]]<br />
| release = ?<br />
| genres = fantasy, military, strategy, magic<br />
| website = https://beta.opendominion.net/<br />
}}<br />
<br />
{{Ratings<br />
| rev3 = ''[[pbbg.com]]''<br />
| rev3Score = {{Rating|5|5}}<ref>[https://pbbg.com/games/opendominion (5/5) OpenDominion | pbbg.com - Persistent Browser Based Games]</ref><br />
}}<br />
OpenDominion is a open-sourced free online text-based strategy game in a medieval fantasy setting. It was created by [[WaveHack]] (also known as Sharqy).<br />
<br />
It is a free and open source remake of [[Dominion]] by [[Kamikaze Games]], which ran from 2000 until 2012.<br />
<br />
==External Links==<br />
* [https://beta.opendominion.net Website]<br />
* [https://discordapp.com/invite/mFk2wZT Discord Server]<br />
* [https://wiki.opendominion.net/wiki/Main_Page Wiki]<br />
<br />
==References==<br />
{{reflist|30em}}<br />
<br />
[[Category:Active Games]]<br />
[[Category:Strategy Games]]<br />
[[Category:Fantasy Games]]<br />
[[Category:Military Games]]<br />
[[Category:Open-source Games]]</div>FoohonPiehttps://wiki.pbbg.com/index.php?title=Trout_Slap&diff=399Trout Slap2019-10-30T03:38:38Z<p>FoohonPie: </p>
<hr />
<div>Trout Slap, also known as TS, was an rpg/adventure [[Persistent Browser Based Game|PBBG]] created by [[FoohonPie]] in 2006. Its first major version was primarily a PvP arena, with the second version introducing an explorable map that spawned randomly generated enemies.<br />
<br />
Its style was parodic and often nonsensical, with defensive items like The Beard of Justice, and bosses such as randomly spawning Jean-Luc Picards. Fishing was core to gameplay as your catches were used both as food and as weapons, hence the game’s name.<br />
<br />
== Gallery ==<br />
<br />
<gallery><br />
File:Trout-slap-map-draft.jpg|A draft of Trout Slap's world map.<br />
File:Trout-slap-fan-art.jpg|Trout Slap Fan Art<br />
File:Vidiot-ranking.jpg|A player named "vidiot" shares an exciting screenshot.<br />
</gallery><br />
<br />
[[Category:Dead Games]]<br />
[[Category:Adventure Games]]</div>FoohonPiehttps://wiki.pbbg.com/index.php?title=Trout_Slap&diff=398Trout Slap2019-10-30T03:36:25Z<p>FoohonPie: </p>
<hr />
<div>Trout Slap, also known as TS, was an rpg/adventure [[Persistent Browser Based Game|PBBG]] created by [[FoohonPie]] in 2006. Its first major version was primarily a PvP arena, with the second version introducing an explorable map that spawned randomly generated enemies.<br />
<br />
Its style was parodic and often nonsensical, with defensive items like The Beard of Justice, and bosses such as randomly spawning Jean-Luc Picards. Fishing was core to gameplay as your catches were used both as food and as weapons, hence the game’s name.<br />
<br />
== Gallery ==<br />
<br />
<gallery><br />
File:Trout-slap-map-draft.jpg|A draft of Trout Slap's world map.<br />
File:Trout-slap-fan-art.jpg|Trout Slap Fan Art<br />
File:Vidiot-ranking.jpg|A player named "vidiot" shares an exciting screenshot.<br />
</gallery><br />
<br />
[[Category:Dead Games]]</div>FoohonPiehttps://wiki.pbbg.com/index.php?title=CrimeBloc&diff=397CrimeBloc2019-10-30T03:34:55Z<p>FoohonPie: </p>
<hr />
<div>{{Infobox game<br />
| name = CrimeBloc<br />
| subheader = A world of crime, power and loyalty<br />
| image = [[File:CrimeBloc-homepage-2019-10-09.png|250px|alt={{{name}}}]]<br />
<br />
| developer = CrimeBloc<br />
| release = ?<br />
| genres = crime<br />
| website = https://crimebloc.io/<br />
}}<br />
<br />
{{Quote frame |quote=Set in present day Eastern Europe, CrimeBloc is a game of crime cartels, protection rackets, casinos and crew wars. Rise through the ranks, build an empire and demand loyalty and respect with deadly means if necessary. |author=CrimeBloc.io}}<br />
<br />
<br />
==External Links==<br />
* [https://crimebloc.io/ Website]<br />
<br />
[[Category:Active Games]]<br />
[[Category:Crime Games]]</div>FoohonPiehttps://wiki.pbbg.com/index.php?title=Arms_of_War&diff=396Arms of War2019-10-30T03:33:17Z<p>FoohonPie: </p>
<hr />
<div>{{Infobox game<br />
| name = Arms of War<br />
| subheader = The Strategic PvP Idle Game<br />
| image = [[File:Arms-of-War-homepage-2019-10-09.png|250px|alt={{{name}}}]]<br />
<br />
| developer = Arms of War<br />
| release = ?<br />
| genres = idle, military, strategy<br />
| website = https://arms-of-war.com/<br />
}}<br />
<br />
<br />
Welcome to Arms of War, where the land is divided into hundreds of tiny kingdoms and torn apart by never-ending war. Each King has a clandestine duty to go to war with the other Kings, creating a world around it that has adapted to the perpetual chaos. Both Soldiers and Generals alike pledge to the highest bidder, magicians are willing to perform great spells for a good barrel of bourbon, and a simple peasant can inherit the knowledge to do, or be, anything they want. That is, if they don't 'volunteer' for military service. Even the nobles have settled into their role of replenishing Kings as they fall into... well, 'difficult times'. This is not a place for the weak, but for people of action and consequence.<br />
<br />
The Arms of War Trilogy is built off of the idea that different games based in the same world should cause effects to one another. Created using new technology, server-first design to prevent lag or performance problems, a Single-SignOn system, a global Guild system, and universal private messages & alerts! Each game will be a full-featured and complete game, with a dedicated developer and regular updates.<br />
<br />
== AoW: Generals -- Idle Alpha==<br />
:: '''Status: Alpha'''<br />
You, as a Mercenary General, are instructed (by your King and employer) to collect resources, conscript the local peasants, and destroy his enemy's castle before they destroy his! To gain an edge, work with your team of other Generals to make improvements to your castle or hire some local mages to provide magical assistance using crytals. You can also use the gold collected from the battlefield to improve your own equipment. A multi-day strategic idle PvP experience featuring 2 game modes, 13 troop types, and every match has special global modifiers to make every battle a feel different.<br />
<br />
== AoW: Lineage -- RPG==<br />
:: '''Status: In Development'''<br />
Take control over an entire family tree, play as your own character by completing tasks, fighting, leveling, crafting and buying your way through life. But no one lives forever -- once it's time for your 'retirement', you can pass on a portion of your experiences (you didn't want to pass on *everything*, did you?) and your life savings to your descendent so they get a head start in their new life! Progress-through-prestige and reach untold fortunes to become the best in the world at literally EVERYTHING! Featuring regular database purges, pay-to-win mechanics and lag times that result in unfair deaths! Just kidding. Play to find party turn-based combat, combat and non-combat supporters, full economy, exploration and crafting.<br />
<br />
== AoW: Become Kings==<br />
:: '''Status: In Development'''<br />
It sucks being on the bottom. So don't be! Your ambition will serve you well on your quest to become a King! Start your journey by following one of several unique career paths. Use your intuition and creative leverage to gather influence from the gullible people around you, amass a following, attend conferences as the keynote-speaker, stab a few rivals in their sleep, start a religion, and rise to the glory of King!<br />
<br />
<br />
==External Links==<br />
* [https://arms-of-war.com Website]<br />
* [https://discord.gg/S5EcWdV Discord Server]<br />
<br />
[[Category:Active Games]]<br />
[[Category:Military Games]]<br />
[[Category:Strategy Games]]</div>FoohonPiehttps://wiki.pbbg.com/index.php?title=Arms_of_War&diff=395Arms of War2019-10-30T03:31:54Z<p>FoohonPie: </p>
<hr />
<div>{{Infobox game<br />
| name = Arms of War<br />
| subheader = The Strategic PvP Idle Game<br />
| image = [[File:Arms-of-War-homepage-2019-10-09.png|250px|alt={{{name}}}]]<br />
<br />
| developer = Arms of War<br />
| release = ?<br />
| genres = idle, military, strategy<br />
| website = https://arms-of-war.com/<br />
}}<br />
<br />
<br />
Welcome to Arms of War, where the land is divided into hundreds of tiny kingdoms and torn apart by never-ending war. Each King has a clandestine duty to go to war with the other Kings, creating a world around it that has adapted to the perpetual chaos. Both Soldiers and Generals alike pledge to the highest bidder, magicians are willing to perform great spells for a good barrel of bourbon, and a simple peasant can inherit the knowledge to do, or be, anything they want. That is, if they don't 'volunteer' for military service. Even the nobles have settled into their role of replenishing Kings as they fall into... well, 'difficult times'. This is not a place for the weak, but for people of action and consequence.<br />
<br />
The Arms of War Trilogy is built off of the idea that different games based in the same world should cause effects to one another. Created using new technology, server-first design to prevent lag or performance problems, a Single-SignOn system, a global Guild system, and universal private messages & alerts! Each game will be a full-featured and complete game, with a dedicated developer and regular updates.<br />
<br />
== AoW: Generals -- Idle Alpha==<br />
:: '''Status: Alpha'''<br />
You, as a Mercenary General, are instructed (by your King and employer) to collect resources, conscript the local peasants, and destroy his enemy's castle before they destroy his! To gain an edge, work with your team of other Generals to make improvements to your castle or hire some local mages to provide magical assistance using crytals. You can also use the gold collected from the battlefield to improve your own equipment. A multi-day strategic idle PvP experience featuring 2 game modes, 13 troop types, and every match has special global modifiers to make every battle a feel different.<br />
<br />
== AoW: Lineage -- RPG==<br />
:: '''Status: In Development'''<br />
Take control over an entire family tree, play as your own character by completing tasks, fighting, leveling, crafting and buying your way through life. But no one lives forever -- once it's time for your 'retirement', you can pass on a portion of your experiences (you didn't want to pass on *everything*, did you?) and your life savings to your descendent so they get a head start in their new life! Progress-through-prestige and reach untold fortunes to become the best in the world at literally EVERYTHING! Featuring regular database purges, pay-to-win mechanics and lag times that result in unfair deaths! Just kidding. Play to find party turn-based combat, combat and non-combat supporters, full economy, exploration and crafting.<br />
<br />
== AoW: Become Kings==<br />
:: '''Status: In Development'''<br />
It sucks being on the bottom. So don't be! Your ambition will serve you well on your quest to become a King! Start your journey by following one of several unique career paths. Use your intuition and creative leverage to gather influence from the gullible people around you, amass a following, attend conferences as the keynote-speaker, stab a few rivals in their sleep, start a religion, and rise to the glory of King!<br />
<br />
<br />
==External Links==<br />
* [https://arms-of-war.com Website]<br />
* [https://discord.gg/S5EcWdV Discord Server]<br />
<br />
[[Category:Active Games]]<br />
[[Category:Military Games]]</div>FoohonPiehttps://wiki.pbbg.com/index.php?title=OpenDominion&diff=394OpenDominion2019-10-30T02:19:51Z<p>FoohonPie: </p>
<hr />
<div>{{Infobox game<br />
| name = OpenDominion<br />
| subheader = Where Power Still Prevails<br />
| image = [[File:OpenDominion-homepage-2019-10-09.png|250px|alt={{{name}}}]]<br />
<br />
| developer = [[Wavehack]]<br />
| release = ?<br />
| genres = fantasy, military, strategy, magic<br />
| website = https://beta.opendominion.net/<br />
}}<br />
<br />
{{Ratings<br />
| rev3 = ''[[pbbg.com]]''<br />
| rev3Score = {{Rating|5|5}}<ref>[https://pbbg.com/games/opendominion (5/5) OpenDominion | pbbg.com - Persistent Browser Based Games]</ref><br />
}}<br />
OpenDominion is a open-sourced free online text-based strategy game in a medieval fantasy setting. It was created by [[WaveHack]] (also known as Sharqy).<br />
<br />
It is a free and open source remake of [[Dominion]] by [[Kamikaze Games]], which ran from 2000 until 2012.<br />
<br />
==External Links==<br />
* [https://beta.opendominion.net Website]<br />
* [https://discordapp.com/invite/mFk2wZT Discord Server]<br />
* [https://wiki.opendominion.net/wiki/Main_Page Wiki]<br />
<br />
==References==<br />
{{reflist|30em}}<br />
<br />
[[Category:Active Games]]<br />
[[Category:Strategy Games]]<br />
[[Category:Fantasy Games]]<br />
[[Category:Military Games]]</div>FoohonPiehttps://wiki.pbbg.com/index.php?title=OpenDominion&diff=393OpenDominion2019-10-30T02:18:10Z<p>FoohonPie: </p>
<hr />
<div>{{Infobox game<br />
| name = OpenDominion<br />
| subheader = Where Power Still Prevails<br />
| image = [[File:OpenDominion-homepage-2019-10-09.png|250px|alt={{{name}}}]]<br />
<br />
| developer = [[Wavehack]]<br />
| release = ?<br />
| genres = fantasy, military, strategy, magic<br />
| website = https://beta.opendominion.net/<br />
}}<br />
<br />
{{Ratings<br />
| rev3 = ''[[pbbg.com]]''<br />
| rev3Score = {{Rating|5|5}}<ref>[https://pbbg.com/games/opendominion (5/5) OpenDominion | pbbg.com - Persistent Browser Based Games]</ref><br />
}}<br />
OpenDominion is a open-sourced free online text-based strategy game in a medieval fantasy setting. It was created by [[WaveHack]] (also known as Sharqy).<br />
<br />
It is a free and open source remake of [[Dominion]] by [[Kamikaze Games]], which ran from 2000 until 2012.<br />
<br />
==External Links==<br />
* [https://beta.opendominion.net Website]<br />
* [https://discordapp.com/invite/mFk2wZT Discord Server]<br />
* [https://wiki.opendominion.net/wiki/Main_Page Wiki]<br />
<br />
==References==<br />
{{reflist|30em}}<br />
<br />
[[Category:Active Games]]<br />
[[Category:Strategy Games]]<br />
[[Category:Fantasy Games]]</div>FoohonPiehttps://wiki.pbbg.com/index.php?title=OpenDominion&diff=392OpenDominion2019-10-30T01:58:08Z<p>FoohonPie: </p>
<hr />
<div>{{Infobox game<br />
| name = OpenDominion<br />
| subheader = Where Power Still Prevails<br />
| image = [[File:OpenDominion-homepage-2019-10-09.png|250px|alt={{{name}}}]]<br />
<br />
| developer = [[Wavehack]]<br />
| release = ?<br />
| genres = fantasy, military, strategy, magic<br />
| website = https://beta.opendominion.net/<br />
}}<br />
<br />
{{Ratings<br />
| rev3 = ''[[pbbg.com]]''<br />
| rev3Score = {{Rating|5|5}}<ref>[https://pbbg.com/games/opendominion (5/5) OpenDominion | pbbg.com - Persistent Browser Based Games]</ref><br />
}}<br />
OpenDominion is a open-sourced free online text-based strategy game in a medieval fantasy setting. It was created by [[WaveHack]] (also known as Sharqy).<br />
<br />
It is a free and open source remake of [[Dominion]] by [[Kamikaze Games]], which ran from 2000 until 2012.<br />
<br />
==External Links==<br />
* [https://beta.opendominion.net Website]<br />
* [https://discordapp.com/invite/mFk2wZT Discord Server]<br />
* [https://wiki.opendominion.net/wiki/Main_Page Wiki]<br />
<br />
==References==<br />
{{reflist|30em}}<br />
<br />
[[Category:Active Games]]<br />
[[Category:Strategy Games]]</div>FoohonPiehttps://wiki.pbbg.com/index.php?title=Imperial_Conflict&diff=391Imperial Conflict2019-10-30T01:49:10Z<p>FoohonPie: </p>
<hr />
<div>{{Infobox game<br />
| name = Imperial Conflict<br />
| subheader = Rule The Galaxy!<br />
<br />
| developer = [[Foohon Pie LLC]]<br />
| release = 2000<br />
| genres = military, space, strategy<br />
| website = https://imperialconflict.com/<br />
}}<br />
<br />
{{Ratings<br />
| rev1 = ''[[pbbg.com]]''<br />
| rev1Score = {{Rating|5|5}}<ref>[https://pbbg.com/games/imperial-conflict (5/5) Imperial Conflict | pbbg.com - Persistent Browser Based Games]</ref><br />
}}<br />
<br />
Imperial Conflict, commonly referred to as IC, is a free online browser-based massively multiplayer online strategy game set in space. Players interact in cooperation and against other players in a quest to "Rule The Galaxy".<br />
<br />
IC was created by [[Stefan]] and [[Mastermike]] and owned and operated by [[Collective Minds Interactive]] until 2016, at which point it was sold to [[I_like_pie]], who currently owns and operates it through [[Foohon Pie LLC]]. IC is 1 of 3 games created by Collective Minds Interactive, the other two being [[Dragon Lords]] and [[Final Conquest]].<br />
<br />
==External Links==<br />
* https://imperialconflict.com<br />
<br />
==References==<br />
{{reflist|30em}}<br />
<br />
[[Category:Active Games]]<br />
[[Category:Military Games]]<br />
[[Category:Space Games]]<br />
[[Category:Strategy Games]]</div>FoohonPiehttps://wiki.pbbg.com/index.php?title=Paldera&diff=390Paldera2019-10-30T01:14:26Z<p>FoohonPie: Reverted edits by 108.162.219.176 (talk) to last revision by FoohonPie</p>
<hr />
<div>{{Infobox game<br />
| name = Paldera<br />
| image = [[File:Paldera-logo.png|250px|alt={{{name}}}]]<br />
| caption = Banner from Kickstarter Campaign<br />
<br />
| developer = [[Dustin Slagle]]<br />
| release = [[:Category:Upcoming_Games|TBD]]<br />
| website = https://paldera.com<br />
}}<br />
<br />
Paldera is an upcoming [[Persistent Browser Based Game|PBBG]] being developed by [[Dustin Slagle]]. It bills itself as the first pwbg (progressive web-based game) or pwbRPG (progressive web-based role-playing game), being "the first game of its kind to take full advantage of the Progressive Web App experience, which allows it to be played seamlessly across all browsers and devices of any size, and behaves like a native application without the need to download or install anything."<br />
<br />
It will offer both the ability to interact in real-time as well as idle-type mechanics to allow players to "relax or work on other things while playing the game".<br />
<br />
== Gallery ==<br />
<br />
<gallery><br />
File:Paldera-logo.png|Paldera Logo/Banner<br />
File:Paldera-screenshot.png|Paldera Screenshot<br />
File:Paldera-mobile-screenshot.png|Paldera Mobile Screenshot<br />
</gallery><br />
<br />
== External Links ==<br />
<br />
* [https://trello.com/b/UGQJmjV2/paldera-rpg Public Trello Board]<br />
<br />
[[Category:Upcoming Games]]</div>FoohonPiehttps://wiki.pbbg.com/index.php?title=Paldera&diff=388Paldera2019-10-11T19:41:11Z<p>FoohonPie: /* External Links */ Owner deleted the discord server due to disagreement over its usage</p>
<hr />
<div>{{Infobox game<br />
| name = Paldera<br />
| image = [[File:Paldera-logo.png|250px|alt={{{name}}}]]<br />
| caption = Banner from Kickstarter Campaign<br />
<br />
| developer = [[Dustin Slagle]]<br />
| release = [[:Category:Upcoming_Games|TBD]]<br />
| website = https://paldera.com<br />
}}<br />
<br />
Paldera is an upcoming [[Persistent Browser Based Game|PBBG]] being developed by [[Dustin Slagle]]. It bills itself as the first pwbg (progressive web-based game) or pwbRPG (progressive web-based role-playing game), being "the first game of its kind to take full advantage of the Progressive Web App experience, which allows it to be played seamlessly across all browsers and devices of any size, and behaves like a native application without the need to download or install anything."<br />
<br />
It will offer both the ability to interact in real-time as well as idle-type mechanics to allow players to "relax or work on other things while playing the game".<br />
<br />
== Gallery ==<br />
<br />
<gallery><br />
File:Paldera-logo.png|Paldera Logo/Banner<br />
File:Paldera-screenshot.png|Paldera Screenshot<br />
File:Paldera-mobile-screenshot.png|Paldera Mobile Screenshot<br />
</gallery><br />
<br />
== External Links ==<br />
<br />
* [https://trello.com/b/UGQJmjV2/paldera-rpg Public Trello Board]<br />
<br />
[[Category:Upcoming Games]]</div>FoohonPiehttps://wiki.pbbg.com/index.php?title=Imperial_Conflict&diff=386Imperial Conflict2019-10-10T01:59:53Z<p>FoohonPie: </p>
<hr />
<div>{{Infobox game<br />
| name = Imperial Conflict<br />
| subheader = Rule The Galaxy!<br />
<br />
| developer = [[Foohon Pie LLC]]<br />
| release = 2000<br />
| genres = military, space, strategy<br />
| website = https://imperialconflict.com/<br />
}}<br />
<br />
{{Ratings<br />
| rev1 = ''[[pbbg.com]]''<br />
| rev1Score = {{Rating|5|5}}<ref>[https://pbbg.com/games/imperial-conflict (5/5) Imperial Conflict | pbbg.com - Persistent Browser Based Games]</ref><br />
}}<br />
<br />
Imperial Conflict, commonly referred to as IC, is a free online browser-based massively multiplayer online strategy game set in space. Players interact in cooperation and against other players in a quest to "Rule The Galaxy".<br />
<br />
IC was created by [[Stefan]] and [[Mastermike]] and owned and operated by [[Collective Minds Interactive]] until 2016, at which point it was sold to [[I_like_pie]], who currently owns and operates it through [[Foohon Pie LLC]]. IC is 1 of 3 games created by Collective Minds Interactive, the other two being [[Dragon Lords]] and [[Final Conquest]].<br />
<br />
==External Links==<br />
* https://imperialconflict.com<br />
<br />
==References==<br />
{{reflist|30em}}<br />
<br />
[[Category:Active Games]]</div>FoohonPiehttps://wiki.pbbg.com/index.php?title=Persistent_Browser_Based_Game&diff=385Persistent Browser Based Game2019-10-10T01:22:37Z<p>FoohonPie: FoohonPie moved page Persistent Browser Based Game to Persistent Browser-Based Game</p>
<hr />
<div>#REDIRECT [[Persistent Browser-Based Game]]</div>FoohonPiehttps://wiki.pbbg.com/index.php?title=Persistent_Browser-Based_Game&diff=384Persistent Browser-Based Game2019-10-10T01:22:37Z<p>FoohonPie: FoohonPie moved page Persistent Browser Based Game to Persistent Browser-Based Game</p>
<hr />
<div>A persistent browser-based game (PBBG) is a game that can be played in a web browser, that offers its players a persistent game universe to play in.<br />
<br />
PBBGs usually, but not always, rely on some kind of server-side code.<br />
<br />
==External Links==<br />
<br />
* [https://pbbg.com pbbg.com]<br />
* [https://reddit.com/r/pbbg /r/PBBG]</div>FoohonPiehttps://wiki.pbbg.com/index.php?title=Main_Page&diff=383Main Page2019-10-10T01:22:22Z<p>FoohonPie: </p>
<hr />
<div><div style="padding:1em; border:1px solid #ddd; background-color:#f9f9f9; color:#000; text-align:center;"><br />
<div style="font-size:200%;">Welcome to [[The PBBG Wiki]],</div><br />
<div>the encyclopedia for [[Persistent Browser-Based Game|Persistent Browser-Based Games]] that [[The PBBG Wiki:Contributing|anyone can edit]].</div><br />
<div style="font-size:80%;">[[Special:Statistics|{{NUMBEROFARTICLES}}]] articles</div><br />
</div><br />
<br />
Welcome to The PBBG Wiki, the online encyclopedia for any and all possible information about Persistent Browser Based Games.<br />
<br />
This is public and open wiki, which means anybody can help contribute to the articles within this site. For more information to get started, please see our [[The PBBG Wiki:Contributing|contribution guide]].<br />
<br />
==Newest Pages==<br />
<br />
{{Special:Newestpages/-/5}}</div>FoohonPiehttps://wiki.pbbg.com/index.php?title=Main_Page&diff=382Main Page2019-10-10T01:22:02Z<p>FoohonPie: </p>
<hr />
<div><div style="padding:1em; border:1px solid #ddd; background-color:#f9f9f9; color:#000; text-align:center;"><br />
<div style="font-size:200%;">Welcome to [[The PBBG Wiki]],</div><br />
<div>the encyclopedia for [[Persistent Browser-Based Game|Persistent Browser Based Games]] that [[The PBBG Wiki:Contributing|anyone can edit]].</div><br />
<div style="font-size:80%;">[[Special:Statistics|{{NUMBEROFARTICLES}}]] articles</div><br />
</div><br />
<br />
Welcome to The PBBG Wiki, the online encyclopedia for any and all possible information about Persistent Browser Based Games.<br />
<br />
This is public and open wiki, which means anybody can help contribute to the articles within this site. For more information to get started, please see our [[The PBBG Wiki:Contributing|contribution guide]].<br />
<br />
==Newest Pages==<br />
<br />
{{Special:Newestpages/-/5}}</div>FoohonPiehttps://wiki.pbbg.com/index.php?title=Arms_of_War&diff=381Arms of War2019-10-10T01:13:52Z<p>FoohonPie: </p>
<hr />
<div>{{Infobox game<br />
| name = Arms of War<br />
| subheader = The Strategic PvP Idle Game<br />
| image = [[File:Arms-of-War-homepage-2019-10-09.png|250px|alt={{{name}}}]]<br />
<br />
| developer = Arms of War<br />
| release = ?<br />
| genres = idle, military, strategy<br />
| website = https://arms-of-war.com/<br />
}}<br />
<br />
<br />
{{Quote frame |quote=Kings across the land are waging war against eachother, and Mercenary Generals are flocking to the area to fight for glory, coin and reputation!<br />
<br />
You, as a Mercenary General, are instructed to collect resources, conscript the local peasants, and destroy the enemy castle before they destroy you! To gain an edge, your King can make improvements to his castle or hire some local mages to provide magical assistance using crytals. You can also use the gold collected from the battlefield to improve your own equipment. Remember, each battle is has different circumstances: from plagues to unusually bountiful harvests to washed out roads.<br />
<br />
Created by a husband and wife team, AoW is a competitive idle game where players become the intimidatingly muscular arms in the engine of warfare through idle gameplay and clever team tactics. |author=arms-of-war.com}}<br />
<br />
<br />
==External Links==<br />
* [https://arms-of-war.com Website]<br />
* [https://discord.gg/S5EcWdV Discord Server]<br />
<br />
[[Category:Active Games]]</div>FoohonPiehttps://wiki.pbbg.com/index.php?title=CrimeBloc&diff=380CrimeBloc2019-10-10T01:13:35Z<p>FoohonPie: </p>
<hr />
<div>{{Infobox game<br />
| name = CrimeBloc<br />
| subheader = A world of crime, power and loyalty<br />
| image = [[File:CrimeBloc-homepage-2019-10-09.png|250px|alt={{{name}}}]]<br />
<br />
| developer = CrimeBloc<br />
| release = ?<br />
| genres = crime<br />
| website = https://crimebloc.io/<br />
}}<br />
<br />
{{Quote frame |quote=Set in present day Eastern Europe, CrimeBloc is a game of crime cartels, protection rackets, casinos and crew wars. Rise through the ranks, build an empire and demand loyalty and respect with deadly means if necessary. |author=CrimeBloc.io}}<br />
<br />
<br />
==External Links==<br />
* [https://crimebloc.io/ Website]<br />
<br />
[[Category:Active Games]]</div>FoohonPiehttps://wiki.pbbg.com/index.php?title=Arms_of_War&diff=379Arms of War2019-10-10T01:12:10Z<p>FoohonPie: Created page with "{{Infobox game | name = Arms of War | subheader = The Strategic PvP Idle Game | image = alt={{{name}}} | developer =..."</p>
<hr />
<div>{{Infobox game<br />
| name = Arms of War<br />
| subheader = The Strategic PvP Idle Game<br />
| image = [[File:Arms-of-War-homepage-2019-10-09.png|250px|alt={{{name}}}]]<br />
<br />
| developer = Arms of War<br />
| release = ?<br />
| genres = idle, military, strategy<br />
| website = https://arms-of-war.com/<br />
}}<br />
<br />
<br />
{{Quote frame |quote=Kings across the land are waging war against eachother, and Mercenary Generals are flocking to the area to fight for glory, coin and reputation!<br />
<br />
You, as a Mercenary General, are instructed to collect resources, conscript the local peasants, and destroy the enemy castle before they destroy you! To gain an edge, your King can make improvements to his castle or hire some local mages to provide magical assistance using crytals. You can also use the gold collected from the battlefield to improve your own equipment. Remember, each battle is has different circumstances: from plagues to unusually bountiful harvests to washed out roads.<br />
<br />
Created by a husband and wife team, AoW is a competitive idle game where players become the intimidatingly muscular arms in the engine of warfare through idle gameplay and clever team tactics. |author=Arms of War homepage description}}<br />
<br />
<br />
==External Links==<br />
* [https://arms-of-war.com Website]<br />
* [https://discord.gg/S5EcWdV Discord Server]<br />
<br />
[[Category:Active Games]]</div>FoohonPiehttps://wiki.pbbg.com/index.php?title=Module:Template_invocation&diff=378Module:Template invocation2019-10-10T01:08:29Z<p>FoohonPie: 1 revision imported</p>
<hr />
<div>-- This module provides functions for making MediaWiki template invocations.<br />
<br />
local checkType = require('libraryUtil').checkType<br />
<br />
local p = {}<br />
<br />
------------------------------------------------------------------------<br />
-- Name: p.name<br />
-- Purpose: Find a template invocation name from a page name or a<br />
-- mw.title object.<br />
-- Description: This function detects whether a string or a mw.title<br />
-- object has been passed in, and uses that to find a<br />
-- template name as it is used in template invocations.<br />
-- Parameters: title - full page name or mw.title object for the<br />
-- template (string or mw.title object)<br />
-- Returns: String<br />
------------------------------------------------------------------------<br />
<br />
function p.name(title)<br />
if type(title) == 'string' then<br />
title = mw.title.new(title)<br />
if not title then<br />
error("invalid title in parameter #1 of function 'name'", 2)<br />
end<br />
elseif type(title) ~= 'table' or type(title.getContent) ~= 'function' then<br />
error("parameter #1 of function 'name' must be a string or a mw.title object", 2)<br />
end<br />
if title.namespace == 10 then<br />
return title.text<br />
elseif title.namespace == 0 then<br />
return ':' .. title.prefixedText<br />
else<br />
return title.prefixedText<br />
end<br />
end<br />
<br />
------------------------------------------------------------------------<br />
-- Name: p.invocation<br />
-- Purpose: Construct a MediaWiki template invocation.<br />
-- Description: This function makes a template invocation from the<br />
-- name and the arguments given. Note that it isn't<br />
-- perfect: we have no way of knowing what whitespace was<br />
-- in the original invocation, the named parameters will be<br />
-- alphabetically sorted, and any parameters with duplicate keys<br />
-- will be removed.<br />
-- Parameters: name - the template name, formatted as it will appear<br />
-- in the invocation. (string)<br />
-- args - a table of template arguments. (table)<br />
-- format - formatting options. (string, optional)<br />
-- Set to "nowiki" to escape, curly braces, pipes and<br />
-- equals signs with their HTML entities. The default<br />
-- is unescaped.<br />
-- Returns: String<br />
------------------------------------------------------------------------<br />
<br />
function p.invocation(name, args, format)<br />
checkType('invocation', 1, name, 'string')<br />
checkType('invocation', 2, args, 'table')<br />
checkType('invocation', 3, format, 'string', true)<br />
<br />
-- Validate the args table and make a copy to work from. We need to<br />
-- make a copy of the table rather than just using the original, as<br />
-- some of the values may be erased when building the invocation.<br />
local invArgs = {}<br />
for k, v in pairs(args) do<br />
local typek = type(k)<br />
local typev = type(v)<br />
if typek ~= 'string' and typek ~= 'number'<br />
or typev ~= 'string' and typev ~= 'number'<br />
then<br />
error("invalid arguments table in parameter #2 of " ..<br />
"'invocation' (keys and values must be strings or numbers)", 2)<br />
end<br />
invArgs[k] = v<br />
end<br />
<br />
-- Get the separators to use.<br />
local seps = {<br />
openb = '{{',<br />
closeb = '}}',<br />
pipe = '|',<br />
equals = '='<br />
}<br />
if format == 'nowiki' then<br />
for k, v in pairs(seps) do<br />
seps[k] = mw.text.nowiki(v)<br />
end<br />
end<br />
<br />
-- Build the invocation body with numbered args first, then named.<br />
local ret = {}<br />
ret[#ret + 1] = seps.openb<br />
ret[#ret + 1] = name<br />
for k, v in ipairs(invArgs) do<br />
if type(v) == 'string' and v:find('=', 1, true) then<br />
-- Likely something like 1=foo=bar, we need to do it as a named arg<br />
break<br />
end<br />
ret[#ret + 1] = seps.pipe<br />
ret[#ret + 1] = v<br />
invArgs[k] = nil -- Erase the key so that we don't add the value twice<br />
end<br />
local invArgs_list = {} -- sort a parameter list; preferable to randomly sorted output<br />
for k, v in pairs(invArgs) do<br />
invArgs_list[#invArgs_list + 1] = k<br />
end<br />
table.sort(invArgs_list)<br />
for i, v in ipairs(invArgs_list) do -- Add named args based on sorted parameter list<br />
ret[#ret + 1] = seps.pipe<br />
ret[#ret + 1] = v<br />
ret[#ret + 1] = seps.equals<br />
ret[#ret + 1] = invArgs[v]<br />
end<br />
ret[#ret + 1] = seps.closeb<br />
<br />
return table.concat(ret)<br />
end<br />
<br />
return p</div>FoohonPiehttps://wiki.pbbg.com/index.php?title=Module:Navbox&diff=376Module:Navbox2019-10-10T01:08:29Z<p>FoohonPie: 1 revision imported</p>
<hr />
<div>--<br />
-- This module implements {{Navbox}}<br />
--<br />
<br />
local p = {}<br />
<br />
local navbar = require('Module:Navbar')._navbar<br />
local getArgs -- lazily initialized<br />
<br />
local args<br />
local border<br />
local listnums<br />
local ODD_EVEN_MARKER = '\127_ODDEVEN_\127'<br />
local RESTART_MARKER = '\127_ODDEVEN0_\127'<br />
local REGEX_MARKER = '\127_ODDEVEN(%d?)_\127'<br />
<br />
local function striped(wikitext)<br />
-- Return wikitext with markers replaced for odd/even striping.<br />
-- Child (subgroup) navboxes are flagged with a category that is removed<br />
-- by parent navboxes. The result is that the category shows all pages<br />
-- where a child navbox is not contained in a parent navbox.<br />
local orphanCat = '[[Category:Navbox orphans]]'<br />
if border == 'subgroup' and args.orphan ~= 'yes' then<br />
-- No change; striping occurs in outermost navbox.<br />
return wikitext .. orphanCat<br />
end<br />
local first, second = 'odd', 'even'<br />
if args.evenodd then<br />
if args.evenodd == 'swap' then<br />
first, second = second, first<br />
else<br />
first = args.evenodd<br />
second = first<br />
end<br />
end<br />
local changer<br />
if first == second then<br />
changer = first<br />
else<br />
local index = 0<br />
changer = function (code)<br />
if code == '0' then<br />
-- Current occurrence is for a group before a nested table.<br />
-- Set it to first as a valid although pointless class.<br />
-- The next occurrence will be the first row after a title<br />
-- in a subgroup and will also be first.<br />
index = 0<br />
return first<br />
end<br />
index = index + 1<br />
return index % 2 == 1 and first or second<br />
end<br />
end<br />
local regex = orphanCat:gsub('([%[%]])', '%%%1')<br />
return (wikitext:gsub(regex, ''):gsub(REGEX_MARKER, changer)) -- () omits gsub count<br />
end<br />
<br />
local function processItem(item, nowrapitems)<br />
if item:sub(1, 2) == '{|' then<br />
-- Applying nowrap to lines in a table does not make sense.<br />
-- Add newlines to compensate for trim of x in |parm=x in a template.<br />
return '\n' .. item ..'\n'<br />
end<br />
if nowrapitems == 'yes' then<br />
local lines = {}<br />
for line in (item .. '\n'):gmatch('([^\n]*)\n') do<br />
local prefix, content = line:match('^([*:;#]+)%s*(.*)')<br />
if prefix and not content:match('^<span class="nowrap">') then<br />
line = prefix .. '<span class="nowrap">' .. content .. '</span>'<br />
end<br />
table.insert(lines, line)<br />
end<br />
item = table.concat(lines, '\n')<br />
end<br />
if item:match('^[*:;#]') then<br />
return '\n' .. item ..'\n'<br />
end<br />
return item<br />
end<br />
<br />
local function renderNavBar(titleCell)<br />
<br />
if args.navbar ~= 'off' and args.navbar ~= 'plain' and not (not args.name and mw.getCurrentFrame():getParent():getTitle():gsub('/sandbox$', '') == 'Template:Navbox') then<br />
titleCell:wikitext(navbar{<br />
args.name,<br />
mini = 1,<br />
fontstyle = (args.basestyle or '') .. ';' .. (args.titlestyle or '') .. ';background:none transparent;border:none;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none; padding:0;'<br />
})<br />
end<br />
<br />
end<br />
<br />
--<br />
-- Title row<br />
--<br />
local function renderTitleRow(tbl)<br />
if not args.title then return end<br />
<br />
local titleRow = tbl:tag('tr')<br />
<br />
if args.titlegroup then<br />
titleRow<br />
:tag('th')<br />
:attr('scope', 'row')<br />
:addClass('navbox-group')<br />
:addClass(args.titlegroupclass)<br />
:cssText(args.basestyle)<br />
:cssText(args.groupstyle)<br />
:cssText(args.titlegroupstyle)<br />
:wikitext(args.titlegroup)<br />
end<br />
<br />
local titleCell = titleRow:tag('th'):attr('scope', 'col')<br />
<br />
if args.titlegroup then<br />
titleCell<br />
:css('border-left', '2px solid #fdfdfd')<br />
:css('width', '100%')<br />
end<br />
<br />
local titleColspan = 2<br />
if args.imageleft then titleColspan = titleColspan + 1 end<br />
if args.image then titleColspan = titleColspan + 1 end<br />
if args.titlegroup then titleColspan = titleColspan - 1 end<br />
<br />
titleCell<br />
:cssText(args.basestyle)<br />
:cssText(args.titlestyle)<br />
:addClass('navbox-title')<br />
:attr('colspan', titleColspan)<br />
<br />
renderNavBar(titleCell)<br />
<br />
titleCell<br />
:tag('div')<br />
-- id for aria-labelledby attribute<br />
:attr('id', mw.uri.anchorEncode(args.title))<br />
:addClass(args.titleclass)<br />
:css('font-size', '114%')<br />
:css('margin', '0 4em')<br />
:wikitext(processItem(args.title))<br />
end<br />
<br />
--<br />
-- Above/Below rows<br />
--<br />
<br />
local function getAboveBelowColspan()<br />
local ret = 2<br />
if args.imageleft then ret = ret + 1 end<br />
if args.image then ret = ret + 1 end<br />
return ret<br />
end<br />
<br />
local function renderAboveRow(tbl)<br />
if not args.above then return end<br />
<br />
tbl:tag('tr')<br />
:tag('td')<br />
:addClass('navbox-abovebelow')<br />
:addClass(args.aboveclass)<br />
:cssText(args.basestyle)<br />
:cssText(args.abovestyle)<br />
:attr('colspan', getAboveBelowColspan())<br />
:tag('div')<br />
-- id for aria-labelledby attribute, if no title<br />
:attr('id', args.title and nil or mw.uri.anchorEncode(args.above))<br />
:wikitext(processItem(args.above, args.nowrapitems))<br />
end<br />
<br />
local function renderBelowRow(tbl)<br />
if not args.below then return end<br />
<br />
tbl:tag('tr')<br />
:tag('td')<br />
:addClass('navbox-abovebelow')<br />
:addClass(args.belowclass)<br />
:cssText(args.basestyle)<br />
:cssText(args.belowstyle)<br />
:attr('colspan', getAboveBelowColspan())<br />
:tag('div')<br />
:wikitext(processItem(args.below, args.nowrapitems))<br />
end<br />
<br />
--<br />
-- List rows<br />
--<br />
local function renderListRow(tbl, index, listnum)<br />
local row = tbl:tag('tr')<br />
<br />
if index == 1 and args.imageleft then<br />
row<br />
:tag('td')<br />
:addClass('navbox-image')<br />
:addClass(args.imageclass)<br />
:css('width', '1px') -- Minimize width<br />
:css('padding', '0px 2px 0px 0px')<br />
:cssText(args.imageleftstyle)<br />
:attr('rowspan', #listnums)<br />
:tag('div')<br />
:wikitext(processItem(args.imageleft))<br />
end<br />
<br />
if args['group' .. listnum] then<br />
local groupCell = row:tag('th')<br />
<br />
-- id for aria-labelledby attribute, if lone group with no title or above<br />
if listnum == 1 and not (args.title or args.above or args.group2) then<br />
groupCell<br />
:attr('id', mw.uri.anchorEncode(args.group1))<br />
end<br />
<br />
groupCell<br />
:attr('scope', 'row')<br />
:addClass('navbox-group')<br />
:addClass(args.groupclass)<br />
:cssText(args.basestyle)<br />
:css('width', args.groupwidth or '1%') -- If groupwidth not specified, minimize width<br />
<br />
groupCell<br />
:cssText(args.groupstyle)<br />
:cssText(args['group' .. listnum .. 'style'])<br />
:wikitext(args['group' .. listnum])<br />
end<br />
<br />
local listCell = row:tag('td')<br />
<br />
if args['group' .. listnum] then<br />
listCell<br />
:css('text-align', 'left')<br />
:css('border-left-width', '2px')<br />
:css('border-left-style', 'solid')<br />
else<br />
listCell:attr('colspan', 2)<br />
end<br />
<br />
if not args.groupwidth then<br />
listCell:css('width', '100%')<br />
end<br />
<br />
local rowstyle -- usually nil so cssText(rowstyle) usually adds nothing<br />
if index % 2 == 1 then<br />
rowstyle = args.oddstyle<br />
else<br />
rowstyle = args.evenstyle<br />
end<br />
<br />
local listText = args['list' .. listnum]<br />
local oddEven = ODD_EVEN_MARKER<br />
if listText:sub(1, 12) == '</div><table' then<br />
-- Assume list text is for a subgroup navbox so no automatic striping for this row.<br />
oddEven = listText:find('<th[^>]*"navbox%-title"') and RESTART_MARKER or 'odd'<br />
end<br />
listCell<br />
:css('padding', '0px')<br />
:cssText(args.liststyle)<br />
:cssText(rowstyle)<br />
:cssText(args['list' .. listnum .. 'style'])<br />
:addClass('navbox-list')<br />
:addClass('navbox-' .. oddEven)<br />
:addClass(args.listclass)<br />
:addClass(args['list' .. listnum .. 'class'])<br />
:tag('div')<br />
:css('padding', (index == 1 and args.list1padding) or args.listpadding or '0em 0.25em')<br />
:wikitext(processItem(listText, args.nowrapitems))<br />
<br />
if index == 1 and args.image then<br />
row<br />
:tag('td')<br />
:addClass('navbox-image')<br />
:addClass(args.imageclass)<br />
:css('width', '1px') -- Minimize width<br />
:css('padding', '0px 0px 0px 2px')<br />
:cssText(args.imagestyle)<br />
:attr('rowspan', #listnums)<br />
:tag('div')<br />
:wikitext(processItem(args.image))<br />
end<br />
end<br />
<br />
<br />
--<br />
-- Tracking categories<br />
--<br />
<br />
local function needsHorizontalLists()<br />
if border == 'subgroup' or args.tracking == 'no' then<br />
return false<br />
end<br />
local listClasses = {<br />
['plainlist'] = true, ['hlist'] = true, ['hlist hnum'] = true,<br />
['hlist hwrap'] = true, ['hlist vcard'] = true, ['vcard hlist'] = true,<br />
['hlist vevent'] = true,<br />
}<br />
return not (listClasses[args.listclass] or listClasses[args.bodyclass])<br />
end<br />
<br />
local function hasBackgroundColors()<br />
for _, key in ipairs({'titlestyle', 'groupstyle', 'basestyle', 'abovestyle', 'belowstyle'}) do<br />
if tostring(args[key]):find('background', 1, true) then<br />
return true<br />
end<br />
end<br />
end<br />
<br />
local function hasBorders()<br />
for _, key in ipairs({'groupstyle', 'basestyle', 'abovestyle', 'belowstyle'}) do<br />
if tostring(args[key]):find('border', 1, true) then<br />
return true<br />
end<br />
end<br />
end<br />
<br />
local function isIllegible()<br />
local styleratio = require('Module:Color contrast')._styleratio<br />
<br />
for key, style in pairs(args) do<br />
if tostring(key):match("style$") then<br />
if styleratio{mw.text.unstripNoWiki(style)} < 4.5 then<br />
return true<br />
end<br />
end<br />
end<br />
return false<br />
end<br />
<br />
local function getTrackingCategories()<br />
local cats = {}<br />
if needsHorizontalLists() then table.insert(cats, 'Navigational boxes without horizontal lists') end<br />
if hasBackgroundColors() then table.insert(cats, 'Navboxes using background colours') end<br />
if isIllegible() then table.insert(cats, 'Potentially illegible navboxes') end<br />
if hasBorders() then table.insert(cats, 'Navboxes using borders') end<br />
return cats<br />
end<br />
<br />
local function renderTrackingCategories(builder)<br />
local title = mw.title.getCurrentTitle()<br />
if title.namespace ~= 10 then return end -- not in template space<br />
local subpage = title.subpageText<br />
if subpage == 'doc' or subpage == 'sandbox' or subpage == 'testcases' then return end<br />
<br />
for _, cat in ipairs(getTrackingCategories()) do<br />
builder:wikitext('[[Category:' .. cat .. ']]')<br />
end<br />
end<br />
<br />
--<br />
-- Main navbox tables<br />
--<br />
local function renderMainTable()<br />
local tbl = mw.html.create('table')<br />
:addClass('nowraplinks')<br />
:addClass(args.bodyclass)<br />
<br />
if args.title and (args.state ~= 'plain' and args.state ~= 'off') then<br />
if args.state == 'collapsed' then args.state = 'mw-collapsed' end<br />
tbl<br />
:addClass('mw-collapsible')<br />
:addClass(args.state or 'autocollapse')<br />
end<br />
<br />
tbl:css('border-spacing', 0)<br />
if border == 'subgroup' or border == 'none' then<br />
tbl<br />
:addClass('navbox-subgroup')<br />
:cssText(args.bodystyle)<br />
:cssText(args.style)<br />
else -- regular navbox - bodystyle and style will be applied to the wrapper table<br />
tbl<br />
:addClass('navbox-inner')<br />
:css('background', 'transparent')<br />
:css('color', 'inherit')<br />
end<br />
tbl:cssText(args.innerstyle)<br />
<br />
renderTitleRow(tbl)<br />
renderAboveRow(tbl)<br />
for i, listnum in ipairs(listnums) do<br />
renderListRow(tbl, i, listnum)<br />
end<br />
renderBelowRow(tbl)<br />
<br />
return tbl<br />
end<br />
<br />
function p._navbox(navboxArgs)<br />
args = navboxArgs<br />
listnums = {}<br />
<br />
for k, _ in pairs(args) do<br />
if type(k) == 'string' then<br />
local listnum = k:match('^list(%d+)$')<br />
if listnum then table.insert(listnums, tonumber(listnum)) end<br />
end<br />
end<br />
table.sort(listnums)<br />
<br />
border = mw.text.trim(args.border or args[1] or '')<br />
if border == 'child' then<br />
border = 'subgroup'<br />
end<br />
<br />
-- render the main body of the navbox<br />
local tbl = renderMainTable()<br />
<br />
-- render the appropriate wrapper around the navbox, depending on the border param<br />
local res = mw.html.create()<br />
if border == 'none' then<br />
local nav = res:tag('div')<br />
:attr('role', 'navigation')<br />
:node(tbl)<br />
-- aria-labelledby title, otherwise above, otherwise lone group<br />
if args.title or args.above or (args.group1 and not args.group2) then<br />
nav:attr('aria-labelledby', mw.uri.anchorEncode(args.title or args.above or args.group1))<br />
else<br />
nav:attr('aria-label', 'Navbox')<br />
end<br />
elseif border == 'subgroup' then<br />
-- We assume that this navbox is being rendered in a list cell of a parent navbox, and is<br />
-- therefore inside a div with padding:0em 0.25em. We start with a </div> to avoid the<br />
-- padding being applied, and at the end add a <div> to balance out the parent's </div><br />
res<br />
:wikitext('</div>')<br />
:node(tbl)<br />
:wikitext('<div>')<br />
else<br />
local nav = res:tag('div')<br />
:attr('role', 'navigation')<br />
:addClass('navbox')<br />
:addClass(args.navboxclass)<br />
:cssText(args.bodystyle)<br />
:cssText(args.style)<br />
:css('padding', '3px')<br />
:node(tbl)<br />
-- aria-labelledby title, otherwise above, otherwise lone group<br />
if args.title or args.above or (args.group1 and not args.group2) then<br />
nav:attr('aria-labelledby', mw.uri.anchorEncode(args.title or args.above or args.group1))<br />
else<br />
nav:attr('aria-label', 'Navbox')<br />
end<br />
end<br />
<br />
if (args.nocat or 'false'):lower() == 'false' then<br />
renderTrackingCategories(res)<br />
end<br />
return striped(tostring(res))<br />
end<br />
<br />
function p.navbox(frame)<br />
if not getArgs then<br />
getArgs = require('Module:Arguments').getArgs<br />
end<br />
args = getArgs(frame, {wrappers = {'Template:Navbox', 'Template:Navbox subgroup'}})<br />
if frame.args.border then<br />
-- This allows Template:Navbox_subgroup to use {{#invoke:Navbox|navbox|border=...}}.<br />
args.border = frame.args.border<br />
end<br />
<br />
-- Read the arguments in the order they'll be output in, to make references number in the right order.<br />
local _<br />
_ = args.title<br />
_ = args.above<br />
for i = 1, 20 do<br />
_ = args["group" .. tostring(i)]<br />
_ = args["list" .. tostring(i)]<br />
end<br />
_ = args.below<br />
<br />
return p._navbox(args)<br />
end<br />
<br />
return p</div>FoohonPiehttps://wiki.pbbg.com/index.php?title=Module:Item&diff=374Module:Item2019-10-10T01:08:28Z<p>FoohonPie: 1 revision imported</p>
<hr />
<div>local p = {}<br />
<br />
local function escape(str)<br />
return str:gsub("[|\\]", function (c) return string.format("\\%03d", c:byte()) end)<br />
end<br />
<br />
local function unescape(str)<br />
return str:gsub("\\(%d%d%d)", function (d) return string.char(d) end)<br />
end<br />
<br />
-- Implements [[Template:Item]]<br />
function p.pack(frame)<br />
local parent = frame:getParent()<br />
local result = ''<br />
for key, value in pairs(parent.args) do<br />
result = result .. "|" .. escape(tostring(key)) .. "|" .. escape(value)<br />
end<br />
return result .. "|";<br />
end<br />
<br />
local function unpack(str)<br />
local result = { }<br />
for key, value in str:gfind("|([^|]*)|([^|]*)") do<br />
result[unescape(key)] = unescape(value)<br />
end<br />
return result<br />
end<br />
<br />
-- Implements [[Template:Component]]<br />
function p.component(frame)<br />
return unpack(frame.args[1])[frame.args[2]]<br />
end<br />
<br />
local function getItems(frame)<br />
return frame:getParent().args<br />
end<br />
<br />
local function invert(tbl)<br />
local result = { }<br />
for key, value in pairs(tbl) do<br />
result[value] = key<br />
end<br />
return result<br />
end<br />
<br />
-- Add args into item as appropriate (see [[Template:Format item]])<br />
local function addArgs(<br />
item, -- unpacked item to modify<br />
args, -- arguments for adding into item<br />
ignore, -- pass in invert{keys to ignore}<br />
shift -- for numbered arguments, args[key+shift] is assigned to item[key]<br />
-- returns: item<br />
)<br />
for key, value in pairs(args) do<br />
if not ignore[key] then<br />
local _, _, paramKey = string.find(key, "^param (.*)")<br />
local _, _, importantKey = string.find(key, "^important (.*)")<br />
paramKey = paramKey or importantKey or key<br />
if shift and type(paramKey) == "number" then<br />
paramKey = paramKey - shift<br />
if paramKey < 1 then paramKey = nil end<br />
end<br />
if paramKey and (importantKey or item[paramKey] == nil) then<br />
item[paramKey] = value<br />
end<br />
end<br />
end<br />
<br />
return item<br />
end<br />
<br />
-- Implements [[Template:Format item]]<br />
function p.format(frame)<br />
local args = frame:getParent().args<br />
local ignore = invert{ "template", "item" }<br />
local templateArgs = addArgs(unpack(args.item), args, ignore)<br />
<br />
return frame:expandTemplate{ title = args.template, args = templateArgs }<br />
end<br />
<br />
-- See [[Template:Item#Format each item using a template]]<br />
function p.each(frame)<br />
local args = frame.args<br />
local items = getItems(frame)<br />
local separator = args[1] or ""<br />
local prepend = args[2] or ""<br />
local append = args[3] or ""<br />
local ignore = invert{ "template" }<br />
local shift = 3<br />
<br />
local result = ""<br />
for i, item in ipairs(items) do<br />
local templateArgs = addArgs(unpack(item), args, ignore, shift)<br />
result = result .. prepend .. frame:expandTemplate{ title = args.template, args = templateArgs } .. append<br />
if items[i + 1] then<br />
result = result .. separator<br />
end<br />
end<br />
return result<br />
end<br />
<br />
-- See [[Template:Item#Gather given parameter from all items]]<br />
function p.gather(frame)<br />
local args = frame.args<br />
local items = getItems(frame)<br />
local parameter = args.parameter or "1"<br />
<br />
local templateArgs = { }<br />
for i, item in ipairs(items) do<br />
templateArgs[i] = unpack(item)[parameter]<br />
end<br />
<br />
return frame:expandTemplate{ title = args.template, args = templateArgs }<br />
end<br />
<br />
return p</div>FoohonPiehttps://wiki.pbbg.com/index.php?title=Module:In5&diff=372Module:In52019-10-10T01:08:28Z<p>FoohonPie: 1 revision imported</p>
<hr />
<div>-- This module implements {{in5}}.<br />
<br />
local p = {}<br />
<br />
function p.in5(frame)<br />
local indent = frame.args[1]<br />
-- Trim whitespace and convert to number. Default to 5 if not present,<br />
-- as per the template title.<br />
indent = tonumber( mw.text.trim(indent) ) or 5<br />
-- Round down to nearest integer. Decimal values produce funky results<br />
-- from the original template, but there's no need for us to replicate that.<br />
indent = math.floor( indent )<br />
-- Don't output anything for zero or less. Again, there was some funky output<br />
-- here for negatives, but now we're in Lua we should use sane defaults.<br />
if indent <= 0 then<br />
return<br />
end<br />
<br />
local base = '&nbsp; '<br />
local modulo = '&nbsp;'<br />
<br />
--[[<br />
Indent values and the corresponding values for base and modulo:<br />
<br />
indent base modulo<br />
1 0 1<br />
2 0 2<br />
3 1 1<br />
4 1 2<br />
5 2 1<br />
6 2 2<br />
7 3 1<br />
8 3 2<br />
9 4 1<br />
10 4 2<br />
]]<br />
<br />
local baseNum = math.floor( (indent - 1) / 2 )<br />
local modNum = math.fmod( indent - 1 , 2 ) + 1<br />
<br />
return mw.ustring.rep( base, baseNum) .. mw.ustring.rep( modulo, modNum )<br />
end<br />
<br />
return p</div>FoohonPiehttps://wiki.pbbg.com/index.php?title=Module:For_loop&diff=370Module:For loop2019-10-10T01:08:28Z<p>FoohonPie: 1 revision imported</p>
<hr />
<div>-- This module implements {{for loop}}.<br />
<br />
local getArgs = require('Module:Arguments').getArgs<br />
local yesno = require('Module:Yesno')<br />
local makeTemplate = require('Module:Template invocation').invocation<br />
p = {}<br />
<br />
function p.main(frame)<br />
local args = getArgs(frame, {<br />
trim = false,<br />
removeBlanks = false<br />
})<br />
return p._main(args)<br />
end<br />
<br />
function p._main(args)<br />
local template = args['call'] or 'void'<br />
local calltemplates = yesno(args.substall or "", true) or not mw.isSubsting()<br />
local variableParam = args.pv<br />
variableParam = tonumber(variableParam) or variableParam or 1 -- fix for positional parameters<br />
local variableValPrefix = args.prefix or ''<br />
local variableValPostfix = args.postfix or ''<br />
local sep = args[1] or ''<br />
local constantArgs = p.getConstants(args)<br />
local variableVals = p.getVariableVals(args)<br />
<br />
local result = ''<br />
local addSeparator = false;<br />
for i, v in ipairs(variableVals) do<br />
v = mw.text.trim(v) -- trim whitespace<br />
if #v > 0 or not yesno(args.skipBlanks) then<br />
if addSeparator then<br />
result = result .. sep<br />
end<br />
addSeparator = true;<br />
local targs = constantArgs<br />
targs[variableParam] = variableValPrefix .. v .. variableValPostfix<br />
if calltemplates then<br />
local output = p.callTemplate(template, targs)<br />
if #mw.text.trim(output) == 0 then<br />
addSeparator = false<br />
end<br />
result = result .. output<br />
else<br />
result = result .. makeTemplate(template, targs)<br />
end<br />
end<br />
end<br />
return result<br />
end<br />
<br />
function p.getConstants(args)<br />
local constantArgNums = p.getArgNums(args, 'pc', 'n')<br />
local constantArgs = {}<br />
for _, num in ipairs(constantArgNums) do<br />
local keyArg = 'pc' .. tostring(num) .. 'n'<br />
local valArg = 'pc' .. tostring(num) .. 'v'<br />
local key = args[keyArg]<br />
key = tonumber(key) or key<br />
local value = args[valArg]<br />
constantArgs[key] = value<br />
end<br />
return constantArgs<br />
end<br />
<br />
function p.getVariableVals(args)<br />
local variableVals = {}<br />
if args.start or args.stop or args.by then<br />
if args[2] then<br />
error("Both start/stop/by and numbered parameters specified")<br />
end<br />
start = tonumber(args.start or 1)<br />
stop = tonumber(args.stop or 1)<br />
by = tonumber(args.by or 1)<br />
for i = start, stop, by do <br />
variableVals [#variableVals + 1] = i<br />
end<br />
else<br />
for i, v in ipairs(args) do<br />
if i ~= 1 then<br />
variableVals[i - 1] = v<br />
end<br />
end<br />
end<br />
return variableVals<br />
end<br />
<br />
function p.getArgNums(args, prefix, suffix)<br />
-- Returns a table containing the numbers of the arguments that exist<br />
-- for the specified prefix and suffix.<br />
local nums = {}<br />
local pattern = '^' .. prefix .. '([1-9]%d*)' .. suffix .. '$'<br />
for k, v in pairs(args) do<br />
local num = tostring(k):match(pattern)<br />
if num then<br />
nums[#nums + 1] = tonumber(num)<br />
end<br />
end<br />
table.sort(nums)<br />
return nums<br />
end<br />
<br />
function p.callTemplate(template, targs)<br />
return mw.getCurrentFrame():expandTemplate{title = template, args = targs}<br />
end<br />
<br />
return p</div>FoohonPiehttps://wiki.pbbg.com/index.php?title=Module:Color_contrast/colors&diff=368Module:Color contrast/colors2019-10-10T01:08:28Z<p>FoohonPie: 1 revision imported</p>
<hr />
<div>return {<br />
aliceblue = 0.92880068253475,<br />
antiquewhite = 0.84646951707754,<br />
aqua = 0.7874,<br />
aquamarine = 0.8078549208338,<br />
azure = 0.97265264954166,<br />
beige = 0.8988459998705,<br />
bisque = 0.80732327372979,<br />
black = 0,<br />
blanchedalmond = 0.85084439608156,<br />
blue = 0.0722,<br />
blueviolet = 0.12622014321946,<br />
brown = 0.098224287876511,<br />
burlywood = 0.51559844533893,<br />
cadetblue = 0.29424681085422,<br />
chartreuse = 0.76032025902623,<br />
chocolate = 0.23898526114557,<br />
coral = 0.37017930872924,<br />
cornflowerblue = 0.30318641994179,<br />
cornsilk = 0.93562110372965,<br />
crimson = 0.16042199953026,<br />
cyan = 0.7874,<br />
darkblue = 0.018640801980939,<br />
darkcyan = 0.20329317839046,<br />
darkgoldenrod = 0.27264703559993,<br />
darkgray = 0.39675523072563,<br />
darkgreen = 0.091143429047575,<br />
darkgrey = 0.39675523072563,<br />
darkkhaki = 0.45747326349994,<br />
darkmagenta = 0.07353047651207,<br />
darkolivegreen = 0.12651920884889,<br />
darkorange = 0.40016167026524,<br />
darkorchid = 0.13413142174857,<br />
darkred = 0.054889674531132,<br />
darksalmon = 0.40541471563381,<br />
darkseagreen = 0.43789249325969,<br />
darkslateblue = 0.065792846227988,<br />
darkslategray = 0.067608151928044,<br />
darkslategrey = 0.067608151928044,<br />
darkturquoise = 0.4874606277449,<br />
darkviolet = 0.10999048339343,<br />
deeppink = 0.23866895828276,<br />
deepskyblue = 0.44481603395575,<br />
dimgray = 0.14126329114027,<br />
dimgrey = 0.14126329114027,<br />
dodgerblue = 0.27442536991456,<br />
firebrick = 0.10724525535015,<br />
floralwhite = 0.95922484825004,<br />
forestgreen = 0.18920812076002,<br />
fuchsia = 0.2848,<br />
gainsboro = 0.71569350050648,<br />
ghostwhite = 0.94311261886323,<br />
gold = 0.69860877428159,<br />
goldenrod = 0.41919977809569,<br />
gray = 0.2158605001139,<br />
green = 0.15438342968146,<br />
greenyellow = 0.80609472611453,<br />
grey = 0.2158605001139,<br />
honeydew = 0.96336535554782,<br />
hotpink = 0.34658438169715,<br />
indianred = 0.21406134963884,<br />
indigo = 0.03107561486337,<br />
ivory = 0.99071270600615,<br />
khaki = 0.77012343394121,<br />
lavender = 0.80318750514521,<br />
lavenderblush = 0.90172748631046,<br />
lawngreen = 0.73905893124963,<br />
lemonchiffon = 0.94038992245622,<br />
lightblue = 0.63709141280807,<br />
lightcoral = 0.35522120733135,<br />
lightcyan = 0.94587293494829,<br />
lightgoldenrodyellow = 0.93348351018297,<br />
lightgray = 0.65140563741982,<br />
lightgreen = 0.69091979956865,<br />
lightgrey = 0.65140563741982,<br />
lightpink = 0.58566152734898,<br />
lightsalmon = 0.4780675225206,<br />
lightseagreen = 0.35050145117042,<br />
lightskyblue = 0.56195637618331,<br />
lightslategray = 0.23830165007287,<br />
lightslategrey = 0.23830165007287,<br />
lightsteelblue = 0.53983888284666,<br />
lightyellow = 0.98161818392882,<br />
lime = 0.7152,<br />
limegreen = 0.44571042246098,<br />
linen = 0.88357340984379,<br />
magenta = 0.2848,<br />
maroon = 0.045891942324215,<br />
mediumaquamarine = 0.49389703310801,<br />
mediumblue = 0.044077780212328,<br />
mediumorchid = 0.21639251153773,<br />
mediumpurple = 0.22905858091648,<br />
mediumseagreen = 0.34393112338131,<br />
mediumslateblue = 0.20284629471622,<br />
mediumspringgreen = 0.70704308194184,<br />
mediumturquoise = 0.5133827926448,<br />
mediumvioletred = 0.14371899849357,<br />
midnightblue = 0.02071786635086,<br />
mintcream = 0.97834604947588,<br />
mistyrose = 0.82183047859185,<br />
moccasin = 0.80083000991567,<br />
navajowhite = 0.76519682342785,<br />
navy = 0.015585128108224,<br />
oldlace = 0.91900633405549,<br />
olive = 0.20027537200568,<br />
olivedrab = 0.22593150951929,<br />
orange = 0.4817026703631,<br />
orangered = 0.25516243753416,<br />
orchid = 0.31348806761439,<br />
palegoldenrod = 0.78792647887614,<br />
palegreen = 0.77936759006353,<br />
paleturquoise = 0.76436077921714,<br />
palevioletred = 0.28754994117889,<br />
papayawhip = 0.87797100199835,<br />
peachpuff = 0.74905589878251,<br />
peru = 0.30113074877936,<br />
pink = 0.63271070702466,<br />
plum = 0.45734221587969,<br />
powderblue = 0.68254586500605,<br />
purple = 0.061477070432439,<br />
rebeccapurple = 0.07492341159447,<br />
red = 0.2126,<br />
rosybrown = 0.32319457649407,<br />
royalblue = 0.16663210743188,<br />
saddlebrown = 0.097922285020521,<br />
salmon = 0.36977241527596,<br />
sandybrown = 0.46628543696283,<br />
seagreen = 0.19734199706275,<br />
seashell = 0.92737862206922,<br />
sienna = 0.13697631337098,<br />
silver = 0.52711512570581,<br />
skyblue = 0.55291668518184,<br />
slateblue = 0.14784278062136,<br />
slategray = 0.20896704076536,<br />
slategrey = 0.20896704076536,<br />
snow = 0.96533341834849,<br />
springgreen = 0.73052306068529,<br />
steelblue = 0.20562642207625,<br />
tan = 0.48237604163921,<br />
teal = 0.16996855778968,<br />
thistle = 0.56818401093733,<br />
tomato = 0.30638612719415,<br />
turquoise = 0.5895536427578,<br />
violet = 0.40315452986676,<br />
wheat = 0.74909702820482,<br />
white = 1,<br />
whitesmoke = 0.91309865179342,<br />
yellow = 0.9278,<br />
yellowgreen = 0.50762957208707,<br />
}</div>FoohonPiehttps://wiki.pbbg.com/index.php?title=Module:Color_contrast&diff=366Module:Color contrast2019-10-10T01:08:28Z<p>FoohonPie: 1 revision imported</p>
<hr />
<div>--<br />
-- This module implements<br />
-- {{Color contrast ratio}}<br />
-- {{Greater color contrast ratio}}<br />
-- {{ColorToLum}}<br />
-- {{RGBColorToLum}}<br />
--<br />
local p = {}<br />
local HTMLcolor = mw.loadData( 'Module:Color contrast/colors' )<br />
<br />
local function sRGB (v)<br />
if (v <= 0.03928) then<br />
v = v / 12.92<br />
else<br />
v = math.pow((v+0.055)/1.055, 2.4)<br />
end<br />
return v<br />
end<br />
<br />
local function rgbdec2lum(R, G, B)<br />
if ( 0 <= R and R < 256 and 0 <= G and G < 256 and 0 <= B and B < 256 ) then<br />
return 0.2126 * sRGB(R/255) + 0.7152 * sRGB(G/255) + 0.0722 * sRGB(B/255)<br />
else<br />
return ''<br />
end<br />
end<br />
<br />
local function hsl2lum(h, s, l)<br />
if ( 0 <= h and h < 360 and 0 <= s and s <= 1 and 0 <= l and l <= 1 ) then<br />
local c = (1 - math.abs(2*l - 1))*s<br />
local x = c*(1 - math.abs( math.fmod(h/60, 2) - 1) )<br />
local m = l - c/2<br />
<br />
local r, g, b = m, m, m<br />
if( 0 <= h and h < 60 ) then<br />
r = r + c<br />
g = g + x<br />
elseif( 60 <= h and h < 120 ) then<br />
r = r + x<br />
g = g + c<br />
elseif( 120 <= h and h < 180 ) then<br />
g = g + c<br />
b = b + x<br />
elseif( 180 <= h and h < 240 ) then<br />
g = g + x<br />
b = b + c<br />
elseif( 240 <= h and h < 300 ) then<br />
r = r + x<br />
b = b + c<br />
elseif( 300 <= h and h < 360 ) then<br />
r = r + c<br />
b = b + x<br />
end<br />
return rgbdec2lum(255*r, 255*g, 255*b)<br />
else<br />
return ''<br />
end<br />
end<br />
<br />
local function color2lum(c)<br />
<br />
if (c == nil) then<br />
return ''<br />
end<br />
<br />
-- html '#' entity<br />
c = c:gsub("&#35;", "#")<br />
<br />
-- whitespace<br />
c = c:match( '^%s*(.-)[%s;]*$' )<br />
<br />
-- unstrip nowiki strip markers<br />
c = mw.text.unstripNoWiki(c)<br />
<br />
-- lowercase<br />
c = c:lower()<br />
<br />
-- first try to look it up<br />
local L = HTMLcolor[c]<br />
if (L ~= nil) then<br />
return L<br />
end<br />
<br />
-- convert from hsl<br />
if mw.ustring.match(c,'^hsl%([%s]*[0-9][0-9%.]*[%s]*,[%s]*[0-9][0-9%.]*%%[%s]*,[%s]*[0-9][0-9%.]*%%[%s]*%)$') then<br />
local h, s, l = mw.ustring.match(c,'^hsl%([%s]*([0-9][0-9%.]*)[%s]*,[%s]*([0-9][0-9%.]*)%%[%s]*,[%s]*([0-9][0-9%.]*)%%[%s]*%)$')<br />
return hsl2lum(tonumber(h), tonumber(s)/100, tonumber(l)/100)<br />
end<br />
<br />
-- convert from rgb<br />
if mw.ustring.match(c,'^rgb%([%s]*[0-9][0-9]*[%s]*,[%s]*[0-9][0-9]*[%s]*,[%s]*[0-9][0-9]*[%s]*%)$') then<br />
local R, G, B = mw.ustring.match(c,'^rgb%([%s]*([0-9][0-9]*)[%s]*,[%s]*([0-9][0-9]*)[%s]*,[%s]*([0-9][0-9]*)[%s]*%)$')<br />
return rgbdec2lum(tonumber(R), tonumber(G), tonumber(B))<br />
end<br />
<br />
-- convert from rgb percent<br />
if mw.ustring.match(c,'^rgb%([%s]*[0-9][0-9%.]*%%[%s]*,[%s]*[0-9][0-9%.]*%%[%s]*,[%s]*[0-9][0-9%.]*%%[%s]*%)$') then<br />
local R, G, B = mw.ustring.match(c,'^rgb%([%s]*([0-9][0-9%.]*)%%[%s]*,[%s]*([0-9][0-9%.]*)%%[%s]*,[%s]*([0-9][0-9%.]*)%%[%s]*%)$')<br />
return rgbdec2lum(255*tonumber(R)/100, 255*tonumber(G)/100, 255*tonumber(B)/100)<br />
end<br />
<br />
-- remove leading # (if there is one) and whitespace<br />
c = mw.ustring.match(c, '^[%s#]*([a-f0-9]*)[%s]*$')<br />
<br />
-- split into rgb<br />
local cs = mw.text.split(c or '', '')<br />
if( #cs == 6 ) then<br />
local R = 16*tonumber('0x' .. cs[1]) + tonumber('0x' .. cs[2])<br />
local G = 16*tonumber('0x' .. cs[3]) + tonumber('0x' .. cs[4])<br />
local B = 16*tonumber('0x' .. cs[5]) + tonumber('0x' .. cs[6])<br />
<br />
return rgbdec2lum(R, G, B)<br />
elseif ( #cs == 3 ) then<br />
local R = 16*tonumber('0x' .. cs[1]) + tonumber('0x' .. cs[1])<br />
local G = 16*tonumber('0x' .. cs[2]) + tonumber('0x' .. cs[2])<br />
local B = 16*tonumber('0x' .. cs[3]) + tonumber('0x' .. cs[3])<br />
<br />
return rgbdec2lum(R, G, B)<br />
end<br />
<br />
-- failure, return blank<br />
return ''<br />
end<br />
<br />
-- This exports the function for use in other modules.<br />
-- The colour is passed as a string.<br />
function p._lum(color)<br />
return color2lum(color)<br />
end<br />
<br />
function p._greatercontrast(args)<br />
local bias = tonumber(args['bias'] or '0') or 0<br />
local css = (args['css'] and args['css'] ~= '') and true or false<br />
local v1 = color2lum(args[1] or '')<br />
local c2 = args[2] or '#FFFFFF'<br />
local v2 = color2lum(c2)<br />
local c3 = args[3] or '#000000'<br />
local v3 = color2lum(c3)<br />
local ratio1 = -1;<br />
local ratio2 = -1;<br />
if (type(v1) == 'number' and type(v2) == 'number') then<br />
ratio1 = (v2 + 0.05)/(v1 + 0.05)<br />
ratio1 = (ratio1 < 1) and 1/ratio1 or ratio1<br />
end<br />
if (type(v1) == 'number' and type(v3) == 'number') then<br />
ratio2 = (v3 + 0.05)/(v1 + 0.05)<br />
ratio2 = (ratio2 < 1) and 1/ratio2 or ratio2<br />
end<br />
<br />
if css then<br />
local c1 = args[1] or ''<br />
if mw.ustring.match(c1, '^[A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9]$') or<br />
mw.ustring.match(c1, '^[A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9]$') then<br />
c1 = '#' .. c1<br />
end<br />
if mw.ustring.match(c2, '^[A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9]$') or<br />
mw.ustring.match(c2, '^[A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9]$') then<br />
c2 = '#' .. c2<br />
end<br />
if mw.ustring.match(v3, '^[A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9]$') or<br />
mw.ustring.match(v3, '^[A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9]$') then<br />
c3 = '#' .. c3<br />
end<br />
return 'background-color:' .. c1 .. '; color:' .. ((ratio1 > 0) and (ratio2 > 0) and ((ratio1 + bias > ratio2) and c2 or c3) or '') .. ';'<br />
end<br />
<br />
return (ratio1 > 0) and (ratio2 > 0) and ((ratio1 + bias > ratio2) and c2 or c3) or ''<br />
end<br />
<br />
function p._ratio(args)<br />
local v1 = color2lum(args[1])<br />
local v2 = color2lum(args[2])<br />
if (type(v1) == 'number' and type(v2) == 'number') then<br />
-- v1 should be the brighter of the two.<br />
if v2 > v1 then<br />
v1, v2 = v2, v1<br />
end<br />
return (v1 + 0.05)/(v2 + 0.05)<br />
else<br />
return args['error'] or '?'<br />
end<br />
end<br />
<br />
function p._styleratio(args)<br />
local style = (args[1] or ''):lower()<br />
local bg, fg = 'white', 'black'<br />
local lum_bg, lum_fg = 1, 0<br />
<br />
if args[2] then<br />
local lum = color2lum(args[2])<br />
if lum ~= '' then bg, lum_bg = args[2], lum end<br />
end<br />
if args[3] then<br />
local lum = color2lum(args[3])<br />
if lum ~= '' then fg, lum_fg = args[3], lum end<br />
end<br />
<br />
local slist = mw.text.split(mw.ustring.gsub(mw.ustring.gsub(style or '', '&#[Xx]23;', '#'), '&#35;', '#'), ';')<br />
for k = 1,#slist do<br />
local s = slist[k]<br />
local k,v = s:match( '^[%s]*([^:]-):([^:]-)[%s;]*$' )<br />
k = k or ''<br />
v = v or ''<br />
if (k:match('^[%s]*(background)[%s]*$') or k:match('^[%s]*(background%-color)[%s]*$')) then<br />
local lum = color2lum(v)<br />
if( lum ~= '' ) then bg, lum_bg = v, lum end<br />
elseif (k:match('^[%s]*(color)[%s]*$')) then<br />
local lum = color2lum(v)<br />
if( lum ~= '' ) then bg, lum_fg = v, lum end<br />
end<br />
end<br />
if lum_bg > lum_fg then<br />
return (lum_bg + 0.05)/(lum_fg + 0.05)<br />
else<br />
return (lum_fg + 0.05)/(lum_bg + 0.05)<br />
end<br />
end<br />
<br />
--[[<br />
Use {{#invoke:Color contrast|somecolor}} directly or<br />
{{#invoke:Color contrast}} from a wrapper template.<br />
<br />
Parameters:<br />
-- |1= — required; A color to check.<br />
--]]<br />
function p.lum(frame)<br />
local color = frame.args[1] or frame:getParent().args[1]<br />
return p._lum(color)<br />
end<br />
<br />
function p.ratio(frame)<br />
local args = frame.args[1] and frame.args or frame:getParent().args<br />
return p._ratio(args)<br />
end<br />
<br />
function p.styleratio(frame)<br />
local args = frame.args[1] and frame.args or frame:getParent().args<br />
return p._styleratio(args)<br />
end<br />
<br />
function p.greatercontrast(frame)<br />
local args = frame.args[1] and frame.args or frame:getParent().args<br />
return p._greatercontrast(args)<br />
end<br />
<br />
return p</div>FoohonPiehttps://wiki.pbbg.com/index.php?title=Module:Aligned_table&diff=364Module:Aligned table2019-10-10T01:08:27Z<p>FoohonPie: 1 revision imported</p>
<hr />
<div>-- This module implements {{aligned table}}<br />
local p = {}<br />
<br />
local function isnotempty(s)<br />
return s and s:match( '^%s*(.-)%s*$' ) ~= ''<br />
end<br />
<br />
function p.table(frame)<br />
local args = (frame.args[3] ~= nil) and frame.args or frame:getParent().args<br />
local entries = {}<br />
local colclass = {}<br />
local colstyle = {}<br />
local cols = tonumber(args['cols']) or 2<br />
<br />
-- create the root table<br />
local root = mw.html.create('table')<br />
<br />
-- add table style for fullwidth<br />
if isnotempty(args['fullwidth']) then<br />
root<br />
:css('width', '100%')<br />
:css('border-collapse', 'collapse')<br />
:css('border-spacing', '0px 0px')<br />
:css('border', 'none')<br />
end<br />
<br />
-- add table classes<br />
if isnotempty(args['class']) then<br />
root:addClass(args['class'])<br />
end<br />
<br />
-- add table style<br />
if isnotempty(args['style']) then<br />
root:cssText(args['style'])<br />
end<br />
<br />
-- build arrays with the column styles and classes<br />
if isnotempty(args['leftright']) then<br />
colstyle[1] = 'text-align:left;'<br />
colstyle[2] = 'text-align:right;'<br />
end<br />
if isnotempty(args['rightleft']) then<br />
colstyle[1] = 'text-align:right;'<br />
colstyle[2] = 'text-align:left;'<br />
end<br />
for i = 1,cols do<br />
colclass[ i ] = colclass[ i ] or ''<br />
colstyle[ i ] = colstyle[ i ] or ''<br />
if isnotempty(args['colstyle']) then<br />
colstyle[ i ] = args['colstyle'] .. ';' .. colstyle[ i ]<br />
end<br />
if isnotempty(args['colalign' .. tostring(i)]) then<br />
colstyle[ i ] = 'text-align:' .. args['colalign' .. tostring(i)] .. ';' .. colstyle[ i ]<br />
elseif isnotempty(args['col' .. tostring(i) .. 'align']) then<br />
colstyle[ i ] = 'text-align:' .. args['col' .. tostring(i) .. 'align'] .. ';' .. colstyle[ i ]<br />
elseif isnotempty(args['align' .. tostring(i)]) then<br />
colstyle[ i ] = 'text-align:' .. args['align' .. tostring(i)] .. ';' .. colstyle[ i ]<br />
end<br />
if isnotempty(args['colnowrap' .. tostring(i)]) then<br />
colstyle[ i ] = 'white-space:nowrap;' .. colstyle[ i ]<br />
elseif isnotempty(args['col' .. tostring(i) .. 'nowrap']) then<br />
colstyle[ i ] = 'white-space:nowrap;' .. colstyle[ i ]<br />
elseif isnotempty(args['nowrap' .. tostring(i)]) then<br />
colstyle[ i ] = 'white-space:nowrap;' .. colstyle[ i ]<br />
end<br />
if isnotempty(args['colwidth' .. tostring(i)]) then<br />
colstyle[ i ] = 'width:' .. args['colwidth' .. tostring(i)] .. ';' .. colstyle[ i ]<br />
elseif isnotempty(args['col' .. tostring(i) .. 'width']) then<br />
colstyle[ i ] = 'width:' .. args['col' .. tostring(i) .. 'width'] .. ';' .. colstyle[ i ]<br />
elseif isnotempty(args['colwidth']) then<br />
colstyle[ i ] = 'width:' .. args['colwidth'] .. ';' .. colstyle[ i ]<br />
end<br />
if isnotempty(args['colstyle' .. tostring(i)]) then<br />
colstyle[ i ] = colstyle[ i ] .. args['colstyle' .. tostring(i)]<br />
elseif isnotempty(args['col' .. tostring(i) .. 'style']) then<br />
colstyle[ i ] = colstyle[ i ] .. args['col' .. tostring(i) .. 'style']<br />
elseif isnotempty(args['style' .. tostring(i)]) then<br />
colstyle[ i ] = colstyle[ i ] .. args['style' .. tostring(i)]<br />
end<br />
if isnotempty(args['colclass' .. tostring(i)]) then<br />
colclass[ i ] = args['colclass' .. tostring(i)]<br />
elseif isnotempty(args['col' .. tostring(i) .. 'class']) then<br />
colclass[ i ] = args['col' .. tostring(i) .. 'class']<br />
elseif isnotempty(args['class' .. tostring(i)]) then<br />
colclass[ i ] = args['class' .. tostring(i)]<br />
end<br />
end<br />
-- compute the maximum cell index<br />
local cellcount = 0<br />
for k, v in pairs( args ) do<br />
if type( k ) == 'number' then<br />
cellcount = math.max(cellcount, k)<br />
end<br />
end<br />
-- compute the number of rows<br />
local rows = math.ceil(cellcount / cols)<br />
<br />
-- build the table content<br />
if isnotempty(args['title']) then<br />
local caption = root:tag('caption')<br />
caption:cssText(args['titlestyle'])<br />
caption:wikitext(args['title'])<br />
end<br />
if isnotempty(args['above']) then<br />
local row = root:tag('tr')<br />
local cell = row:tag('th')<br />
cell:attr('colspan', cols)<br />
cell:cssText(args['abovestyle'])<br />
cell:wikitext(args['above'])<br />
end<br />
for j=1,rows do<br />
-- start a new row<br />
local row = root:tag('tr')<br />
if isnotempty(args['rowstyle']) then<br />
row:cssText(args['rowstyle'])<br />
else<br />
row:css('vertical-align', 'top')<br />
end<br />
-- loop over the cells in the row<br />
for i=1,cols do<br />
local cell<br />
if isnotempty(args['row' .. tostring(j) .. 'header']) then<br />
cell = row:tag('th'):attr('scope','col')<br />
elseif isnotempty(args['col' .. tostring(i) .. 'header']) then<br />
cell = row:tag('th'):attr('scope','row')<br />
else<br />
cell = row:tag('td')<br />
end<br />
if args['class' .. tostring(j) .. '.' .. tostring(i)] then<br />
cell:addClass(args['class' .. tostring(j) .. '.' .. tostring(i)])<br />
else<br />
if args['rowclass' .. tostring(j)] then<br />
cell:addClass(args['rowclass' .. tostring(j)])<br />
elseif args['row' .. tostring(j) .. 'class'] then<br />
cell:addClass(args['row' .. tostring(j) .. 'class'])<br />
elseif args['rowevenclass'] and math.fmod(j,2) == 0 then<br />
cell:addClass(args['rowevenclass'])<br />
elseif args['rowoddclass'] and math.fmod(j,2) == 1 then <br />
cell:addClass(args['rowoddclass'])<br />
end<br />
if colclass[i] ~= '' then<br />
cell:addClass(colclass[i])<br />
end<br />
end<br />
if args['style' .. tostring(j) .. '.' .. tostring(i)] then<br />
cell:cssText(args['style' .. tostring(j) .. '.' .. tostring(i)])<br />
else<br />
if args['rowstyle' .. tostring(j)] then<br />
cell:cssText(args['rowstyle' .. tostring(j)])<br />
elseif args['rowevenstyle'] and math.fmod(j,2) == 0 then<br />
cell:cssText(args['rowevenstyle'])<br />
elseif args['rowoddstyle'] and math.fmod(j,2) == 1 then <br />
cell:cssText(args['rowoddstyle'])<br />
elseif args['row' .. tostring(j) .. 'style'] then<br />
cell:cssText(args['row' .. tostring(j) .. 'style'])<br />
end<br />
if isnotempty(colstyle[i]) then<br />
cell:cssText(colstyle[i])<br />
end<br />
end<br />
cell:wikitext(mw.ustring.gsub(args[cols*(j - 1) + i] or '', '^(.-)%s*$', '%1') or '')<br />
end<br />
end<br />
-- return the root table<br />
return tostring(root)<br />
end<br />
<br />
return p</div>FoohonPiehttps://wiki.pbbg.com/index.php?title=Template:%5C&diff=362Template:\2019-10-10T01:08:27Z<p>FoohonPie: 1 revision imported</p>
<hr />
<div>&nbsp;/&#32;<noinclude><br />
<br />
{{Documentation}}<br />
<!-- Add categories and interwikis to the /doc subpage, not here! --><br />
</noinclude></div>FoohonPiehttps://wiki.pbbg.com/index.php?title=Template:Xtag&diff=360Template:Xtag2019-10-10T01:08:27Z<p>FoohonPie: 1 revision imported</p>
<hr />
<div><code class="nowrap">{{#switch:{{{2|pair}}}<br />
|c|close = <!--nothing--><br />
|s|single<br />
|o|open<br />
|p|pair = &lt;{{#switch:{{{1|}}}<br />
|categorytree=[[mw:Extension:CategoryTree|categorytree]]<br />
|charinsert=[[mw:Extension:CharInsert|charinsert]]<br />
|ce=[[Help:Displaying a formula#Chemistry|ce]]<br />
|chem=[[Help:Displaying a formula#Chemistry|chem]]<br />
|gallery=[[Help:Gallery tag|gallery]]<br />
|graph=[[Help:Graph|graph]]<br />
|hiero=[[mw:Extension:WikiHiero|hiero]]<br />
|includeonly=[[Help:Template#Noinclude, includeonly, and onlyinclude|includeonly]]<br />
|indicator=[[mw:Help:Page status indicators|indicator]]<br />
|imagemap=[[mw:Extension:ImageMap|imagemap]]<br />
|inputbox=[[mw:Extension:InputBox|inputbox]]<br />
|mapframe=[[mw:Extension:Kartographer|mapframe]]<br />
|maplink=[[mw:Extension:Kartographer#<maplink>|maplink]]<br />
|math=[[mw:Extension:Math|math]]<br />
|math chem=[[Help:Displaying a formula#Chemistry|math chem]]<br />
|noinclude=[[Help:Template#Noinclude, includeonly, and onlyinclude|noinclude]]<br />
|nowiki=[[Help:Nowiki|nowiki]]<br />
|onlyinclude=[[Help:Template#Noinclude, includeonly, and onlyinclude|onlyinclude]]<br />
|poem=[[mw:Extension:Poem|poem]]<br />
|pre=[[WP:PRE|pre]]<br />
|ref=[[mw:Extension:Cite/Cite.php|ref]]<br />
|references=[[mw:Extension:Cite/Cite.php|references]]<br />
|score=[[Help:Score|score]]<br />
|section=[[mw:Extension:Labeled Section Transclusion|section]]<br />
|source=[[mw:Extension:SyntaxHighlight|source]]<br />
|syntaxhighlight=[[mw:Extension:SyntaxHighlight|syntaxhighlight]]<br />
|templatedata=[[Wikipedia:TemplateData/Tutorial|templatedata]]<br />
|templatestyles=[[mw:Extension:TemplateStyles|templatestyles]]<br />
|timeline=[[mw:Extension:EasyTimeline|timeline]]<br />
|#default=tag<br />
}}{{#if:{{{params|}}}|&#32;{{{params}}}}}<br />
}}{{#switch:{{{2|open}}}<br />
|c|close = {{{content|}}}<br />
|s|single = &#32;/&gt;<br />
|o|open = &gt;{{{content|}}}<br />
|p|pair = &gt;{{{content|...}}}<br />
}}{{#switch:{{{2|open}}}<br />
|s|single<br />
|o|open = <!--nothing--><br />
|c|close<br />
|p|pair = &lt;/{{{1|tag}}}&gt;<br />
}}</code><noinclude><br />
{{documentation}}<br />
</noinclude></div>FoohonPiehttps://wiki.pbbg.com/index.php?title=Template:Warning&diff=358Template:Warning2019-10-10T01:08:27Z<p>FoohonPie: 1 revision imported</p>
<hr />
<div>{{Mbox<br />
| name = Warning<br />
| demospace = {{{demospace|}}}<br />
| style = {{#if:{{{style|}}} |{{#if:{{{small|}}}||width:80%;}} {{{style}}} }}<br />
| subst = <includeonly>{{subst:substcheck}}</includeonly><br />
| type = content<br />
| image = {{#if:{{{image|}}}| [[File:{{{image}}}|40px|Warning]] }}<br />
| small = {{{small|}}}<br />
| smallimage = {{#if:{{{image|}}}| [[File:{{{image}}}|30px|Warning]]}}<br />
| imageright = {{#if:{{{imageright|}}} |{{{imageright}}} |{{#if:{{{shortcut|{{{shortcut1|}}}}}} |{{Ombox/shortcut|{{{shortcut|{{{shortcut1|}}}}}}|{{{shortcut2|}}}|{{{shortcut3|}}}|{{{shortcut4|}}}|{{{shortcut5|}}}}}}} }}<br />
| textstyle = {{{textstyle|text-align: {{#if:{{{center|}}}|center|{{{align|left}}}}};}}}<br />
| text = {{#if:{{{header|{{{heading|{{{title|}}}}}}}}} |<div style="{{{headstyle|text-align: {{#if:{{{center|}}}|center|left}};}}}">'''{{{header|{{{heading|{{{title|}}}}}}}}}'''</div>}}<!--<br />
-->{{{text|{{{content|{{{reason|{{{1}}}}}}}}}}}}<br />
}}<noinclude><br />
<!-- Add categories to the /doc subpage; interwikis go to Wikidata. --><br />
{{Documentation}}<br />
</noinclude></div>FoohonPiehttps://wiki.pbbg.com/index.php?title=Template:Var&diff=356Template:Var2019-10-10T01:08:27Z<p>FoohonPie: 1 revision imported</p>
<hr />
<div><var {{#if:{{{class|}}}|class="{{{class}}}"}} {{#if:{{{id|}}}|id="{{{id}}}"}} style="padding-right: 1px;{{{style|}}}" {{#if:{{{lang|}}}|lang="{{{lang}}}"}} {{#if:{{{title|}}}|title="{{{title}}}"}}>{{{1}}}</var><noinclude><br />
<!--Categories and interwikis go near the bottom of the /doc page.--><br />
{{Documentation}}<br />
</noinclude></div>FoohonPiehttps://wiki.pbbg.com/index.php?title=Template:Tlg&diff=354Template:Tlg2019-10-10T01:08:26Z<p>FoohonPie: 1 revision imported</p>
<hr />
<div><includeonly><!--<br />
-->{{#if:{{{nowrap|}}} |<span class="nowrap">}}<!--<br />
-->{{#if:{{{code|{{{tt|}}}}}} |<code> |{{#if:{{{plaincode|}}}|<code style="border:none;background:transparent;">}} }}<!--<br />
-->{{#if:{{{kbd|}}} |<kbd>}}<!--<br />
-->{{#if:{{{nowrapname|}}} |<span class="nowrap">}}<!--<br />
-->{{#if:{{{brace|}}}{{{braceinside|}}} | |<nowiki>{{</nowiki>}}<!--<br />
-->{{#if:{{{subst|}}} |[[Help:Substitution|subst]]:}}<!--<br />
<br />
-->{{#if:{{{bold|{{{boldlink|{{{boldname|}}}}}}}}} |'''}}<!--<br />
-->{{#if:{{{nolink|}}} |<!--then omit template link, else:<br />
-->| {{#if:{{{braceinside|}}} |<nowiki>{</nowiki>}}<!--<br />
-->{{!((}}:<!--(start building link with "[[:")<br />
-->{{#ifeq:{{padleft:|1|{{{1}}}}}|: <!--i.e. if {{{1}}}'s first character is a colon,<br />
then:--> |{{FULLPAGENAME:{{{1}}}}}<!--<br />
else:--> |{{#switch:{{NAMESPACE:{{#if:{{{1|}}}|{{{1}}}|{{FULLPAGENAME}}}}}}<br />
| {{ns:0}} = {{ns:10}}:{{#if:{{{1|}}}|{{PAGENAME:{{{1}}}}}|{{PAGENAME}}}}<br />
| #default = {{#if:{{{1|}}}|{{FULLPAGENAME:{{{1}}}}}|{{FULLPAGENAME}}}}<br />
}}}}<!--<br />
-->{{!}}<!--(pipe between link and label, i.e. [[:link|label]])<br />
-->}}<!--<br />
-->{{#if:{{{brace|}}} |<nowiki>{{</nowiki>}}<!--<br />
-->{{#if:{{{braceinside|}}} |<nowiki>{</nowiki>}}<!--<br />
label / template name:<br />
-->{{{alttext|{{#if:{{{1|}}}|{{{1}}}|{{#ifeq:{{NAMESPACE}}|{{ns:Template}}|{{PAGENAME}}|{{FULLPAGENAME}}}}}}}}}<!--<br />
-->{{#if:{{{brace|}}} |<nowiki>}}</nowiki>}}<!--<br />
-->{{#if:{{{braceinside|}}} |<nowiki>}</nowiki>}}<!--<br />
-->{{#if:{{{nolink|}}} | |<!--<br />
-->{{))!}}<!--(end link)<br />
-->{{#if:{{{braceinside|}}} |<nowiki>}</nowiki>}}<!-- <br />
-->}}<!--<br />
-->{{#if:{{{bold|{{{boldlink|{{{boldname|}}}}}}}}} |'''}}<!--<br />
-->{{#if:{{{nowrapname|}}} |</span>}}<!--<br />
<br />
-->{{#if:{{{italic|{{{italics|}}}}}} |<span style="font-style:italic;">}}<!--<br />
-->{{#ifeq:{{{2|¬}}}|¬ | |&#124;{{#tag:nowiki|{{{2}}}}}}}<!--<br />
-->{{#ifeq:{{{3|¬}}}|¬ | |&#124;{{#tag:nowiki|{{{3}}}}}}}<!--<br />
-->{{#ifeq:{{{4|¬}}}|¬ | |&#124;{{#tag:nowiki|{{{4}}}}}}}<!--<br />
-->{{#ifeq:{{{5|¬}}}|¬ | |&#124;{{#tag:nowiki|{{{5}}}}}}}<!--<br />
-->{{#ifeq:{{{6|¬}}}|¬ | |&#124;{{#tag:nowiki|{{{6}}}}}}}<!--<br />
-->{{#ifeq:{{{7|¬}}}|¬ | |&#124;{{#tag:nowiki|{{{7}}}}}}}<!--<br />
-->{{#ifeq:{{{8|¬}}}|¬ | |&#124;{{#tag:nowiki|{{{8}}}}}}}<!--<br />
-->{{#ifeq:{{{9|¬}}}|¬ | |&#124;{{#tag:nowiki|{{{9}}}}}}}<!--<br />
-->{{#ifeq:{{{10|¬}}}|¬ | |&#124;{{#tag:nowiki|{{{10}}}}}}}<!--<br />
-->{{#ifeq:{{{11|¬}}}|¬ | |&#124;{{#tag:nowiki|{{{11}}}}}}}<!--<br />
-->{{#if:{{{12|}}} |&#124;…}}<!--<br />
-->{{#if:{{{italic|{{{italics|}}}}}} |</span>}}<!--<br />
<br />
-->{{#if:{{{brace|}}}{{{braceinside|}}} | |<nowiki>}}</nowiki>}}<!--<br />
-->{{#if:{{{kbd|}}} |</kbd>}}<!--<br />
-->{{#if:{{{code|{{{tt|}}}}}}{{{plaincode|}}} |</code>}}<!--<br />
-->{{#if:{{{nowrap|}}} |</span>}}<!--<br />
--></includeonly><noinclude><br />
{{Documentation}}<br />
</noinclude></div>FoohonPiehttps://wiki.pbbg.com/index.php?title=Template:Tlb&diff=352Template:Tlb2019-10-10T01:08:26Z<p>FoohonPie: 1 revision imported</p>
<hr />
<div>{{Tlg|bold=yes|subst={{{subst|}}}|{{{1|}}}<!--<br />
-->|2{{#ifeq:{{{2}}}|{{{2|x}}}||x}}={{{2}}}<!--<br />
-->|3{{#ifeq:{{{3}}}|{{{3|x}}}||x}}={{{3}}}<!--<br />
-->|4{{#ifeq:{{{4}}}|{{{4|x}}}||x}}={{{4}}}<!--<br />
-->|5{{#ifeq:{{{5}}}|{{{5|x}}}||x}}={{{5}}}<!--<br />
-->|6{{#ifeq:{{{6}}}|{{{6|x}}}||x}}={{{6}}}<!--<br />
-->|7{{#ifeq:{{{7}}}|{{{7|x}}}||x}}={{{7}}}<!--<br />
-->|8{{#ifeq:{{{8}}}|{{{8|x}}}||x}}={{{8}}}<!--<br />
-->|9{{#ifeq:{{{9}}}|{{{9|x}}}||x}}={{{9}}}<!--<br />
-->|10{{#ifeq:{{{10}}}|{{{10|x}}}||x}}={{{10}}}<!--<br />
-->|11{{#ifeq:{{{11}}}|{{{11|x}}}||x}}={{{11}}}<!--<br />
-->|12{{#ifeq:{{{12}}}|{{{12|x}}}||x}}={{{12}}}}}<noinclude><br />
{{Documentation}}<br />
<!-- Add categories to the /doc subpage, not here! --><br />
</noinclude></div>FoohonPiehttps://wiki.pbbg.com/index.php?title=Template:Sup&diff=350Template:Sup2019-10-10T01:08:26Z<p>FoohonPie: 1 revision imported</p>
<hr />
<div><includeonly><sup>{{{1}}}</sup></includeonly><noinclude><br />
{{documentation}}<br />
<!-- Add cats and interwikis to the /doc subpage, not here! --><br />
</noinclude></div>FoohonPiehttps://wiki.pbbg.com/index.php?title=Template:Strong&diff=348Template:Strong2019-10-10T01:08:26Z<p>FoohonPie: 1 revision imported</p>
<hr />
<div><strong {{#if:{{{role|}}}|role="{{{role}}}"}} {{#if:{{{class|}}}|class="{{{class}}}"}} {{#if:{{{id|}}}|id="{{{id}}}"}} {{#if:{{{style|}}}|style="{{{style}}}"}} {{#if:{{{title|}}}|title="{{{title}}}"}}>{{{1}}}</strong><noinclude><br />
{{documentation}}<br />
<!-- Add cats and interwikis to the /doc subpage, not here! --><br />
</noinclude></div>FoohonPiehttps://wiki.pbbg.com/index.php?title=Template:Quote/doc/boilerplate&diff=346Template:Quote/doc/boilerplate2019-10-10T01:08:26Z<p>FoohonPie: 1 revision imported</p>
<hr />
<div><includeonly>{{#if:{{{mos-recommended|}}}||</includeonly>{{warning|This template should {{strong|not be used}} for block quotations in article text.}} <includeonly>}}</includeonly><br />
The [[Wikipedia:Manual of Style#Block quotations|Manual of Style guidelines for block quotations]] recommend formatting block quotations using the {{tlx|Quote}} template or the HTML &lt;[[blockquote]]&gt; element, for which that template provides a wrapper.<br />
<br />
* Quotes work best when used with short sentences, and at the start or end of a section, as a hint of or to help emphasize the section's content.<br />
* For typical quotes, especially those longer than the rest of the paragraph in which they are quoted, {{tlx|Cquote}} provides a borderless quote with decorative quotation marks, and {{tlx|Quote frame}} provided a bordered quote. Both span the page width.<br />
* For very short quotes, {{tlx|Rquote}} (with decorative quotation marks) or {{tlx|Quote box}} (framed) can be used to set the quote off to either the right or left as in a magazine [[Sidebar (publishing)|sidebar]]. This can be effective on [[WP:ESSAY|essay]] pages and [[WP:WIKIPROJECT|WikiProject]] homepages.<noinclude><br />
{{Documentation|content=This is shared documentation verbiage transcluded into the /doc pages of everything in [[:Category:Enhanced quote templates]].}}</noinclude></div>FoohonPiehttps://wiki.pbbg.com/index.php?title=Template:Quotation_templates&diff=344Template:Quotation templates2019-10-10T01:08:25Z<p>FoohonPie: 1 revision imported</p>
<hr />
<div>{{Navbox<br />
| name = Quotation templates<br />
| state = {{{state|{{{1|}}}}}}<br />
| title = {{c|Quotation templates}}<br />
| liststyle = font-size:110%;<br />
| tracking = no <!-- keep the documented templates out of the hlist tracking category --><br />
<br />
| list1 =<br />
{{Aligned table<br />
|class=sortable |style=margin:0 auto 0.4em;line-height:1.35em;text-align:left;<br />
|colstyle=<!--vertical-align:middle;-->padding-right:1.0em;<br />
|row1style=line-height:1.6em;font-weight:bold;border-bottom:1px solid #aaa;<br />
| Template&nbsp; | Use{{\}}description&nbsp;<br />
| ↓ ''Block quotations'' | ''General purpose''<br />
| {{tlb|Quote}} | Our standard block quotation template: unbordered page-wide quotation with optional smaller-sized attribution<br />
| {{tlb|Poem}} | {{tl|Quote}} variant for use with poems, song lyrics, and other things that would otherwise require the use of {{xtag|poem}} tags or frequent formatting elements (such as {{Nowrap|{{code|lang=html|code=<br />}}}}); requires substitution<br />
| {{tlb|Poemquote}} | {{tl|Quote}} variant for use with poems, song lyrics, and other things that would otherwise require the use of {{xtag|poem}} tags or frequent formatting elements (such as {{Nowrap|{{code|lang=html|code=<br />}}}}); does not require substitution<br />
| {{tlb|Verse translation}} | Displays ''original language verse'' (defaults to italics) and translated verse (roman) side-by-side<br />
| {{tlb|Gbq}} | {{tl|Quote}} variant for use inside [[Wikipedia:Manual of Style/Glossaries|glossaries]]<br />
| {{tlb|Cquote}} | Page-wide quote, between large quotation marks<br />
| {{tlb|Rquote}} | Quote between large quotation marks in a reduced [[Cascading Style Sheets#Float and clear|float]]ing area<br />
| {{tlb|Quote frame}} | Page-wide bordered quote<br />
| {{tlb|Quote box}} | Quote floated in a reduced bordered box<br />
| {{tlb|Tweet}} | For quoting directly from tweets. Automatically generates {{tlx|Cite tweet}} citation, or a custom reference can be provided.<br />
| &nbsp;|&nbsp;<br />
| ↓ ''Talk page quoting'' | ''Not for use in articles at all''<br />
| {{tlb|Talk quote inline}}{{Clear}}(shortcut: {{tlb|tq}}){{Clear}}{{tlb|tqq}}, {{tlb|tqi}}, or {{tlb|tqqi}} | Inline quotation for use on talk pages<br />
| {{tlb|Talk quote block}}{{Clear}}(shortcut: {{tlb|tq2}}) | Block-style quotation for use on talk pages<br />
| &nbsp;|&nbsp;<br />
| ↓ ''Alternative'' | ''For indenting non-quotations''<br />
| {{tlb|Block indent}} | To indent an entire block of content (uses {{code|lang=html|code=<div>}} and CSS margins)<br />
}}<br />
}}<noinclude>{{Documentation}}</noinclude></div>FoohonPiehttps://wiki.pbbg.com/index.php?title=Template:Nowrap&diff=342Template:Nowrap2019-10-10T01:08:25Z<p>FoohonPie: 1 revision imported</p>
<hr />
<div><span class="nowrap">{{{1}}}</span><noinclude><br />
{{documentation}}<br />
<!-- Categories go on the /doc page; interwikis go to Wikidata. --><br />
</noinclude></div>FoohonPiehttps://wiki.pbbg.com/index.php?title=Template:Navbox&diff=340Template:Navbox2019-10-10T01:08:25Z<p>FoohonPie: 1 revision imported</p>
<hr />
<div><includeonly>{{#invoke:Navbox|navbox}}</includeonly><noinclude><br />
{{Documentation}}<br />
</noinclude></div>FoohonPiehttps://wiki.pbbg.com/index.php?title=Template:Markup/row&diff=338Template:Markup/row2019-10-10T01:08:25Z<p>FoohonPie: 1 revision imported</p>
<hr />
<div><noinclude>{| style="width:90%;border-width:medium;"</noinclude>{{#if:{{{c1|value}}}|&#32;<br />
{{!-}}<br />
{{!}}style{{=}}"width:50%; background:#f9f9f9; border-width:1px;border-style:solid none none solid;border-color:#ddd; padding:9px 5px 5px; vertical-align:top;"{{!}} <!--<br />
-->{{#tag:pre |{{{c1|[markup]}}}|style="margin:0;border:none;padding:0; word-wrap:break-word; white-space:-moz-pre-wrap;white-space:-o-pre-wrap;white-space:-pre-wrap;white-space:pre-wrap; {{{c1style|}}}"}}<br />
{{!}}style{{=}}"width:50%; background:#f9f9f9; border-width:1px;border-style:solid solid none solid;border-color:#ddd; padding:5px; vertical-align:top;"{{!}} <!--<br />
--><div style="{{{c2style|}}}"><br />
{{{c2|[''rendering'']}}}<br />
</div><br />
}}<!--<br />
<br />
--><noinclude><br />
|-<br />
|style="width:50%;border-width:1px;border-style:solid none none none;border-color:#ddd; padding:5px; vertical-align:text-top;"| <br />
|style="width:50%; border-width:1px;border-style:solid none none none;border-color:#ddd; padding:5px; vertical-align:text-top;"| <br />
|-<br />
|}</noinclude></div>FoohonPiehttps://wiki.pbbg.com/index.php?title=Template:Markup&diff=336Template:Markup2019-10-10T01:08:25Z<p>FoohonPie: 1 revision imported</p>
<hr />
<div><includeonly>{| style="table-layout:fixed; width:{{{width|100%}}}; margin-top:0;margin-left:{{{margin-left|{{{margin|0}}}}}}; border-width:medium; padding:0; {{{style|}}}"<br />
{{#if:{{{title|}}} |{{!}}+ '''{{{title}}}'''}}<br />
{{#if:{{{noheaders|}}}{{{notitle|}}} |<br />
|! scope="col" style="width:50%;{{{colheaderstyle|}}}{{{col1headerstyle|}}}"{{!}} {{{col1|{{{t1|Markup}}}}}} {{!!}}<!--<br />
-->scope="col" style="width:50%;{{{colheaderstyle|}}}{{{col2headerstyle|}}}"{{!}} {{{col2|{{{t2|Renders as}}}}}}<br />
}}<!--<br />
-->{{for loop||call=format item|pc1n=template|pc1v=Markup/row|pc2n=c1style|pc2v={{{col1style|{{{codestyle|{{{markupstyle|}}}}}}}}}|pc3n=c2style|pc3v={{{col2style|{{{outputstyle|}}}}}}|pv=item|{{item|c1={{{1|}}}|c2={{{2|}}}}}|{{item|c1={{{3|}}}|c2={{{4|}}}}}|{{item|c1={{{5|}}}|c2={{{6|}}}}}|{{item|c1={{{7|}}}|c2={{{8|}}}}}|{{item|c1={{{9|}}}|c2={{{10|}}}}}|{{item|c1={{{11|}}}|c2={{{12|}}}}}|{{item|c1={{{13|}}}|c2={{{14|}}}}}|{{item|c1={{{15|}}}|c2={{{16|}}}}}|{{item|c1={{{17|}}}|c2={{{18|}}}}}|{{item|c1={{{19|}}}|c2={{{20|}}}}}|{{item|c1={{{21|}}}|c2={{{22|}}}}}|{{item|c1={{{23|}}}|c2={{{24|}}}}}|{{item|c1={{{25|}}}|c2={{{26|}}}}}|{{item|c1={{{27|}}}|c2={{{28|}}}}}|{{item|c1={{{29|}}}|c2={{{30|}}}}}|{{item|c1={{{31|}}}|c2={{{32|}}}}}|{{item|c1={{{33|}}}|c2={{{34|}}}}}|{{item|c1={{{35|}}}|c2={{{36|}}}}}|{{item|c1={{{37|}}}|c2={{{38|}}}}}|{{item|c1={{{39|}}}|c2={{{40|}}}}}}}<br />
|-<br />
|style="width:50%; border-width:1px;border-style:solid none none none;border-color:#ddd; padding:5px; vertical-align:top;"| <br />
|style="width:50%; border-width:1px;border-style:solid none none none;border-color:#ddd; padding:5px; vertical-align:top;"| <br />
|}</includeonly><noinclude><br />
{{Documentation}}<br />
</noinclude></div>FoohonPiehttps://wiki.pbbg.com/index.php?title=Template:MONTHNUMBER&diff=334Template:MONTHNUMBER2019-10-10T01:08:24Z<p>FoohonPie: 1 revision imported</p>
<hr />
<div><includeonly>{{#if:{{{1|}}}<br />
|{{#switch:{{lc:{{{1}}}}}<br />
|january|jan=1<br />
|february|feb=2<br />
|march|mar=3<br />
|apr|april=4<br />
|may=5<br />
|june|jun=6<br />
|july|jul=7<br />
|august|aug=8<br />
|september|sep|sept=9<br />
|october|oct=10<br />
|november|nov=11<br />
|december|dec=12<br />
|{{#ifexpr:{{{1}}}<0<br />
|{{#ifexpr:(({{{1}}})round 0)!=({{{1}}})<br />
|{{#expr:12-(((0.5-({{{1}}}))round 0)mod 12)}}<br />
|{{#expr:12-(((11.5-({{{1}}}))round 0)mod 12)}}<br />
}}<br />
|{{#expr:(((10.5+{{{1}}})round 0)mod 12)+1}}<br />
}}<br />
}}<br />
|Missing required parameter 1=''month''!<br />
}}</includeonly><noinclude><br />
{{Documentation}}<br />
<!-- Add categories and interwikis to the /doc subpage, not here! --><br />
</noinclude></div>FoohonPiehttps://wiki.pbbg.com/index.php?title=Template:MONTHNAME&diff=332Template:MONTHNAME2019-10-10T01:08:24Z<p>FoohonPie: 1 revision imported</p>
<hr />
<div><includeonly>{{#if:{{{1|}}}|{{#switch:{{MONTHNUMBER|{{{1}}}}}|1=January|2=February|3=March|4=April|5=May|6=June|7=July|8=August|9=September|10=October|11=November|12=December|Incorrect required parameter 1=''month''!}}|Missing required parameter 1=''month''!}}</includeonly><noinclude><br />
<br />
{{Documentation}}<br />
<!-- Add categories and interwikis to the /doc subpage, not here! --><br />
</noinclude></div>FoohonPiehttps://wiki.pbbg.com/index.php?title=Template:Lorem_ipsum&diff=330Template:Lorem ipsum2019-10-10T01:08:24Z<p>FoohonPie: 1 revision imported</p>
<hr />
<div>{{#ifexpr:{{{1|1}}}>0|{{{2|}}}{{#ifeq:{{{link|}}}{{{4|}}}|yes|[[Lorem ipsum]]|Lorem ipsum}} dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.{{{3|}}}<br />
<br />
{{#ifexpr:{{{1|1}}}>1|{{{2|}}}Curabitur pretium tincidunt lacus. Nulla gravida orci a odio. Nullam varius, turpis et commodo pharetra, est eros bibendum elit, nec luctus magna felis sollicitudin mauris. Integer in mauris eu nibh euismod gravida. Duis ac tellus et risus vulputate vehicula. Donec lobortis risus a elit. Etiam tempor. Ut ullamcorper, ligula eu tempor congue, eros est euismod turpis, id tincidunt sapien risus a quam. Maecenas fermentum consequat mi. Donec fermentum. Pellentesque malesuada nulla a mi. Duis sapien sem, aliquet nec, commodo eget, consequat quis, neque. Aliquam faucibus, elit ut dictum aliquet, felis nisl adipiscing sapien, sed malesuada diam lacus eget erat. Cras mollis scelerisque nunc. Nullam arcu. Aliquam consequat. Curabitur augue lorem, dapibus quis, laoreet et, pretium ac, nisi. Aenean magna nisl, mollis quis, molestie eu, feugiat in, orci. In hac habitasse platea dictumst.{{{3|}}}<br />
<br />
{{#ifexpr:{{{1|1}}}>2|{{{2|}}}Fusce convallis, mauris imperdiet gravida bibendum, nisl turpis suscipit mauris, sed placerat ipsum urna sed risus. In convallis tellus a mauris. Curabitur non elit ut libero tristique sodales. Mauris a lacus. Donec mattis semper leo. In hac habitasse platea dictumst. Vivamus facilisis diam at odio. Mauris dictum, nisi eget consequat elementum, lacus ligula molestie metus, non feugiat orci magna ac sem. Donec turpis. Donec vitae metus. Morbi tristique neque eu mauris. Quisque gravida ipsum non sapien. Proin turpis lacus, scelerisque vitae, elementum at, lobortis ac, quam. Aliquam dictum eleifend risus. In hac habitasse platea dictumst. Etiam sit amet diam. Suspendisse odio. Suspendisse nunc. In semper bibendum libero.{{{3|}}}<br />
<br />
{{#ifexpr:{{{1|1}}}>3|{{{2|}}}Proin nonummy, lacus eget pulvinar lacinia, pede felis dignissim leo, vitae tristique magna lacus sit amet eros. Nullam ornare. Praesent odio ligula, dapibus sed, tincidunt eget, dictum ac, nibh. Nam quis lacus. Nunc eleifend molestie velit. Morbi lobortis quam eu velit. Donec euismod vestibulum massa. Donec non lectus. Aliquam commodo lacus sit amet nulla. Cras dignissim elit et augue. Nullam non diam. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. In hac habitasse platea dictumst. Aenean vestibulum. Sed lobortis elit quis lectus. Nunc sed lacus at augue bibendum dapibus.{{{3|}}}<br />
<br />
{{#ifexpr:{{{1|1}}}>4|{{{2|}}}Aliquam vehicula sem ut pede. Cras purus lectus, egestas eu, vehicula at, imperdiet sed, nibh. Morbi consectetuer luctus felis. Donec vitae nisi. Aliquam tincidunt feugiat elit. Duis sed elit ut turpis ullamcorper feugiat. Praesent pretium, mauris sed fermentum hendrerit, nulla lorem iaculis magna, pulvinar scelerisque urna tellus a justo. Suspendisse pulvinar massa in metus. Duis quis quam. Proin justo. Curabitur ac sapien. Nam erat. Praesent ut quam.{{{3|}}}<br />
<br />
{{#ifexpr:{{{1|1}}}>5|{{{2|}}}Vivamus commodo, augue et laoreet euismod, sem sapien tempor dolor, ac egestas sem ligula quis lacus. Donec vestibulum tortor ac lacus. Sed posuere vestibulum nisl. Curabitur eleifend fermentum justo. Nullam imperdiet. Integer sit amet mauris imperdiet risus sollicitudin rutrum. Ut vitae turpis. Nulla facilisi. Quisque tortor velit, scelerisque et, facilisis vel, tempor sed, urna. Vivamus nulla elit, vestibulum eget, semper et, scelerisque eget, lacus. Pellentesque viverra purus. Quisque elit. Donec ut dolor.{{{3|}}}<br />
<br />
{{#ifexpr:{{{1|1}}}>6|{{{2|}}}Duis volutpat elit et erat. In at nulla at nisl condimentum aliquet. Quisque elementum pharetra lacus. Nunc gravida arcu eget nunc. Nulla iaculis egestas magna. Aliquam erat volutpat. Sed pellentesque orci. Etiam lacus lorem, iaculis sit amet, pharetra quis, imperdiet sit amet, lectus. Integer quis elit ac mi aliquam pretium. Nullam mauris orci, porttitor eget, sollicitudin non, vulputate id, risus. Donec varius enim nec sem. Nam aliquam lacinia enim. Quisque eget lorem eu purus dignissim ultricies. Fusce porttitor hendrerit ante. Mauris urna diam, cursus id, mattis eget, tempus sit amet, risus. Curabitur eu felis. Sed eu mi. Nullam lectus mauris, luctus a, mattis ac, tempus non, leo. Cras mi nulla, rhoncus id, laoreet ut, ultricies id, odio.{{{3|}}}<br />
<br />
{{#ifexpr:{{{1|1}}}>7|{{{2|}}}Donec imperdiet. Vestibulum auctor tortor at orci. Integer semper, nisi eget suscipit eleifend, erat nisl hendrerit justo, eget vestibulum lorem justo ac leo. Integer sem velit, pharetra in, fringilla eu, fermentum id, felis. Vestibulum sed felis. In elit. Praesent et pede vel ante dapibus condimentum. Donec magna. Quisque id risus. Mauris vulputate pellentesque leo. Duis vulputate, ligula at venenatis tincidunt, orci nunc interdum leo, ac egestas elit sem ut lacus. Etiam non diam quis arcu egestas commodo. Curabitur nec massa ac massa gravida condimentum. Aenean id libero. Pellentesque vitae tellus. Fusce lectus est, accumsan ac, bibendum sed, porta eget, augue. Etiam faucibus. Quisque tempus purus eu ante.{{{3|}}}<br />
<br />
{{#ifexpr:{{{1|1}}}>8|{{{2|}}}Vestibulum sapien nisl, ornare auctor, consectetuer quis, posuere tristique, odio. Fusce ultrices ullamcorper odio. Ut augue nulla, interdum at, adipiscing non, tristique eget, neque. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Ut pede est, condimentum id, scelerisque ac, malesuada non, quam. Proin eu ligula ac sapien suscipit blandit. Suspendisse euismod. Ut accumsan, neque id gravida luctus, arcu pede sodales felis, vel blandit massa arcu eget ligula. Aenean sed turpis. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Donec sem eros, ornare ut, commodo eu, tempor nec, risus. Donec laoreet dapibus ligula. Praesent orci leo, bibendum nec, ornare et, nonummy in, elit. Donec interdum feugiat leo. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Pellentesque feugiat ullamcorper ipsum. Donec convallis tincidunt urna.{{{3|}}}<br />
<br />
{{#ifexpr:{{{1|1}}}>9|{{{2|}}}Suspendisse et orci et arcu porttitor pellentesque. Sed lacus nunc, fermentum vel, vehicula in, imperdiet eget, urna. Nam consectetuer euismod nunc. Nulla dignissim posuere nulla. Integer iaculis lacinia massa. Nullam sapien augue, condimentum vel, venenatis id, rhoncus pellentesque, sapien. Donec sed ipsum ultrices turpis consectetuer imperdiet. Duis et ipsum ac nisl laoreet commodo. Mauris eu est. Suspendisse id turpis quis orci euismod consequat. Donec tellus mi, luctus sit amet, ultrices a, convallis eu, lorem. Proin faucibus convallis elit. Maecenas rhoncus arcu at arcu. Proin libero. Proin adipiscing. In quis lorem vitae elit consectetuer pretium. Nullam ligula urna, adipiscing nec, iaculis ut, elementum non, turpis. Fusce pulvinar.{{{3|}}}<br />
<br />
{{#ifexpr:{{{1|1}}}>10|{{Lorem_ipsum/more|{{{1|}}}|{{{2|}}}|{{{3|}}}|{{{4|}}}}}|}}|}}|}}|}}|}}|}}|}}|}}|}}|}}|}}<includeonly>{{#ifeq:{{{cat|}}}|no||{{Template:Main other|[[Category:Wikipedia articles containing placeholders]]}}}}</includeonly><noinclude><br />
{{Documentation}} <br />
<!-- PLEASE ADD CATEGORIES TO THE /doc SUBPAGE, AND INTERWIKIS TO WIKIDATA, THANKS --><br />
</noinclude></div>FoohonPiehttps://wiki.pbbg.com/index.php?title=Template:Kbd&diff=328Template:Kbd2019-10-10T01:08:24Z<p>FoohonPie: 1 revision imported</p>
<hr />
<div><kbd {{#if:{{{class|}}}|class="{{{class}}}"}} {{#if:{{{id|}}}|id="{{{id}}}"}} style="background:#EEEEEE; {{#if:{{{spacing|}}}| padding-left:{{{padding|0.2em}}}; padding-right:{{{padding|0.2em}}};| letter-spacing:0.05em; padding-left:0.25em; padding-right:0.2em;}}{{#if:{{{style|}}}|{{{style}}}}}" {{#if:{{{lang|}}}|lang="{{{lang}}}" xml:lang="{{{lang}}}"}} {{#if:{{{title|}}}|title="{{{title}}}"}}>{{{1}}}</kbd><noinclude><br />
<!--Categories and interwikis go near the bottom of the /doc page.--><br />
{{Documentation}}<br />
</noinclude></div>FoohonPie