diff --git a/ChangeLog.md b/ChangeLog.md new file mode 100644 index 0000000..799f0c7 --- /dev/null +++ b/ChangeLog.md @@ -0,0 +1,5 @@ +# Revision history for protocol-seven + +## 0.2.0.0 -- 2018-09-17 + +* First Hakyll Version diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..844556b --- /dev/null +++ b/LICENSE @@ -0,0 +1,30 @@ +Copyright (c) 2018, Shaun Kerr + +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of Shaun Kerr nor the names of other + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/README.md b/README.md index 40ddf6f..2f64ec2 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,78 @@ -# Protocol Seven -A Post-Netrunner Format +# Regular Flolloping -# Running -Use `runhaskell Main.hs` as root, change the port in Main.hs +Post-Netrunner Rotation, currently hosted at [Protocol Seven](https://anr.p7.co.nz) + +## Getting Started + +What you need to get the generator up and running. + +### Prerequisites + +Built using Nix. +Nix can be installed with: +``` +curl https://nixos.org/nix/install | sh +``` + +### Dependencies + +`imagemagick` is required for the favicons. + +### Installing + +Compile the generator + +``` +nix-build p7.nix +``` + +Enter the build environment + +``` +nix-shell --pure +``` + +Generate the site + +``` +./result/site rebuild +``` + +And test it out + +``` +./result/site watch +``` + +The site will now be avaliable at `localhost:8000` + +## Deployment + +Site will be completely static, so simply point your server to the `_site` directory + +## Built With + +* [Hakyll](https://jaspervdj.be) - The web framework used +* [hakyll-favicon](https://github.com/elaye/hakyll-favicon) - Thanks Elie! +* [Nix](https://nixos.org) - Package Management +* [Cabal](https://cabal.readthedocs.io) - Build System + +## Versioning + +Is very airy fairy and mainly based on what I think constitutes major / minor updates. + +## Authors + +* **Shaun Kerr** - [tA](https://github.com/techieAgnostic) + +## License + +This project is licensed under the BSD3 License - see the [LICENSE](LICENSE) file for details + +## Acknowledgments + +* Chris Hay for coming up with the idea +* Elie Génard for their favicon library, very easy to use. +* Serial Experiments Lain for being amazing and the source of the name +* ***NOT*** Wizards of the Coast, because those [REDACTED] cancelled the game >:[ +* You, for reading this :) diff --git a/Setup.hs b/Setup.hs new file mode 100644 index 0000000..9a994af --- /dev/null +++ b/Setup.hs @@ -0,0 +1,2 @@ +import Distribution.Simple +main = defaultMain diff --git a/Timestamp.hs b/Timestamp.hs index f44aa54..6139dfd 100644 --- a/Timestamp.hs +++ b/Timestamp.hs @@ -22,3 +22,12 @@ monthsSince (Ts d1 m1 y1) (Ts d2 m2 y2) toTS :: (Integer, Integer, Integer) -> Timestamp toTS (y,m,d) = Ts d m y + +getCurrentTime :: IO [Char] +getCurrentTime = getZonedTime + >>= return . (formatTime defaultTimeLocale "%Y %m %d") + +fmtCurrentTime :: [Char] -> (Integer, Integer, Integer) +fmtCurrentTime n = (\[a,b,c] -> (a,b,c)) iTime + where + iTime = map (\x -> read x :: Integer) $ words n diff --git a/ViewUtils.hs b/ViewUtils.hs new file mode 100644 index 0000000..1be68f8 --- /dev/null +++ b/ViewUtils.hs @@ -0,0 +1,19 @@ +module ViewUtils where + +import Timestamp + +showMonth :: Integer -> String +showMonth 1 = "January" +showMonth 2 = "February" +showMonth 3 = "March" +showMonth 4 = "April" +showMonth 5 = "May" +showMonth 6 = "June" +showMonth 7 = "July" +showMonth 8 = "August" +showMonth 9 = "September" +showMonth 10 = "October" +showMonth 11 = "November" +showMonth 12 = "December" + + diff --git a/_cache/02ffd36321aca0d8196095fa897a7038 b/_cache/02ffd36321aca0d8196095fa897a7038 new file mode 100644 index 0000000..d62da40 Binary files /dev/null and b/_cache/02ffd36321aca0d8196095fa897a7038 differ diff --git a/_cache/12991168de6a9db452e49f2814dc4837 b/_cache/12991168de6a9db452e49f2814dc4837 new file mode 100644 index 0000000..bc8840b Binary files /dev/null and b/_cache/12991168de6a9db452e49f2814dc4837 differ diff --git a/_cache/13318c2b4a591b8f412f367f81df20d6 b/_cache/13318c2b4a591b8f412f367f81df20d6 new file mode 100644 index 0000000..cec75d0 Binary files /dev/null and b/_cache/13318c2b4a591b8f412f367f81df20d6 differ diff --git a/_cache/18bc831854684ac860e2cfa4e9301159 b/_cache/18bc831854684ac860e2cfa4e9301159 new file mode 100644 index 0000000..7e5ce31 Binary files /dev/null and b/_cache/18bc831854684ac860e2cfa4e9301159 differ diff --git a/_cache/21253358050819032165ae7515d3cfb6 b/_cache/21253358050819032165ae7515d3cfb6 new file mode 100644 index 0000000..fb84d5d Binary files /dev/null and b/_cache/21253358050819032165ae7515d3cfb6 differ diff --git a/_cache/2c4bf143a0d65180ae3fe8595281bb5d b/_cache/2c4bf143a0d65180ae3fe8595281bb5d new file mode 100644 index 0000000..bc8840b Binary files /dev/null and b/_cache/2c4bf143a0d65180ae3fe8595281bb5d differ diff --git a/_cache/2cc6229282889d93740fc5c44e426c43 b/_cache/2cc6229282889d93740fc5c44e426c43 new file mode 100644 index 0000000..f76dd23 Binary files /dev/null and b/_cache/2cc6229282889d93740fc5c44e426c43 differ diff --git a/_cache/3234241ee02d543d0cdc0eecf6b7f701 b/_cache/3234241ee02d543d0cdc0eecf6b7f701 new file mode 100644 index 0000000..bc8840b Binary files /dev/null and b/_cache/3234241ee02d543d0cdc0eecf6b7f701 differ diff --git a/_cache/3502f2aa291df768b503711e91da7f94 b/_cache/3502f2aa291df768b503711e91da7f94 new file mode 100644 index 0000000..f76dd23 Binary files /dev/null and b/_cache/3502f2aa291df768b503711e91da7f94 differ diff --git a/_cache/36f9964be8b4f357c1d80cfdc525df89 b/_cache/36f9964be8b4f357c1d80cfdc525df89 new file mode 100644 index 0000000..1d9474e Binary files /dev/null and b/_cache/36f9964be8b4f357c1d80cfdc525df89 differ diff --git a/_cache/3aa7c8fae80d374ec9a40c7a9116a08f b/_cache/3aa7c8fae80d374ec9a40c7a9116a08f new file mode 100644 index 0000000..274c5c5 Binary files /dev/null and b/_cache/3aa7c8fae80d374ec9a40c7a9116a08f differ diff --git a/_cache/41623fed16032ec0baf01c53a86cce9f b/_cache/41623fed16032ec0baf01c53a86cce9f new file mode 100644 index 0000000..fec6c2c Binary files /dev/null and b/_cache/41623fed16032ec0baf01c53a86cce9f differ diff --git a/_cache/5186f0e1b9013dffb631b7ac1daee0ff b/_cache/5186f0e1b9013dffb631b7ac1daee0ff new file mode 100644 index 0000000..de0f6e9 Binary files /dev/null and b/_cache/5186f0e1b9013dffb631b7ac1daee0ff differ diff --git a/_cache/58a0023be224362f3c70e834c2890dab b/_cache/58a0023be224362f3c70e834c2890dab new file mode 100644 index 0000000..f76dd23 Binary files /dev/null and b/_cache/58a0023be224362f3c70e834c2890dab differ diff --git a/_cache/5a2f2185fd6eb7526e285f6845fb2711 b/_cache/5a2f2185fd6eb7526e285f6845fb2711 new file mode 100644 index 0000000..3b6928a Binary files /dev/null and b/_cache/5a2f2185fd6eb7526e285f6845fb2711 differ diff --git a/_cache/5e52357749f41a8425ceca375f580db8 b/_cache/5e52357749f41a8425ceca375f580db8 new file mode 100644 index 0000000..f76dd23 Binary files /dev/null and b/_cache/5e52357749f41a8425ceca375f580db8 differ diff --git a/_cache/65d86825c80bb51fe28215cbbdc72f9c b/_cache/65d86825c80bb51fe28215cbbdc72f9c new file mode 100644 index 0000000..be1b0ff Binary files /dev/null and b/_cache/65d86825c80bb51fe28215cbbdc72f9c differ diff --git a/_cache/6b13d4c109d24e3df78f6283afdafd71 b/_cache/6b13d4c109d24e3df78f6283afdafd71 new file mode 100644 index 0000000..a65d9f2 Binary files /dev/null and b/_cache/6b13d4c109d24e3df78f6283afdafd71 differ diff --git a/_cache/74ad07f6399cddcf5e93a42176e6ff4a b/_cache/74ad07f6399cddcf5e93a42176e6ff4a new file mode 100644 index 0000000..6bcc654 Binary files /dev/null and b/_cache/74ad07f6399cddcf5e93a42176e6ff4a differ diff --git a/_cache/7a9e11cb9751d5e2c28f172e49a740f3 b/_cache/7a9e11cb9751d5e2c28f172e49a740f3 new file mode 100644 index 0000000..9948bc9 Binary files /dev/null and b/_cache/7a9e11cb9751d5e2c28f172e49a740f3 differ diff --git a/_cache/7eebc8997569f57e9fd6bcfa43ee6244 b/_cache/7eebc8997569f57e9fd6bcfa43ee6244 new file mode 100644 index 0000000..b2c425b Binary files /dev/null and b/_cache/7eebc8997569f57e9fd6bcfa43ee6244 differ diff --git a/_cache/81d1b6c2c1cab5cdfc34988853034e75 b/_cache/81d1b6c2c1cab5cdfc34988853034e75 new file mode 100644 index 0000000..b1a96d7 Binary files /dev/null and b/_cache/81d1b6c2c1cab5cdfc34988853034e75 differ diff --git a/_cache/8202fa021d8183dcb2050787d67fa9ed b/_cache/8202fa021d8183dcb2050787d67fa9ed new file mode 100644 index 0000000..bc8840b Binary files /dev/null and b/_cache/8202fa021d8183dcb2050787d67fa9ed differ diff --git a/_cache/8c2cc830d6d96619afd7f817c883e2cb b/_cache/8c2cc830d6d96619afd7f817c883e2cb new file mode 100644 index 0000000..f17ca05 Binary files /dev/null and b/_cache/8c2cc830d6d96619afd7f817c883e2cb differ diff --git a/_cache/8e5ffdf6c89ed1aa49301aa3a00a2add b/_cache/8e5ffdf6c89ed1aa49301aa3a00a2add new file mode 100644 index 0000000..b8bf814 Binary files /dev/null and b/_cache/8e5ffdf6c89ed1aa49301aa3a00a2add differ diff --git a/_cache/9861f58ae8a49766ccd8f33085c3ba42 b/_cache/9861f58ae8a49766ccd8f33085c3ba42 new file mode 100644 index 0000000..bc8840b Binary files /dev/null and b/_cache/9861f58ae8a49766ccd8f33085c3ba42 differ diff --git a/_cache/a2e2c78a44d784b0fd8ff02b6324dc02 b/_cache/a2e2c78a44d784b0fd8ff02b6324dc02 new file mode 100644 index 0000000..bcc2baf Binary files /dev/null and b/_cache/a2e2c78a44d784b0fd8ff02b6324dc02 differ diff --git a/_cache/a8e78f0ff3815d8ef9ed987a4625aeb3 b/_cache/a8e78f0ff3815d8ef9ed987a4625aeb3 new file mode 100644 index 0000000..efcba0d Binary files /dev/null and b/_cache/a8e78f0ff3815d8ef9ed987a4625aeb3 differ diff --git a/_cache/b324eb6b5a5bbd10b5a71240f7edcd71 b/_cache/b324eb6b5a5bbd10b5a71240f7edcd71 new file mode 100644 index 0000000..f655724 Binary files /dev/null and b/_cache/b324eb6b5a5bbd10b5a71240f7edcd71 differ diff --git a/_cache/b55ed8f8472b848711dbd0caa2920e4f b/_cache/b55ed8f8472b848711dbd0caa2920e4f new file mode 100644 index 0000000..484a803 Binary files /dev/null and b/_cache/b55ed8f8472b848711dbd0caa2920e4f differ diff --git a/_cache/c24ef28b2ac6c9fe797b11c5d68599ff b/_cache/c24ef28b2ac6c9fe797b11c5d68599ff new file mode 100644 index 0000000..6dcb35d Binary files /dev/null and b/_cache/c24ef28b2ac6c9fe797b11c5d68599ff differ diff --git a/_cache/cedbb457a9c3e70e2341381194664a42 b/_cache/cedbb457a9c3e70e2341381194664a42 new file mode 100644 index 0000000..31a702b Binary files /dev/null and b/_cache/cedbb457a9c3e70e2341381194664a42 differ diff --git a/_cache/d5c19886a5497f571c624d44ba520d2b b/_cache/d5c19886a5497f571c624d44ba520d2b new file mode 100644 index 0000000..769905f Binary files /dev/null and b/_cache/d5c19886a5497f571c624d44ba520d2b differ diff --git a/_cache/dbb2e29497bc6a4d9f381f8003dc0e29 b/_cache/dbb2e29497bc6a4d9f381f8003dc0e29 new file mode 100644 index 0000000..86a7bea Binary files /dev/null and b/_cache/dbb2e29497bc6a4d9f381f8003dc0e29 differ diff --git a/_cache/e4b9b8633ce1170f36e573786e855a55 b/_cache/e4b9b8633ce1170f36e573786e855a55 new file mode 100644 index 0000000..64fda3b Binary files /dev/null and b/_cache/e4b9b8633ce1170f36e573786e855a55 differ diff --git a/_cache/ed9c302a44a035e5579daccaf55007fa b/_cache/ed9c302a44a035e5579daccaf55007fa new file mode 100644 index 0000000..f76dd23 Binary files /dev/null and b/_cache/ed9c302a44a035e5579daccaf55007fa differ diff --git a/_cache/f38c8240d33ea73352ba3bbc7036a71f b/_cache/f38c8240d33ea73352ba3bbc7036a71f new file mode 100644 index 0000000..01eab7b Binary files /dev/null and b/_cache/f38c8240d33ea73352ba3bbc7036a71f differ diff --git a/_site/about/index.html b/_site/about/index.html new file mode 100644 index 0000000..5dd7053 --- /dev/null +++ b/_site/about/index.html @@ -0,0 +1,60 @@ + + + + + + + + rf - About + + + + +
+ + +
+ +
+

