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
(in-package #:blank-site) ;;step 1 serve the modified js (alexandria:define-constant +boot-js+ (alexandria:read-file-into-string "static/boot.js") :test #'string=) (setf (ningle:route *app* "/static/boot.js") (lambda (params) (setf (lack.response:response-headers ningle:*response*) (append (lack.response:response-headers ningle:*response*) (list :content-type "application/javascript"))) (str:replace-all "((PORT))" (format nil "~D" *clog-port*) +boot-js+))) (alexandria:define-constant +jquery+ (alexandria:read-file-into-string "static/jquery.min.js") :test #'string=) (setf (ningle:route *app* "/static/jquery.min.js") (lambda (params) (setf (lack.response:response-headers ningle:*response*) (append (lack.response:response-headers ningle:*response*) (list :content-type "application/javascript"))) +jquery+)) ;;step 2 add those scripts to a clog-page class (defclass clog-page (page) ()) (defmethod scripts progn ((page clog-page) &rest args) (declare (ignore args)) (spinneret:with-html (:script :src "/static/jquery.min.js") (:script :src "/static/boot.js"))) ;;step 3 write the code for handling the connection and start clog on chosen port (defclass clog-routine () ()) (defgeneric execute-clog (clog-routine body)) (defmethod execute-clog ((c main-routine) body) (let* ((div (clog:create-div body)) (p (clog:create-p div :content "hi hi I am clog powered"))))) (defun handle-clog-connection (body) (let* ((connection-data (clog:connection-data body)) (path (gethash "clog-path" connection-data))) (cond ((string= path "/") (execute-clog (make-instance 'main-routine) body))))) ;;step 4 win