Blockin out files

This commit is contained in:
Jakub 2026-07-12 11:17:43 +08:00
parent 480824a072
commit 8a98260f28
5 changed files with 304 additions and 2 deletions

View file

@ -1,11 +1,20 @@
#+title: Nitinol
#+options: toc:nil
Nitinol is a framework for building user-malleable web applications and tools, specifically PWAs, built on top of [[https://mithril.js.org/index.html][Mithril.js]] and [[https://lips.js.org/][LIPS scheme]].
It provides all the tools necessary to make a full application stack that the user is easily able to modify; both for themselves or others, and ephemerally or persistently.
:naming:
#+begin_quote
Nitinol is an alloy of Nickel and Titanium that has shape memory and superelasticity.
:end:
#+end_quote
This README includes all the documentation you need to use Nitinol to it's fullest.
If you're not sure how to read ~org~ files, you can convert this file to Markdown with pandoc using the following command:
#+begin_src shell
pandoc -f org -t makrdown README.org
#+end_src
#+toc: headlines 2
* Design Philosophy
Nitinol is heavily inspired by Emacs in terms of extensibility and self-documentation.
@ -23,3 +32,24 @@ Nitinol seeks to address all these problems by providing a Scheme environment in
- REPL inputs can be saved to a cached configuration file, which can be shared to other users of the application.
- Code is self-documenting via doc string macros and source code links, allowing easy introspection.
- Both the front-end and back-end can be modified (within security and access control constraints).
* Using Nitinol
Nitinol is a project template, you can use it simply by cloning this repo and modifying its content.
If you're new to Node.js development, start with ~npm i~ to install all dependencies.
You may also wish to install LIPS globally with ~npm -g install lips~, which will allow you to run a local repl with the ~lips~ command.
This is not required to use this framework, but is recommended.
You should also run ~npm run nitinol:update~ to pull in the Nitinol library files.
Then, the command ~npm run preview~ will start the backend and frontend.
* Getting Started
** Project Structure
There are 3 main folders in this template that you should pay attention to.
- ~app~ contains all frontend application code, including HTML, CSS, and manifest/JS code necessary for a PWA.
- ~app.scm~ in the ~app~ directory is the entry point for the Nitinol application - i.e. the script that is loaded by the HTML template.
- ~server~ contains all backend server code, with the ~server.scm~ file being the entry point used to start the backend.
- ~lib~ contains libraries potentially shared between the front and back end, as well as [[https://git.cyan.sh/BirDt/nitinol][Nitinol]] LIPS libraries included as a git submodule.
- ~npm run nitinol:update~ will update the Nitinol submodule.