Unverified Commit da243327 authored by zapashcanon's avatar zapashcanon
Browse files

add more things

parent 23811fd4
(executable
(name hello)
(modules assets hello template)
(libraries dream))
(name server)
(modules assets server pages template)
(libraries dream omd))
(rule
(targets template.ml)
......@@ -17,3 +17,12 @@
(with-stdout-to
%{null}
(run ocaml-crunch -m plain assets -o %{target}))))
(rule
(target pages.ml)
(deps
(source_tree pages))
(action
(with-stdout-to
%{null}
(run ocaml-crunch -m plain pages -o %{target}))))
let asset_loader _root path _request =
match Assets.read path with
| None -> assert false
| Some asset -> Dream.respond asset
let () =
Dream.run @@ Dream.logger
@@ Dream.router
[ Dream.get "/assets/**" (Dream.static ~loader:asset_loader "")
; Dream.get "/" (fun _request ->
Dream.html
(Template.render ~lang:"en"
~title:"Harnessing Cutting-Edge Technologies" ~content:"Hi !" ) )
; Dream.get "/research-and-development" (fun _request ->
Dream.html
(Template.render ~lang:"en" ~title:"Research and Development"
~content:"We research and we develop" ) )
; Dream.get "/expertise" (fun _request ->
Dream.html
(Template.render ~lang:"en" ~title:"Expertise"
~content:"We are experts in expertise" ) )
; Dream.get "/trainings" (fun _request ->
Dream.html
(Template.render ~lang:"en" ~title:"Trainings"
~content:"Do you know rust ?" ) )
; Dream.get "/team" (fun _request ->
Dream.html
(Template.render ~lang:"en" ~title:"Team"
~content:"The team hihi" ) )
; Dream.get "/blog" (fun _request ->
Dream.html
(Template.render ~lang:"en" ~title:"Blog"
~content:"This is an amazing blog !" ) )
]
@@ Dream.not_found
# Blog
This is our blog
# Expertise
We are experts
# Harnessing Cutting-Edge Technologies
Hi !
# Legal Notice
## Trademarks
OCamlPro and TypeRex are either registered trademarks or trademarks of OCamlPro SAS in France and/or other countries.
All other company and product names referenced in this Web site are used for identification purposes only and may be trade names or trademarks of their respective owners.
Copyright © 2011-2020 OCamlpro SAS. All Rights Reserved.
## Privacy
If you wish to access or modify the information you submitted or unsubscribe from mailings please send an e-mail to contact@ocamlpro.com.
## Documents, software and services available on this website
OCamlPro SAS and/or its suppliers make no representations about the suitability of the information contained in the documents published on this website for any purpose. All such documents are provided “as is”, without warranty of any kind. OCamlPro SAS and/or its suppliers hereby disclaim all warranties and conditions of with regard to this information, including all implied warranties and conditions of merchantability, fitness for a particular purpose, title and non infringement. In no event shall OCamlPro SAS be liable for any special, indirect or consequential damages or any damages whatsoever resulting from loss of use, data or profit arising out of or in connection with the use or performance of information available on this website.
TypeRex includes all or parts of the OCaml system developed by INRIA and its contributors.
## Mentions légales
Le site ocamlpro.com est édité par la société OCamlPro Société par Actions Simplifiée au capital de 23 000€ dont le siège social est situé 6, allée de la Croix Saint Pierre, 91190, Gif-sur-Yvette, et enregistrée au RCS d’Évry sous le numéro de SIRET 531 468 429 00018.
* TVA intracommunautaire n° FR03531468429.
* Directeur de la publication du site : Muriel Shan Sei Fan
* Téléphone : 01 56 08 25 50 Contact : contact@ocamlpro.com
* Hébergeur : OVH, 2 rue Kellermann – 59100 Roubaix – France, Tel +33 9 72 10 10 07
## Conditions générales d’utilisation des sites OCamlPro (ci après « le Site »)
### Obligations de l’Utilisateur du Site :
Vous vous interdisez de copier, de vendre, de concéder en licence, de distribuer, de céder, de modifier, d’adapter, de traduire, de créer des œuvres dérivées, de décompiler, de désassembler ou d’essayer d’obtenir ou de reconstituer le code source du Site et de ses composants, de supprimer, de dissimuler ou de modifier les mentions relatives au droit d’auteur, aux marques ou à toute autre mention relative aux droits de propriété d’OCamlPro ou de tiers.
La reprise de tout ou partie du contenu du site (en particulier les articles et les pages) nécessite l’autorisation préalable d’OCamlPro. Le fait pour OCamlPro de ne pas engager de procédure dès la prise de connaissance de ces utilisations non autorisées ne vaut pas acceptation desdites utilisations et renonciation aux poursuites. Seule l’utilisation pour un usage privé dans un cercle de famille est autorisée et toute autre utilisation est constitutive de contrefaçon et/ou d’atteinte aux droits voisins, sanctionnées par Code de la propriété intellectuelle.
Vous renoncez à toute réclamation, procédure ou à rechercher la responsabilité de OCamlpro au titre des contenus du Site (y compris tout post). OCamlpro ne saurait être tenu responsable de tout défaut de fonctionnement et de tout dommage causé par tout ou partie des services offerts par le Site/son fonctionnement ou causé par les contenus du Site.
Tout contenu mis en ligne par un Utilisateur relève de la responsabilité exclusive de l’Utilisateur à l’origine de sa mise en ligne.
En utilisant le Service, vous acceptez et vous vous engagez à respecter les présentes CGU ainsi que toutes lois et tous règlements applicables. En particulier, il vous est interdit de :
* mettre en ligne tout contenu contraire à la loi ou à la règlementation applicable et aux droits des tiers,
* entreprendre toute action susceptible de porter atteinte aux fonctionnalités ou services offerts par le Site.
En cas de non-respect des présentes CGU, OCamlpro se réserve le droit de supprimer le contenu litigieux, suspendre ou supprimer le compte de l’Utilisateur à concerné, et de prendre toutes les mesures notamment judiciaires qui lui sembleraient nécessaires.
En cas de mise en cause de la responsabilité d’OCamlpro par un tiers résultant d’un manquement de l’Utilisateur aux présentes CGU, l’Utilisateur s’engage à garantir et indemniser OCamlpro contre toute action, réclamation ou conséquence dommageable.
OCamlpro a mis en place un dispositif de signalement permettant à toute personne de porter à sa connaissance les contenus illicites mis en ligne par un Utilisateur. OCamlpro supprimera les Posts conformément à la règlementation applicable.
### Liens hypertextes
Les sites ocamlpro.com peuvent contenir des liens hypertexte donnant accès à d’autres sites web édités et gérés par des tiers et non par l’Éditeur. OCamlpro ne pourra être tenu responsable directement ou indirectement dans le cas où lesdits sites tiers ne respecteraient pas les dispositions légales.
### Données personnelles
Vous reconnaissez consentir à la collecte et au traitement des données personnelles que vous transmettez à OCamlpro lorsque celle-ci les collecte au moment de votre inscription aux fins de fourniture et d’administration des services offerts par le Site.
Ces données ne sont pas visibles des autres Utilisateurs et ne leur seront pas communiquées sauf obligation légale ou décision de justice ou d’une autorité administrative.
Les données d’identification collectées à chaque connexion et création de contenu sont conservées pendant une durée d’un an à compter de leur création et en tout état de cause dans les limites prescrites par la loi.
Vous bénéficiez des droits qui vous sont conférés par la loi française si celle-ci est applicable et notamment d’un droit d’accès et de rectification aux informations qui vous concernent, un droit d’effacement et d’opposition, un droit à la limitation du traitement de vos données, un droit à la portabilité des données. Vous pouvez exercer ces droits en vous adressant par email à contact@ocamlpro.com.
Vous pouvez également, pour des motifs légitimes, vous opposer au traitement des données vous concernant.
OCamlPro s’engage à prendre toutes précautions utiles afin de préserver la sécurité et la confidentialité des données personnelles des Utilisateurs collectées et à empêcher qu’elles ne soient modifiées, endommagées ou communiquées à des personnes non autorisées.
### Droit applicable
Les présentes CGU ainsi que toutes les questions liées à leur conclusion, à leur interprétation, à leur mise en œuvre et à l’utilisation du Site, sont soumises au droit français et à la compétence exclusive des juridictions françaises.
# Research and Development
We research and we develop
# Team
do u know us ???
# Trainings
do u know rust??
let render ~lang ~title ~content =
Template.render_unsafe ~lang ~title ~content:(Dream.html_escape content)
let asset_loader _root path _request =
match Assets.read path with
| None -> Dream.empty `Not_Found
| Some asset -> Dream.respond asset
let page path =
match Pages.read (path ^ ".md") with
| None -> None
| Some page -> Some (Omd.of_string page |> Omd.to_html)
let () =
Dream.run @@ Dream.logger
@@ Dream.router
[ Dream.get "/assets/**" (Dream.static ~loader:asset_loader "")
; Dream.get "/" (fun _request ->
match page "index" with
| None -> Dream.empty `Not_Found
| Some content ->
Dream.html
(Template.render_unsafe ~lang:"end" ~title:"title" ~content) )
; Dream.get "/:page" (fun request ->
match page (Dream.param "page" request) with
| None -> Dream.empty `Not_Found
| Some content ->
Dream.html
(Template.render_unsafe ~lang:"en" ~title:"title" ~content) )
]
@@ Dream.not_found
let render ~lang ~title ~content =
let render_unsafe ~lang ~title ~content =
<!DOCTYPE html>
<html lang="<%s lang %>">
<head>
......@@ -9,21 +9,48 @@ let render ~lang ~title ~content =
</head>
<body>
<header>
<ul>
<li><a href="/">OCamlPro</a></li>
<li><a href="/research-and-development">Research and Development</a></li>
<li><a href="/expertise">Expertise</a></li>
<li><a href="/trainings">Trainings</a></li>
<li><a href="/team">Team</a></li>
<li><a href="/blog">Blog</a></li>
<nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
<div class="container-fluid">
<a class="navbar-brand" href="/"><img src="/assets/img/logo-ocamlpro.png" alt="OCamlPro" height="42" /></a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarCollapse" aria-controls="navbarCollapse" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarCollapse">
<ul class="navbar-nav me-auto mb-2 mb-md-0">
<li class="nav-item">
<a class="nav-link"href="/research-and-development">Research and Development</a>
</li>
<li class="nav-item">
<a class="nav-link"href="/expertise">Expertise</a>
</li>
<li class="nav-item">
<a class="nav-link"href="/trainings">Trainings</a>
</li>
<li class="nav-item">
<a class="nav-link"href="/team">Team</a>
</li>
<li class="nav-item">
<a class="nav-link"href="/blog">Blog</a>
</li>
</ul>
</div>
</div>
</nav>
</header>
<br />
<br />
<br />
<main>
<h1><%s title %></h1>
<%s content %>
<%s! content %>
<footer class="container">
<p class="float-end"><a href="#">Back to top</a></p>
<p>&copy; 2011–2021 OCamlPro &middot; <a href="#">Privacy</a> &middot; <a href="#">Terms</a></p>
<p>&copy; 2011–2021 OCamlPro &middot;
<a href="https://twitter.com/ocamlpro">Twitter</a> &middot;
<a href="https://www.linkedin.com/company/2152404/">LinkedIn</a> &middot;
<a href="mailto:contact@ocamlpro.com">Email</a> &middot;
<a href="tel:+33184800481">Phone</a> &middot;
<a href="https://www.openstreetmap.org/node/2996094140">21 rue de Châtillon, 75014 Paris, France</a> &middot;
<a href="/legal-notice">Legal Notice</a>
</p>
</footer>
</main>
<script src="/assets/js/bootstrap.bundle.min.js"></script>
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment