source: code/trunk/CONTRIBUTING.md@ 1

Last change on this file since 1 was 1, checked in by fox, 9 years ago

initial simple example with omd

File size: 2.4 KB
Line 
1# Contributing to Logarion
2
3Logarions primary aim is to create a note system, which doesn't waste resources.
4The secondary aim is to provide an exemplary OCaml project to demonstrate and promote the language (as it happens with many other "Blogging" systems written in other languages).
5
6As part of the secondary aim, the source code needs to written in a way that encourages the language's adoption and the participation to the OCaml developer community.
7
8## Starting with OCaml
9
10_"OCaml is an industrial strength programming language supporting functional, imperative and object-oriented styles"_ -- https://ocaml.org/
11
12OCaml simply rocks.
13
14If you are unfamiliar with OCaml, consider starting with these resources:
15
16- Install OCaml: https://ocaml.org/docs/install.html
17- Read about OCaml: https://ocaml.org/learn/books.html
18- Ask questions & join the community:
19 - Mailing lists: https://ocaml.org/community/
20 - IRC: irc://irc.freenode.net/#ocaml (Web client: https://riot.im/app/#/room/#freenode_#ocaml:matrix.org )
21 - Reddit: http://www.reddit.com/r/ocaml/
22 - Discourse: https://discuss.ocaml.org/
23 - .. other: https://ocaml.org/community/
24
25## Design principles
26
27[Unix philosophy](https://en.wikipedia.org/wiki/Unix_philosophy#Do_One_Thing_and_Do_It_Well)
28
291. System simplicity & interoperability.
302. Output quality.
313. Distributed interactivity, like sharing with friends.
32
33## Developing & contributing
34
35### Clone
36
37```
38git clone https://cgit.orbitalfox.eu/logarion/
39```
40
41Install dependencies:
42
43```
44cd logarion
45pin add logarion . -n
46opam depext --install logarion
47```
48
49Build the project:
50
51```
52dune build src/logarion.exe
53```
54
55This will create `_build/default/src/logarion.exe` (the command line interface).
56
57### Project structure
58
59There are three layers:
60
61- notes
62- archive
63- interfaces & intermediate formats
64
65### Core
66
67- `logarion.ml`: repository related functions (listing, adding/removing, etc). ([src/logarion.ml](https://gitlab.com/orbifx/logarion/blob/master/src/logarion.ml))
68- `note.ml`: parsing from and to note files. ([src/note.ml](https://gitlab.com/orbifx/logarion/blob/master/src/note.ml))
69
70### Intermediate formats
71
72Converters:
73
74- `html.ml`: archive to HTML pages.
75- `atom.ml`: archive to Atom feeds.
76
77### Servers & utilities
78
79Logarion's archives can be served over various protocols using servers.
80Find related software here:
81
82- https://logarion.orbitalfox.eu/
83- https://cgit.orbitalfox.eu/
Note: See TracBrowser for help on using the repository browser.