diff --git a/planet_feeds.txt b/planet_feeds.txt
index 66a76794f..160daeab6 100644
--- a/planet_feeds.txt
+++ b/planet_feeds.txt
@@ -1,72 +1,72 @@
-Andrej Bauer|http://math.andrej.com/feed.xml
-Andy Ray|http://www.ujamjar.com/ocaml.xml
-Ashish Agarwal|http://ashishagarwal.org/tag/ocaml/feed/
-CUFP|http://cufp.org/blog/all.rss.xml
-Cameleon news|http://www.blogger.com/feeds/7617521785419311079/posts/default
-Caml INRIA|http://caml.inria.fr/news.en.rss
-Caml Spotting|http://camlspotter.blogspot.com/feeds/posts/default?alt=rss
-Coherent Graphics|https://coherentpdf.com/blog/?tag=ocaml&feed=rss2
-Coq|https://coq.inria.fr/rss.xml
-Cranial Burnout|http://www.blogger.com/feeds/9108979482982930820/posts/default/-/OCaml
-Daniel Bünzli|https://erratique.ch/feeds/news.atom
-Daniel Bünzli (log)|https://erratique.ch/log/feed.atom
-Dario Teixeira|http://nleyten.com/feed/tag/ocaml/atom
-David Baelde|http://www.blogger.com/feeds/17133288/posts/default/-/ocaml
-David Mentré|http://blog.bentobako.org/index.php?feed/tag/ocaml/atom
-David Teller|https://dutherenverseauborddelatable.wordpress.com/category/ocaml/feed/
-Eray Özkural|https://examachine.net/blog/category/ocaml/feed/
-Erik de Castro Lopo|http://www.mega-nerd.com/erikd/Blog/index.rss20
-Etienne Millon|http://blog.emillon.org/feeds/ocaml.xml
-Frama-C|http://frama-c.com/rss.xml
-GaGallium|http://gallium.inria.fr/blog/index.rss
-Gaius Hammond|https://gaius.tech/category/ocaml/feed/
-Gemma Gordon (OCaml Labs)|http://reynard.io/feed.xml
-Gerd Stolpmann|http://blog.camlcity.org/blog/rss
-GitHub Jobs|https://jobs.github.com/positions.atom?description=ocaml
-Grant Rettke|https://www.wisdomandwonder.com/tag/OCaml/feed
-Hannes Mehnert|https://hannes.nqsb.io/atom
-Hong bo Zhang|https://hongboz.wordpress.com/feed/
-Jake Donham|http://ambassadortothecomputers.blogspot.com/feeds/posts/default?alt=rss
-Jane Street|https://blog.janestreet.com/feed.xml
-KC Sivaramakrishnan|https://kcsrk.info/atom-ocaml.xml
-Leo White|http://lpw25.net/rss.xml
-Magnus Skjegstad|http://www.skjegstad.com/feeds/ocaml.tag.atom.xml
-Marc Simpson|https://blog.0branch.com/rss.xml
-Matthias Puech|https://syntaxexclamation.wordpress.com/tag/ocaml/feed/
-Matías Giovannini|http://www.blogger.com/feeds/5888658295182480819/posts/default
-Mindy Preston|https://www.somerandomidiot.com/blog/categories/ocaml/atom.xml
-Mike Lin|http://www.blogger.com/feeds/3693082774051755513/posts/default/-/OCaml
-Mike McClurg|https://mcclurmc.wordpress.com/feed/
-MirageOS|https://mirage.io/blog/atom.xml
-OCaml Book|http://ocaml-book.com/blog?format=rss
-OCaml Labs compiler hacking|http://ocamllabs.io/compiler-hacking/rss.xml
-OCamlCore.com|http://www.ocamlcore.com/wp/feed/?amp;language=en&language=en
-OCamlPro|https://www.ocamlpro.com/feed/
-ODNS project|http://odns.tuxfamily.org/feed/
-Ocaml XMPP project|http://ox.tuxfamily.org/feed/
-Ocsigen project|https://ocsigen.org/feed.xml
-Opa|http://www.blogger.com/feeds/2073503406800427577/posts/default
-Orbitz|http://functional-orbitz.blogspot.com/feeds/posts/default/-/planetocaml?alt=rss
-Paolo Donadeo|http://www.donadeo.net/facets/programming-languages/objective-caml/feed/
-Perpetually Curious|http://lambdafoo.com/blog/categories/ocaml/atom.xml
-Peter Zotov|https://whitequark.org/blog/categories/ocaml/atom.xml
-Psellos|http://psellos.com/atom.xml
-Richard Jones|https://rwmj.wordpress.com/tag/ocaml/feed/
-Rudenoise|http://rudenoise.uk/ocaml.rss
-Rudi Grinberg|http://rgrinberg.com/blog/atom.xml
-Sebastien Mondet|https://seb.mondet.org/b/OCaml.rss
-Shayne Fletcher|http://blog.shaynefletcher.org/feeds/posts/default/-/OCaml
-Stefano Zacchiroli|https://upsilon.cc/~zack/tags/ocaml/index.rss
-Thomas Leonard|http://roscidus.com/blog/blog/categories/ocaml/atom.xml
-Till Varoquaux|http://www.blogger.com/feeds/6115529230232389198/posts/default
-Yan Shvartzshnaider|http://yansnotes.blogspot.com/feeds/posts/default/-/ocaml
-OCaml-Java|http://www.ocamljava.org/feed.xml
-OCaml Platform|http://opam.ocaml.org/blog/feed.xml
-Xinuo Chen|http://typeocaml.com/rss/
-Cryptosense|https://cryptosense.com/blog/tag/ocaml/feed/
-Gabriel Radanne|http://drup.github.io/feed-ocaml.xml
-The BAP Blog|https://binaryanalysisplatform.github.io/feed.xml
-Tarides|https://tarides.com/feed.xml
-Ahrefs|https://medium.com/feed/ahrefs/tagged/ocaml
-Reason Documentation Blog|https://rescript-lang.org/blog/feed.xml
-Daniil Baturin|https://baturin.org/blog/atom-ocaml.xml
+Andrej Bauer|http://math.andrej.com/feed.xml|http://math.andrej.com/
+Andy Ray|http://www.ujamjar.com/ocaml.xml|http://www.ujamjar.com/
+Ashish Agarwal|http://ashishagarwal.org/tag/ocaml/feed/|http://ashishagarwal.org/
+CUFP|http://cufp.org/blog/all.rss.xml|http://cufp.org/2017/
+Cameleon news|http://www.blogger.com/feeds/7617521785419311079/posts/default|http://ocameleon.blogspot.com/
+Caml INRIA|http://caml.inria.fr/news.en.rss|http://caml.inria.fr/
+Caml Spotting|http://camlspotter.blogspot.com/feeds/posts/default?alt=rss|http://camlspotter.blogspot.com/
+Coherent Graphics|https://coherentpdf.com/blog/?tag=ocaml&feed=rss2|https://coherentpdf.com/blog/
+Coq|https://coq.inria.fr/rss.xml|https://coq.inria.fr/
+Cranial Burnout|http://www.blogger.com/feeds/9108979482982930820/posts/default/-/OCaml|http://cranialburnout.blogspot.com/search/label/OCaml
+Daniel Bünzli|https://erratique.ch/feeds/news.atom|https://erratique.ch/contact.en
+Daniel Bünzli (log)|https://erratique.ch/log/feed.atom|https://erratique.ch/log/
+Dario Teixeira|http://nleyten.com/feed/tag/ocaml/atom|http://nleyten.com/feed/tag/ocaml/atom
+David Baelde|http://www.blogger.com/feeds/17133288/posts/default/-/ocaml|http://misterpingouin.blogspot.com/search/label/ocaml
+David Mentré|http://blog.bentobako.org/index.php?feed/tag/ocaml/atom|http://blog.bentobako.org/index.php?
+David Teller|https://dutherenverseauborddelatable.wordpress.com/category/ocaml/feed/|https://dutherenverseauborddelatable.wordpress.com/
+Eray Özkural|https://examachine.net/blog/category/ocaml/feed/|https://examachine.net/blog/category/ocaml/feed/
+Erik de Castro Lopo|http://www.mega-nerd.com/erikd/Blog/index.rss20|http://www.mega-nerd.com/erikd/Blog/
+Etienne Millon|http://blog.emillon.org/feeds/ocaml.xml|http://blog.emillon.org/
+Frama-C|http://frama-c.com/rss.xml|https://frama-c.com/
+GaGallium|http://gallium.inria.fr/blog/index.rss|http://gallium.inria.fr/blog/
+Gaius Hammond|https://gaius.tech/category/ocaml/feed/|https://gaius.tech/
+Gemma Gordon (OCaml Labs)|http://reynard.io/feed.xml|http://reynard.io/
+Gerd Stolpmann|http://blog.camlcity.org/blog/rss|http://blog.camlcity.org/blog
+GitHub Jobs|https://jobs.github.com/positions.atom?description=ocaml|https://jobs.github.com/
+Grant Rettke|https://www.wisdomandwonder.com/tag/OCaml/feed|https://www.wisdomandwonder.com/
+Hannes Mehnert|https://hannes.nqsb.io/atom|Posts/NGI
+Hong bo Zhang|https://hongboz.wordpress.com/feed/|https://hongboz.wordpress.com/
+Jake Donham|http://ambassadortothecomputers.blogspot.com/feeds/posts/default?alt=rss|http://ambassadortothecomputers.blogspot.com/
+Jane Street|https://blog.janestreet.com/feed.xml|https://blog.janestreet.com/
+KC Sivaramakrishnan|https://kcsrk.info/atom-ocaml.xml|https://kcsrk.info/
+Leo White|http://lpw25.net/rss.xml|http://www.lpw25.net/
+Magnus Skjegstad|http://www.skjegstad.com/feeds/ocaml.tag.atom.xml|http://www.skjegstad.com/
+Marc Simpson|https://blog.0branch.com/rss.xml|https://blog.0branch.com/
+Matthias Puech|https://syntaxexclamation.wordpress.com/tag/ocaml/feed/|https://syntaxexclamation.wordpress.com/
+Matías Giovannini|http://www.blogger.com/feeds/5888658295182480819/posts/default|http://alaska-kamtchatka.blogspot.com/
+Mindy Preston|https://www.somerandomidiot.com/blog/categories/ocaml/atom.xml|https://www.somerandomidiot.com/blog
+Mike Lin|http://www.blogger.com/feeds/3693082774051755513/posts/default/-/OCaml|http://blog.mlin.net/search/label/OCaml
+Mike McClurg|https://mcclurmc.wordpress.com/feed/|https://mcclurmc.wordpress.com/
+MirageOS|https://mirage.io/blog/atom.xml|https://mirage.io/blog/
+OCaml Book|http://ocaml-book.com/blog?format=rss|http://ocaml-book.com/blog/
+OCaml Labs compiler hacking|http://ocamllabs.io/compiler-hacking/rss.xml|https://ocamllabs.github.com/compiler-hacking/
+OCamlCore.com|http://www.ocamlcore.com/wp/feed/?amp;language=en&language=en|https://www.ocamlcore.com/wp/index.html
+OCamlPro|https://www.ocamlpro.com/feed/|https://www.ocamlpro.com/
+ODNS project|http://odns.tuxfamily.org/feed/|http://odns.tuxfamily.org/
+Ocaml XMPP project|http://ox.tuxfamily.org/feed/|http://ox.tuxfamily.org/
+Ocsigen project|https://ocsigen.org/feed.xml|https://ocsigen.org/home/intro.html
+Opa|http://www.blogger.com/feeds/2073503406800427577/posts/default|http://blog.opalang.org/
+Orbitz|http://functional-orbitz.blogspot.com/feeds/posts/default/-/planetocaml?alt=rss|http://functional-orbitz.blogspot.com/search/label/planetocaml
+Paolo Donadeo|http://www.donadeo.net/facets/programming-languages/objective-caml/feed/|http://www.donadeo.net/
+Perpetually Curious|http://lambdafoo.com/blog/categories/ocaml/atom.xml|https://lambdafoo.com/blog
+Peter Zotov|https://whitequark.org/blog/categories/ocaml/atom.xml|https://whitequark.org/blog//
+Psellos|http://psellos.com/atom.xml|http://psellos.com/
+Richard Jones|https://rwmj.wordpress.com/tag/ocaml/feed/|https://rwmj.wordpress.com
+Rudenoise|http://rudenoise.uk/ocaml.rss|https://rudenoise.uk/
+Rudi Grinberg|http://rgrinberg.com/blog/atom.xml|http://rgrinberg.com
+Sebastien Mondet|https://seb.mondet.org/b/OCaml.rss|https://seb.mondet.org/b/
+Shayne Fletcher|http://blog.shaynefletcher.org/feeds/posts/default/-/OCaml|http://blog.shaynefletcher.org/search/label/OCaml
+Stefano Zacchiroli|https://upsilon.cc/~zack/tags/ocaml/index.rss|http://upsilon.cc/~zack/tags/ocaml/
+Thomas Leonard|http://roscidus.com/blog/blog/categories/ocaml/atom.xml|https://roscidus.com/blog/
+Till Varoquaux|http://www.blogger.com/feeds/6115529230232389198/posts/default|http://till-varoquaux.blogspot.com/
+Yan Shvartzshnaider|http://yansnotes.blogspot.com/feeds/posts/default/-/ocaml|http://yansnotes.blogspot.com/search/label/ocaml
+OCaml-Java|http://www.ocamljava.org/feed.xml|http://www.ocamljava.org/
+OCaml Platform|http://opam.ocaml.org/blog/feed.xml|https://opam.ocaml.org/blog/feed.xml
+Xinuo Chen|http://typeocaml.com/rss/|http://typeocaml.com/
+Cryptosense|https://cryptosense.com/blog/tag/ocaml/feed/|https://cryptosense.com/blog
+Gabriel Radanne|http://drup.github.io/feed-ocaml.xml|https://drup.github.io/
+The BAP Blog|https://binaryanalysisplatform.github.io/feed.xml|http://binaryanalysisplatform.github.io/
+Tarides|https://tarides.com/feed.xml|https://tarides.com
+Ahrefs|https://medium.com/feed/ahrefs/tagged/ocaml|https://tech.ahrefs.com/tagged/ocaml
+Reason Documentation Blog|https://rescript-lang.org/blog/feed.xml|https://rescript-lang.org
+Daniil Baturin|https://baturin.org/blog/atom-ocaml.xml|https://baturin.org/blog/
diff --git a/script/rss2html.ml b/script/rss2html.ml
index a5ad663c1..afa9b3564 100644
--- a/script/rss2html.ml
+++ b/script/rss2html.ml
@@ -188,8 +188,8 @@ let get_opml () =
"OCaml Planet" in
(* Broken feeds will be marked with [is_comment = true]. *)
let opml = Opml1.of_atom ~head feeds in
- (* Sort by name. (FIXME: one may want to ignore spaces.) *)
- let by_name o1 o2 = String.compare o1.Opml1.text o2.Opml1.text in
+ (* Sort by name. *)
+ let by_name o1 o2 = String.compare (String.trim o1.Opml1.text) (String.trim o2.Opml1.text) in
{ opml with Opml1.body = List.sort by_name opml.Opml1.body }
let opml fname =
@@ -367,7 +367,7 @@ let html_date_of_post e =
| Some d ->
let date =
let open Syndic.Date in
- sprintf "%s %02d, %d" (string_of_month(month d)) (day d) (year d) in
+ sprintf "%s %02d, %d" (string_of_month(month d)) (day d) (year d) in
[Data date]
(* Transform a post [p] (i.e. story) into HTML. *)
@@ -413,7 +413,7 @@ let html_of_post e =
[Element("img", ["src", "/img/twitter.png";
"alt", "Twitter"], []) ])
:: rss) ] in
- let sep = Data " — " in
+ let sep = Data " — " in
let additional_info = match html_author_of_post e, html_date_of_post e with
| [], [] -> []
| html_author, [] -> sep :: html_author
@@ -436,7 +436,7 @@ let html_of_post e =
let li_of_post (e: Atom.entry) =
- let sep = Data " — " in
+ let sep = Data " — " in
let title = string_of_text_construct e.Atom.title in
let title = match get_alternate_link e with
| None -> [Data title]
@@ -682,4 +682,4 @@ let () =
(* Local Variables: *)
(* compile-command: "make --no-print-directory -k -C .. script/rss2html" *)
-(* End: *)
+(* End: *)
\ No newline at end of file
diff --git a/site/css/bootstrap.css b/site/css/bootstrap.css
index 38347dca3..05657ede3 100644
--- a/site/css/bootstrap.css
+++ b/site/css/bootstrap.css
@@ -1731,13 +1731,13 @@ table {
}
.table {
width: 100%;
- margin-bottom: 24px;
+ margin-bottom: 12px;
font-family: Lato, sans-serif;
}
.table th,
.table td {
padding: 8px;
- line-height: 24px;
+ line-height: 23px;
text-align: center;
vertical-align: center;
}
@@ -1745,6 +1745,13 @@ table {
border-top: 1px transparent solid;
border-bottom: 1px transparent solid;
}
+@media (min-width: 768px) and (max-width: 1024px){
+ .table th,
+ .table td {
+ line-height: 27px;
+ }
+}
+
.table th {
font-weight: bold;
background: #EBEBEB;
@@ -5425,9 +5432,10 @@ body {
margin-top: -10px;
}
.condensed .table {
- border-top: none;
- border-top-right-radius: 0;
- border-top-left-radius: 0;
+ border-top: 1px solid #c5c5c5;
+ border-top-right-radius: 4px;
+ border-top-left-radius: 4px;
+ margin-top: -10px;
}
#package-tools {
position: absolute;
diff --git a/site/css/ocamlorg.css b/site/css/ocamlorg.css
index 8ca409b54..da1ac5de0 100644
--- a/site/css/ocamlorg.css
+++ b/site/css/ocamlorg.css
@@ -226,6 +226,9 @@ div.subscribers {
.subscribers li {
line-height: 100%;
}
+.subscribers li .share a{
+ margin-left : 5px;
+}
.subscribers .broken {
text-decoration: line-through;
diff --git a/site/index.md b/site/index.md
index 916626244..45ff5fc4f 100644
--- a/site/index.md
+++ b/site/index.md
@@ -150,6 +150,7 @@
See more packages! Packages
((! input template/front_package.mpp !))
+