diff '--exclude=.vcs' -uNr ./.vcs/ref/COPYING ./COPYING
--- ./.vcs/ref/COPYING  1970-01-01 10:00:00.000000000 +1000
+++ ./COPYING   2020-05-01 19:32:50.602005468 +1000
@@ -0,0 +1,31 @@
+Copyright (c) 2020 Oreamnos, All rights reserved.
+
+Redistribution and use in source and binary forms, without modification, are
+permitted provided that the following conditions are met:
+
+       1. Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+
+       2. 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.
+
+       3. Neither the name of the copyright holder nor the names of its
+contributors may be used to endorse or promote products derived from this
+software without specific prior written permission.
+
+Redistribution and use in source and binary forms, with modification, are
+permitted provided that the following conditions are met:
+
+       1. Said modifications are subject to the terms of this license.
+
+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 HOLDER 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 '--exclude=.vcs' -uNr ./.vcs/ref/readme ./readme
--- ./.vcs/ref/readme   1970-01-01 10:00:00.000000000 +1000
+++ ./readme    2020-05-02 10:01:01.070810796 +1000
@@ -0,0 +1,25 @@
+Shit
+====
+Shit (Shit hopefully isn't troff) is a typesetting/documenting system, inspired by troff.
+
+Installation
+============
+make install
+
+Usage
+=====
+shit < file.shit | output-format > file.whatever
+
+Contributing
+============
+Contribution is welcome,
+Email me a patch, explaining what is does, and your reasoning
+
+Contacting
+==========
+You can find my contact information at:
+gopher://tilde.club/1/~oreamnos
+
+License
+=======
+See COPYING file
diff '--exclude=.vcs' -uNr ./.vcs/ref/shit ./shit
--- ./.vcs/ref/shit     1970-01-01 10:00:00.000000000 +1000
+++ ./shit      2020-05-02 09:17:56.300697732 +1000
@@ -0,0 +1,75 @@
+#!/usr/bin/awk -f
+
+BEGIN {
+       FS="\n"
+       italic=0;
+       bold=0;
+       underline=0
+}
+
+{
+       for(i=1; i<=NF; i++)
+       {
+               if (substr($0,1) ~ /[.]/) {
+                       printf "macr ";
+                       print substr($0,2)
+               } else {
+                       printf "text ";
+                       split($i, chars, "")
+                       for (x=1; x <= length($i); x++) {
+                               if (substr(chars[x],1) ~ /\\/) {
+                                       x++
+                                       printf("%s", chars[x])
+                               }
+                               else if (substr(chars[x],1) ~ /\*/) {
+                                       if (italic == 0) {
+                                               italic=1;
+                                               printf("\nsita\ntext ")
+                                       } else {
+                                               italic=0
+                                               printf("\neita\ntext ")
+                                       }
+
+                               }
+                               else if (substr(chars[x],1) ~ /&/) {
+                                       if (bold == 0) {
+                                               bold=1;
+                                               printf("\nsbld\ntext ")
+                                       } else {
+                                               bold=0
+                                               printf("\nebld\ntext ")
+                                       }
+
+                               }
+                               else if (substr(chars[x],1) ~ /_/) {
+                                       if (underline == 0) {
+                                               underline=1;
+                                               printf("\nsund\ntext ")
+                                       } else {
+                                               underline=0
+                                               printf("\neund\ntext ")
+                                       }
+
+                               }
+                               else if (substr(chars[x],1) ~ /-/) {
+                                       if (underline == 0) {
+                                               underline=1;
+                                               printf("\nsstk\ntext ")
+                                       } else {
+                                               underline=0
+                                               printf("\nestk\ntext ")
+                                       }
+
+                               }
+                               else {
+                                       printf("%s", chars[x])
+                               }
+                       }
+                       printf("\n")
+               }
+       }
+}
+
+END {
+       printf("EOF")
+}
\ No newline at end of file
diff '--exclude=.vcs' -uNr ./.vcs/ref/shit2html ./shit2html
--- ./.vcs/ref/shit2html        1970-01-01 10:00:00.000000000 +1000
+++ ./shit2html 2020-05-02 09:39:12.117420132 +1000
@@ -0,0 +1,106 @@
+#!/usr/bin/awk -f
+
+BEGIN {
+       FS=" "
+       LF=1
+}
+
+function paragraph() {
+       printf("<p>\n")
+       while (1) {
+               getline
+               if (($0 == "EOF") || ($0 == "macr PP")) {break}
+               if ($1 == "text") {
+                       if (LF == 1) {printf "<br>"}
+                       LF = 1
+                       # $1 = ""
+                       # print
+                       for (x=2; x <= NF; x++) {
+                               printf("%s", $x)
+                               if (x != NF) {printf " "}
+                       }
+               }
+               # italics
+               else if ($1 == "sita") {
+                       printf(" <i>")
+                       LF = 0
+               }
+               else if ($1 == "eita") {
+                       printf("</i>")
+                       LF = 0
+               }
+               # bold
+               else if ($1 == "sbld") {
+                       printf(" <b>")
+                       LF = 0
+               }
+               else if ($1 == "ebld") {
+                       printf("</b>")
+                       LF = 0
+               }
+               # underline
+               else if ($1 == "sund") {
+                       printf(" <u>")
+                       LF = 0
+               }
+               else if ($1 == "eund") {
+                       printf("</u>")
+                       LF = 0
+               }
+               # striken
+               else if ($1 == "sstk") {
+                       printf(" <del>")
+                       LF = 0
+               }
+               else if ($1 == "estk") {
+                       printf("</del>")
+                       LF = 0
+               }
+               # unordered list
+               else if ($0 == "macr UL") {
+                       printf(" <ul>")
+                       while (1) {
+                               getline
+                               if (($0 == "EOF") || ($0 == "macr PP")) {break}
+                               if ($0 != "macr UL") {
+                                       $1=""
+                                       printf("<li>%s</li>", $0)
+                               }
+                       }
+                       printf("</ul>")
+               }
+               # ordered list
+               else if ($0 == "macr OL") {
+                       printf(" <ol>")
+                       while (1) {
+                               getline
+                               if (($0 == "EOF") || ($0 == "macr PP")) {break}
+                               if ($0 != "macr OL") {
+                                       $1=""
+                                       printf("<li>%s</li>", $0)
+                               }
+                       }
+                       printf("</OL>")
+               }
+       }
+       printf("</p>\n")
+       return
+}
+
+/^macr TL$/{
+       getline
+       $1 = ""
+       printf("<title>%s</title>\n", $0)
+       printf("<h1>%s</h1>\n", $0)
+}
+
+/^macr AU$/{
+       getline
+       $1 = ""
+       printf("<p>By%s</p>\n", $0)
+}
+
+/^macr PP$/{
+       paragraph()
+       if ($0 == "macr PP") {paragraph()}
+}
\ No newline at end of file
diff '--exclude=.vcs' -uNr ./.vcs/ref/test.shit ./test.shit
--- ./.vcs/ref/test.shit        1970-01-01 10:00:00.000000000 +1000
+++ ./test.shit 2020-05-02 09:39:17.437420366 +1000
@@ -0,0 +1,28 @@
+.TL
+This is my document title
+.AU
+John Doe
+.PP
+This is a paragraph, this is *italic*,
+this is &bold&, this is *&bold and italic&*,
+this is _underlined_,
+this is -striken through-
+
+Here is an unordered list:
+.UL
+Apricots
+.UL
+Bananas
+.UL
+Cherry
+
+.PP
+Here is an ordered list:
+.OL
+Asparagus
+.OL
+Beetroot
+.OL
+Carrot
+.PP
+This is a new paragraph
\ No newline at end of file