Module Arod_component.Common

Common utilities shared across Arod components.

Centralises date formatting, list helpers, feed rendering, and other functions that were previously duplicated across multiple component files.

module I = Arod.Icons
module Contact = Sortal_schema.Contact
module Feed = Sortal_schema.Feed
module FeedEntry = Sortal_feed.Entry

Date Formatting

val month_name : int -> string
val month_name_full : int -> string
val ptime_date_short : (int * int * 'a) -> string
val ptime_date_full : (int * int * int) -> string

List Utilities

val take : int -> 'a list -> 'a list
val map_and : ('a -> string) -> 'a list -> string

String Utilities

val strip_www : String.t -> String.t
val contact_initials : string -> string

Paper Helpers

val venue_of_paper : Bushel.Paper.t -> string

Idea Helpers

val idea_level_to_string : Bushel.Idea.level -> string

Feed Helpers

val feed_entry_title_str : FeedEntry.t -> string
val feed_entry_title_el : ?cls:string -> FeedEntry.t -> Htmlit.El.html
val feed_entry_raw_text : FeedEntry.t -> string option
val feed_entry_summary : max_len:int -> FeedEntry.t -> string option
val feed_type_badge : Feed.feed_type -> Htmlit.El.html
val contacts_with_feeds : Contact.t list -> (Contact.t * Sortal_schema__.Sortal_schema_feed.t list) list

Component Combinators

val hidden_author_hcard : ctx:Arod.Ctx.t -> Htmlit.El.html
val detail_tags : string list -> Htmlit.El.html
val page_title : ?cls:string -> string -> Htmlit.El.html
val meta_box : ?id:string -> ?cls:string -> ?body_cls:string -> ?data_attrs:(Htmlit.At.name * string) list -> header:Htmlit.El.html list -> Htmlit.El.html list -> Htmlit.El.html
val hidden_dt_published : (int * int * int) -> Htmlit.El.html

Shared Card Helpers

val card_header : ?title_cls:string -> prompt:string -> title:string -> href:string -> Htmlit.El.html -> Htmlit.El.html
val card_entry_row : icon:string -> href:string -> title:string -> Htmlit.El.html
val card_tags : string list -> Htmlit.El.html

Body Truncation

val truncate_body_parts : Bushel.Entry.entry -> string * (int * bool) option
val truncated_body : ctx:Arod__.Arod_ctx.t -> Bushel.Entry.entry -> Htmlit.El.html * (int * bool) option