Arc Lisp and HN-like web app. Fork of Anarki.
|
2 years ago | |
---|---|---|
lib | 2 years ago | |
setup | 2 years ago | |
static | 2 years ago | |
.gitignore | 3 years ago | |
COPYING | 2 years ago | |
README.md | 2 years ago | |
ac.rkt | 2 years ago | |
arc | 2 years ago | |
arc.arc | 2 years ago | |
boot.rkt | 2 years ago | |
brackets.rkt | 3 years ago | |
knark.png | 2 years ago | |
libs.arc | 2 years ago | |
news | 2 years ago |
Unmaintained. Working on a rewrite in plain Racket due to limitations of Arc.
Knark is a version of Arc forked from Anarki and relicensed under Affero GPL . It comes with News, a Hacker News style app, which is extremely easy to set up as it comes with it's own built-in web server and database.
<center>
, <font color="whatever">
, ...)sendmail
and openssl
)First install a recent version of Racket, then:
$ git clone https://notabug.org/hjek/knark # fetch knark
$ cd knark # enter the knark directory
$ ./news # run news server
To assign a user as admin, use the make-admin
function on the repl:
(make-admin 'alice 'bob) ; make alice and bob admins
Then go to your News site, click on login, and create the account with the username you set as admin. You should now be logged in as an admin!
To customize News, use the customize
function:
(customize "News" ; name
"https://site.example.com" ; url
"https://example.com" ; parent url
"What this site is about." ; description
"hn.css" ; theme
"arc.png") ; logo url
If you'd like users to be able to reset their passwords if they forget them, you need to set up an email address to send out password recovery emails:
(set-appemail "alice@example.com" ; from
"smtp.example.com" ; smtp server
"1234") ; password
Please follow these instructions for a production-ready News setup using Nginx and SystemD.
Although this fork does aim to eliminate non-portable code, it doesn't maintain any separate batch scripts for the non-free Windows operating system. Victims may however be able to start Knark with Bash for Windows.
If you're new to Arc, or Lisp in general, a good starting point is the Tutorial and Paul Graham's writings about Arc.
If you run into trouble, check:
(help)
at the replRacket expressions can be evaluated with the ($ ...)
syntax:
($ (string-append "foo" "bar" "baz"))
"foobarbaz"
Racket has a well-documented standard library, which is well worth exploring if you haven't already.
Arc doesn't have a keyword type, so use kw-apply
for calling Racket functions that take keyword arguments.
Q: What happened to every bug out there? A: it passed the type checker, and it passed all tests.