summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlos Sosa <gnusosa@gnusosa.net>2018-08-28 00:22:45 -0700
committerCarlos Sosa <gnusosa@gnusosa.net>2018-08-28 00:22:45 -0700
commite48a9d406fbd5489dc25bcdd92b1df2b0c862105 (patch)
treeac11a023e3e1f0c03514bf6d918de4270036f504
Initial commit
-rwxr-xr-xcss/fonts.css4
-rwxr-xr-xcss/main.css248
-rwxr-xr-xcss/notebook.css48
-rwxr-xr-xcss/style.css456
-rwxr-xr-xcss/syntax.css60
-rw-r--r--images/haskell-logo.pngbin0 -> 5674 bytes
-rw-r--r--index.html16
-rw-r--r--log/2015-08-12-spqr.markdown59
-rw-r--r--log/2015-10-07-rosa-rosa-rosam.markdown46
-rw-r--r--log/2015-11-28-carpe-diem.markdown50
-rw-r--r--log/2015-12-07-tu-quoque.markdown58
-rw-r--r--mysite.cabal11
-rw-r--r--site.hs71
-rw-r--r--stack.yaml65
-rw-r--r--templates/archive.html1
-rw-r--r--templates/default.html33
-rw-r--r--templates/post-list.html8
-rw-r--r--templates/post.html41
18 files changed, 1275 insertions, 0 deletions
diff --git a/css/fonts.css b/css/fonts.css
new file mode 100755
index 0000000..eddce04
--- /dev/null
+++ b/css/fonts.css
@@ -0,0 +1,4 @@
+@font-face {
+ font-family: 'EB Garamond';
+ src: url('fonts/EBGaramond.otf');
+}
diff --git a/css/main.css b/css/main.css
new file mode 100755
index 0000000..84647e4
--- /dev/null
+++ b/css/main.css
@@ -0,0 +1,248 @@
+*, *:after, *:before {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+body {
+ font-family: "EB Garamond", Garamond, Baskerville, "Baskerville Old Face", "Hoefler Text", "Times New Roman", serif;
+ margin: 0px;
+ font-size: 16px;
+ text-rendering: optimizeLegibility;
+ font-feature-settings: "kern";
+ -webkit-font-feature-settings: "kern";
+ -moz-font-feature-settings: "kern";
+ -moz-font-feature-settings: "kern=1";
+}
+
+h1 {
+ font-size: 25px;
+ padding-bottom: 0px;
+ margin: 0 0 0px 0;
+ font-weight: normal;
+}
+
+h2 {
+ padding-top: 9px;
+ border-top: 1px solid #bbb;
+ font-size: 20px;
+ margin-top: 0;
+ margin-bottom: 0;
+ padding-bottom: 3px;
+ font-weight: normal;
+}
+
+h3 {
+ border-top: 1px solid #bbb;
+ padding-top: 10px;
+ font-size: 18px;
+ margin: 0 0 2px 0;
+ font-weight: normal;
+}
+
+p {
+ margin-top: 0;
+}
+
+.about {
+ margin-top: 17px;
+}
+
+a { color: black; text-decoration:underline; }
+a:visited { }
+a:hover { text-decoration: none; }
+
+h1 a { color: black; text-decoration: none; }
+
+h3 a { text-decoration:none; }
+h3 a:hover { text-decoration:underline; }
+
+ul { list-style: none; margin: -2px 0 0 0; padding: 0; }
+li { padding: 2px 0 2px 0; color: #888; }
+
+li a { text-decoration: none; }
+li a:visited { text-decoration: none; }
+li a:hover { text-decoration: underline; }
+
+.project {
+ margin-top: 0;
+ padding-top: 0;
+ width: 320px;
+ position: relative;
+ margin-bottom: 0;
+}
+
+.project p {
+ margin-bottom: 0;
+}
+
+.project h2 {
+ margin-bottom: 0;
+}
+
+.divider {
+ margin-left: auto;
+ margin-right: auto;
+ width: 20px;
+}
+
+.project .links {
+ padding-bottom: 5px;
+}
+
+.content {
+ padding: 5px;
+}
+
+[class*='col-'] {
+ float: left;
+ padding-right: 20px;
+}
+
+[class*='col-']:last-of-type {
+ padding-right: 0px;
+}
+
+.grid {
+ max-width: 940px;
+ min-width: 940px;
+ margin: 0 auto;
+ overflow: hidden;
+}
+
+.grid:after {
+ content: "";
+ display: table;
+ clear: both;
+}
+
+.grid-pad {
+ padding: 10px 0 0px 20px;
+}
+
+.grid-pad > [class*='col-']:last-of-type {
+ padding-right: 20px;
+}
+
+.push-right {
+ float: right;
+}
+
+/* Content Columns */
+
+.col-1-1 {
+ width: 100%;
+}
+.col-2-3, .col-8-12 {
+ width: 66.66%;
+}
+
+.col-1-2, .col-6-12 {
+ width: 50%;
+}
+
+.col-1-3, .col-4-12 {
+ width: 33.33%;
+}
+
+.col-4point5-12 {
+ width: 37.5%;
+}
+
+.col-1-4, .col-3-12 {
+ width: 25%;
+}
+
+.col-1-5 {
+ width: 20%;
+}
+
+.col-1-6, .col-2-12 {
+ width: 16.667%;
+}
+
+.col-1-7 {
+ width: 14.28%;
+}
+
+.col-1-8 {
+ width: 12.5%;
+}
+
+.col-1-9 {
+ width: 11.1%;
+}
+
+.col-1-10 {
+ width: 10%;
+}
+
+.col-1-11 {
+ width: 9.09%;
+}
+
+.col-1-12 {
+ width: 8.33%
+}
+
+/* Layout Columns */
+
+.col-11-12 {
+ width: 91.66%
+}
+
+.col-10-12 {
+ width: 83.333%;
+}
+
+.col-9-12 {
+ width: 75%;
+}
+
+.col-5-12 {
+ width: 41.66%;
+}
+
+.col-7-12 {
+ width: 58.33%
+}
+
+@media handheld, only screen and (max-width: 767px) {
+ body {
+ font-size: 17px;
+ }
+
+ .grid {
+ min-width: 320px;
+ max-width: 320px;
+ margin-left: 0;
+ margin-right: 0;
+ padding-left: 0;
+ padding-right: 0;
+ }
+
+ .col-3-12.left-shunt {
+ width: 0;
+ height: 0;
+ padding: 0;
+ margin: 0;
+ }
+
+ h1 {
+ margin-bottom: 0;
+ }
+
+ .project {
+ height: auto;
+ width: 310px;
+ }
+
+ [class*='col-'] {
+ width: auto;
+ float: none;
+ margin-left: 0px;
+ margin-right: 0px;
+ padding-left: 5px;
+ padding-right: 5px;
+ }
+}
diff --git a/css/notebook.css b/css/notebook.css
new file mode 100755
index 0000000..5816446
--- /dev/null
+++ b/css/notebook.css
@@ -0,0 +1,48 @@
+body {
+ max-width: 60em;
+ margin:0 auto;
+}
+
+pre.example {
+ text-align:left;
+ border: 1pt solid #A0A0A0;
+ background-color: #F0F0F0;
+ padding: 1ch;
+ display: block;
+ clear: right;
+}
+
+div.note {
+ border: 1pt solid #A0A0A0;
+ padding: 1ch;
+ display: block;
+}
+
+p {
+ margin-left: auto;
+ margin-right: auto;
+}
+
+pre {
+ border: 1pt solid #AEBDCC;
+ background-color: #F3F5F7;
+ padding: 5pt;
+ font-family: monospace;
+ font-size: small;
+ overflow:auto;
+}
+
+h1 {
+ font-size: x-large;
+}
+
+h2 {
+ font-size: large;
+}
+
+html { font-family: serif;
+}
+
+a:link, a:visited {
+ color: navy;
+} \ No newline at end of file
diff --git a/css/style.css b/css/style.css
new file mode 100755
index 0000000..6ce4527
--- /dev/null
+++ b/css/style.css
@@ -0,0 +1,456 @@
+/*
+Theme Name: Journalist
+Theme URI: http://lucianmarin.com/
+Description: Journalist is a smart, minimal theme designed for professional journalists.
+Version: 1.9
+Author: <a href="http://lucianmarin.com/">Lucian E. Marin</a>
+Tags: white, two columns, fixed width, light, minimal
+For the WordPress community (GPL), enjoy it guys.
+by Lucian E. Marin - lucianmarin.com
+*/
+
+hr { color:#aaa; background-color:#aaa; height:1px; border:0; }
+
+body {
+ font-family: "EB Garamond", Garamond, Baskerville, "Baskerville Old Face", "Hoefler Text", "Times New Roman", serif;
+ font-size: 1em;
+ color:#333;
+ margin:0 5px 0 5px;
+ text-rendering: optimizeLegibility;
+ font-feature-settings: "kern";
+ -webkit-font-feature-settings: "kern";
+ -moz-font-feature-settings: "kern";
+ -moz-font-feature-settings: "kern=1";
+ font-kerning: normal;
+}
+
+code {
+ font-family: "Droid Sans Mono";
+ font-size: 0.9em;
+ background-color: #F3F5F7
+
+}
+
+.about-link {
+ float: right;
+ margin-top: 30px;
+}
+
+pre {
+
+ border-top:1px solid #ddd;
+ border-bottom:1px solid #ddd;
+ padding-top:15px;
+ padding-left:-50px;
+ margin-bottom:15px;
+ padding: 1em 0;
+ font-family: "Droid Sans Mono";
+ font-size: .8em;
+}
+
+blockquote { font-family: "Droid Sans Mono"; }
+
+.prettyprint {
+ font-family: "Droid Sans Mono";
+ line-height: 1.2em;
+ font-size: 0.85em;
+}
+
+sup {
+ line-height:0;
+ font-size:9px;
+}
+
+
+
+.post-separator {
+ text-align:center;
+ margin-bottom:5px;
+ font-weight:bold;
+}
+
+* {
+padding:0;
+margin:0;
+text-align:left;
+}
+
+a {
+color:#444;
+}
+
+a:hover {
+color:#444;
+text-decoration:none;
+border-bottom: none;
+}
+
+#container {
+width:600px;
+margin:0 auto;
+position:relative;
+padding: 0 10px 0 10px;
+}
+
+#container h1 {
+font-size:1.9em;
+font-weight:normal;
+letter-spacing:0px;
+float: left;
+margin:0 0 10px 0;
+padding:15px 0 1px 0;
+}
+
+#container h1 a {
+ text-decoration:none;
+ border:none;
+}
+
+#container h1 a:hover {
+
+}
+
+#bubble {
+top:66px;
+position:absolute;
+display:block;
+height:28px;
+}
+
+#content {
+float:left;
+width:600px;
+}
+
+#content h2 {
+font-weight:normal;
+font-size:1.6em;
+line-height:34px;
+margin:0px 0px 10px -1000px;
+padding:5px 5px 5px 1000px;
+border-bottom:1px solid #888;
+}
+
+#content .edit_link {
+ font-size:9px;
+}
+
+#content h2 a {
+color:#333;
+text-decoration:none;
+border-bottom: none;
+
+}
+
+#content h2 a:hover {
+
+}
+
+#content h2.archive {
+font-weight:normal;
+color:#1c1c1c;
+padding:0;
+margin:5px 0 20px 0;
+border:none;
+text-align:left;
+}
+
+.navigation {
+padding:5px 10px 0 1000px;
+margin:0 0 20px -1000px;
+border-top:#888 1px solid;
+}
+
+.navigation a {
+color:#555;
+text-decoration:none;
+}
+
+.navigation a:hover {
+color:#555;
+text-decoration:none;
+}
+
+.main h3 {
+font-size:1.4em;
+font-weight:normal;
+margin:0 0 15px 0;
+}
+
+.main h4 {
+font-size:1.2em;
+font-weight:normal;
+margin:0 0 15px 0;
+}
+
+.main a img {
+padding:2px;
+border:#0085b5 2px solid;
+}
+
+.main a:hover img {
+padding:2px;
+border:#ca0002 2px solid;
+}
+
+.main p {
+margin:0 0 15px 0;
+text-align:justify;
+}
+
+.main ol {
+line-height:18px;
+margin:0 0 15px 30px;
+}
+
+.main ul {
+line-height:18px;
+margin:0 0 15px 30px;
+}
+
+.main li {
+margin:0 0 5px 0;
+}
+
+.signature {
+float:left;
+padding:0 15px 0 0;
+border-right:#bbb 1px solid;
+width:220px;
+}
+
+.about { padding: 39px 0 16.5px 0; }
+
+#author h3 {
+margin:5px 0 5px 0;
+}
+
+#searchform {
+margin:15px 0 0 0;
+}
+
+#searchform input {
+background:#222;
+font-size:11px;
+margin:2px 0;
+padding:1px 4px 2px 4px;
+border:#888 1px solid;
+color:#eee;
+}
+
+#searchform input:hover {
+background:#333;
+border:#999 1px solid;
+color:#fff;
+cursor:pointer;
+}
+
+#searchform #s {
+background:#f6f6f6;
+font-size:11px;
+margin:2px 0;
+padding:2px 4px;
+border:#aaa 1px solid;
+color:#000;
+}
+
+#searchform #s:hover {
+cursor:text;
+}
+
+input.searchfield {
+background:#f6f6f6;
+font-size:11px;
+display:inline;
+margin:5px 0 8px 0;
+padding:2px 4px;
+border:#aaa 1px solid;
+color:#000;
+size:20;
+}
+
+input.searchfield:hover {
+background:#eee;
+color:#000;
+}
+
+input.submit {
+background:#222;
+font-size:11px;
+margin:0 0 10px 0;
+padding:1px 4px 2px 4px;
+border:#888 1px solid;
+color:#eee;
+}
+
+input.submit:hover {
+background:#333;
+cursor:pointer;
+border:#999 1px solid;
+color:#fff;
+}
+
+input.subcom {
+background:#eee;
+font-size:11px;
+margin:0 0 10px 0;
+padding:1px 4px 2px 4px;
+border:#888 1px solid;
+color:#000;
+}
+
+input.subcom:hover {
+background:#222;
+cursor:pointer;
+border:#888 1px solid;
+color:#eee;
+}
+
+textarea {
+background:#f6f6f6;
+font-size:13px;
+width:400px;
+padding:2px 4px;
+border:#aaa 1px solid;
+color:#000;
+}
+
+.postinput small {
+font-size:11px;
+margin:0 0 0 5px;
+}
+
+p.logged {
+font-size:13px;
+}
+
+h3.reply {
+font-size:15px;
+margin:0 0 10px 0;
+}
+
+.nocomments {
+margin:0 0 30px 0;
+}
+
+blockquote {
+background:url(images/quote.gif) no-repeat top left;
+padding:0 0 0 60px;
+min-height:50px;
+}
+
+#footer {
+background:#eee;
+font-size:11px;
+color:#555;
+margin:0 auto;
+padding:10px 0 10px 10px;
+text-align:center;
+position:relative;
+border-top:#bbb 1px solid;
+border-bottom:#222 6px solid;
+}
+
+#footer a {
+color:#555;
+font-weight:bold;
+text-decoration:none;
+}
+
+#footer a:hover {
+color:#333;
+text-decoration:none;
+}
+
+.clear {
+clear:both;
+}
+
+.warning p {
+background:url(images/warning.gif) no-repeat left;
+height:160px;
+padding:20px 0 0 90px;
+font-size:20px;
+margin:0 0 0 10px;
+}
+
+input:focus, textarea:focus{
+background-color:#ffc;
+}
+
+abbr {
+border:none;
+}
+
+.aligncenter {
+display: block;
+margin-left: auto;
+margin-right: auto;
+}
+
+.alignleft {
+float:left;
+}
+
+.alignright {
+float:right;
+}
+
+/* self-clear floats */
+
+.group:after {
+content: ".";
+display: block;
+height: 0;
+clear: both;
+visibility: hidden;
+}
+
+/* IE Hacks */
+
+*html #bubble {
+display:none;
+}
+
+*html #bubble p {
+display:none;
+}
+
+* html .group,
+* html #nav ul li a {
+height: 1%;
+}
+
+*:first-child+html .group {
+min-height: 1px;
+}
+
+* html #nav ul li a {
+display: inline;
+}
+
+/* resize videos to screen size */
+.video-container {
+ position: relative;
+ padding-bottom: 56.25%;
+ padding-top: 30px; height: 0; overflow: hidden;
+}
+.video-container iframe,
+.video-container object,
+.video-container embed {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+}
+
+@media handheld, only screen and (max-width: 767px) {
+ #container {
+ width:350px;
+ }
+
+ #content {
+ width:350px;
+ }
+}
diff --git a/css/syntax.css b/css/syntax.css
new file mode 100755
index 0000000..2774b76
--- /dev/null
+++ b/css/syntax.css
@@ -0,0 +1,60 @@
+.highlight { background: #ffffff; }
+.highlight .c { color: #999988; font-style: italic } /* Comment */
+.highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */
+.highlight .k { font-weight: bold } /* Keyword */
+.highlight .o { font-weight: bold } /* Operator */
+.highlight .cm { color: #999988; font-style: italic } /* Comment.Multiline */
+.highlight .cp { color: #999999; font-weight: bold } /* Comment.Preproc */
+.highlight .c1 { color: #999988; font-style: italic } /* Comment.Single */
+.highlight .cs { color: #999999; font-weight: bold; font-style: italic } /* Comment.Special */
+.highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */
+.highlight .gd .x { color: #000000; background-color: #ffaaaa } /* Generic.Deleted.Specific */
+.highlight .ge { font-style: italic } /* Generic.Emph */
+.highlight .gr { color: #aa0000 } /* Generic.Error */
+.highlight .gh { color: #999999 } /* Generic.Heading */
+.highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */
+.highlight .gi .x { color: #000000; background-color: #aaffaa } /* Generic.Inserted.Specific */
+.highlight .go { color: #888888 } /* Generic.Output */
+.highlight .gp { color: #555555 } /* Generic.Prompt */
+.highlight .gs { font-weight: bold } /* Generic.Strong */
+.highlight .gu { color: #aaaaaa } /* Generic.Subheading */
+.highlight .gt { color: #aa0000 } /* Generic.Traceback */
+.highlight .kc { font-weight: bold } /* Keyword.Constant */
+.highlight .kd { font-weight: bold } /* Keyword.Declaration */
+.highlight .kp { font-weight: bold } /* Keyword.Pseudo */
+.highlight .kr { font-weight: bold } /* Keyword.Reserved */
+.highlight .kt { color: #445588; font-weight: bold } /* Keyword.Type */
+.highlight .m { color: #009999 } /* Literal.Number */
+.highlight .s { color: #d14 } /* Literal.String */
+.highlight .na { color: #008080 } /* Name.Attribute */
+.highlight .nb { color: #0086B3 } /* Name.Builtin */
+.highlight .nc { color: #445588; font-weight: bold } /* Name.Class */
+.highlight .no { color: #008080 } /* Name.Constant */
+.highlight .ni { color: #800080 } /* Name.Entity */
+.highlight .ne { color: #990000; font-weight: bold } /* Name.Exception */
+.highlight .nf { color: #990000; font-weight: bold } /* Name.Function */
+.highlight .nn { color: #555555 } /* Name.Namespace */
+.highlight .nt { color: #000080 } /* Name.Tag */
+.highlight .nv { color: #008080 } /* Name.Variable */
+.highlight .ow { font-weight: bold } /* Operator.Word */
+.highlight .w { color: #bbbbbb } /* Text.Whitespace */
+.highlight .mf { color: #009999 } /* Literal.Number.Float */
+.highlight .mh { color: #009999 } /* Literal.Number.Hex */
+.highlight .mi { color: #009999 } /* Literal.Number.Integer */
+.highlight .mo { color: #009999 } /* Literal.Number.Oct */
+.highlight .sb { color: #d14 } /* Literal.String.Backtick */
+.highlight .sc { color: #d14 } /* Literal.String.Char */
+.highlight .sd { color: #d14 } /* Literal.String.Doc */
+.highlight .s2 { color: #d14 } /* Literal.String.Double */
+.highlight .se { color: #d14 } /* Literal.String.Escape */
+.highlight .sh { color: #d14 } /* Literal.String.Heredoc */
+.highlight .si { color: #d14 } /* Literal.String.Interpol */
+.highlight .sx { color: #d14 } /* Literal.String.Other */
+.highlight .sr { color: #009926 } /* Literal.String.Regex */
+.highlight .s1 { color: #d14 } /* Literal.String.Single */
+.highlight .ss { color: #990073 } /* Literal.String.Symbol */
+.highlight .bp { color: #999999 } /* Name.Builtin.Pseudo */
+.highlight .vc { color: #008080 } /* Name.Variable.Class */
+.highlight .vg { color: #008080 } /* Name.Variable.Global */
+.highlight .vi { color: #008080 } /* Name.Variable.Instance */
+.highlight .il { color: #009999 } /* Literal.Number.Integer.Long */
diff --git a/images/haskell-logo.png b/images/haskell-logo.png
new file mode 100644
index 0000000..97c0937
--- /dev/null
+++ b/images/haskell-logo.png
Binary files differ
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..c5d4d4b
--- /dev/null
+++ b/index.html
@@ -0,0 +1,16 @@
+---
+title: Home
+---
+
+<h2>Welcome</h2>
+
+<img src="/images/haskell-logo.png" style="float: right; margin: 10px;" />
+
+<p>Welcome to my blog!</p>
+
+<p>I've reproduced a list of recent posts here for your reading pleasure:</p>
+
+<h2>Posts</h2>
+$partial("templates/post-list.html")$
+
+<p>…or you can find more in the <a href="/log">archives</a>.</p>
diff --git a/log/2015-08-12-spqr.markdown b/log/2015-08-12-spqr.markdown
new file mode 100644
index 0000000..3704aa5
--- /dev/null
+++ b/log/2015-08-12-spqr.markdown
@@ -0,0 +1,59 @@
+---
+title: S.P.Q.R.
+---
+
+Mauris in lorem nisl. Maecenas tempus facilisis ante, eget viverra nisl
+tincidunt et. Donec turpis lectus, mattis ac malesuada a, accumsan eu libero.
+Morbi condimentum, tortor et tincidunt ullamcorper, sem quam pretium nulla, id
+convallis lectus libero nec turpis. Proin dapibus nisi id est sodales nec
+ultrices tortor pellentesque. Vivamus vel nisi ac lacus sollicitudin vulputate
+ac ut ligula. Nullam feugiat risus eget eros gravida in molestie sapien euismod.
+Nunc sed hendrerit orci. Nulla mollis consequat lorem ac blandit. Ut et turpis
+mauris. Nulla est odio, posuere id ullamcorper sit amet, tincidunt vel justo.
+Curabitur placerat tincidunt varius. Nulla vulputate, ipsum eu consectetur
+mollis, dui nibh aliquam neque, at ultricies leo ligula et arcu. Proin et mi
+eget tellus sodales lobortis. Sed tempor, urna vel pulvinar faucibus, lectus
+urna vehicula ante, at facilisis dolor odio at lorem. Morbi vehicula euismod
+urna, et imperdiet urna ornare vitae.
+
+Sed tincidunt sollicitudin ultrices. In hac habitasse platea dictumst. Morbi
+ligula lectus, egestas at ultricies nec, fringilla et tellus. Duis urna lorem,
+bibendum a ornare sed, euismod sed nunc. Aliquam tempor massa at velit fringilla
+fringilla. Praesent sit amet tempor felis. Maecenas id felis ac velit aliquam
+tempor a sit amet orci. Nunc placerat nulla pellentesque sem commodo cursus.
+Praesent quis sapien orci, quis ultricies augue. Nam vestibulum sem non augue
+semper tincidunt pellentesque ipsum volutpat. Duis congue, nunc a aliquam
+luctus, quam ante convallis nisi, ac pellentesque lacus orci vel turpis. Cum
+sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
+mus. Suspendisse hendrerit nisl eu felis sagittis faucibus. Nunc eu congue
+lorem. Quisque non nibh nisi, et ultrices massa. Sed vitae erat vitae nulla
+pellentesque fermentum.
+
+Ut diam nunc, consectetur ut ultrices eu, iaculis sed felis. Sed lacinia, odio
+et accumsan luctus, arcu ipsum accumsan erat, sit amet malesuada libero lacus et
+velit. Donec accumsan tristique tristique. Proin a metus magna, vitae mattis
+nisl. Integer a libero ipsum. Mauris faucibus eleifend metus id sodales. Morbi
+ornare, nibh nec facilisis imperdiet, turpis sem commodo lorem, id commodo
+mauris metus vitae justo. Etiam at pellentesque tortor. Proin mollis accumsan
+ligula, nec tempus augue auctor quis. Nulla lacinia, mi quis lobortis auctor,
+nisi diam posuere dui, pulvinar feugiat dui libero eget quam. Fusce eu risus
+nunc, a consectetur orci. Class aptent taciti sociosqu ad litora torquent per
+conubia nostra, per inceptos himenaeos. Maecenas venenatis aliquet orci, a
+ultricies sem facilisis eu. Donec dolor purus, porta condimentum convallis nec,
+dignissim nec libero.
+
+Etiam rutrum ultricies dui, et interdum metus elementum et. Nulla sapien nunc,
+interdum tristique porttitor in, laoreet vitae mi. Ut vehicula auctor mauris sit
+amet bibendum. Phasellus adipiscing mattis libero, eget adipiscing erat
+dignissim at. Vivamus convallis malesuada metus nec cursus. Ut cursus, lorem
+eleifend sollicitudin condimentum, felis tortor sodales augue, ac tempus lacus
+ipsum vitae quam. Vestibulum vitae lacus non tortor vehicula iaculis faucibus
+quis massa.
+
+Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
+mus. Duis malesuada neque nec ante porttitor accumsan. Suspendisse potenti.
+Aliquam in lacus magna, imperdiet laoreet lectus. Praesent id diam nec ante
+commodo rhoncus nec vel augue. Pellentesque tortor massa, dignissim ut sagittis
+sed, hendrerit vitae nunc. Nam gravida, urna vitae hendrerit rutrum, felis augue
+vulputate tortor, ut varius velit libero nec lectus. In adipiscing massa in est
+scelerisque ullamcorper. Vivamus in nisi metus.
diff --git a/log/2015-10-07-rosa-rosa-rosam.markdown b/log/2015-10-07-rosa-rosa-rosam.markdown
new file mode 100644
index 0000000..bbda8fd
--- /dev/null
+++ b/log/2015-10-07-rosa-rosa-rosam.markdown
@@ -0,0 +1,46 @@
+---
+title: Rosa Rosa Rosam
+author: Ovidius
+---
+
+Suspendisse pharetra ullamcorper sem et auctor. Suspendisse vitae tellus eu
+turpis dignissim gravida ut ut tortor. Cum sociis natoque penatibus et magnis
+dis parturient montes, nascetur ridiculus mus. Morbi aliquam sapien quis nisl
+sodales non aliquet nisl iaculis. Curabitur fermentum orci vel sapien
+pellentesque id condimentum metus vehicula. Curabitur turpis purus, scelerisque
+at interdum quis, placerat sit amet tortor. Aliquam erat volutpat.
+
+Integer posuere felis non arcu suscipit ullamcorper. Nam tempus risus venenatis
+orci sagittis eu aliquam ante tincidunt. Aenean vehicula ipsum id sapien
+tincidunt commodo. Aliquam erat volutpat. Curabitur vehicula libero ac turpis
+cursus consectetur. Praesent posuere egestas purus et dapibus. Mauris egestas,
+lectus vitae scelerisque ultricies, metus lorem tempor nisi, sed vehicula tortor
+mauris nec urna. Quisque urna tellus, facilisis at mollis eget, adipiscing in
+nisl. Proin quam arcu, euismod et imperdiet sed, ultricies sed orci.
+
+Nulla malesuada sem eget lectus scelerisque nec rhoncus metus interdum. In dui
+felis, rhoncus id scelerisque eget, vulputate id sem. Nulla facilisi. Vestibulum
+eleifend, metus dignissim lacinia ornare, magna nulla vehicula nisi, sed
+molestie mauris ipsum vel turpis. Class aptent taciti sociosqu ad litora
+torquent per conubia nostra, per inceptos himenaeos. Nulla urna leo, vehicula
+eget dignissim a, hendrerit ut risus. Fusce ultricies elementum placerat. Nam at
+dolor sed nisi mollis sollicitudin vitae at urna. Vestibulum iaculis adipiscing
+eros et mollis.
+
+Phasellus ultricies elit eu risus sagittis eu dictum ante ultrices. Nulla
+congue, augue ac placerat tempor, orci mi luctus nisi, at varius ipsum sem sed
+eros. Vivamus eget velit eget felis posuere ornare. In sed metus non est iaculis
+facilisis dapibus sit amet enim. Aliquam viverra tortor eget neque volutpat in
+auctor urna rutrum. Aliquam ligula augue, congue sit amet rutrum in, semper vel
+nulla. Sed tempus porttitor faucibus. Donec cursus sodales nulla, quis lacinia
+mi vehicula vel. Sed nec purus orci. Nam leo sapien, rutrum a ultrices quis,
+placerat vel ligula. Donec massa quam, pellentesque et molestie nec, hendrerit
+id mauris. In hac habitasse platea dictumst. Cras quis quam sem. Curabitur in
+arcu diam, in interdum mauris.
+
+Proin lorem sapien, iaculis et faucibus nec, dictum sed nunc. Pellentesque in
+purus justo. Vestibulum facilisis rutrum nisi, a egestas nunc suscipit sed. Ut
+quis tortor a arcu bibendum placerat non sed ante. Praesent orci sem, posuere
+sit amet cursus molestie, volutpat ut purus. Curabitur aliquam, purus in
+pharetra viverra, lorem leo aliquam tellus, vel consequat felis neque et mauris.
+Aliquam erat volutpat.
diff --git a/log/2015-11-28-carpe-diem.markdown b/log/2015-11-28-carpe-diem.markdown
new file mode 100644
index 0000000..bd115da
--- /dev/null
+++ b/log/2015-11-28-carpe-diem.markdown
@@ -0,0 +1,50 @@
+---
+title: Carpe Diem
+---
+
+Fusce tortor quam, egestas in posuere quis, porttitor vel turpis. Donec
+vulputate porttitor augue at rhoncus. Proin iaculis consectetur sagittis.
+Curabitur venenatis turpis sit amet purus tristique nec posuere risus laoreet.
+Nullam nisi sem, dapibus id semper id, egestas vel arcu. Morbi porttitor ipsum
+placerat erat consequat sed consequat purus feugiat. Donec auctor elit ut risus
+mattis facilisis. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
+
+Proin vulputate sapien facilisis leo ornare pulvinar. Fusce tempus massa a risus
+semper iaculis. Suspendisse sollicitudin posuere nunc, sit amet rutrum leo
+facilisis mattis. Sed ornare auctor dui, vitae rutrum neque auctor sit amet.
+Proin ac dui magna. Mauris vehicula interdum augue, nec ultrices libero egestas
+quis. Nunc convallis euismod ipsum, id sollicitudin orci consequat ac. Fusce
+bibendum congue libero, in rutrum nulla congue non. Cras sit amet risus tortor,
+eu pellentesque dui. Phasellus euismod enim non nibh sodales quis consectetur
+lorem laoreet. Vivamus a egestas quam. Curabitur in tortor augue, vitae varius
+tellus. Integer varius, elit ac gravida suscipit, eros erat pellentesque nisi,
+et tristique augue odio id nulla. Aliquam sit amet nunc vel tellus hendrerit
+tempus ac vel sem.
+
+Aenean tincidunt sollicitudin sapien ut porttitor. Curabitur molestie adipiscing
+lorem vel scelerisque. Donec vitae interdum est. Proin rutrum vulputate
+faucibus. Suspendisse sit amet felis odio, non volutpat ante. Sed eu lectus
+quam. Curabitur tristique rhoncus est, vel commodo tortor suscipit semper.
+Maecenas feugiat vestibulum nisi id facilisis. Nulla non tincidunt libero.
+Praesent ultrices interdum commodo. Sed euismod nisl auctor leo ultrices rutrum.
+Aliquam nibh felis, congue molestie blandit at, bibendum at eros. Aenean
+tincidunt, tortor iaculis placerat sollicitudin, lorem justo tempor diam, et
+posuere sapien leo et magna. Quisque vel aliquam mauris.
+
+Proin varius tempus fermentum. Cum sociis natoque penatibus et magnis dis
+parturient montes, nascetur ridiculus mus. Sed tincidunt nunc id magna
+adipiscing non sollicitudin turpis tempor. Etiam vel elit ipsum, quis euismod
+velit. Quisque elementum magna vitae quam venenatis lacinia. Sed at arcu ipsum.
+Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos
+himenaeos. Donec ut lorem ac sapien cursus lacinia sit amet mollis dolor.
+Vivamus tempus odio nec magna faucibus sed hendrerit lorem tempor.
+
+Vestibulum eu nisi arcu. Curabitur nisi risus, fermentum ut lacinia ut, interdum
+nec magna. Nunc aliquet gravida massa, eu aliquam lorem faucibus at. Sed
+sollicitudin volutpat velit id tempor. In nibh justo, pharetra et pretium
+dignissim, tempus in turpis. Phasellus eget lobortis nisl. Phasellus sed
+fermentum diam. Nam tempus pharetra odio, quis congue eros imperdiet eu. Aliquam
+dui eros, hendrerit et vulputate vel, porta eu eros. Nullam nisi dui, commodo
+eget pharetra ut, ornare sit amet nunc. Fusce vel neque urna. Maecenas nulla
+ante, egestas at consequat quis, fermentum a enim. Aliquam id tristique urna.
+Integer augue justo, scelerisque et consectetur id, rhoncus eget enim.
diff --git a/log/2015-12-07-tu-quoque.markdown b/log/2015-12-07-tu-quoque.markdown
new file mode 100644
index 0000000..bdf2ea4
--- /dev/null
+++ b/log/2015-12-07-tu-quoque.markdown
@@ -0,0 +1,58 @@
+---
+title: Tu Quoque
+author: Julius
+---
+
+Vestibulum leo turpis, dignissim quis ultrices sit amet, iaculis ac ligula.
+Pellentesque tristique, velit eget scelerisque scelerisque, est dolor ultrices
+arcu, quis ullamcorper justo arcu luctus mauris. Integer congue molestie nisi id
+posuere. Fusce pellentesque gravida tempus. Integer viverra tortor nec eros
+mollis quis convallis sem laoreet. Nulla id libero ac erat varius laoreet. Proin
+sed est est. Curabitur lacinia fermentum lorem, elementum malesuada ipsum
+malesuada ut. Donec suscipit elit id leo vehicula mattis non sed leo. Morbi
+varius eleifend varius. Nulla vestibulum, neque vitae aliquam eleifend, nisi
+tellus placerat nunc, quis suscipit elit turpis eu tortor. Etiam euismod
+convallis lectus quis venenatis. Phasellus laoreet magna in nibh cursus eu
+egestas nulla convallis. Aliquam vel ullamcorper risus. Fusce dictum, massa id
+consequat viverra, nulla ante tristique est, a faucibus nisi enim nec dui. Donec
+metus ligula, condimentum at porttitor eget, lobortis at quam.
+
+Aenean vel libero in magna ultricies congue in a odio. Donec faucibus rutrum
+ornare. Fusce dictum eleifend fermentum. Vestibulum vel nibh a metus porttitor
+rhoncus. Pellentesque id quam neque, eget molestie arcu. Integer in elit vel
+neque viverra ultricies in eget massa. Nam ut convallis est. Pellentesque eros
+eros, sodales non vehicula et, tincidunt ut odio. Cras suscipit ultrices metus
+sit amet molestie. Fusce enim leo, vehicula sed sodales quis, adipiscing at
+ipsum.
+
+Nunc tempor dignissim enim, sed tincidunt eros bibendum quis. Curabitur et dolor
+augue, id laoreet mi. Nulla cursus felis id dui vehicula vitae ornare lorem
+blandit. Cras eget dui nec odio volutpat pharetra. Fusce hendrerit justo justo,
+vel imperdiet enim. Vivamus elit risus, interdum ultrices accumsan eleifend,
+vestibulum vitae sapien. Integer bibendum ullamcorper tristique. Nulla quis odio
+lectus, quis eleifend augue. Integer a ligula mauris. Aenean et tempus tortor.
+Quisque at tortor mi. Vivamus accumsan feugiat est a blandit. Sed vitae enim ut
+dolor semper sodales. Duis tristique, ante et placerat elementum, nulla tellus
+pellentesque sapien, quis posuere velit mi eget nulla. Sed vestibulum nunc non
+est porttitor ut rutrum nibh semper. Pellentesque habitant morbi tristique
+senectus et netus et malesuada fames ac turpis egestas.
+
+Nulla adipiscing ultricies lobortis. Vivamus iaculis nisl vitae tellus laoreet
+vitae aliquet lacus mollis. Phasellus ut lacus urna, sed sagittis ante. Etiam
+consectetur pretium nisl sed dignissim. Pellentesque convallis, nisl eget
+commodo mollis, sem magna consequat arcu, sed pretium ipsum arcu sit amet neque.
+Aliquam erat volutpat. Morbi sed mi sed urna vestibulum placerat vitae vel
+metus. Fusce ac ante at justo pharetra vehicula. Vivamus vel tortor eget augue
+aliquet aliquet at vel odio. Nunc venenatis, magna quis facilisis fringilla,
+augue tellus varius neque, in vulputate est eros ut tortor. Duis lorem neque,
+aliquam congue posuere id, condimentum non dui. Phasellus ut dui massa,
+porttitor suscipit augue. Praesent quis tellus quam, vel volutpat metus. Vivamus
+enim est, aliquam in imperdiet et, sagittis eu ligula. Vestibulum hendrerit
+placerat orci et aliquet. Cras pharetra, dolor placerat lobortis tempor, metus
+odio cursus ligula, et posuere lacus ligula quis dui.
+
+Donec a lectus eu nibh malesuada aliquam. Proin at metus quam, et tincidunt leo.
+Quisque lacus justo, scelerisque sodales pulvinar sed, dignissim ut sapien.
+Vivamus diam felis, adipiscing sollicitudin ultricies id, accumsan ac felis. In
+eu posuere ligula. Suspendisse potenti. Donec porttitor dictum dui id vehicula.
+Integer ante velit, congue id dictum et, adipiscing a tortor.
diff --git a/mysite.cabal b/mysite.cabal
new file mode 100644
index 0000000..3899aae
--- /dev/null
+++ b/mysite.cabal
@@ -0,0 +1,11 @@
+name: mysite
+version: 0.1.0.0
+build-type: Simple
+cabal-version: >= 1.10
+
+executable site
+ main-is: site.hs
+ build-depends: base == 4.*
+ , hakyll == 4.9.*
+ ghc-options: -threaded
+ default-language: Haskell2010
diff --git a/site.hs b/site.hs
new file mode 100644
index 0000000..b980948
--- /dev/null
+++ b/site.hs
@@ -0,0 +1,71 @@
+--------------------------------------------------------------------------------
+{-# LANGUAGE OverloadedStrings #-}
+import Data.Monoid (mappend)
+import Hakyll
+
+
+--------------------------------------------------------------------------------
+main :: IO ()
+main = hakyll $ do
+ match "images/*" $ do
+ route idRoute
+ compile copyFileCompiler
+
+ match "css/*" $ do
+ route idRoute
+ compile compressCssCompiler
+
+ match (fromList ["about.rst", "contact.markdown"]) $ do
+ route $ setExtension "html"
+ compile $ pandocCompiler
+ >>= loadAndApplyTemplate "templates/default.html" defaultContext
+ >>= relativizeUrls
+
+ match "log/*.markdown" $ do
+ route $ setExtension "html"
+ compile $ pandocCompiler
+ >>= loadAndApplyTemplate "templates/post.html" postCtx
+ >>= relativizeUrls
+
+ create ["log/index.html"] $ do
+ route idRoute
+ compile $ do
+ posts <- recentFirst =<< loadAll "log/*.markdown"
+ let archiveCtx =
+ listField "posts" postForArchiveCtx (return posts) `mappend`
+ constField "title" "archive of log posts" `mappend`
+ defaultContext
+
+ makeItem ""
+ >>= loadAndApplyTemplate "templates/archive.html" archiveCtx
+ >>= loadAndApplyTemplate "templates/post.html" archiveCtx
+ >>= relativizeUrls
+
+
+ match "index.html" $ do
+ route idRoute
+ compile $ do
+ posts <- recentFirst =<< loadAll "posts/*"
+ let indexCtx =
+ listField "posts" postCtx (return posts) `mappend`
+ constField "title" "Home" `mappend`
+ defaultContext
+
+ getResourceBody
+ >>= applyAsTemplate indexCtx
+ >>= loadAndApplyTemplate "templates/default.html" indexCtx
+ >>= relativizeUrls
+
+ match "templates/*" $ compile templateBodyCompiler
+
+
+--------------------------------------------------------------------------------
+postCtx :: Context String
+postCtx =
+ dateField "date" "%B %e, %Y" `mappend`
+ defaultContext
+
+postForArchiveCtx :: Context String
+postForArchiveCtx =
+ dateField "date" "%d %b %Y" `mappend`
+ defaultContext
diff --git a/stack.yaml b/stack.yaml
new file mode 100644
index 0000000..cb7f27b
--- /dev/null
+++ b/stack.yaml
@@ -0,0 +1,65 @@
+# This file was automatically generated by 'stack init'
+#
+# Some commonly used options have been documented as comments in this file.
+# For advanced use and comprehensive documentation of the format, please see:
+# https://docs.haskellstack.org/en/stable/yaml_configuration/
+
+# Resolver to choose a 'specific' stackage snapshot or a compiler version.
+# A snapshot resolver dictates the compiler version and the set of packages
+# to be used for project dependencies. For example:
+#
+# resolver: lts-3.5
+# resolver: nightly-2015-09-21
+# resolver: ghc-7.10.2
+# resolver: ghcjs-0.1.0_ghc-7.10.2
+#
+# The location of a snapshot can be provided as a file or url. Stack assumes
+# a snapshot provided as a file might change, whereas a url resource does not.
+#
+# resolver: ./custom-snapshot.yaml
+# resolver: https://example.com/snapshots/2018-01-01.yaml
+resolver: lts-9.21
+
+# User packages to be built.
+# Various formats can be used as shown in the example below.
+#
+# packages:
+# - some-directory
+# - https://example.com/foo/bar/baz-0.0.2.tar.gz
+# - location:
+# git: https://github.com/commercialhaskell/stack.git
+# commit: e7b331f14bcffb8367cd58fbfc8b40ec7642100a
+# - location: https://github.com/commercialhaskell/stack/commit/e7b331f14bcffb8367cd58fbfc8b40ec7642100a
+# subdirs:
+# - auto-update
+# - wai
+packages:
+- .
+# Dependency packages to be pulled from upstream that are not in the resolver
+# using the same syntax as the packages field.
+# (e.g., acme-missiles-0.3)
+# extra-deps: []
+
+# Override default flag values for local packages and extra-deps
+# flags: {}
+
+# Extra package databases containing global packages
+# extra-package-dbs: []
+
+# Control whether we use the GHC we find on the path
+# system-ghc: true
+#
+# Require a specific version of stack, using version ranges
+# require-stack-version: -any # Default
+# require-stack-version: ">=1.7"
+#
+# Override the architecture used by stack, especially useful on Windows
+# arch: i386
+# arch: x86_64
+#
+# Extra directories used by stack for building
+# extra-include-dirs: [/path/to/dir]
+# extra-lib-dirs: [/path/to/dir]
+#
+# Allow a newer minor version of GHC than the snapshot specifies
+# compiler-check: newer-minor \ No newline at end of file
diff --git a/templates/archive.html b/templates/archive.html
new file mode 100644
index 0000000..58ec89e
--- /dev/null
+++ b/templates/archive.html
@@ -0,0 +1 @@
+$partial("templates/post-list.html")$
diff --git a/templates/default.html b/templates/default.html
new file mode 100644
index 0000000..c3dd400
--- /dev/null
+++ b/templates/default.html
@@ -0,0 +1,33 @@
+<!doctype html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <meta http-equiv="x-ua-compatible" content="ie=edge">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <title>My Hakyll Blog - $title$</title>
+ <link rel="stylesheet" href="/css/default.css" />
+ </head>
+ <body>
+ <div id="header">
+ <div id="logo">
+ <a href="/">My Hakyll Blog</a>
+ </div>
+ <div id="navigation">
+ <a href="/">Home</a>
+ <a href="/about.html">About</a>
+ <a href="/contact.html">Contact</a>
+ <a href="/archive.html">Archive</a>
+ </div>
+ </div>
+
+ <div id="content">
+ <h1>$title$</h1>
+ $body$
+ </div>
+
+ <div id="footer">
+ Site proudly generated by
+ <a href="http://jaspervdj.be/hakyll">Hakyll</a>
+ </div>
+ </body>
+</html>
diff --git a/templates/post-list.html b/templates/post-list.html
new file mode 100644
index 0000000..32a8d3f
--- /dev/null
+++ b/templates/post-list.html
@@ -0,0 +1,8 @@
+<table>
+ $for(posts)$
+ <tr class="archive">
+ <th><strong>$date$</strong></th>
+ <td><a href="$url$">$title$</a></td>
+ </tr>
+ $endfor$
+</table>
diff --git a/templates/post.html b/templates/post.html
new file mode 100644
index 0000000..72cbcb0
--- /dev/null
+++ b/templates/post.html
@@ -0,0 +1,41 @@
+<!doctype html>
+<html lang="en">
+<head>
+<title>$title$ in gnusosa</title>
+<meta name="viewport" content="width = device-width">
+<meta charset="utf-8">
+<meta name="keywords" content="gnusosa, Carlos Ivan Sosa, log.gnusosa.net, gnusosa.net, Carlos Sosa">
+<meta name="author" content="Carlos Ivan Sosa">
+<meta name="robots" content="index,follow">
+<meta name="generator" content="Hakyll 4.9.2.0-1/Org-mode 8.2.7b">
+<link rel="stylesheet" type="text/css" href="/fonts/stylesheet.css" />
+<link href="/css/style.css" media="screen, print" rel="stylesheet" type="text/css">
+<link href="/css/syntax.css" media="screen" rel="stylesheet" type="text/css">
+<link href="/feed" rel="alternate" title="gnusosa.net RSS Feed" type="application/rss+xml">
+<link href="http://gnusosa.net" rel="index" title="gnusosa.net">
+</head>
+<body>
+<div id="container" class="group">
+<h1>
+ <a href="http://gnusosa.net/log/">Carlos Sosa</a>
+</h1>
+
+<div class="about-link">
+ <a href="http://gnusosa.net/">About</a>&nbsp;&nbsp; <a href="http://gnusosa.net/feed">rss</a>
+</div>
+
+<div id="content" class="group">
+
+ <h2 id="post-442">
+ <a href="$url$" rel="bookmark">$title$</a>
+ </h2>
+
+<div class="main">
+ $body$
+</div>
+<br>
+<div class="navigation group">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</div>
+</div>
+</div>
+</body>
+</html>