Update test suite
Absolute path at /var/sophon
Trim ".gmi" from page list
Sophon is under development. Heavy development. Needs contributors. Thank you.
go get -u github.com/sergi/go-diff/tree/master/diffmatchpatch
server/
emulates what you would deploy on a serverserver/cert/cert.pem
and server/cert/key.pem
go build -o server/sophon
cd server
./sophon
./server/sophon
will NOT work because of relative pathsSee the last paragraph of Wikipedia: The Three-Body Problem (novel) §Plot
All files under this directory are RFC's. They are by no means authoritative nor final, but instead guide Sophon's development at present and that of its compliant clients.
If you have a proposal for the project, especially the wiki protocol, please consider informing me by means of the mailing list, either in an informal heads-up or, if you prefer, in an RFC just like those in docs/
as a patch. Clarity should be the top priority when authoring an RFC; language polishedness comes (at least) second. Use accurate terms as decribed in existent RFC's whenever possible, and invent new terms with scrutiny.
Sophon would be impossible without the efforts of authors and contributors of the following projects:
Twinwiki is the very project that inspired me to create Sophon. To be completely honest, I would have based Sophon on it had Rust not been beyond me. Unlike Twinwiki, which only allows users to edit pages on a per-page basis by means of sed commands, Sophon principally employs a character-level diff algorithm (see below).
diff-match-patch is a collection of plaintext diff algorithms. Sophon makes use of its Python 3 version in the tests, and more importantly uses an unofficial port, go-diff, in the Go code, to generate and parse Unidiff.
Molly Brown is a versatile server implemented in Go. I extracted some code from it for Gemini request a.k.a. glorified TCP packets handling in Sophon.