moving to lua-based generator

This commit is contained in:
sejo 2022-03-27 19:42:34 -06:00
parent c4ad94e8f9
commit 0458ac2ac7
9 changed files with 108 additions and 19 deletions

1
.gitignore vendored
View File

@ -4,7 +4,6 @@ web/*
gem/*
src/pages.gmo
tmp/*
generador
gemtest
webtest
src/log.gmo

View File

@ -1,27 +1,25 @@
# compudanzas
this repository contains the scripts and source files for the compudanzas site in gemini and the web
this repository contains the script and source files for the compudanzas site in gemini and the web
* generated in web/ : [https://compudanzas.net](https://compudanzas.net)
* generated in gem/ : [gemini://compudanzas.net](gemini://compudanzas.net/)
# generate site
call the shell script:
the generator script requires lua.
```
./generasitio.sh
it was developed using lua 5.3.3 but it probably works with previous versions.
in order to call the script and build the site:
```sh
$ lua generasitio.lua
```
# files
## archive
* `generasitio.sh`: the shell script that copies files and call the other scripts with the corresponding arguments (like last modified date)
* `gemtext2html.awk`: converts the files in .gmo format (modified .gmi) to an html version, according to the spec and my own taste
* `gmo2gmi.awk`: converts the files in .gmo format to real .gmi
* `genindice.awk`: generates the index of all pages
* `links.py`: calculates the incoming links between pages and adds them to the files
* `genlog.awk`: generates the log files (atom, twtxt, gemsub) from `src/log.txt`
* `gmo.nanorc`: syntax highlighting for .gmo format in nano
the `etc/generador/` directory contains the previous generator files and `README.md`, written in bash, awk and python.
# .gmo format
@ -87,12 +85,6 @@ converted to gemtext:
=> ./references.gmi references
```
## incoming links calculation
`links.py` takes both of those types of wikilinks in order to perform its calculation.
it looks at the contents between the curly brackets, converts them to a filename format (replacing spaces for underscores), and assummes that file actually exists.
# license
[peer production license](https://wiki.p2pfoundation.net/Peer_Production_License)

98
etc/generador/README.md Normal file
View File

@ -0,0 +1,98 @@
# compudanzas
this repository contains the scripts and source files for the compudanzas site in gemini and the web
* generated in web/ : [https://compudanzas.net](https://compudanzas.net)
* generated in gem/ : [gemini://compudanzas.net](gemini://compudanzas.net/)
# generate site
call the shell script:
```
./generasitio.sh
```
# files
* `generasitio.sh`: the shell script that copies files and call the other scripts with the corresponding arguments (like last modified date)
* `gemtext2html.awk`: converts the files in .gmo format (modified .gmi) to an html version, according to the spec and my own taste
* `gmo2gmi.awk`: converts the files in .gmo format to real .gmi
* `genindice.awk`: generates the index of all pages
* `links.py`: calculates the incoming links between pages and adds them to the files
* `genlog.awk`: generates the log files (atom, twtxt, gemsub) from `src/log.txt`
* `gmo.nanorc`: syntax highlighting for .gmo format in nano
# .gmo format
the same format as gmi (gemtext), but with the following line types:
* `+` add this line to the html file but not to the gmi file
* `&` add this line to the gmi file but not to the html file
# wikilinks
## inline wikilinks
the generator can parse and convert inline {wikilinks}, as many as needed per line
* in html, they get converted to an inline link
* in gemtext, the links are added after the line with the text
.gmo text:
```
see the {roadmap} for updates that want to happen.
```
converted to html:
```html
<p>
see the <a href='./roadmap.html'>roadmap</a> for updates that want to happen.
</p>
```
converted to gemtext:
```gemtext
see the roadmap for updates that want to happen.
=> ./roadmap.gmi roadmap
```
spaces inside the wikilinks are converted to underscores.
## gemtext-like wikilinks
the generator can also parse normal links in gemtext, one per line
* in html, it gets converted to an inline link
* in gemtext, the link is left as is
.gmo text:
```
=> ./references.gmi {references}
```
converted to html:
```html
<p><a href='./references.html'>references</a></p>
```
converted to gemtext:
```
=> ./references.gmi references
```
## incoming links calculation
`links.py` takes both of those types of wikilinks in order to perform its calculation.
it looks at the contents between the curly brackets, converts them to a filename format (replacing spaces for underscores), and assummes that file actually exists.
# license
[peer production license](https://wiki.p2pfoundation.net/Peer_Production_License)