Fix documentation formatting
diff --git a/doc/index.rst b/doc/index.rst
index 043078f..ca3da7b 100644
--- a/doc/index.rst
+++ b/doc/index.rst
@@ -1,8 +1,3 @@
-.. Bluejay documentation master file, created by
- sphinx-quickstart on Sun May 30 17:09:32 2021.
- You can adapt this file completely to your liking, but it should at least
- contain the root `toctree` directive.
-
The Bluejay Operating System
============================
@@ -10,7 +5,7 @@
:target: https://builds.sr.ht/~swisschili/bluejay/commits/.build.yml?
.. toctree::
- :maxdepth: 2
+ :maxdepth: 4
:caption: Contents:
:glob:
:hidden:
diff --git a/doc/lisp-std.rst b/doc/lisp-std.rst
index b0a33f8..261f388 100644
--- a/doc/lisp-std.rst
+++ b/doc/lisp-std.rst
@@ -11,44 +11,65 @@
Built-in "functions"
--------------------
+.. function:: (defun function-name (arg1 ... argN) & body)
+
+ Define a function ``function-name`` that takes N arguments with names
+ ``arg1`` ... ``argN``. ``body`` is evaluated in order, with the whole
+ function evaluating to the last expression.
+
+ .. code-block:: lisp
+
+ (defun greet (name)
+ (string-concat "Hello, " name))
+ ; string-concat isn't even implemented yet, but you get the picture.
+
.. function:: (if condition true-condition [false-condition])
- Evaluates ``condition``, if it is truthy (non-``nil``) ``true-condition`` is
- evaluated. Otherwise ``false-condition`` is evaluated. If
- ``false-condition`` is not provided, ``if`` will evaluate to ``nil``.
+ Evaluates ``condition``, if it is truthy (non-``nil``) ``true-condition`` is
+ evaluated. Otherwise ``false-condition`` is evaluated. If
+ ``false-condition`` is not provided and ``condition`` is ``nil``, ``if``
+ will evaluate to ``nil``.
+
+ .. code-block:: lisp
+
+ (print (if (= 2 3)
+ "2 = 3"
+ "2 /= 3"))
+ ; 2 /= 3
.. function:: (let1 (variable binding) & body)
- Evaluates ``binding`` and binds it to ``variable``, then evaluates ``body``.
- After ``body`` is evaluated ``variable`` is unbound.
+ Evaluates ``binding`` and binds it to ``variable``, then evaluates ``body``.
+ After ``body`` is evaluated ``variable`` is unbound.
- .. code-block:: lisp
+ .. code-block:: lisp
- (let1 (greeting (greet "John"))
- (do-something greeting)
- (print greeting))
- ; greeting is no longer bound
+ (let1 (greeting (greet "John"))
+ (do-something greeting)
+ (print greeting))
+ ; greeting is no longer bound
.. function:: (gc)
- Force the garbage collector (GC) to run.
+ Force the garbage collector (GC) to run.
Functions
---------
.. function:: (car pair)
- Return the first item in ``pair``.
+ Return the first item in ``pair``.
.. function:: (cdr pair)
- Return the second (last) item in ``pair``.
+ Return the second (last) item in ``pair``.
.. function:: (cons a b)
- Return a cons-pair containing ``a`` and ``b``.
+ Return a cons-pair containing ``a`` and ``b``.
.. function:: (print val)
- Print out ``val`` to standard output. This will not be formatted as an
- s-expression, but in a manner more similar to the internal representation.
\ No newline at end of file
+ Print out ``val`` to standard output. This will not be formatted as an
+ s-expression, but in a manner more similar to the internal representation.
+
diff --git a/doc/logging.rst b/doc/logging.rst
index fd43282..9663d98 100644
--- a/doc/logging.rst
+++ b/doc/logging.rst
@@ -5,8 +5,10 @@
(currently only VGA since it is the only display target implemented) using
``kprintf`` in ``include/kernel/log.h``. Additional defines in the same file may
help differentiate different types of log messages (i.e. errors, debug
-information, etc). ::
+information, etc).
+
+.. code-block:: c
kprintf(OKAY "Something succeeded\n");
- kprintf(ERROR "Something failed :(\n");
- // etc, see log.h for details
+ kprintf(ERROR "Something failed :(\n");
+ // etc, see log.h for details