ocaml
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

remove RSS (not providing value)

A really useful RSS feed would still be desirable, but this isn't
helpful. A real RSS feed should probably be created using XSLT anyway.

-88
-8
lib/frontend/Forest.ml
··· 238 238 let out = Xmlm.make_output @@ `Channel ch in 239 239 (* Eio_util.xmlm_dest_of_writer w in *) 240 240 Render_xml.render_tree_page ~base_url doc out 241 - end; 242 - begin 243 - base_url |> Option.iter @@ fun base_url -> 244 - let path = Eio.Path.(cwd / "output" / E.route Rss addr) in 245 - Eio.Path.with_open_out ~create path @@ fun flow -> 246 - Eio.Buf_write.with_flow flow @@ fun w -> 247 - let out = Xmlm.make_output @@ Eio_util.xmlm_dest_of_writer w in 248 - Render_rss.render_tree_page ~base_url doc out 249 241 end 250 242 251 243 let render_json ~cwd docs =
-74
lib/render/Render_rss.ml
··· 1 - open Prelude 2 - open Bwd 3 - open Core 4 - 5 - module E = Render_effect.Perform 6 - 7 - module Printer = Xml_printer 8 - type printer = Printer.printer 9 - 10 - let render_rfc_822 date = 11 - let day = Option.value ~default:1 @@ Date.day date in 12 - let month = 13 - match Option.value ~default:1 @@ Date.month date with 14 - | 1 -> "Jan" 15 - | 2 -> "Feb" 16 - | 3 -> "Mar" 17 - | 4 -> "Apr" 18 - | 5 -> "May" 19 - | 6 -> "Jun" 20 - | 7 -> "Jul" 21 - | 8 -> "Aug" 22 - | 9 -> "Sep" 23 - | 10 -> "Oct" 24 - | 11 -> "Nov" 25 - | 12 -> "Dec" 26 - | i -> failwith @@ Format.sprintf "render_rfc_822: invalid month %i" i 27 - in 28 - Format.asprintf "%i %s %i" day month @@ Date.year date 29 - 30 - let render_tree_info ~base_url ~addr (doc : Sem.tree) : printer = 31 - Printer.seq [ 32 - Printer.tag "title" [] [ 33 - Printer.text @@ Option.value ~default:"Untitled" @@ 34 - begin 35 - doc.fm.title |> Option.map @@ fun title -> 36 - String_util.sentence_case @@ 37 - Render_text.Printer.contents @@ 38 - Render_text.render title 39 - end 40 - ]; 41 - Printer.tag "link" [] [ 42 - Printer.text @@ Format.asprintf "%s/%s" base_url @@ E.route Xml addr 43 - ]; 44 - doc.fm.dates |> Fun.flip List.nth_opt 0 |> Printer.option begin fun date -> 45 - Printer.tag "pubDate" [] [ 46 - Printer.text @@ render_rfc_822 date 47 - ] 48 - end 49 - ] 50 - 51 - let render_item ~base_url (doc : Sem.tree) : printer = 52 - match doc.fm.addr with 53 - | None -> failwith "render_item: no addr" 54 - | Some addr -> 55 - Printer.tag "item" [] [ 56 - render_tree_info ~base_url ~addr doc 57 - ] 58 - 59 - 60 - let render_channel ~base_url (doc : Sem.tree) : printer = 61 - match doc.fm.addr with 62 - | None -> failwith "render_channel: no addr" 63 - | Some addr -> 64 - let children = E.children addr in 65 - Printer.tag "channel" [] [ 66 - render_tree_info ~base_url ~addr doc; 67 - Printer.iter (render_item ~base_url) children 68 - ] 69 - 70 - let render_tree_page ~base_url (doc : Sem.tree) : printer = 71 - Printer.document @@ 72 - Printer.tag "rss" [Printer.attr "version" "2.0"] [ 73 - render_channel ~base_url doc 74 - ]
-6
lib/render/Render_rss.mli
··· 1 - open Core 2 - open Bwd 3 - 4 - type printer = Xmlm.output -> unit 5 - 6 - val render_tree_page : base_url:string -> Sem.tree -> printer