14
14
15
15
module StringHtml = Html5. Make_printer (StringPrinter )
16
16
17
+ let (++ ) = List. append
18
+
19
+ let template_taglist tags =
20
+ let format_tag tag =
21
+ let taglink = Printf. sprintf " /tags/%s" in
22
+ a ~a: [taglink tag |> a_href; a_class [" tag" ]] [pcdata tag] in
23
+ List. map format_tag tags |> div ~a: [a_class [" tags" ]]
24
+
17
25
let template_links keys =
18
26
let paths = List. map (function
19
27
| x ::_ -> x
@@ -33,13 +41,13 @@ let template_main ~config ~content ~title ~keys =
33
41
html
34
42
(head
35
43
(Html5.M. title (pcdata title))
36
- (List. append [
44
+ ([
37
45
meta ~a: [a_charset " UTF-8" ] () ;
38
46
link ~rel: [`Stylesheet ] ~href: " /static/bower/bootstrap/dist/css/bootstrap.min.css" () ;
39
47
link ~rel: [`Stylesheet ] ~href: " /static/css/style.css" () ;
40
48
script ~a: [a_src " /static/bower/jquery/dist/jquery.min.js" ] (pcdata " " );
41
49
script ~a: [a_src " /static/bower/bootstrap/dist/js/bootstrap.min.js" ] (pcdata " " )
42
- ] mathjax)
50
+ ] ++ mathjax)
43
51
)
44
52
(body
45
53
[
@@ -54,7 +62,7 @@ let template_main ~config ~content ~title ~keys =
54
62
span ~a: [a_class [" icon-bar" ]][];
55
63
span ~a: [a_class [" icon-bar" ]][]
56
64
];
57
- a ~a: [a_class [" navbar-brand" ]; a_href config.index_page][pcdata config.blog_name]
65
+ a ~a: [a_class [" navbar-brand" ]; a_href ( " / " ^ config.index_page) ][pcdata config.blog_name]
58
66
];
59
67
div ~a: [a_class [" collapse navbar-collapse collapse" ]] [
60
68
ul ~a: [a_class [" nav navbar-nav navbar-right" ]] links
@@ -73,12 +81,15 @@ let template_main ~config ~content ~title ~keys =
73
81
let template_article article =
74
82
let author = " Written by " ^ article.author in
75
83
let updated = " Last updated: " ^ article.date in
84
+ let tags = template_taglist article.tags in
76
85
[div ~a: [a_class [" post" ]] [
77
86
h2 [pcdata article.title];
78
87
span ~a: [a_class [" author" ]] [pcdata author];
79
88
br () ;
80
89
span ~a: [a_class [" date" ]] [pcdata updated];
81
90
br () ;
91
+ tags;
92
+ br () ;
82
93
Html5.M. article [Unsafe. data article.content]
83
94
]]
84
95
@@ -87,12 +98,12 @@ let template_listing_entry article =
87
98
let abstract = match article.abstract with
88
99
| None -> []
89
100
| Some abstract -> [p ~a: [a_class [" list-group-item-text abstract" ]] [pcdata abstract]] in
90
- let content = List. append [
91
- h4 ~a: [a_class [" list-group-item-heading" ]] [pcdata article.title];
92
- span ~a: [a_class [" author" ]] [pcdata author];
93
- br () ;
94
- ] abstract in
95
- a ~a: [a_href article.uri; a_class [" list-group-item" ]] content
101
+ let content = [
102
+ h4 ~a: [a_class [" list-group-item-heading" ]] [pcdata article.title];
103
+ span ~a: [a_class [" author" ]] [pcdata author];
104
+ br () ;
105
+ ] in
106
+ a ~a: [a_href article.uri; a_class [" list-group-item" ]] ( content ++ abstract)
96
107
97
108
let template_listing articles =
98
109
let entries = List. map template_listing_entry articles in
0 commit comments