About

+

what is Protocol Seven?

+

jokingly

+

Protocol Seven is:

+ +

technically

+

Protocol Seven is:

+ +

pretensiously

+

Protocol Seven is Layer 09 of the Protocol Seven System (currently broken)

+

Layer 09, also known as Protocol

+

spoken logic creating physical connections indistuingishable from magic
+standard patterns uniting orphaned players
+open standards triumphing over corporate soulessness mathematical wording, always running

+
+

“For now, conjecture has become fact, and rumor has become history.” ~ Announcer

+
+
+ + + + diff --git a/_site/contact/index.html b/_site/contact/index.html new file mode 100644 index 0000000..61e33c8 --- /dev/null +++ b/_site/contact/index.html @@ -0,0 +1,39 @@ + + + + + + + + rf - Contact + + + + +
+ + +
+ +
+

Contact

+ +
+ + + + diff --git a/_site/css/default.css b/_site/css/default.css new file mode 100644 index 0000000..eb31757 --- /dev/null +++ b/_site/css/default.css @@ -0,0 +1 @@ +nav a{font-size:1.8rem;font-weight:bold;text-decoration:none;text-transform:uppercase}a:after{content:" ▻"}a{text-decoration:none}a:link{color:#7FDBFF}a:visited{#color:#B10DC9;color:#F012BE}.navbar a{color:#7FDBFF}.navbar a:after{content:""}html{font-family:sans-serif;font-size:62.5%;color:#FFFFFF;background-color:#222222}body{font-size:1.6rem;color:#FFFFFF}blockquote{padding:0 1em;color:#2ECC40;border-left:0.25em solid #dfe2e5}header{border-bottom:0.2rem solid #F012BE}nav{text-align:right;color:#7FDBFF}footer{margin-top:3rem;padding:1.2rem 0;border-top:0.2rem solid #F012BE;font-size:1.2rem;color:#AAAAAA}code{font-family:monospace;color:#01FF70}pre{padding:0 1em;border-left:0.25em solid #3D9970}strong{color:#FF4136}em{color:#FFDC00}strong>em{color:#FF851B}h1{color:#7FDBFF;font-size:2.4rem}h2{color:#7FDBFF;font-size:2rem}h3{color:#7FDBFF;font-size:1em}h3:before{content:"◎ "}h2:before{content:"◉ "}h1:before{content:"◈ "}article .header{font-size:1.4rem;font-style:italic;color:#AAAAAA}.logo a{font-weight:bold;font-size:3.4rem;text-decoration:none;color:#7FDBFF}.logo a:before{content:"◈ "}.logo a:after{content:" ◈"}@media (max-width:319px){body{width:90%;margin:0;padding:0 5%}header{margin:4.2rem 0}nav{margin:0 auto 3rem;text-align:center}footer{text-align:center}.logo{text-align:center;margin:1rem auto 3rem}nav a{display:block;line-height:1.6}}@media (min-width:320px){body{width:90%;margin:0;padding:0 5%}header{margin:4.2rem 0}nav{margin:0 auto 3rem;text-align:center}footer{text-align:center}.logo{text-align:center;margin:1rem auto 3rem}nav a{display:inline;margin:0 0.6rem}}@media (min-width:640px){body{width:60rem;margin:0 auto;padding:0}header{margin:0 0 3rem;padding:1.2rem 0}nav{margin:0 auto 3rem;text-align:center}footer{text-align:center}.logo{text-align:center;margin:1rem auto 3rem}nav a{display:inline;margin:0 0.6rem}} \ No newline at end of file diff --git a/_site/description/index.html b/_site/description/index.html new file mode 100644 index 0000000..433aaee --- /dev/null +++ b/_site/description/index.html @@ -0,0 +1,70 @@ + + + + + + + + rf - Description + + + + +
+ + +
+ +
+

Description

+

What is Protocol Seven?

+
+

“No matter where you go, everybody’s connected.” - Lain Iwakura

+
+

For many of us, Fantasy Flight Games’ Living Card Game Android: Netrunner was more than simply a card game. The term Lifestyle Game has been thrown around a lot, but is truer for no other community than that of ANR. Without the influx of things to discuss each month, it may seem likely that the community will die, however this is only true if we let it happen.

+

With the cancellation of many players favourite game, and no real replacement anywhere on the horizon, all that’s left is to create our own points of discussion. Many players are working on custom cycles to expand the card pool, however one Chris Hay of the small and oft ridiculed meta from Dunedin, New Zealand has come up with a solution; an everchanging format using the current completed card pool.

+

How does it work?

+
+

“One theory says that man is a neoteny and is no longer able to evolve. If this is true, then what an absurd creature mankind has evolved into.” - Eiri Masami

+
+

Protocol Seven is an attempt at a constantly evolving metagame. Rather than relying on an influx of new cards every month, Protocol Seven relies on a monthly rotation schedule. This allows discussion of a new metagame every month for the forseeable future.

+

A month’s format in Protocol Seven will at any time consist of the following:

+ +

This website will automatically update with the latest format, as well as a preview of the next months changes. This allows discussion, an ever-changing metagame, whilst also keeping the card pool similar enough between months that decks can be altered rather than completely remade.

+

The Protocol Seven Protocol

+
+

“But a protocol is nothing more than a simple agreement.” - Eiri Masami

+
+

A comprehensive description of the Protocol Seven format

+ +
+ + + + diff --git a/_site/humans.txt b/_site/humans.txt new file mode 100644 index 0000000..40fb561 --- /dev/null +++ b/_site/humans.txt @@ -0,0 +1,17 @@ +== += humans.txt for regularflolloping.com +== + +my name is shaun and i am a human +i usually go by either tA, techieAgnostic, or some name of the form t*A* +my email is s@p7.co.nz and it is functioning at least 30% of the time +i made this site with help from the people who made hakyll +aidan from my work says that i am his favourite dealer, referring to the data kind + +i am a fan of android: netrunner, and have made many friends because of it + +clones are people, and as such we will not track who you are + +bioroids are people, and as such our robots.txt allows full access to people of the non-biological kind + +always be running, friends diff --git a/_site/robots.txt b/_site/robots.txt new file mode 100644 index 0000000..eb05362 --- /dev/null +++ b/_site/robots.txt @@ -0,0 +1,2 @@ +User-agent: * +Disallow: diff --git a/about.md b/about.md new file mode 100644 index 0000000..ea28317 --- /dev/null +++ b/about.md @@ -0,0 +1,34 @@ +--- +title: About +--- + +what is **Protocol Seven**? + +# jokingly +**Protocol Seven** is: + +* an android:netrunner format +* automagically updated +* coded in a way that i like, rather than well +* ripped straight from lain + +# technically +**Protocol Seven** is: + +* powered by [Hakyll](https://jaspervdj.be/hakyll/) +* running on [Digital Ocean](https://www.digitalocean.com/) +* sourced from [GitHub](https://github.com/techieAgnostic/protocol-seven) +* probably badly written +* follows the [humans.txt](http://humanstxt.org/) intiative: see it [here](/humans.txt) + +# pretensiously +**Protocol Seven** is **Layer 09** of the [Protocol Seven System](https://p7.co.nz) (currently broken) + +**Layer 09**, also known as **Protocol** + +spoken logic creating physical connections indistuingishable from magic +standard patterns uniting orphaned players +open standards triumphing over corporate soulessness +mathematical wording, always running + +> "For now, conjecture has become fact, and rumor has become history." ~ *Announcer* diff --git a/contact.md b/contact.md new file mode 100644 index 0000000..4185b64 --- /dev/null +++ b/contact.md @@ -0,0 +1,8 @@ +--- +title: Contact +--- + +* email me at [s@p7.co.nz](mailto:s@p7.co.nz) +* if you see a `tA`, `techieAgnostic` or anything in the form of `t*A*` on irc its probably me +* i am `techieAgnostic` on the [stimslack](https://stimhack.slack.com) and [jnet](https://jinteki.net) +* i am `Shaun Kerr` on the facebook pages diff --git a/css/default.css b/css/default.css new file mode 100644 index 0000000..57cad24 --- /dev/null +++ b/css/default.css @@ -0,0 +1,215 @@ +nav a { + font-size: 1.8rem; + font-weight: bold; + text-decoration: none; + text-transform: uppercase; +} + +a:after { + content: " ▻"; +} + +a { + text-decoration: none; +} + +a:link { + color: #7FDBFF; +} + +a:visited { + #color: #B10DC9; + color: #F012BE; +} + +.navbar a { + color: #7FDBFF; +} + +.navbar a:after { + content: ""; +} + +html { + font-family: sans-serif; + font-size: 62.5%; + color: #FFFFFF; + background-color: #222222; +} + +body { + font-size: 1.6rem; + color: #FFFFFF; +} + +blockquote { + padding: 0 1em; + color: #2ECC40; + border-left: 0.25em solid #dfe2e5; +} + +header { + border-bottom: 0.2rem solid #F012BE; +} + +nav { + text-align: right; + color: #7FDBFF; +} + +footer { + margin-top: 3rem; + padding: 1.2rem 0; + border-top: 0.2rem solid #F012BE; + font-size: 1.2rem; + color: #AAAAAA; +} + +code { + font-family: monospace; + color: #01FF70; +} + +pre { + padding: 0 1em; + border-left: 0.25em solid #3D9970; +} + +strong { + color: #FF4136; +} + +em { + color: #FFDC00; +} + +strong>em { + color: #FF851B; +} + +h1 { + color: #7FDBFF; + font-size: 2.4rem; +} + +h2 { + color: #7FDBFF; + font-size: 2rem; +} + +h3 { + color: #7FDBFF; + font-size: 1em; +} + +h3:before { + content: "◎ "; +} + +h2:before { + content: "◉ "; +} + +h1:before { + content: "◈ "; +} + +article .header { + font-size: 1.4rem; + font-style: italic; + color: #AAAAAA; +} + +.logo a { + font-weight: bold; + font-size: 3.4rem; + text-decoration: none; + color: #7FDBFF; +} + +.logo a:before { + content: "◈ "; +} + +.logo a:after { + content: " ◈"; +} + +@media (max-width: 319px) { + body { + width: 90%; + margin: 0; + padding: 0 5%; + } + header { + margin: 4.2rem 0; + } + nav { + margin: 0 auto 3rem; + text-align: center; + } + footer { + text-align: center; + } + .logo { + text-align: center; + margin: 1rem auto 3rem; + } + nav a { + display: block; + line-height: 1.6; + } +} + +@media (min-width: 320px) { + body { + width: 90%; + margin: 0; + padding: 0 5%; + } + header { + margin: 4.2rem 0; + } + nav { + margin: 0 auto 3rem; + text-align: center; + } + footer { + text-align: center; + } + .logo { + text-align: center; + margin: 1rem auto 3rem; + } + nav a { + display: inline; + margin: 0 0.6rem; + } +} + +@media (min-width: 640px) { + body { + width: 60rem; + margin: 0 auto; + padding: 0; + } + header { + margin: 0 0 3rem; + padding: 1.2rem 0; + } + nav { + margin: 0 auto 3rem; + text-align: center; + } + footer { + text-align: center; + } + .logo { + text-align: center; + margin: 1rem auto 3rem; + } + nav a { + display: inline; + margin: 0 0.6rem; + } +} diff --git a/default.nix b/default.nix new file mode 100644 index 0000000..94edc6a --- /dev/null +++ b/default.nix @@ -0,0 +1,12 @@ +{ mkDerivation, base, filepath, hakyll, hakyll-favicon, stdenv }: +mkDerivation { + pname = "p7"; + version = "0.2.0.0"; + src = ./.; + isLibrary = false; + isExecutable = true; + executableHaskellDepends = [ base filepath hakyll hakyll-favicon ]; + homepage = "anr.p7.co.nz"; + description = "Post-Netrunner Rotation"; + license = stdenv.lib.licenses.bsd3; +} diff --git a/description.md b/description.md new file mode 100644 index 0000000..019cd06 --- /dev/null +++ b/description.md @@ -0,0 +1,41 @@ +--- +title: Description +--- + +## What is Protocol Seven? +> "No matter where you go, everybody's connected." - Lain Iwakura + +For many of us, Fantasy Flight Games' Living Card Game Android: Netrunner was more than simply a card game. The term Lifestyle Game has been thrown around a lot, but is truer for no other community than that of ANR. Without the influx of things to discuss each month, it may seem likely that the community will die, however this is only true if we let it happen. + +With the cancellation of many players favourite game, and no real replacement anywhere on the horizon, all that's left is to create our own points of discussion. Many players are working on custom cycles to expand the card pool, however one Chris Hay of the small and oft ridiculed meta from Dunedin, New Zealand has come up with a solution; an everchanging format using the current completed card pool. + +## How does it work? +> "One theory says that man is a neoteny and is no longer able to evolve. If this is true, then what an absurd creature mankind has evolved into." - Eiri Masami + +Protocol Seven is an attempt at a constantly evolving metagame. Rather than relying on an influx of new cards every month, Protocol Seven relies on a monthly rotation schedule. This allows discussion of a new metagame every month for the forseeable future. + +A month's format in Protocol Seven will at any time consist of the following: + +* 3x Revised Core Set +* 18x Data Packs from the Lunar - Kitara cycles +* 5-6x Deluxe Boxes (Including Terminal Directive) + +This website will automatically update with the latest format, as well as a preview of the next months changes. This allows discussion, an ever-changing metagame, whilst also keeping the card pool similar enough between months that decks can be altered rather than completely remade. + +## The Protocol Seven Protocol +> "But a protocol is nothing more than a simple agreement." - Eiri Masami + +A comprehensive description of the Protocol Seven format + +* 3x Revised Core Sets will be legal at all times +* The most recent FFG Most Wanted List will be active at all times +* The Genesis and Spin cycles are not legal +* Cards from the Original Core Set that are not in the Revised Core Set are not legal +* 18x of the 36 Data Packs from Lunar cycle onwards will be legal at all times +* Each rotation will remove the two Data Packs that have been in play the longest, and replace them with two, randomly chosen packs +* Once rotated out, a Data Pack will not rotate in for at least three months +* Each rotation, one Deluxe Box (Including Terminal Directive), in release order, will be chosen as illegal +* Every 7th rotation, all Deluxes will be legal instead +* The rotation will happen on the 1st of every month, New Zealand time +* On the 20th of every month, a preview of the next months format will be shown +* ~~No matter what the currently legal packs are, Door to Door (Escalation #59) will always be legal~~ diff --git a/humans.txt b/humans.txt new file mode 100644 index 0000000..40fb561 --- /dev/null +++ b/humans.txt @@ -0,0 +1,17 @@ +== += humans.txt for regularflolloping.com +== + +my name is shaun and i am a human +i usually go by either tA, techieAgnostic, or some name of the form t*A* +my email is s@p7.co.nz and it is functioning at least 30% of the time +i made this site with help from the people who made hakyll +aidan from my work says that i am his favourite dealer, referring to the data kind + +i am a fan of android: netrunner, and have made many friends because of it + +clones are people, and as such we will not track who you are + +bioroids are people, and as such our robots.txt allows full access to people of the non-biological kind + +always be running, friends diff --git a/icons/favicon.svg b/icons/favicon.svg new file mode 100644 index 0000000..1bac76f --- /dev/null +++ b/icons/favicon.svg @@ -0,0 +1,87 @@ + + + + + + + + + + image/svg+xml + + + + + + + + @ + + diff --git a/Config.hs b/old/Config.hs similarity index 100% rename from Config.hs rename to old/Config.hs diff --git a/Format.hs b/old/Format.hs similarity index 100% rename from Format.hs rename to old/Format.hs diff --git a/Main.hs b/old/Main.hs similarity index 100% rename from Main.hs rename to old/Main.hs diff --git a/Nrdb.hs b/old/Nrdb.hs similarity index 100% rename from Nrdb.hs rename to old/Nrdb.hs diff --git a/Packs.hs b/old/Packs.hs similarity index 100% rename from Packs.hs rename to old/Packs.hs diff --git a/Preview.hs b/old/Preview.hs similarity index 100% rename from Preview.hs rename to old/Preview.hs diff --git a/old/Setup.hs b/old/Setup.hs new file mode 100644 index 0000000..9a994af --- /dev/null +++ b/old/Setup.hs @@ -0,0 +1,2 @@ +import Distribution.Simple +main = defaultMain diff --git a/State.hs b/old/State.hs similarity index 100% rename from State.hs rename to old/State.hs diff --git a/old/Timestamp.hs b/old/Timestamp.hs new file mode 100644 index 0000000..f44aa54 --- /dev/null +++ b/old/Timestamp.hs @@ -0,0 +1,24 @@ +module Timestamp where + +data Timestamp = Ts Integer Integer Integer deriving Show + +isPreviewSeason :: Timestamp -> Bool +isPreviewSeason (Ts x _ _) = x >= 20 + +inFuture :: Timestamp -> Timestamp -> Bool +inFuture (Ts d1 m1 y1) (Ts d2 m2 y2) + | y1 /= y2 = y1 > y2 + | m1 /= m2 = m1 > m2 + | d1 /= d2 = d1 > d2 + | otherwise = False + +monthsSince :: Timestamp -> Timestamp -> Integer +monthsSince (Ts d1 m1 y1) (Ts d2 m2 y2) + | t1 `inFuture` t2 = (12 * (y1 - y2)) + (m1 - m2) + | otherwise = 0 + where + t1 = Ts d1 m1 y1 + t2 = Ts d2 m2 y2 + +toTS :: (Integer, Integer, Integer) -> Timestamp +toTS (y,m,d) = Ts d m y diff --git a/Utils.hs b/old/Utils.hs similarity index 100% rename from Utils.hs rename to old/Utils.hs diff --git a/about.hamlet b/old/about.hamlet similarity index 100% rename from about.hamlet rename to old/about.hamlet diff --git a/footer.hamlet b/old/footer.hamlet similarity index 100% rename from footer.hamlet rename to old/footer.hamlet diff --git a/format.hamlet b/old/format.hamlet similarity index 100% rename from format.hamlet rename to old/format.hamlet diff --git a/header.hamlet b/old/header.hamlet similarity index 100% rename from header.hamlet rename to old/header.hamlet diff --git a/style.lucius b/old/style.lucius similarity index 100% rename from style.lucius rename to old/style.lucius diff --git a/p7.cabal b/p7.cabal new file mode 100644 index 0000000..c3f829b --- /dev/null +++ b/p7.cabal @@ -0,0 +1,28 @@ +-- Initial p7.cabal generated by cabal init. For further documentation, +-- see http://haskell.org/cabal/users-guide/ + +name: p7 +version: 0.2.0.0 +synopsis: Post-Netrunner Rotation +-- description: +homepage: anr.p7.co.nz +license: BSD3 +license-file: LICENSE +author: Shaun Kerr +maintainer: s@p7.co.nz +-- copyright: +category: Web +build-type: Simple +extra-source-files: ChangeLog.md +cabal-version: >=1.10 + +executable site + main-is: site.hs + -- other-modules: + -- other-extensions: + build-depends: base + , hakyll + , filepath + , hakyll-favicon + -- hs-source-dirs: + default-language: Haskell2010 diff --git a/p7.nix b/p7.nix new file mode 100644 index 0000000..4972b82 --- /dev/null +++ b/p7.nix @@ -0,0 +1,23 @@ +let + + rev = "d7c0d9a7f83b7f80e08888c040ea8a2ab7ca5f71"; + np = builtins.fetchTarball { + url = "https://github.com/nixos/nixpkgs/archive/${rev}.tar.gz"; + sha256 = "1i5a0si7m80w1a987crm9xmbin35jpmdcsk3113xxp9xcw0v23rn"; + }; + config = { + packageOverrides = pkgs: rec { + haskellPackages = pkgs.haskellPackages.override { + overrides = haskellPackagesNew: haskellPackagesOld: rec { + p7 = + haskellPackagesNew.callPackage ./default.nix { }; + }; + }; + }; + }; + pkgs = import np { inherit config; }; +in + rec { + inherit pkgs; + p7 = pkgs.haskellPackages.p7; + } diff --git a/result b/result new file mode 120000 index 0000000..ceecd33 --- /dev/null +++ b/result @@ -0,0 +1 @@ +/nix/store/wxlyv7d5m0gln0nwvdzmc1fnnnz5amfi-p7-0.2.0.0 \ No newline at end of file diff --git a/rf.nix b/rf.nix new file mode 100644 index 0000000..2fa221c --- /dev/null +++ b/rf.nix @@ -0,0 +1,23 @@ +let + + rev = "d7c0d9a7f83b7f80e08888c040ea8a2ab7ca5f71"; + np = builtins.fetchTarball { + url = "https://github.com/nixos/nixpkgs/archive/${rev}.tar.gz"; + sha256 = "1i5a0si7m80w1a987crm9xmbin35jpmdcsk3113xxp9xcw0v23rn"; + }; + config = { + packageOverrides = pkgs: rec { + haskellPackages = pkgs.haskellPackages.override { + overrides = haskellPackagesNew: haskellPackagesOld: rec { + rf = + haskellPackagesNew.callPackage ./default.nix { }; + }; + }; + }; + }; + pkgs = import np { inherit config; }; +in + rec { + inherit pkgs; + rf = pkgs.haskellPackages.rf; + } diff --git a/robots.txt b/robots.txt new file mode 100644 index 0000000..eb05362 --- /dev/null +++ b/robots.txt @@ -0,0 +1,2 @@ +User-agent: * +Disallow: diff --git a/shell.nix b/shell.nix new file mode 100644 index 0000000..2f2eb5f --- /dev/null +++ b/shell.nix @@ -0,0 +1,5 @@ +let + stuff = import ./rf.nix; +in stuff.rf.env.overrideAttrs (drv: { + buildInputs = drv.buildInputs ++ [ stuff.pkgs.imagemagick ]; +}) diff --git a/site.hs b/site.hs new file mode 100644 index 0000000..462ba75 --- /dev/null +++ b/site.hs @@ -0,0 +1,79 @@ +{-# LANGUAGE OverloadedStrings #-} + +import Data.Monoid ((<>)) +import Data.List (sortBy,isSuffixOf) +import Data.Typeable +import GHC.IO.Encoding +import Hakyll +import Hakyll.Favicon (faviconsRules, faviconsField) +import System.FilePath.Posix (takeBaseName,takeDirectory,()) +import Timestamp + +main :: IO () +main = do + + -- Set the encoding so w3c doesnt complain + setLocaleEncoding utf8 + hakyll $ do + + -- Generate the favicons + --faviconsRules "icons/favicon.svg" + + -- Straight copying of files + match (fromList ["humans.txt", "robots.txt"]) $ do + route idRoute + compile copyFileCompiler + + -- CSS needs to be compiled and minified + match "css/*" $ do + route idRoute + compile compressCssCompiler + + -- Load pages that need to be formatted + match (fromList ["description.md", "about.md", "contact.md"]) $ do + route $ cleanRoute + compile $ pandocCompiler + >>= loadAndApplyTemplate "templates/default.html" ctx + >>= relativizeUrls + >>= cleanIndexUrls + + -- Compile the templates + match "templates/*" $ compile templateBodyCompiler + +-- Our default context for pages +ctx :: Context String +ctx = defaultContext <> + faviconsField + +-- Default context for format +fmtCtx :: Integer -> Integer -> String -> Context String +fmtCtx m y u = + (titleField mTitle) <> + (field "nrdbUrl" u) <> + (listFieldWith + ctx + where + mTitle = "Format for " ++ (showMonth m) ++ " " ++ y + +-- Functions to convert pages to /name/index.html +cleanRoute :: Routes +cleanRoute = customRoute createIndexRoute + where + createIndexRoute ident = + takeDirectory p takeBaseName p "index.html" + where p = toFilePath ident + +cleanIndexUrls :: Item String -> Compiler (Item String) +cleanIndexUrls = return . fmap (withUrls cleanIndex) + +cleanIndexHtmls :: Item String -> Compiler (Item String) +cleanIndexHtmls = return . fmap (replaceAll pattern replacement) + where + pattern = "/index.html" + replacement = const "/" + +cleanIndex :: String -> String +cleanIndex url + | idx `isSuffixOf` url = take (length url - length idx) url + | otherwise = url + where idx = "index.html" diff --git a/templates/archive.html b/templates/archive.html new file mode 100644 index 0000000..f32ee52 --- /dev/null +++ b/templates/archive.html @@ -0,0 +1,2 @@ +$body$ +$partial("templates/post-list.html")$ diff --git a/templates/default.html b/templates/default.html new file mode 100644 index 0000000..866e7bb --- /dev/null +++ b/templates/default.html @@ -0,0 +1,34 @@ + + + + + + + + rf - $title$ + + $favicons$ + + +
+ + +
+ +
+

$title$

+ $body$ +
+ + + + diff --git a/templates/format.html b/templates/format.html new file mode 100644 index 0000000..b8d14a9 --- /dev/null +++ b/templates/format.html @@ -0,0 +1,37 @@ +

$title$: $nrdbUrl$

+ +

Evergreen

+ + +

Big Boxes

+ + +

Datapacks

+ + +

Upcoming Changes

+ +$if(ucin)$ + + +$else$ +

Coming Soon!

+$endif$ diff --git a/templates/index.html b/templates/index.html new file mode 100644 index 0000000..f063be0 --- /dev/null +++ b/templates/index.html @@ -0,0 +1,4 @@ +$body$ +$partial("templates/post-list.html")$ + +

...or for a chance to nab seven agenda points, check the archives.

diff --git a/templates/post-list.html b/templates/post-list.html new file mode 100644 index 0000000..de63a13 --- /dev/null +++ b/templates/post-list.html @@ -0,0 +1,7 @@ + diff --git a/templates/post.html b/templates/post.html new file mode 100644 index 0000000..732149b --- /dev/null +++ b/templates/post.html @@ -0,0 +1,11 @@ +
+
+ Posted on $date$ + $if(author)$ + by $author$ + $endif$ +
+
+ $body$ +
+