Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Open sidebar
Mohamed Hernouf
www
Commits
f64e8696
Commit
f64e8696
authored
Nov 08, 2021
by
Mohamed Hernouf
Browse files
Merge branch 'master' of gitlab.ocamlpro.com:OCamlPro/www
parents
a5112952
1f71b7f9
Changes
23
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
159 additions
and
6 deletions
+159
-6
src/content/index.md
src/content/index.md
+3
-3
src/server.ml
src/server.ml
+6
-1
src/urls.ml
src/urls.ml
+150
-2
No files found.
src/content/index.md
View file @
f64e8696
...
...
@@ -9,7 +9,7 @@ We have years of experience on the research and development of programming langu
<br
/>
<div
class=
"row"
>
<div
class=
"col-4"
>
<div
class=
"card bg-transparent"
>
<div
class=
"card bg-transparent
border-0
"
>
<img
src=
"assets/img/home_industry.png"
/>
<div
class=
"card-body"
>
<h5
class=
"card-title"
>
For industrial partners who face challenges
</h5>
...
...
@@ -18,7 +18,7 @@ We have years of experience on the research and development of programming langu
</div>
</div>
<div
class=
"col-4"
>
<div
class=
"card bg-transparent"
>
<div
class=
"card bg-transparent
border-0
"
>
<img
src=
"assets/img/home_research.png"
/>
<div
class=
"card-body"
>
<h5
class=
"card-title"
>
For R
&
D labs who need collaboration
</h5>
...
...
@@ -27,7 +27,7 @@ We have years of experience on the research and development of programming langu
</div>
</div>
<div
class=
"col-4"
>
<div
class=
"card bg-transparent"
>
<div
class=
"card bg-transparent
border-0
"
>
<img
src=
"assets/img/home_dev.png"
/>
<div
class=
"card-body"
>
<h5
class=
"card-title"
>
For developers to reach mastery
</h5>
...
...
src/server.ml
View file @
f64e8696
...
...
@@ -208,6 +208,11 @@ let () =
let
something
=
Dream
.
param
"something"
request
in
let
url
=
Format
.
sprintf
"%s/"
something
in
redirect_loader
""
url
request
)
(* REDIRECTS TAGS PAGES WITH TRAILING / *)
;
Dream
.
get
"/tag/:something/"
(
fun
request
->
let
something
=
Dream
.
param
"something"
request
in
let
url
=
Format
.
sprintf
"tag/%s/"
something
in
redirect_loader
""
url
request
)
(* REDIRECTS FR STATIC PAGES WITH TRAILING / *)
;
Dream
.
get
"/fr/:something/"
(
fun
request
->
let
something
=
Dream
.
param
"something"
request
in
...
...
@@ -250,7 +255,7 @@ let () =
let
article
=
Dream
.
param
"article"
request
in
let
url
=
Format
.
sprintf
"fr/%s/%s/%s/%s/"
year
month
day
article
in
redirect_loader
""
url
request
)
(* REDIRECTS ALL URLS WITH NO TAILING / *)
(* REDIRECTS ALL URLS WITH NO T
R
AILING / *)
;
Dream
.
get
"/**"
(
Dream
.
static
~
loader
:
redirect_loader
""
)
]
@@
Dream
.
not_found
src/urls.ml
View file @
f64e8696
...
...
@@ -102,9 +102,153 @@ let old_to_new =
;
(
"/fr/category/opam/"
,
"/blog/category/tooling"
)
;
(
"/fr/category/rust/"
,
"/blog/category/rust"
)
;
(
"/fr/category/ocaml-fr/"
,
"/blog/category/ocaml"
)
]
]
(*TAGS*)
@
[]
@
[
(
"/tag/3-12/"
,
"/blog/"
)
;
(
"/tag/4-01"
,
"/blog/"
)
;
(
"/tag/4-01-en/"
,
"/blog/"
)
;
(
"/tag/4-02/"
,
"/blog/"
)
;
(
"/tag/4-02-en/"
,
"/blog/"
)
;
(
"/tag/4-08-1/"
,
"/blog/"
)
;
(
"/tag/4-10-en/"
,
"/blog/"
)
;
(
"/tag/4-10/"
,
"/blog/"
)
;
(
"/tag/alt-ergo/"
,
"/blog/tag/altergo"
)
;
(
"/tag/alt-ergo-en/"
,
"/blog/tag/altergo"
)
;
(
"/tag/alt-ergo-spider-web-en/"
,
"/blog/tag/altergo"
)
;
(
"/tag/alt-ergo-spider-web/"
,
"/blog/tag/altergo"
)
;
(
"/tag/backward-compatibility/"
,
"/blog/tag/backwardcompatibility"
)
;
(
"/tag/backward-compatibility-en/"
,
"/blog/tag/backwardcompatibility"
)
;
(
"/tag/blockchain/"
,
"/blog/tag/blockchains"
)
;
(
"/tag/blockchains/"
,
"/blog/tag/blockchains"
)
;
(
"/tag/blog/"
,
"/blog/tag/ocamlpro"
)
;
(
"/tag/build-manager/"
,
"/blog/"
)
;
(
"/tag/build-manager-en/"
,
"/blog/"
)
;
(
"/tag/bware-en/"
,
"/blog/"
)
;
(
"/tag/bytes/"
,
"/blog/"
)
;
(
"/tag/bytes-en/"
,
"/blog/"
)
;
(
"/tag/cheat-sheets/"
,
"/blog/tag/cheatsheets"
)
;
(
"/tag/cheat-sheets-en/"
,
"/blog/tag/cheatsheets"
)
;
(
"/tag/compiler/"
,
"/blog/tag/compiler"
)
;
(
"/tag/compiler-en/"
,
"/blog/tag/compiler"
)
;
(
"/tag/compiler-optimization-en/"
,
"/blog/tag/optimization"
)
;
(
"/tag/compiler-optimization/"
,
"/blog/tag/optimisation"
)
;
(
"/tag/cumulus/"
,
"/blog/tag/cumulus"
)
;
(
"/tag/cumulus-en/"
,
"/blog/tag/cumulus"
)
;
(
"/tag/devleopment-tools/"
,
"/blog/tag/developmenttools"
)
;
(
"/tag/devleopment-tools-en/"
,
"/blog/tag/developmenttools"
)
;
(
"/tag/dune-network/"
,
"/blog/tag/blockchains"
)
;
(
"/tag/editor-en/"
,
"/blog/tag/developmenttools"
)
;
(
"/tag/flambda2/"
,
"/blog/tag/flambda2"
)
;
(
"/tag/flambda2-en/"
,
"/blog/tag/flambda2"
)
;
(
"/tag/formal-methods/"
,
"/blog/category/formal_methods"
)
;
(
"/tag/functor-en/"
,
"/blog/tag/ocaml"
)
;
(
"/tag/gc/"
,
"/blog/tag/gc"
)
;
(
"/tag/gc-en/"
,
"/blog/tag/gc"
)
;
(
"/tag/generic-syntax-extension-en/"
,
"/blog/tag/generic"
)
;
(
"/tag/generic-syntax-extension/"
,
"/blog/tag/generic"
)
;
(
"/tag/hacking-sessions/"
,
"/blog/tag/hackingsessions"
)
;
(
"/tag/hacking-sessions-en/"
,
"/blog/tag/hackingsessions"
)
;
(
"/tag/highlights/"
,
"/blog/tag/highlights"
)
;
(
"/tag/highlights-en/"
,
"/blog/tag/highlights"
)
;
(
"/tag/indentation-en/"
,
"/blog/tag/indentation"
)
;
(
"/tag/inlining-en/"
,
"/blog/tag/inlining"
)
;
(
"/tag/intel-backend/"
,
"/blog/tag/intel"
)
;
(
"/tag/intel-backend-en/"
,
"/blog/tag/intel"
)
;
(
"/tag/javascript/"
,
"/blog/tag/javascript"
)
;
(
"/tag/javascript-en/"
,
"/blog/tag/javascript"
)
;
(
"/tag/jfla/"
,
"/blog/tag/jfla"
)
;
(
"/tag/js_of_ocaml/"
,
"/blog/tag/javascript"
)
;
(
"/tag/js_of_ocaml-en/"
,
"/blog/tag/javascript"
)
;
(
"/tag/liquidity/"
,
"/blog/tag/liquidity"
)
;
(
"/tag/liquidity-fr/"
,
"/blog/tag/liquidity"
)
;
(
"/tag/love/"
,
"/blog/tag/love"
)
;
(
"/tag/memory/"
,
"/blog/tag/memory"
)
;
(
"/tag/memory-en/"
,
"/blog/tag/memory"
)
;
(
"/tag/memprof/"
,
"/blog/tag/memprof"
)
;
(
"/tag/memprof-en/"
,
"/blog/tag/memprof"
)
;
(
"/tag/multi-runtime/"
,
"/blog/tag/ocaml"
)
;
(
"/tag/multi-runtime-en/"
,
"/blog/tag/ocaml"
)
;
(
"/tag/namespaces-en/"
,
"/blog/tag/namespaces"
)
;
(
"/tag/ocaml/"
,
"/blog/tag/ocaml"
)
;
(
"/tag/ocaml-en/"
,
"/blog/tag/ocaml"
)
;
(
"/tag/ocaml-memory-profiler/"
,
"/blog/tag/profiler"
)
;
(
"/tag/ocamlpro/"
,
"/blog/category/ocamlpro"
)
;
(
"/tag/ocamlpro-en/"
,
"/blog/category/ocamlpro"
)
;
(
"/tag/ocamlres/"
,
"/blog/tag/ocaml"
)
;
(
"/tag/ocamlres-en/"
,
"/blog/tag/ocaml"
)
;
(
"/tag/ocamltop/"
,
"/blog/tag/ocamltop"
)
;
(
"/tag/ocamltop-en/"
,
"/blog/tag/ocamltop"
)
;
(
"/tag/ocp-cmicomp/"
,
"/blog/category/ocaml"
)
;
(
"/tag/ocp-cmicomp-en/"
,
"/blog/category/ocaml"
)
;
(
"/tag/ocp-indent-en/"
,
"/blog/tag/ocpindent"
)
;
(
"/tag/ocp-index/"
,
"/blog/tag/ocpindent"
)
;
(
"/tag/ocp-index-en/"
,
"/blog/tag/ocpindent"
)
;
(
"/tag/ocp-manager/"
,
"/blog/tag/ocpmanager"
)
;
(
"/tag/ocp-manager-en/"
,
"/blog/tag/ocpmanager"
)
;
(
"/tag/ocp-memprof/"
,
"/blog/tag/memprof"
)
;
(
"/tag/ocp-memprof-en/"
,
"/blog/tag/memprof"
)
;
(
"/tag/ocp-pack/"
,
"/blog/tag/ocaml"
)
;
(
"/tag/ocp-pack-en/"
,
"/blog/tag/ocaml"
)
;
(
"/tag/ocsigen/"
,
"/blog/tag/ocsigen"
)
;
(
"/tag/ocsigen-en/"
,
"/blog/tag/ocsigen"
)
;
(
"/tag/opam/"
,
"/blog/tag/opam"
)
;
(
"/tag/opam-en/"
,
"/blog/tag/opam"
)
;
(
"/tag/opam-build/"
,
"/blog/tag/opam"
)
;
(
"/tag/opam-build-en/"
,
"/blog/tag/opam"
)
;
(
"/tag/opam-weather-services/"
,
"/blog/tag/weather"
)
;
(
"/tag/opam-weather-services-en/"
,
"/blog/tag/weather"
)
;
(
"/tag/optimization/"
,
"/blog/tag/optimization"
)
;
(
"/tag/optimization-en/"
,
"/blog/tag/optimization"
)
;
(
"/tag/packing/"
,
"/blog/tag/tooling"
)
;
(
"/tag/packing-en/"
,
"/blog/tag/tooling"
)
;
(
"/tag/plot/"
,
"/blog/tag/tezos"
)
;
(
"/tag/plot-en/"
,
"/blog/tag/tezos"
)
;
(
"/tag/private-en/"
,
"/blog/tag/private"
)
;
(
"/tag/profiler/"
,
"/blog/tag/profiler"
)
;
(
"/tag/profiler-en/"
,
"/blog/tag/profiler"
)
;
(
"/tag/profiling/"
,
"/blog/tag/profiling"
)
;
(
"/tag/profiling-en/"
,
"/blog/tag/profiling"
)
;
(
"/tag/release/"
,
"/blog/tag/release"
)
;
(
"/tag/release-en/"
,
"/blog/tag/release"
)
;
(
"/tag/rust/"
,
"/blog/tag/rust"
)
;
(
"/tag/safe-string/"
,
"/blog/tag/tooling"
)
;
(
"/tag/safe-string-en/"
,
"/blog/tag/tooling"
)
;
(
"/tag/scanf/"
,
"/blog/tag/scanf"
)
;
(
"/tag/scanf-en/"
,
"/blog/tag/scanf"
)
;
(
"/tag/scilab/"
,
"/blog/tag/tooling"
)
;
(
"/tag/scilab-en/"
,
"/blog/tag/tooling"
)
;
(
"/tag/smart-contract/"
,
"/blog/tag/smartcontracts"
)
;
(
"/tag/smart-contracts/"
,
"/blog/tag/smartcontracts"
)
;
(
"/tag/solidity/"
,
"/blog/tag/solidity"
)
;
(
"/tag/solver-en/"
,
"/blog/category/formal_methods"
)
;
(
"/tag/source-code/"
,
"/blog/tag/sourcecode"
)
;
(
"/tag/source-code-en/"
,
"/blog/tag/sourcecode"
)
;
(
"/tag/spark/"
,
"/blog/tag/altergo"
)
;
(
"/tag/spark-en/"
,
"/blog/tag/altergo"
)
;
(
"/tag/string-en/"
,
"/blog/tag/string"
)
;
(
"/tag/tezos-en/"
,
"/blog/tag/tezos"
)
;
(
"/tag/tools/"
,
"/blog/tag/tooling"
)
;
(
"/tag/tools-en/"
,
"/blog/tag/tooling"
)
;
(
"/tag/try-altergo/"
,
"/blog/tag/altergo"
)
;
(
"/tag/try-altergo-en/"
,
"/blog/tag/altergo"
)
;
(
"/tag/try-ocaml/"
,
"/blog/tag/tryocaml"
)
;
(
"/tag/try-ocaml-en/"
,
"/blog/tag/tryocaml"
)
;
(
"/tag/tryocaml/"
,
"/blog/tag/tryocaml"
)
;
(
"/tag/tzscan/"
,
"/blog/tag/tzscan"
)
;
(
"/tag/windows-en/"
,
"/blog/tag/windows"
)
;
(
"/tag/wxocaml/"
,
"/blog/tag/wxocaml"
)
;
(
"/tag/wxocaml-en/"
,
"/blog/tag/wxocaml"
)
;
(
"/tag/4-10-fr/"
,
"/blog/tag/bestfit"
)
;
(
"/tag/gc-fr/"
,
"/blog/tag/fr"
)
;
(
"/tag/ocaml-fr/"
,
"/blog/tag/fr"
)
;
(
"/tag/alt-ergo-fr/"
,
"/blog/tag/fr"
)
;
(
"/tag/smart-contracts-fr/"
,
"/blog/tag/fr"
)
;
(
"/tag/tezos-fr/"
,
"/blog/tag/fr"
)
;
(
"/tag/stat-memprof/"
,
"/blog/tag/memprof"
)
;
(
"/tag/memory-profiler/"
,
"/blog/tag/memprof"
)
;
(
"/tag/"
,
"/blog/"
)
]
(* BLOG *)
@
[
(
"/blog/"
,
"/blog"
)
;
(
"/fr/blog-fr/"
,
"/blog"
)
...
...
@@ -382,3 +526,7 @@ let redirection_hash =
|
Some
_new_url
->
Blog
.
error
(
Format
.
sprintf
"%s has a duplicate redirection."
oldu
)
)
old_to_new
;
tbl
let
find_tag
_given_tag
=
Format
.
printf
"YOOOOO@."
;
raise
Blog
.
ContentDoesntExistSoPleaseRaiseA404
Prev
1
2
Next
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment