--- /dev/null
+assignment-operator = end-line
+break-before-in = fit-or-vertical
+break-cases = fit-or-vertical
+break-collection-expressions = fit-or-vertical
+break-fun-decl = fit-or-vertical
+break-fun-sig = fit-or-vertical
+break-infix = fit-or-vertical
+break-separators = after
+break-string-literals = auto
+break-struct = force
+cases-exp-indent = 8
+cases-matching-exp-indent = normal
+doc-comments = before
+dock-collection-brackets
+exp-grouping = preserve
+extension-indent = 8
+field-space = tight-decl
+function-indent = 8
+function-indent-nested = auto
+if-then-else = keyword-first
+indent-after-in = 0
+indicate-nested-or-patterns = space
+infix-precedence = indent
+let-and = sparse
+let-binding-indent = 8
+let-binding-spacing = compact
+let-module = sparse
+line-endings = lf
+margin = 120
+match-indent = 0
+match-indent-nested = never
+module-item-spacing = sparse
+nested-match = wrap
+parens-tuple = always
+parens-tuple-patterns = multi-line-only
+sequence-style = terminator
+single-case = compact
+space-around-arrays=false
+space-around-lists=false
+space-around-records
+type-decl-indent = 8
--- /dev/null
+(lang dune 3.19)
+
+(name site-web-pro)
+
+(generate_opam_files false)
+
+(source (uri https://git.f4mnq.fr/site-web-pro.git))
+
+(authors "Amélia COUTARD-SANDER <contact@f4mnq.fr>")
+
+(maintainers "Amélia COUTARD-SANDER <contact@f4mnq.fr>")
+
+(license AGPL-3.0-or-later)
+
+(package
+ (name site-web-pro)
+ (synopsis "Site web professionnel")
+ (description "Le site web professionnel d'Amélia COUTARD-SANDER, écrit en OCaml")
+ (depends ocaml)
+ (tags ("site web" "ocaml")))
--- /dev/null
+(executables
+ (public_names index style))
+
+(install
+ (files
+ (index.html as f4mnq/index.html)
+ (style.css as f4mnq/style.css)
+ (glob_files
+ (mpring/* with_prefix f4mnq/mpring)))
+ (section share))
+
+(rule
+ (action
+ (with-stdout-to
+ "index.html"
+ (run index))))
+
+(rule
+ (action
+ (with-stdout-to
+ "style.css"
+ (run style))))
-<!DOCTYPE html>
+(* f4mnq.fr
+ * Copyright 2026 Amélia COUTARD-SANDER <https://www.f4mnq.fr>.
+
+ * This website is free software: you can redistribute it and/or modify it
+ * under the terms of the GNU Affero General Public License as published by the
+ * Free Software Foundation, either version 3 of the License, or (at your
+ * option) any later version.
+
+ * This website is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License
+ * for more details.
+
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this website. If not, see <https://www.gnu.org/licenses/>.
+ *)
+
+Printf.printf "%s"
+ {|<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<iframe id="mpring" src="https://mpring.f4mnq.fr/ring.html" title="Webring amical" width=200px height=80px></iframe>
</body>
</html>
+|}
+++ /dev/null
-@media (prefers-color-scheme: light) {
-body {
- background-color: #ffc;
- color: #000;
-}
-a {
- color: #099;
-}
-a:visited {
- color: #c3c;
-}
-}
-@media (prefers-color-scheme: dark) {
-body {
- background-color: #003;
- color: #fff;
-}
-a {
- color: #ff9;
-}
-a:visited {
- color: #f99;
-}
-}
-
-#content {
- min-height: calc(100vh - 200px);
-}
-
-#mpring {
- margin-left: calc(50% - 100px);
- border: 0;
-}
--- /dev/null
+(* f4mnq.fr
+ * Copyright 2026 Amélia COUTARD-SANDER <https://www.f4mnq.fr>.
+
+ * This website is free software: you can redistribute it and/or modify it
+ * under the terms of the GNU Affero General Public License as published by the
+ * Free Software Foundation, either version 3 of the License, or (at your
+ * option) any later version.
+
+ * This website is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License
+ * for more details.
+
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this website. If not, see <https://www.gnu.org/licenses/>.
+ *)
+
+Printf.printf "%s"
+ {|@media (prefers-color-scheme: light) {
+body {
+ background-color: #ffc;
+ color: #000;
+}
+a {
+ color: #099;
+}
+a:visited {
+ color: #c3c;
+}
+}
+@media (prefers-color-scheme: dark) {
+body {
+ background-color: #003;
+ color: #fff;
+}
+a {
+ color: #ff9;
+}
+a:visited {
+ color: #f99;
+}
+}
+
+#content {
+ min-height: calc(100vh - 200px);
+}
+
+#mpring {
+ margin-left: calc(50% - 100px);
+ border: 0;
+}
+|}
; along with this website If not, see <https://www.gnu.org/licenses/>.
(define-module (site-web-pro)
- #:use-module (guix build-system copy)
+ #:use-module (guix build-system dune)
#:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:)
(name "site-web-pro")
(version "1.0-git")
(source (local-file (dirname (dirname (current-filename))) "site-web-pro-checkout" #:recursive? #t #:select? vcs-file?))
- (build-system copy-build-system)
- (arguments (list #:install-plan ''(
- ("f4mnq/" "share/f4mnq")
- ("mpring/" "share/mpring"))))
+ (build-system dune-build-system)
(synopsis "Mon site web professionel")
- (description "Mon site web professionel, statique.")
+ (description "Mon site web professionel, statique, écrit en OCaml.")
(home-page "https://www.f4mnq.fr")
(license (list license:agpl3+ license:cc-by-sa4.0))))
--- /dev/null
+(install
+ (files
+ (glob_files
+ (*.{html,css,png} with_prefix mpring)))
+ (section share))