Plaster
New
List
Login
text
apl
aspx
asterisk
brainfuck
c
c++hdr
c++src
cassandra
ceylon
clojure
clojurescript
cmake
cobol
coffeescript
common-lisp
crystal
csharp
css
cypher-query
cython
d
dart
diff
django
dockerfile
dylan
ebnf
ecl
ecmascript
edn
eiffel
ejs
elm
erb
erlang
ez80
factor
fcl
feature
forth
fortran
fragment
gfm
go
gql
groovy
gss
haml
handlebars-template
haskell
haxe
hive
html
http
httpd-php
httpd-php-open
hxml
ini
java
javascript
json
jsp
jsx
julia
kotlin
latex
less
literate-haskell
lua
mariadb
markdown
mbox
mirc
mscgen
msgenny
mssql
mumps
mysql
n-triples
nesc
nginx-conf
nsis
objectivec
octave
oz
pascal
perl
pgp
pgp-keys
pgp-signature
pgsql
php
pig
plsql
properties
protobuf
puppet
python
q
rpm-changes
rpm-spec
rsrc
ruby
rustsrc
sas
sass
scala
scheme
scss
sieve
slim
smarty
solr
soy
sparql-query
spreadsheet
sql
squirrel
stex
styl
swift
systemverilog
tcl
textile
tiddlywiki
tiki
tlv
tornado
ttcn-asn
ttcn-cfg
turtle
twig
typescript
typescript-jsx
vb
vbscript
velocity
verilog
vertex
vhdl
vue
webidl
xml
xml-dtd
xquery
xu
yaml
z80
default
Visibility:
public
unlisted
private
(defvar *app* (make-instance 'ningle:app)) (defparameter *page-hash* (make-hash-table :test #'equal)) (clack:clackup *app*) ;; (setf (ningle:route *app* "/hello/:name") ;; #'(lambda (params) ;; (format nil "Hello, ~A" (cdr (assoc :name params))) ;; (format nil "~A" params))) (defun add-page (name func) (setf (gethash name *page-hash*) (funcall func))) (defun get-page (name) (gethash name *page-hash*)) (defun file-to-string (file) (let ((fi "")) (with-open-file (s file :if-does-not-exist :error) (loop :for line := (read-line s nil) :while line :do (setf fi (concatenate 'string fi (format nil "~A~%" line))))) fi)) (defun reload-page (key func) (add-page key func)) (defun reload-main-html () (reload-page :main-page (lambda () (file-to-string "./html/main.html")))) (defun reload-main-css () (reload-page :main-css (lambda () (file-to-string "./css/main.css")))) (defun reload-main () (reload-main-html) (reload-main-css)) (setf (ningle:route *app* "/ere" :method :GET) (lambda (params) (declare (ignore params)) (asdf:system-relative-pathname :whereshouldwemove #P"/html/main.html"))) (setf (ningle:route *app* "/" :method :GET) (lambda (params) (declare (ignore params)) (reload-main) (get-page :main-page))) (setf (ningle:route *app* "/css/main.css" :method :GET) (lambda (params) (declare (ignore params)) (reload-main-css) (get-page :main-page-css)))