Zelphir Kaltstahl c89cda700a add log 4 gadi atpakaļ
..
example-00-basic-routing a6f3a3aeb8 reorganize files and implement lots of stuff 4 gadi atpakaļ
example-01-serve-static-assets c89cda700a add log 4 gadi atpakaļ
README.org 6ebdf91e1c restructure web server examples preparing further work 5 gadi atpakaļ
notes.org 2be0256e84 add notes with useful code snippets 4 gadi atpakaļ

README.org

General information

This is not a complete project yet. It is very much work in progress (WIP). There is no markdown parsing or anything like that yet. It is only basic workings of the Guile web server. In the future however, I hope to extend the implementation to make it a real markdown based blog.

Dependencies

  1. guile-fibers >= 1.0.0 (available on Guix packge manager)
  2. guile-commonmark >= 0.1.1 (available on Guix packge manager)
  3. I wish I could rely on something else than Commonmark, as I do not find some of their conventions intuitive, especially with regard to parts of headings, but I also do not want to rely on https://github.com/greghull/sundown-guile, as it is a wrapper around a C library. So I guess for now Commonmark will have to be sufficient.

Running

Use Guile to run ~main.scm~:


guile main.scm

You should then be able to reach the server at http://localhost:8080.

Questions [0/3]

This section addresses open questions, which need to be answered in order to build a markdown based blog.

  • [ ] Currently the content type is hard-coded for a response. This might be fine for running behind a reverse proxy (for example NGINX), which is likely what should be done. However, if not running behind such proxy and serving files using the Guile web server (which probably should not be done yet), the content type should be automatically determined by looking at what kind of file will be served.

I believe Amirouche Boubekki already did something like that, but said it was not ready for poduction use.

  • [ ] Maybe a more comfortable way of defining routes should be implemented.
  • [ ] How will this project render markdown?
  • [ ] In rendered markdown (rendered as HTML), how will code snippets be code highlighted?
  • [ ] Is there an easy way to make use of Python's pygments? Greg Hendershott did so in his static blogging tool Frog, which is written in Racket.