122 lines
3.3 KiB
PHP
122 lines
3.3 KiB
PHP
<!DOCTYPE html>
|
|
<!--
|
|
Copyright (C) 2023 Gustavo Calvo
|
|
|
|
groff-web is free software: you can redistribute it and/or modify it
|
|
under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation, either version 3 of the License, or
|
|
(at your option) any later version.
|
|
|
|
groff-web is distributed in the hope that it will be useful, but
|
|
WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
See the GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with Foobar. If not, see <https://www.gnu.org/licenses/>.
|
|
-->
|
|
<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>
|
|
<title>Groff Web</title>
|
|
<link rel="shortcut icon" href="#">
|
|
<style>
|
|
* {
|
|
background-color: #121212;
|
|
font-family: monospace;
|
|
text-align: center;
|
|
margin: 4px auto;
|
|
color: #928374;
|
|
}
|
|
|
|
h1,h2,h3,h4,h5 {
|
|
color: #fe8019;
|
|
}
|
|
|
|
textarea,object,.columns {
|
|
border-radius: 10px;
|
|
border-width: 1px;
|
|
max-width: 1300px;
|
|
width: 100%;
|
|
columns: 2;
|
|
}
|
|
|
|
@media only screen and (max-width: 800px) {
|
|
.columns {
|
|
columns: 1;
|
|
width: 90%;
|
|
}
|
|
}
|
|
|
|
/* codebox */
|
|
textarea {
|
|
background-color: #282828;
|
|
text-align: left;
|
|
color: #83a598;
|
|
height: 734px;
|
|
}
|
|
|
|
/* pdf */
|
|
object {
|
|
height: 800px;
|
|
}
|
|
|
|
.button {
|
|
border-radius: 10px;
|
|
border-width: 1px;
|
|
padding: 5px 30px;
|
|
margin: 10px;
|
|
}
|
|
</style>
|
|
</head>
|
|
|
|
<?php
|
|
exec("rm -rf tmp/*");
|
|
if($_POST['codebox']){
|
|
exec("mkdir -p tmp");
|
|
$file_open = fopen("tmp/$uid.ms","w+");
|
|
fwrite($file_open, $_POST['codebox']);
|
|
fclose($file_open);
|
|
}
|
|
exec("$comp");
|
|
?>
|
|
|
|
<body>
|
|
<h1>Groff Web</h1>
|
|
<p><?php echo exec("$groff -v | head -n 1")?></p>
|
|
|
|
<div class=columns>
|
|
<div style="width: 100%"><form method="POST">
|
|
<div><input type=submit value="Compile PDF" class=button></div>
|
|
|
|
<textarea id="codebox" name="codebox"><?php
|
|
$datalines = file ("tmp/$uid.ms");
|
|
foreach ($datalines as $zz) {
|
|
echo $zz; }
|
|
?></textarea>
|
|
</form></div>
|
|
|
|
<object type="application/pdf" data="/tmp/<?php echo $uid?>.pdf?#&navpanes=0">
|
|
<p>PDF cannot be displayed.</p>
|
|
</object>
|
|
</div>
|
|
|
|
<footer><p>
|
|
Copyright (C) 2023 Gustavo Calvo |
|
|
<a href="https://gitlab.com/tavo-wasd/groff-web" target="_blank" rel="noopener noreferrer">Source</a> |
|
|
<a href="https://www.gnu.org/licenses/gpl-3.0.txt" target="_blank" rel="noopener noreferrer">GPL-3.0</a>
|
|
</p></footer>
|
|
</body>
|
|
|
|
</html>
|