~hacktivista/leanweb-libreplanet-workshop-2023

a7e8204c1dbf929e0f24a693c6dcb3adef521a7d — Felix Freeman 1 year, 5 months ago f91b9e1 main
Presentation
2 files changed, 98 insertions(+), 0 deletions(-)

A doc/slides.pdf
A doc/slides.sent
A doc/slides.pdf => doc/slides.pdf +0 -0
A doc/slides.sent => doc/slides.sent +98 -0
@@ 0,0 1,98 @@
LeanWeb

Why Ruby

Rack

Tilt

Projects built with LeanWeb

Getting started
 - Install Ruby
 - Install LeanWeb
 - Generate a new project
 - Run dynamically
 - Build static files

Ruby installation
  apt install ruby-full # Debian based
  pacman -S ruby # Arch Linux based
  yum install ruby # RedHat Fedora based
  pkg install ruby # FreeBSD
  pkg_add ruby # OpenBSD
  ruby-build 3.2.2 /usr/local # Various
  asdf install ruby latest # Various

LeanWeb installation
  gem install --user-install leanweb

A typical new project
  leanweb new project

Running Rack
  bundle exec rackup

Building static files
  bundle exec rake build_static

Project structure
 - routes.rb: routes
 - src/controllers/: controllers
 - src/views/: views
 - public/: static files
 - config.ru: Rack configuration file

routes.rb: Where to access stuff

src/controllers/: Static dynamism
                                                   *

src/controllers/: Static dynamism
  *fully dynamic web applications are also supported

src/views/: Parse that document

public/: Directly serving static files

config.ru: Rack configuration file

config.ru: A minimal LeanWeb project

Some other cool stuff
 - Layouts
 - Org Mode
 - Mailing

Controller#render_with_layout

Tilt::EmacsOrg: A native parser for Tilt
  gem install tilt-emacs_org

LeanMail

What about models?

BYOB

What's next?

My current to do list
 - upgrade Rack
 - upgrade Haml (waiting for Tilt release)
 - don't require to @response.finish
 - make Rack::Reloader actually reload stuff
 - namespaces support on routes
 - mechanism for auth guards?
 - nested routes?
 - router: default_get_static = false

Breaking changes expected

How to help?
- Use
- Develop
- Fund

Thanks!
  Felix Freeman <libsys@hacktivista.org>