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("
\n")
+ while (1) {
+ getline
+ if (($0 == "EOF") || ($0 == "macr PP")) {break}
+ if ($1 == "text") {
+ if (LF == 1) {printf "
"}
+ LF = 1
+ # $1 = ""
+ # print
+ for (x=2; x <= NF; x++) {
+ printf("%s", $x)
+ if (x != NF) {printf " "}
+ }
+ }
+ # italics
+ else if ($1 == "sita") {
+ printf(" ")
+ LF = 0
+ }
+ else if ($1 == "eita") {
+ printf("")
+ LF = 0
+ }
+ # bold
+ else if ($1 == "sbld") {
+ printf(" ")
+ LF = 0
+ }
+ else if ($1 == "ebld") {
+ printf("")
+ LF = 0
+ }
+ # underline
+ else if ($1 == "sund") {
+ printf(" ")
+ LF = 0
+ }
+ else if ($1 == "eund") {
+ printf("")
+ LF = 0
+ }
+ # striken
+ else if ($1 == "sstk") {
+ printf(" ")
+ LF = 0
+ }
+ else if ($1 == "estk") {
+ printf("")
+ LF = 0
+ }
+ # unordered list
+ else if ($0 == "macr UL") {
+ printf("
By%s
\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