about summary refs log tree commit diff
path: root/src/log.ml
diff options
context:
space:
mode:
Diffstat (limited to 'src/log.ml')
-rw-r--r--src/log.ml15
1 files changed, 12 insertions, 3 deletions
diff --git a/src/log.ml b/src/log.ml
index 3a4b95a..b2680f8 100644
--- a/src/log.ml
+++ b/src/log.ml
@@ -20,14 +20,14 @@ let privacy_level_of_char = function
   | '*' -> Some Semi_private
   | _   -> None
 
-type item = Item of privacy_level * string * string
+type 'a item = Item of privacy_level * 'a * 'a
 
 let filter_privacy_level mode items =
   List.filter (fun (Item (p, _, _)) -> compatible_privacy p mode) items
 
-type log_entry = Log_entry of Ptime.date * string * item list
+type 'a log_entry = Log_entry of Ptime.date * 'a * ('a item) list
 
-type log = log_entry list
+type 'a log = ('a log_entry) list
 
 (* parser *)
 
@@ -89,6 +89,15 @@ let log_parser =
   skip_many empty_line *>
   spaced_list log_entryp
 
+(* processing *)
+
+let apply_markup markup log =
+  let apply_items items =
+    List.map (fun (Item (priv, title, block)) ->
+      Item (priv, (markup title), (markup block))) items in
+  List.map (fun (Log_entry (date, summary, items)) ->
+    Log_entry (date, (markup summary), (apply_items items))) log
+
 (*---------------------------------------------------------------------------
    Copyright (c) 2017 sternenseemann