urls.ml 14.1 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120
(* TODO: MAP PAGES THAT HAVE NO EQUIVALENT IN NEW SITE:
 *
 * *)
(* (OLD URL, NEW URL) *)
let old_to_new =
  (* NO EQUIVALENT *)
  [ ("/fr/recrutement-ocamlpro/", "/internships")
  ; ("/fr/recrutement-ocamlpro/", "/jobs")
  ; ( "https://www.ocamlpro.com/pre-inscription-a-une-session-de-formation-inter-entreprises/"
    , "/" )
  ; ("https://www.ocamlpro.com/2018/01/15/2017-at-ocamlpro-2/", "/")
  ; ( "https://www.ocamlpro.com/2018/02/08/liquidity-smart-contract-deploy-live-demo-on-tezos-alphanet-jfla2018/"
    , "/" )
  ; ( "https://www.ocamlpro.com/2018/02/08/ocamlpros-liquidity-lang-demo-at-jfla2018-a-smart-contract-design-language/"
    , "/" )
  ; ( "https://www.ocamlpro.com/2018/02/14/release-of-a-first-version-of-tzscan-io-a-tezos-block-explorer/"
    , "/" )
  ; ("https://www.ocamlpro.com/2018/03/14/new-updates-on-tzscan/", "/")
  ; ("https://www.ocamlpro.com/2018/03/14/release-of-alt-ergo-2-1-0/", "/")
  ; ( "https://www.ocamlpro.com/2018/04/13/taskforce-on-the-tezos-protocol-and-tzscan-evolution/"
    , "/" )
  ; ("https://www.ocamlpro.com/2018/04/23/release-of-alt-ergo-2-2-0/", "/")
  ; ("https://www.ocamlpro.com/2018/07/20/new-updates-on-tzscan-2/", "/")
  ; ( "https://www.ocamlpro.com/2018/07/20/ocamlpros-tezos-block-explorer-tzscans-last-updates/"
    , "/" )
  ; ( "https://www.ocamlpro.com/2018/10/17/ocamlpros-tzscan-grant-proposal-accepted-by-the-tezos-foundation-joint-press-release/"
    , "/" )
  ; ( "https://www.ocamlpro.com/2018/11/06/liquidity-tutorial-a-game-with-an-oracle-for-random-numbers/"
    , "/" )
  ; ( "https://www.ocamlpro.com/2019/03/05/signing-data-for-smart-contracts/"
    , "/" )
  ; ( "https://www.ocamlpro.com/2019/03/08/announcing-liquidity-version-1-0/"
    , "/" )
  ; ( "https://www.ocamlpro.com/2019/03/09/release-liquidity-v1-smart-contracts-language/"
    , "/" )
  ; ( "https://www.ocamlpro.com/2019/08/30/ocamlpros-compiler-team-work-update/"
    , "/" )
  ; ( "https://www.ocamlpro.com/2019/09/25/ocaml-expert-and-beginner-training-by-ocamlpro-in-french-nov-5-6-7-8/"
    , "/" )
  ; ( "https://www.ocamlpro.com/2020/03/16/new-version-of-try-ocaml-in-beta/"
    , "/" )
  ; ( "https://www.ocamlpro.com/2020/06/05/interview-sylvain-conchon-joins-ocamlpro/"
    , "/" )
  ; ( "https://www.ocamlpro.com/2020/12/01/memthol-exploring-program-profiling/"
    , "/" )
  ; ("https://www.ocamlpro.com/2021/01/22/release-of-alt-ergo-2-4-0/", "/")
  ; ("https://www.ocamlpro.com/2021/03/29/new-try-alt-ergo/", "/")
  ]
  (* LEAD TO 404 *)
  @ [ ("https://www.ocamlpro.com/2017/05/04/opam-build", "404")
    ; ("https://www.ocamlpro.com/2018/07/26/opam-2-0-0-rc3", "404")
    ]
  (* PAGES STATIQUES FR *)
  @ [ ("/fr/accueil/", "/index")
    ; ("/fr/accueil/#equipe/", "/team")
    ; ("/fr/lequipe-ocamlpro", "/team")
    ; ("/fr/lequipe-ocamlpro/", "/team")
    ; ("/fr/accueil/#expertise/", "/index")
    ; ("/fr/accueil/formations/", "/index")
    ; ( "/fr/formation-maitriser-opam-et-les-outils-ocaml"
      , "/course_mastering_opam_ocaml_tools" )
    ; ( "/fr/formation-maitriser-opam-et-les-outils-ocaml/"
      , "/course_mastering_opam_ocaml_tools" )
    ; ("/fr/mentions-legales", "/legal-notice")
    ; ("/fr/accueil/#prototypage", "/startup_studio")
    ; ("/fr/formation-expert-ocaml/", "/course_ocaml_expert")
    ; ("/fr/formation-rust/", "/course_rust_vocational_training")
    ; ("/fr/recherche-developpement/", "/research-and-development")
    ; ("/fr/formation-passer-a-ocaml", "/course_ocaml_development")
    ; ("/fr/formation-passer-a-ocaml/", "/course_ocaml_development")
    ; ("/fr/formation-optimiser-du-code-ocaml/", "/course_ocaml_code_opti")
    ]
  (* STATIC PAGES *)
  @ [ ("/", "/index")
    ; ("/team", "/team")
    ; ("/#team", "/team")
    ; ("/#expertise", "/index")
    ; ("/training-ocamlpro/", "/index")
    ; ("/legal-notice", "/legal-notice")
    ; ("/#prototyping", "/startup_studio")
    ; ("/mentions-legales", "/legal-notice")
    ; ("/research-and-development/", "/research-and-development")
    ; ("/rust-vocational-training-2/", "/course_rust_vocational_training")
    ]
  (* COURSE PAGES *)
  @ [ ( "/course-mastering-opam-ocamls-tooling/"
      , "/course_mastering_opam_ocaml_tools" )
    ; ("/course-ocaml-expert/", "/course_ocaml_expert")
    ; ("/course-ocaml-development/", "/course_ocaml_development")
    ; ("/course-ocaml-code-optimization/", "/course_ocaml_code_opti")
    ; ("/rust-vocational-training-2/", "/course_rust_vocational_training")
    ]
  (* AUTHORS *)
  @ [ ("/fr/author/lefessan/", "/blog/authors/fabrice_le_fessant")
    ; ("/fr/author/acoquer/", "/blog/authors/albin_coquereau")
    ; ("/fr/author/adrien/", "/blog/authors/adrien_champion")
    ; ("/fr/author/aurore/", "/blog/authors/aurore_dromby")
    ; ("/fr/author/cagdas/", "/blog/authors/cagdas_bozman")
    ; ("/fr/author/louis/", "/blog/authors/louis_gesbert")
    ; ("/fr/author/thomas/", "/blog/authors/thomas_blanc")
    ; ("/fr/author/ocamlpro/", "/blog/authors/ocamlpro")
    ; ("/fr/author/raja/", "/blog/authors/raja_boujbel")
    ; ("/fr/author/leob/", "/blog/authors/leo_boitel")
    ; ("/fr/author/muriel/", "/blog/authors/muriel")
    ; ("/fr/author/vincent/", "?")
    ; ("/fr/author/alain/", "?")
    ]
  (* BLOG *)
  @ [ ("/blog/", "/blog")
    ; ("/fr/blog-fr/", "/blog")
    ; ( "/2011/05/06/ocaml-32bits-longval/"
      , "/blog/2011_05_06_ocaml_32bits_longval" )
    ; ("/2011/06/03/ocaml-cheat-sheets/", "/blog/2011_06_03_ocaml_cheat_sheets")
    ; ("/2011/06/23/ocaml-and-windows/", "/blog/2011_06_23_ocaml_and_windows")
    ; ( "/2011/08/10/packing-and-functors/"
      , "/blog/2011_08_10_packing_and_functors" )
    ; ( "/2012/08/08/profiling-ocaml-amd64-code-under-linux/"
      , "/blog/2012_08_08_profiling_ocaml_amd64_code_under_linux" )
    ; ( "/2012/08/20/ocamlpros-contributions-to-ocaml-4-00-0/"
      , "/blog/2012_08_20_ocamlpro_contributions_to_400" )
121 122
    ; ( "/2013/01/17/beta-release-of-opam/"
      , "/blog/2013_01_17_beta_release_of_opam" )
123 124 125 126
    ; ( "/2013/02/18/an-overview-of-our-current-activities/"
      , "/blog/2013_02_18_overview_of_current_activities" )
    ; ( "/2013/03/14/opam-1-0-0-released/"
      , "/blog/2013_03_15_opam_1.0.0_released" )
127 128
    ; ( "/2013/03/18/an-indentation-engine-for-ocaml/"
      , "/blog/2013_03_18_an_indentation_engine_for_ocaml" )
129 130 131 132 133 134 135 136 137 138 139
    ; ( "/2013/04/02/wxocaml-camlidl-and-class-modules/"
      , "/blog/2013_04_02_wxocaml_camlidl_and_class_modules" )
    ; ( "/2013/04/22/april-monthly-report/"
      , "/blog/2013_04_22_april_monthly_report" )
    ; ( "/2013/05/24/optimisations-you-shouldnt-do/"
      , "/blog/2013_05_24_optimisations_you_shouldnt_do" )
    ; ( "/2013/07/01/news-from-may-and-june/"
      , "/blog/2013_07_01_news_from_may_and_june" )
    ; ( "/2013/07/11/better-inlining-progress-report/"
      , "/blog/2013_07_11_better_inlining_progress_report" )
    ; ("/2013/08/05/news-from-july/", "/blog/2013_08_05_news_from_july")
140 141
    ; ( "/2013/09/04/ocamlpro-highlights-august-2013/"
      , "/blog/2013_09_04_ocamlpro_highlights_august_2013" )
142 143 144 145
    ; ( "/2013/10/02/alt-ergo-ocamlpro-two-months-later/"
      , "/blog/2013_10_02_alt_ergo_ocamlpro_two_months_later" )
    ; ( "2013/11/01/ocamlpro-highlights-sept-oct-2013/\n"
      , "/blog/2013_11_01_ocamlpro_highlights_sept_oct_2013" )
146 147
    ; ( "/2013/12/02/ocamlpro-highlights-november-2013/"
      , "/blog/2013_12_02_ocamlpro_highlights_november_2013" )
148 149 150 151
    ; ( "/2014/02/05/ocamlpro-highlights-dec-2013-jan-2014/"
      , "/blog/2014_02_05_ocamlpro_highlights_dec_2013_jan_2014" )
    ; ( "/2014/03/05/ocamlpro-highlights-feb-2014/"
      , "/blog/2014_03_05_ocamlpro_highlights_feb_2014" )
152 153
    ; ( "/2014/04/01/the-generic-syntax-extension/"
      , "/blog/2014_04_01_the_generic_syntax_extension" )
Dario Pinto's avatar
Dario Pinto committed
154 155
    ; ( "/2015/01/29/private-release-of-alt-ergo-1-00/"
      , "/blog/2015_01_29_private_release_of_alt_ergo_1_00" )
156 157
    ; ( "/2015/03/04/cumulus-and-ocp-memprof-a-love-story/"
      , "/blog/2015_03_04_cumulus_and_ocp_memprof_a_love_story" )
158 159 160 161
    ; ( "/2015/04/13/yes-ocp-memprof-scanf/"
      , "/blog/2015_04_13_yes_ocp_memprof_scanf" )
    ; ( "/2015/05/07/opam-1-2-2-released/"
      , "/blog/2015_05_07_opam_1.2.2_released" )
162 163
    ; ( "/2014/05/20/ocamlpro-highlights-april-2014/"
      , "/blog/2014_05_20_ocamlpro_highlights_april_2014" )
164 165
    ; ( "/2014/07/15/try-alt-ergo-in-your-browser/"
      , "/blog/2014_07_15_try_alt_ergo_in_your_browser" )
166 167
    ; ( "/2014/07/16/ocamlpro-highlights-may-june-2014/"
      , "/blog/2014_07_16_ocamlpro_highlights_may_june_2014" )
168 169
    ; ( "/2015/05/18/reduced-memory-allocations-with-ocp-memprof/"
      , "/blog/2015_05_18_reduced_memory_allocations_with_ocp_memprof." )
170
    ; ("/2016/04/01/asm-ocaml/", "/blog/2016_04_01_asm_ocaml")
Dario Pinto's avatar
Dario Pinto committed
171 172 173
    ; ( "/2016/11/21/release-of-alt-ergo-1-30-with-experimental-support-for-models-generation/"
      , "/blog/2016_11_21_release_of_alt_ergo_1_30_with_experimental_support_for_models_generation"
      )
174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264
    ; ( "/2017/02/09/opam-2-0-beta-is-out/"
      , "/blog/2017_02_09_opam_2.0_beta_is_out" )
    ; ( "/2017/03/16/new-opam-features-opam-build/"
      , "/blog/2017_03_16_new_opam_features_opam_build" )
    ; ("/2017/04/11/ezsudoku/", "/blog/2017_04_01_ezsudoku")
    ; ( "/2017/04/27/new-opam-features-local-switches/"
      , "/blog/2017_04_27_new_opam_features_local_switches" )
    ; ( "/2017/05/04/new-opam-features-opam-install-dir/"
      , "/blog/2017_05_04_new_opam_features_opam_install_dir" )
    ; ( "/2017/05/11/new-opam-features-more-expressive-dependencies/"
      , "/blog/2017_05_11_new_opam_features_more_expressive_dependencies" )
    ; ("/2018/01/15/2017-at-ocamlpro/", "/blog/2018_01_15_2017_at_ocamlpro")
    ; ("/2018/04/01/ocaml-jtrt/", "/blog/2018_04_01_ocaml_jtrt")
    ; ( "/2018/05/22/opam-2-0-0-release-candidate-2-is-out/"
      , "/blog/2018_05_22_opam_2.0.0_release_candidate_2_is_out" )
    ; ( "/2018/07/26/opam-2-0-0-rc4-final-is-out/"
      , "/blog/2018_07_26_opam_2.0.0_rc4_final_is_out" )
    ; ( "/2018/09/19/opam-2-0-0-release-and-repository-upgrade/"
      , "/blog/2018_09_19_opam_2.0.0_release_and_repository_upgrade" )
    ; ( "/2018/11/08/first-open-source-release-of-tzscan/"
      , "/blog/2018_11_08_first_open_source_release_of_tzscan" )
    ; ( "/2018/11/15/an-introduction-to-tezos-rpcs-a-basic-wallet/"
      , "/blog/2018_11_15_an-introduction_to_tezos_rpcs_a_basic_wallet" )
    ; ( "/2018/11/21/an-introduction-to-tezos-rpcs-signing-operations/"
      , "/blog/2018_11_21_an_introduction_to_tezos_rpcs_signing_operations" )
    ; ("/2018/12/14/opam-2-0-2-release/", "/blog/2018_12_12_opam_2.0.2_release")
    ; ( "/2019/01/15/improving-tezos-storage/"
      , "/blog/2019_01_15_improving_tezos_storage" )
    ; ("/2019/01/29/tezos-and-ocamlpro/", "/blog/2019_01_29_tezos_and_ocamlpro")
    ; ( "/2019/01/30/improving-tezos-storage-update-and-beta-testing/"
      , "/blog/2019_01_30_improving_tezos_storage_update_and_beta_testing" )
    ; ( "/2019/02/04/improving-tezos-storage-gitlab-branch-for-testers/"
      , "/blog/2019_02_04_improving_tezos_storage_gitlab_branch_for_testers" )
    ; ( "/2019/02/11/whats-new-for-alt-ergo-in-2018-here-is-a-recap/"
      , "/blog/2019_02_11_whats_new_for_alt_ergo_in_2018_here_is_a_recap" )
    ; ( "/2019/03/05/techelson-a-test-execution-engine-for-michelson/"
      , "/blog/2019_03_05_techelson_a_test_execution_engine_for_michelson" )
    ; ("/2019/04/10/opam-2-0-4-release/", "/blog/2019_04_10_opam_2.0.4_release")
    ; ( "/2019/04/29/blockchains-at-ocamlpro-an-overview/"
      , "/blog/2019_04_29_blockchains_at_ocamlpro_an_overview" )
    ; ( "/2019/07/09/alt-ergo-participation-to-the-smt-comp-2019/"
      , "/blog/2019_07_09_alt_ergo_participation_to_the_smt_comp_2019" )
    ; ("/2019/07/11/opam-2-0-5-release/", "/blog/2019_07_11_opam_2.0.5_release")
    ; ( "/2019/09/13/updated-cheat-sheets-ocaml-language-and-ocaml-standard-library/"
      , "/blog/2019_09_13_updated_cheat_sheets_language_stdlib_2" )
    ; ( "/2019/09/20/a-look-back-on-ocaml/"
      , "/blog/2019_09_20_look_back_ocaml_since_2011" )
    ; ( "/2020/01/10/opam-2-0-cheatsheet/"
      , "/blog/2020_01_10_opam_2.0_cheat_sheet" )
    ; ("/2020/01/16/opam-2-0-6-release/", "/blog/2020_01_16_opam_2.0.6_release")
    ; ("/2020/02/04/2019-at-ocamlpro/", "/blog/2020_02_04_2019_at_ocamlpro")
    ; ( "/2020/03/03/alt-ergo-userss-club-annual-meeting/"
      , "/blog/2020_03_03_reunion_annuelle_du_club_des_utilisateurs_dalt_ergo"
      )
    ; ( "/2020/03/23/ocaml-new-best-fit-garbage-collector/"
      , "/blog/2020_03_23_in_depth_look_at_best_fit_gc" )
    ; ("/2020/04/21/opam-2-0-7-release/", "/blog/2020_04_21_opam_2.0.7_release")
    ; ( "/2020/04/21/opam-2-1-0-alpha-is-here/"
      , "/blog/2020_04_21_opam_2.1.0_alpha_is_here" )
    ; ( "/2020/05/19/ocaml-solidity-parser-with-menhir/"
      , "/blog/2020_05_19_ocaml_solidity_parser_with_menhir" )
    ; ("/fr/2020/06/01/tutoriel-format/", "/2020_06_01_tutoriel_format")
    ; ( "/2020/06/09/a-dune-love-story-from-liquidity-to-love/"
      , "/blog/2020_06_09_a_dune_love_story_from_liquidity_to_love" )
    ; ( "/2020/09/24/rehabilitating-packs-using-functors-and-recursivity-part-1/"
      , "/blog/2020_09_24_rehabilitating_packs_using_functors_and_recursivity_part_1"
      )
    ; ( "/2020/09/30/rehabilitating-packs-using-functors-and-recursivity-part-2/"
      , "/blog/2020_09_30_rehabilitating_packs_using_functors_and_recursivity_part_2"
      )
    ; ("/2021/02/02/2020-at-ocamlpro/", "/blog/2021_02_02_2020_at_ocamlpro")
    ; ("/2021/02/09/opam-2-0-8-release/", "/blog/2021_02_08_opam_2.0.8_release")
    ; ( "/2021/04/29/alt-ergo-users-club-annual-meeting-2021/"
      , "/blog/2021_04_29_reunion_annuelle_du_club_des_utilisateurs_dalt_ergo_2021"
      )
    ; ( "/2021/05/06/tutorial-format-module-of-ocaml/"
      , "/2021_05_06_tutorial_format_module_of_ocaml" )
    ; ( "/2021/07/16/detecting-identity-functions-in-flambda/"
      , "/blog/2021_07_16_detecting_identity_functions_in_flambda" )
    ; ("/2021/08/05/opam-2-0-9-release/", "/blog/2021_08_03_opam_2.0.9_release")
    ; ( "/2021/08/05/opam-2-1-0-is-released/"
      , "/blog/2021_08_04_opam_2.1.0_is_released" )
    ; ( "/2021/09/02/generating-static-and-portable-executables-with-ocaml/"
      , "/blog/2021_09_02_generating_static_and_portable_executables_with_ocaml"
      )
    ; ("/", "/")
    ; ("/", "/")
    ; ("/", "/")
    ; ("/", "/")
    ; ("/", "/")
    ]