67 Commits

Author SHA1 Message Date
Stavros Polymenis
1962203237 Abstracts store (back-end) using the Archive functor
Introduces Store module type.

Logarion module:

* Removed Entry submodule, it mostly duplicated Meta
* Make functor for creating archives given a Store compatible module
  The output Archive module contains functions for sorting, ordering, selecting
  and accumulating (storing) notes.

Meta module:

* Function Path.basename_of_title has been renamed to Meta.string_of_slug
  This is because slugs are now defined explicitely by 'slug' field or derived from
  'title' field. Counting numbers can't be used anymore.
  Slug has an optional, dedicated field.
  Function Meta.slug should be used on a Meta to get the appropriate slug (title or slug).
* Introduces StringSet type (Set of Strings)
  Topics, keywords and series are now StringSets
* Adds SlugMap and IdMap aliases

Note module:

* Automatically scan for Markdown heading to use as title in the absence of one

File module:

* File has a Store compatible signature
  The implementation has an Lwt hack; Lwt will be fully supported in the future

Web module:

* Uses new Logarion.Configuration, File store and Archive.t

Template module:

* Adapted for new types
* Currently disabled topics substitution, because this framework needs reconsideration

Finally:

* Adapts command line interface to work with new store
* Adapts Atom feed to work with new store

Path module renamed to Lpath to avoid clash with OCaml system module.

(Squashed commits from dev)
2017-05-17 00:16:44 +01:00
Stavros Polymenis
f8370a38c4 Adds loading of configurations from conventional locations 2017-04-21 00:22:42 +01:00
Stavros Polymenis
a6595499a7 Refactors Logarion module; Path types, File functions, adding notes
Reinvented Path types, now in a new module Path.
Moves file functions to module File, including Lwt implementations.
Experimental Logarion.Archive.delta_of for compounding (adding) notes.
Fixes scope warnings.
Fixes a command's documentation.
2017-04-17 16:45:44 +01:00
Stavros Polymenis
6c78316077 Removes more references to 'ymd' 2017-04-16 12:37:17 +01:00
Stavros Polymenis
9318073f63 Renames Ymd to Note 2017-04-16 00:28:48 +01:00
Stavros Polymenis
e138b192bc Refactores Meta submodule into a standalone module 2017-04-16 00:07:33 +01:00
Stavros Polymenis
6646f7b687 support simpler meta fields block and title from body 2017-02-23 21:02:20 +00:00
Stavros Polymenis
465af3393a revision to lenses and accessors 2017-02-11 23:56:21 +00:00
Stavros Polymenis
329dbd33eb shortened typenames 2017-02-11 22:07:13 +00:00
Stavros Polymenis
54f2190d8e implementation with fpath, wip 2017-02-04 13:56:41 +00:00
Stavros Polymenis
a9da855c08 init command implementation 2017-01-19 23:10:04 +00:00
Stavros Polymenis
506730c8a0 fixed bug in logarion slug loading function 2017-01-17 00:50:30 +00:00
Stavros Polymenis
51d14df75f refactored web application but a more pervasive redesign is needed 2017-01-15 21:25:41 +00:00
Stavros Polymenis
d654204807 topics listing refactoring 2017-01-15 10:47:03 +00:00
Stavros Polymenis
3484fea774 refactoring improvements 2017-01-15 10:41:30 +00:00
Stavros Polymenis
e6aef0f591 Entry access functions improvement 2017-01-15 10:28:08 +00:00
Stavros Polymenis
81861d2b1a refactored filtering functions 2017-01-15 02:03:22 +00:00
Stavros Polymenis
20780c2d76 implemented file path types and refactored some functions 2017-01-15 00:55:11 +00:00
Stavros Polymenis
bf1703bebe refactored interfaces to meta types 2017-01-14 14:04:46 +00:00
Stavros Polymenis
312f0653f1 fixed id-less paths 2017-01-13 00:26:59 +00:00
Stavros Polymenis
2e0e9d1047 fix for Sys_error exception and refactoring 2017-01-12 23:19:09 +00:00
Stavros Polymenis
54a63ea296 some corrections for latest_entry 2017-01-12 22:54:10 +00:00
Stavros Polymenis
4a21adca7b simplify access to Ymd module via inclusion in Entry 2017-01-12 22:12:13 +00:00
Stavros Polymenis
2f446e0abd fixed scope warnings 2017-01-12 00:03:36 +00:00
Stavros Polymenis
d74a3c36b6 introduced topic listing 2016-12-24 19:36:03 +00:00
Stavros Polymenis
ebbe005719 introduction of Archive and Entry submodules 2016-12-24 18:14:54 +00:00
Stavros Polymenis
94291e6ae5 fix path configuratibility 2016-12-24 14:45:07 +00:00
Stavros Polymenis
1691c0f363 added atom feeds 2016-12-23 19:00:29 +00:00
Stavros Polymenis
13c3da8884 refactored paths and introduced dedicated title directory 2016-12-19 22:26:57 +00:00
Stavros Polymenis
bb07d517ad refactoring 2016-12-19 22:13:05 +00:00
Stavros Polymenis
670a117372 only change filename id if title was changed 2016-12-19 22:08:10 +00:00
Stavros Polymenis
72f3f16911 removed redunant lines 2016-12-08 23:59:45 +00:00
Stavros Polymenis
d09dc39c03 new configuration functions 2016-12-08 23:30:49 +00:00
Stavros Polymenis
4ebb734c99 fix unused returned value 2016-12-08 21:09:53 +00:00
Stavros Polymenis
102a0288ca implemented typed categories 2016-11-10 00:24:28 +00:00
Stavros Polymenis
9a3eb45bb1 added uuid linking 2016-11-09 22:18:24 +00:00
Stavros Polymenis
a3cd61e5fb versioned filespace 2016-11-05 20:09:53 +00:00
Stavros Polymenis
152f1695d2 fixed article renamed when title changes 2016-11-01 23:27:12 +00:00
Stavros Polymenis
bafec4a287 refactored YMD uuid and fixed generation issues 2016-11-01 22:37:03 +00:00
Stavros Polymenis
ca64375439 refactoring in preparation for better article editing 2016-11-01 21:12:51 +00:00
Stavros Polymenis
8320145b3c logarion archiver needs to add appropriate file extension 2016-10-26 22:39:06 +01:00
Stavros Polymenis
392dfd3692 refactored YMD submodules 2016-10-20 23:13:25 +01:00
Stavros Polymenis
6d9baec448 refactored 2016-10-19 21:51:08 +01:00
Stavros Polymenis
f7a482316f support for configuring Logarion with Toml 2016-10-18 23:37:08 +01:00
Stavros Polymenis
b9a1ea7f95 introducing logarion type and refactoring 2016-10-17 22:37:27 +01:00
Stavros Polymenis
f243f48a21 implemented partial text queries and fixed routing bugs 2016-10-03 22:00:29 +01:00
Rudi Grinberg
9917e9d688 Make /()/new use lwt
Since opium uses Lwt, apps written in opium should use lwt for all
IO (and other possibly blocking operations). Lwt_main.run simply runs
lwt's event loop so it should usually be called once in a program.

Other endpoints can be converted similarly by first converting
`Logarion.of_file`
2016-09-29 20:12:13 -04:00
Stavros Polymenis
660c8637ad split of ymd functions in dedicated module 2016-09-21 21:43:41 +01:00
Stavros Polymenis
1078a2dd2f improvements on list of titled files 2016-09-20 23:25:51 +01:00
Stavros Polymenis
bdd113e43e implemented file naming and saving 2016-09-20 23:07:30 +01:00