external compiler script is not necessary

This commit is contained in:
tavo-wasd 2023-11-16 16:15:24 -06:00
parent 2f604ff440
commit d9af374eb7
2 changed files with 48 additions and 59 deletions

View file

@ -1,28 +0,0 @@
#!/bin/sh
UID="$1"
FILE="tmp/$UID/document.ms"
OUT="tmp/$UID.pdf"
# Configuration
SOELIM="/usr/bin/soelim" # soelim PATH
REFER="/usr/bin/refer" # refer PATH
GROFF="/usr/bin/groff" # groff PATH
PRE="-ketpG" # Preprocessors
BIB="bibliography" # Bibliography file
MAC="macros" # Macros dir
sed "
s/Á/\\\['A\]/g;
s/É/\\\['E\]/g;
s/Í/\\\['I\]/g;
s/Ó/\\\['O\]/g;
s/Ú/\\\['U\]/g;
s/á/\\\['a\]/g;
s/é/\\\['e\]/g;
s/í/\\\['i\]/g;
s/ó/\\\['o\]/g;
s/ú/\\\['u\]/g;
" "$FILE" |
"$SOELIM" -I "$MAC" | "$REFER" -p "$BIB" | "$GROFF" -mspdf -T pdf -U "$PRE" > "$OUT"

View file

@ -17,6 +17,17 @@
--> -->
<html> <html>
<?php
# Generate an uid for each new document
$uid = exec("head /dev/urandom | tr -dc 'a-zA-Z0-9' | head -c 10");
# groff settings
$groff = "/usr/bin/groff";
$comp = "$groff -ketpG -mspdf -Tpdf tmp/$uid.ms > tmp/$uid.pdf";
# In case you want to use an external
# script to compile with groff:
#$comp = "sh groff-compiler.sh";
?>
<head> <head>
<title>Groff Web</title> <title>Groff Web</title>
<link rel="shortcut icon" href="#"> <link rel="shortcut icon" href="#">
@ -24,73 +35,79 @@
* { * {
background-color: #121212; background-color: #121212;
font-family: monospace; font-family: monospace;
margin: 0 0 10px; text-align: center;
margin: 4px auto;
color: #928374; color: #928374;
} }
h1 { h1,h2,h3,h4,h5 {
margin: 10px 0 0;
color: #fe8019; color: #fe8019;
} }
textarea { textarea,object,.columns {
background-color: #282828; border-radius: 10px;
color: #83a598; border-width: 1px;
max-width: 1300px;
width: 100%;
columns: 2;
} }
body { @media only screen and (max-width: 800px) {
text-align: center; .columns {
margin: 0 auto; columns: 1;
width: 100%; width: 90%;
}
}
/* codebox */
textarea {
background-color: #282828;
text-align: left;
color: #83a598;
height: 734px;
}
/* pdf */
object {
height: 800px;
} }
.button { .button {
padding: 5px 10px 5px; border-radius: 10px;
border-width: 1px;
padding: 5px 30px;
margin: 10px; margin: 10px;
} }
.columns {
max-width: 1300px;
margin: 0 auto;
columns: 2;
width: 95%;
}
textarea#codebox {
height: 730px;
width: 100%;
}
</style> </style>
</head> </head>
<?php <?php
exec("rm -rf tmp/*"); exec("rm -rf tmp/*");
$uid = exec("head -n 10 /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 10 | head -n 1");
exec("mkdir -p tmp/$uid"); exec("mkdir -p tmp/$uid");
if($_POST['codebox']){ if($_POST['codebox']){
$file_open = fopen("tmp/$uid/document.ms","w+"); $file_open = fopen("tmp/$uid.ms","w+");
fwrite($file_open, $_POST['codebox']); fwrite($file_open, $_POST['codebox']);
fclose($file_open); fclose($file_open);
} }
exec("sh compiler.sh $uid"); exec("$comp");
?> ?>
<body> <body>
<h1>Groff Web</h1> <h1>Groff Web</h1>
<p><?php echo exec("/usr/bin/groff -v | head -n 1") ?></p> <p><?php echo exec("$groff -v | head -n 1")?></p>
<div class=columns> <div class=columns>
<div style="width: 100%"><form method="POST"> <div style="width: 100%"><form method="POST">
<div><input type=submit value=Compile class=button name=button></div> <div><input type=submit value="Compile PDF" class=button></div>
<textarea id="codebox" name="codebox"><?php <textarea id="codebox" name="codebox"><?php
$datalines = file ("tmp/$uid/document.ms"); $datalines = file ("tmp/$uid.ms");
foreach ($datalines as $zz) { foreach ($datalines as $zz) {
echo $zz; } echo $zz; }
?></textarea> ?></textarea>
</form></div> </form></div>
<object width="100%" height="800" type="application/pdf" data="/tmp/<?php echo $uid ?>.pdf?#&navpanes=0"> <object type="application/pdf" data="/tmp/<?php echo $uid?>.pdf?#&navpanes=0">
<p>PDF cannot be displayed.</p> <p>PDF cannot be displayed.</p>
</object> </object>
</div> </div>