(lang dune 2.9)
(using dune_site 0.1)
(name stog)
(version 1.1.0)

(generate_opam_files true)

(using menhir 2.1)

(source (uri git+https://framagit.org/zoggy/stog.git))
(license GPL-3.0-only)
(authors "Zoggy <zoggy@bat8.org>")
(maintainers "zoggy@bat8.org")
(bug_reports https://framagit.org/zoggy/stog/issues)
(homepage https://www.good-eris.net/stog/)
(documentation https://www.good-eris.net/stog/doc.html)

(package
 (name stog)
 (synopsis "Static web site compiler, able to handle blog posts as well as regular pages or any XML document in general")
 (sites (share templates) (share modules))
 (depends
   (ocaml (>= 5.0.0))
   (dune-build-info (>= 2.9.1))
   (dune-site (>= 2.9.1))
   (fmt (>= 0.9.0))
   (higlo (>= 0.9))
   (logs (>= 0.7.0))
   (lwt (>= 5.7.0))
   (lwt_ppx (>= 2.1.0))
   (menhir (>= 20231231))
   (ocf (>= 0.8.0))
   (ocf_ppx (>= 0.8.0))
   (ppx_blob (>= 0.7.2))
   (ptime (>= 1.1.0))
   (uri (>= 4.4.0))
   (uutf (>= 1.0.3))
   (xtmpl (>= 1.0.0))
   (xtmpl_ppx (>= 1.0.0))
 )
)

(package (name stog_server)
 (synopsis "Stog server library")
 (depends
   (stog (= :version))
   (conduit-lwt-unix (>= 6.2.1))
   (cryptokit (>= 1.19))
   (ppx_deriving_yojson (>= 3.7.0))
   (ojs_base_all (>= 0.8.0))
   (websocket (>= 2.16))
   (xmldiff (>= 0.7.0))
   (xmldiff_js (>= 0.7.0))
   (xtmpl_js (>= 1.0.0))
 )
)

(package (name stog_server_multi)
 (synopsis "Stog multi server library")
 (depends
   (stog (= :version))
   (stog_server (= :version))
   (ojs_base_ppx (>= 0.8.0))
 )
)

(package (name stog_all)
  (synopsis "Virtual package to install all Stog libraries, tools and plugins")
  (depends
    (stog (= :version))
    (stog_server (= :version))
    (stog_server_multi (= :version))
    (stog_plugins (= :version))
  )
)

;;; plugins

(package (name stog_plugins)
  (synopsis "Virtual package to install all Stog plugins")
  (depends
    (stog_asy (= :version))
    (stog_dot (= :version))
    (stog_extern (= :version))
    (stog_markdown (= :version))
    (stog_multi_doc (= :version))
    (stog_nocaml (= :version))
    (stog_noexec (= :version))
    (stog_rel_href (= :version))
    (stog_sitemap (= :version))
    (stog_writing (= :version))
  )
  (depopts (stog_rdf (= :version)))
)

(package (name stog_asy)
  (synopsis "Stog plugin to include Asymptote results in documents")
  (depends (stog (= :version)))
)

(package (name stog_dot)
  (synopsis "Stog plugin to generate and include graphviz graphs in documents")
  (depends (stog (= :version)))
)

(package (name stog_extern)
  (synopsis "Stog plugin to pipe documents in external commands")
  (depends (stog (= :version)))
)

(package (name stog_markdown)
  (synopsis "Stog plugin to use markdown syntax")
  (depends
    (stog (= :version))
    (omd (>= 1.9.9))
  )
)

(package (name stog_multi_doc)
  (synopsis "Stog plugin to define various documents in one file")
  (depends (stog (= :version)))
)

(package (name stog_nocaml)
  (synopsis "Stog plugin to block commands executing ocaml code")
  (depends (stog (= :version)))
)

(package (name stog_noexec)
  (synopsis "Stog plugin to prevent running command with <exec>")
  (depends (stog (= :version)))
)

(package (name stog_rdf)
  (synopsis "Stog plugin to generate rdf triples and execute sparql queries")
  (depends
     (stog (= :version))
     (rdf (>= 1.0.0))
  )
)

(package (name stog_rel_href)
  (synopsis "Stog plugin to generate relative urls")
  (depends (stog (= :version)))
)

(package (name stog_sitemap)
  (synopsis "Stog plugin to generate a sitemap file")
  (depends (stog (= :version)))
)

(package (name stog_writing)
  (synopsis "Stog plugin to generate table of contents and bibliographies")
  (depends (stog (= :version)))
)

