|Pelle Hjek ffd7fa7fda Unmaintained.||5 months ago|
|lib||6 months ago|
|setup||7 months ago|
|static||6 months ago|
|.gitignore||1 year ago|
|COPYING||7 months ago|
|README.md||5 months ago|
|ac.rkt||7 months ago|
|arc||6 months ago|
|arc.arc||8 months ago|
|boot.rkt||7 months ago|
|brackets.rkt||1 year ago|
|knark.png||6 months ago|
|libs.arc||6 months ago|
|news||7 months 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.
<font color="whatever">, ...)
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 "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 "firstname.lastname@example.org" ; 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 run into trouble, check:
(help)at the repl
Racket 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.