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 @@

Packages

((! input template/front_package.mpp !)) +

See more packages!

diff --git a/template/front_package.mpp b/template/front_package.mpp index 7885dc091..a71530994 100644 --- a/template/front_package.mpp +++ b/template/front_package.mpp @@ -1,8 +1,3 @@ -