diff --git a/cli/atom.ml b/cli/atom.ml
index 0ee6fcc..54bcfc6 100644
--- a/cli/atom.ml
+++ b/cli/atom.ml
@@ -11,7 +11,7 @@ let opt_element tag_name content =
module P = Parsers.Plain_text.Make (Converter.Html)
-let id txt = "urn:uuid:" ^ Logarion.(txt.Text.id) ^ ""
+let id txt = "urn:txtid:" ^ Logarion.(txt.Text.id) ^ ""
let title text = "
" ^ esc text.Logarion.Text.title ^ ""
let authors text =
@@ -29,21 +29,19 @@ let updated txt = let open Logarion in
let htm_entry base_url text =
let open Logarion in
let u = Text.short_id text in
- ""
+ "\n"
^ title text ^ id text ^ updated text ^ authors text
^ (opt_element "summary" @@ esc @@ Text.str "abstract" text)
- ^ String_set.fold (fun elt a -> a ^ "") (Text.set "topics" text) ""
- ^ "
"
- ^ P.of_string text.body ""
- ^ "
\n"
+ ^ String_set.fold (fun elt a -> a ^ "\n") (Text.set "topics" text) ""
+ ^ "\n"
let gmi_entry base_url text =
let open Logarion in
let u = Text.short_id text in
- ""
+ "\n\n"
^ title text ^ id text ^ updated text ^ authors text
^ (opt_element "summary" @@ esc @@ Text.str "abstract" text)
- ^ String_set.fold (fun elt a -> a ^ "") (Text.set "topics" text) ""
+ ^ String_set.fold (fun elt a -> a ^ "\n") (Text.set "topics" text) ""
^ "\n"
let base_url kv protocol = try
@@ -65,7 +63,7 @@ let indices alternate_type c =
{||}
^ title ^ {|urn:uuid:|} ^ c.Conversion.id ^ ""
+ ^ self ^ {|" />urn:txtid:|} ^ c.Conversion.id ^ ""
^ Logarion.Date.now () ^ "\n"
^ List.fold_left (fun acc t -> acc ^ entry base_url t) "" c.texts
^ ""
diff --git a/cli/dune b/cli/dune
index cf7afa3..775dc73 100644
--- a/cli/dune
+++ b/cli/dune
@@ -2,5 +2,5 @@
(name txt)
(public_name txt)
(modules txt authors convert conversion edit file index last listing
- new topics html atom gemini peers publish pull read recent)
+ new topics html atom gemini peers pull read recent)
(libraries text_parse.converter text_parse.parsers logarion msgpck curl str cmdliner))
diff --git a/cli/publish.ml b/cli/publish.ml
deleted file mode 100644
index a78fa4c..0000000
--- a/cli/publish.ml
+++ /dev/null
@@ -1,54 +0,0 @@
-let targets pubdir = List.fold_left
- (fun a x ->
- let path = Filename.concat pubdir (snd x) in
- try if Sys.is_directory path then (fst x, path)::a else a with Sys_error _ -> a)
- []
- ["htm,atom", "public_html/"; "gmi,gmi-atom", "public_gemini/"; "", "public_gopher/"]
-
-let wizard () =
- print_endline "No txt.conf found. It's required for the repository name & id. Create one? (y/N)";
- match input_line stdin with
- |"y"->
- let title =
- print_endline "Title for repository: ";
- input_line stdin in
- let authors =
- print_endline "Authors (format: name ): ";
- input_line stdin in
- Logarion.File_store.file "txt.conf"
- (Printf.sprintf "Id: %s\nTitle: %s\nAuthors: %s\n" (Logarion.Id.generate ()) title authors);
- Logarion.File_store.of_kv_file ()
- | _ -> print_endline "Create a txt.conf and run publish again"; exit 1
-
-open Logarion
-let publish pubdir ids =
- let kv =
- match Logarion.File_store.of_kv_file ()
- with x when x = Logarion.Store.KV.empty -> wizard () | x -> x in
- let predicate t = List.mem t.Text.id ids in
- let pubdir_source, pubdir = match pubdir with Some d -> "--pubdir ", d | None ->
- try "txt.conf:Pubdir", Logarion.Store.KV.find "Pubdir" kv with Not_found ->
- try "$txtpubdir", Sys.getenv "txtpubdir" with Not_found -> "$txtpubdir", ""
- in
- let targets = targets pubdir in
- if targets = [] then
- Printf.eprintf "No target directories in %s='%s' (for example %s)\n"
- pubdir_source pubdir (Filename.concat pubdir "public_html")
- else begin
- let pub_dirs = List.map (fun x -> snd x) targets in
- File_store.iter ~predicate (fun (_t, p) ->
- try File.file ((List.hd p)::pub_dirs)
- with Unix.Unix_error (Unix.EEXIST, _, _) -> ());
- List.iter (fun t -> Printf.eprintf "%s %s\n" (fst t) (snd t);
- Index.((load (snd t)) false None None None None);
- Convert.at_path (fst t) false (snd t))
- targets
- end
-
-open Cmdliner
-let term =
- let ids = Arg.(value & pos_all string [] & info [] ~docv:"text ids") in
- let pubdir = Arg.(value & opt (some string) None & info ["p"; "pubdir"] ~docv:"directory path"
- ~doc:"set top directory for publishing files") in
- let doc = "convert texts into standard public dirs pubdir/public_{html,gemini,gopher} if they exist" in
- Term.(const publish $ pubdir $ ids), Term.info "publish" ~doc ~man:[ `S "DESCRIPTION"; `P doc ]
diff --git a/cli/txt.ml b/cli/txt.ml
index 6ddb6da..d4f74ba 100644
--- a/cli/txt.ml
+++ b/cli/txt.ml
@@ -1,9 +1,9 @@
-let version = "1.3.1"
+let version = "1.3.2"
open Cmdliner
let default_cmd =
let doc = "Discover, collect & exchange texts" in
- let man = [ `S "CONTACT"; `P "" ] in
+ let man = [ `S "CONTACT"; `P "" ] in
Term.(ret (const (`Help (`Pager, None)))), Term.info "txt" ~version ~doc ~man
let () = match Term.eval_choice default_cmd [
@@ -16,7 +16,6 @@ let () = match Term.eval_choice default_cmd [
Listing.term;
New.term;
Peers.term;
- Publish.term;
Pull.term;
Read.term;
Recent.term;
diff --git a/dune-project b/dune-project
index 13fdc2c..b617f4d 100644
--- a/dune-project
+++ b/dune-project
@@ -1,6 +1,6 @@
(lang dune 2.0)
(name logarion)
-(version 1.3.1)
+(version 1.3.2)
(license EUPL-1.2)
(authors "orbifx ")
(bug_reports "mailto:logarion@lists.tildeverse.org")
diff --git a/logarion.opam b/logarion.opam
index 89f7baf..6a158d4 100644
--- a/logarion.opam
+++ b/logarion.opam
@@ -1,6 +1,6 @@
# This file is generated by dune, edit dune-project instead
opam-version: "2.0"
-version: "1.3.1"
+version: "1.3.2"
synopsis: "Texts archival and exchange"
maintainer: ["Izuru Yakumo "]
authors: ["orbifx "]