render.sh: add fractional compilation

main.html.m4: fix css import, add hr elements

cp README.MD in/doc.md
mv main.css main.scss
This commit is contained in:
Atlas Cove 2023-02-10 14:49:00 +00:00
parent fb7e77183f
commit 31141ee3dd
5 changed files with 72 additions and 11 deletions

View File

@ -1,3 +1,4 @@
body { body {
font-family: sans-serif; font-family: sans-serif;
margin-left: 2em;
} }

27
in/doc.md Normal file
View File

@ -0,0 +1,27 @@
# Atlas48's Neocites Archives
Welcome to the technical documentation for my [Neocities](https://neocities.org) page, which also contains a rudimentary static site generator cobbled together out of unix tools
and Ruby scripts
# License
All markup is licensed under the Creative Commons [Attribution 4.0 International (CC BY 4.0)](https://creativecommons.org/licenses/by/4.0/) license.
Any runnable computer code or Sass/CSS definitions are licensed under the [GNU General Public License v3.0](https://www.gnu.org/licenses/gpl-3.0.html)
# Specification
## Dependencies
You will need the following tools to render and upload the site
- [neo-cli](https://neo-cli.neocities.org/)
- [RedCloth](http://redcloth.org/)
- [org-ruby](http://github.com/bdewey/org-ruby)
- [comrak](https://github.com/kivikakk/comrak)
## `Makefile`
Wraps `render.sh` as well as either `neo` or `rclone`.
### Makefile Options
#### `list`
Lists all components in a heading-annotated list
#### `list-{doc,sass,dir,rest}`
Lists markup files, sass files, directories, and other files respectively.
#### `clean`
Removes the `out/` directory that is generated on running of `render.sh`.
#### `push`
Uploads the site to neocities.org.
## `render.sh`
The primary worker script, sets up the directory structure, transpiles the markup, then the Sass, then copies the contents of `in/` to `out/`

View File

@ -1,11 +1,14 @@
_Welcome to the Atlas48 Archives!_ _Welcome to the Atlas48 Archives!_
!/img/ucbanner.gif(The First Banner)! !img/ucbanner.gif(HOW DO I USE CSS TO MAKE THIS BOOKSTORE LOOK GOOD?!)!
Everything's slowly being set up and the like, so you'll only be able to access here unless you know the layout. Everything's slowly being set up and the like, so you'll only be able to access here unless you know the layout.
I _may_ make a sitemap, I may not. Just getting the infastructure set up. !img/ucbanner.gif(HALP PLIS.)!
"!neocities.png(Love this place.)!":https://neocities.org./
h1. Links.
h2. D&D
h1. TODO
* find a way to render the org-mode files
* maybe make an automated sitemap renderer?

View File

@ -1,18 +1,22 @@
dnl template.m4.html v1.2 dnl template.m4.html v1.3-p1
dnl Part of the tape-and-string suite used to construct the website dnl Part of the tape-and-string suite used to construct the website
include(`m4/lib.m4')dnl include(`m4/lib.m4')dnl
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<style> <style>
@include "/css/main.css"; @import url("/css/main.css");
</style> </style>
<title>TITLE</title> <title>TITLE</title>
</head> </head>
<body> <body>
<hr />
<div class="header"> <div class="header">
<a href="/">/</a> <a href="/">Home</a>
</div> </div>
<hr />
<div class="content">
include(`/dev/stdin')dnl Probably not a good idea, but whatever. include(`/dev/stdin')dnl Probably not a good idea, but whatever.
</div>
</body> </body>
</html> </html>

View File

@ -1,6 +1,6 @@
#!/bin/bash #!/bin/bash
# render.sh: part of the tape-and-string framework. # render.sh: part of the tape-and-string framework.
# v3.0 # v3.1
enable -f /usr/lib/bash/csv csv enable -f /usr/lib/bash/csv csv
declare -A title declare -A title
while read -r ii; do while read -r ii; do
@ -41,12 +41,15 @@ scss=(`find in -type f -name '*.scss'`)
rest=(`find in -type f ! \( -name '*.org' -o -name '*.txti' -o -name '*.md' -o -name .hg \)`) rest=(`find in -type f ! \( -name '*.org' -o -name '*.txti' -o -name '*.md' -o -name .hg \)`)
dir=(`find in -type d`) dir=(`find in -type d`)
function dirs {
inf "Creating directory structure..." inf "Creating directory structure..."
echo ${dir[@]} echo ${dir[@]}
for i in ${dir[@]}; do for i in ${dir[@]}; do
o="${i/in/out}" o="${i/in/out}"
mkdir -pv $o mkdir -pv $o
done done
}
function docs {
inf "Rendering document files..." inf "Rendering document files..."
for i in ${doc[@]}; do for i in ${doc[@]}; do
o="${i/in/out}" o="${i/in/out}"
@ -57,6 +60,8 @@ for i in ${doc[@]}; do
tape $i | m4 -DTITLE="${title[$i]}" m4/main.html.m4 > ${o%.*}.html tape $i | m4 -DTITLE="${title[$i]}" m4/main.html.m4 > ${o%.*}.html
fi fi
done done
}
function sass {
inf "Rendering sass files..." inf "Rendering sass files..."
if test -z "${sass[@]}"; then if test -z "${sass[@]}"; then
inf "No .sass files detected, skipping" inf "No .sass files detected, skipping"
@ -65,7 +70,7 @@ else
for i in ${sass[@]}; do for i in ${sass[@]}; do
o="${i/in/out}" o="${i/in/out}"
echo "$i => $o" echo "$i => $o"
sassc -a $i $o sassc -a $i ${o/sa/c}
done done
fi fi
if test -z "${scss[@]}"; then if test -z "${scss[@]}"; then
@ -75,8 +80,29 @@ else
for i in ${scss[@]}; do for i in ${scss[@]}; do
o="${i/in/out}" o="${i/in/out}"
echo "$i => $o" echo "$i => $o"
sassc $i $o sassc $i ${o#s}
done done
fi fi
}
function other {
inf "Copying other files..." inf "Copying other files..."
cp -rv 'in'/* out/ cp -rv 'in'/* out/
}
function all {
dirs
docs
sass
other
}
if test -z "$*"; then
all
exit 0
fi
case $1 in
dir) dirs;;
doc) docs;;
s[ac]ss) sass;;
other) other;;
all) all;;
*) all;;
esac