Table of contents

Personal Library

%3 cluster_0873a209_b9df_4bf3_b65e_2f425c5a2adc Personal Library cluster_3715c402_4308_4b6f_ba60_c0d0b7b52468 [50%] Implementation cluster_b2658653_0ceb_4dde_8235_c646d8e8a20c [0/1] Roam function cluster_6d0ce466_fd19_4509_8c1f_adc4c1f7b1f9 Search function cluster_97a42ad7_34f8_4eab_ad6e_5e2ea2241fe9 Export scripts cluster_5dd46ca2_0f64_40bb_9923_e55ec0ea1d22 Re/Linking daemon cluster_c69aa9ef_37a1_4171_91dc_639ee658f710 [3/9] Org-mode parser & editor cluster_b3e2f2f3_38c5_4854_a8b6_d4da5ba36d2e [#C] Support gantt scheduling cluster_56abb6d7_aed7_4263_9945_521155cf6aa2 Support planning info write cluster_9a50effd_3f76_4306_9a27_baa0c116bc37 Get hours cluster_e68e7b13_2b33_4381_951a_649aaf65ac5d [0%] Notebook cluster_7efd29d2_eff5_4aa0_9e4d_aa1a186aba82 Gantt generation cluster_7f619649_4378_43b5_9bc6_7226083e6b12 [#C] Application for PinePhone/Android cluster_d01f170b_bb82_489b_87f4_6e0b13136d3b Gitlab synchronization cluster_04a5e184_6de8_48e4_ba27_143d79f9701f References cluster_c37ed252_175d_429d_8c33_85ca527b5e26 Structure cluster_5b27908f_614d_4f55_a52f_9015ef5c116d [1/4] Use cases cluster_8c1a23f6_1d25_4cd8_b872_283d28d8e991 Sync Notion board with cluster_018fe18a_2e8b_4adb_aeda_1c5cb0002fa4 Connect to Notion cluster_97e7708f_c225_438b_89b6_9365b4c98585 [1/2] Automatic music tracking cluster_1f333e64_2ac2_47b5_82d3_2f9573cae077 Connect to Spotify cluster_0dad6e89_cd57_423b_82c1_b2c0f3c40481 Find linked-from on web-browser cluster_61082257_5d4d_45f9_8003_ee54df585359 [1/2] Challenges _3116a5e7_2a00_4fc9_854d_e75edf78f84b Process _2e699737_3d40_44cd_850e_a96c97e0b1c6 Fix 1w in org-rw _590774bf_9852_4db5_93ba_ba0c7a66d4da Online Org-change sync _ed9c6e4d_cdb7_4e7e_b3c5_55556bfc6a58 Automatically update data on graph _c8d8ec8a_a282_4f66_ad00_1b2dfba08bbc Mail inbox to org-file _c6bbef83_0f55_417c_afcb_ea891ace72f4 Backlinks _8a51ca29_b26e_47f3_9778_bbc9d1894553 Show backlinks on org-mode _c6bbef83_0f55_417c_afcb_ea891ace72f4->_8a51ca29_b26e_47f3_9778_bbc9d1894553 _6dde2d9c_5a95_4b91_a214_5e98757c109d Graph _6d4fc2e7_726e_4c44_8a1e_cee9e0ffbf54 Org-mode base _de5e4c0e_6158_4924_8606_8e514b75d2d8 Async editor _de5e4c0e_6158_4924_8606_8e514b75d2d8->_590774bf_9852_4db5_93ba_ba0c7a66d4da _ce3b2218_c892_45ba_b18a_291716e18ef5 Generate hours per project _a9c8dc6d_e1bc_4d20_b403_4d0496fc964d Invoke from Emacs _9a947501_cbf3_485d_b6fd_5db4eea76aca Conquering Kubernetes with Emacs _a9c8dc6d_e1bc_4d20_b403_4d0496fc964d->_9a947501_cbf3_485d_b6fd_5db4eea76aca _a2643095_f570_492e_9313_4587fdd712da Notes Query _a9c8dc6d_e1bc_4d20_b403_4d0496fc964d->_a2643095_f570_492e_9313_4587fdd712da _a3fd3561_7a26_4b72_bae4_d065aee8ed19 Queue manager _b9dfcc37_9bb5_4982_8436_bfddfdb30ea3 Structure _84161d60_8187_4114_8ac0_dfac8e52001b [#C] Sync with Notion _1f09804d_71ff_4702_947a_43aea549099c Text inside lists _2ee20590_a14b_4f9c_a280_db706c6e1fa1 Nested lists _81988954_d96e_4de2_99ea_c18b243a2b3b Images inside lists _799638b2_7d0d_4100_8665_7d7bb886c3db Format text _7c03308b_6fa2_4f26_bcc4_0ae3f521f214 Fix tags _50e56e78_1afc_4221_96a6_f85be841e782 Support SCHEDULED and DEADLINE _78592253_da27_4e90_8074_7c68e4b1b950 Show uncompleted elements _2f8538c4_aa52_4fea_93ae_4e18ae2e6a53 Support comments _5657d6ac_6591_4f64_b580_9854d72e444b Support logbook _22a3fc56_ecd7_4253_a956_73426b6dcc0a Add support for code snippet and result edition _8c35d6ee_5ac6_41fa_acf3_000dccf525e0 Add support for list parsing _33e329a9_7558_4c0c_9815_0c14a6157eba GTK based test _7d61237d_66fc_4f2e_b8bb_6fa06e2c7b07 Knowledge graph _7d61237d_66fc_4f2e_b8bb_6fa06e2c7b07->_8c35d6ee_5ac6_41fa_acf3_000dccf525e0 _ef83934f_c65b_46f5_a4d6_49d129134e77 Link updating mechanism _96236b51_490e_40a1_83cc_612bd7953d93 Graph renderization _058901d9_80ad_4cf3_bb7a_f090ce1b7c26 With PySide _9b6eb90d_77a0_4182_bb85_527e46be2b39 With Kivy _b3fdef20_d0a7_4915_b91a_095c197bfead Show .desktop files on PinePhone _6fcf78d5_1347_4837_9570_1b6d61d7247b Org-sync _6fbaef44_1a01_4655_a775_e3c1e344a4b8 Magit forge _a27a3f32_5355_4653_a2c8_6ccce14775e7 Expose service showing num of TODOs _77ae5f2b_20a6_4320_b025_0cdda1d8ee1a [0/0] Questions _9d117258_17c7_4b24_b3bc_b2b6cdd8909b Automatic archival _64a12dfd_8b3d_404a_8b4b_9219f844074e Old (Ditaa) schema _9e856fec_1ee1_406e_8a48_1c4fa3a4aff3 Platforms to support _a786630e_2131_4134_b51d_4a1eb90213bc Initial idea _2b9d10d7_f0ef_4e6b_ba07_92053764ec03 Server-(plugin)client based scheme _9bc988e0_946e_41c1_88c5_4616f075ee60 Schema _a6cc9ba4_7f9d_49e9_9cf2_fa7b5a4bfce4 Pull data from Notion API _6fffc7e8_41ea_4b64_8585_30bf1ecb5185 Save data to Org-Mode _4af0ece4_68e4_41e9_bee5_fa656a70ec15 Pull data from Spotify API _ce40e7d0_65dc_47a3_bd82_e4af2185b097 View list of nodes as spreadsheet _54c370cf_4000_47b9_b401_68496b8e7a84 Organize tasks _af193f61_d59c_4d71_bc67_25ef7d1ddca9 Auto-reload changes in notes _00f31d4c_1b8d_43fa_9539_223df085a3d5 Get links not annotated as such on Org _141bcb53_6236_4b63_997f_ad5238a38f90 Avoiding duplication of information _7adb6ad3_03ee_4ce0_8d94_74569d60fcc3 Useful and realiable search function _141bcb53_6236_4b63_997f_ad5238a38f90->_7adb6ad3_03ee_4ce0_8d94_74569d60fcc3 _82dd7a12_c56e_4099_b7cb_6dfc5d98ef77 Invocations _a6aa82b1_53df_4ca3_ac42_f0051be62151 Archive links from Personal Wiki _217f35ce_404e_49ed_bfd3_cb3ca3f312db personal wiki _a6aa82b1_53df_4ca3_ac42_f0051be62151->_217f35ce_404e_49ed_bfd3_cb3ca3f312db _a6aa82b1_53df_4ca3_ac42_f0051be62151->__0:cluster_0873a209_b9df_4bf3_b65e_2f425c5a2adc _c0a1f827_3b8d_4420_8e7e_53a6be13290d Paradise _85415cfe_da14_461d_bf1c_af66b4826e03 Notes graph rendering styles _85415cfe_da14_461d_bf1c_af66b4826e03->__1:cluster_0873a209_b9df_4bf3_b65e_2f425c5a2adc _e5f5d341_9148_4b6c_8b5a_9aff3a2912e4 Xapian _cb9b56c4_2afb_46a9_84e6_08bf48f61fa5 APIs as DBs _6eed20c1_d778_4b23_a04e_fc245ad8eccd Get graph's island centers _6eed20c1_d778_4b23_a04e_fc245ad8eccd->__2:cluster_0873a209_b9df_4bf3_b65e_2f425c5a2adc _6fda42b4_b643_438c_9c02_97ea2d9acf40 CardDAV _e9fe78da_e5f1_442b_8d63_9679fc526726 Alexander Obenauer notes _a2643095_f570_492e_9313_4587fdd712da->_217f35ce_404e_49ed_bfd3_cb3ca3f312db _a2643095_f570_492e_9313_4587fdd712da->_e5f5d341_9148_4b6c_8b5a_9aff3a2912e4 _a2643095_f570_492e_9313_4587fdd712da->_9a947501_cbf3_485d_b6fd_5db4eea76aca _a2643095_f570_492e_9313_4587fdd712da->__3:cluster_6d0ce466_fd19_4509_8c1f_adc4c1f7b1f9 __4:cluster_0873a209_b9df_4bf3_b65e_2f425c5a2adc->_c0a1f827_3b8d_4420_8e7e_53a6be13290d __5:cluster_0873a209_b9df_4bf3_b65e_2f425c5a2adc->_217f35ce_404e_49ed_bfd3_cb3ca3f312db __6:cluster_0873a209_b9df_4bf3_b65e_2f425c5a2adc->_cb9b56c4_2afb_46a9_84e6_08bf48f61fa5 __7:cluster_0873a209_b9df_4bf3_b65e_2f425c5a2adc->_6fda42b4_b643_438c_9c02_97ea2d9acf40 __8:cluster_0873a209_b9df_4bf3_b65e_2f425c5a2adc->_e9fe78da_e5f1_442b_8d63_9679fc526726 __9:cluster_6d0ce466_fd19_4509_8c1f_adc4c1f7b1f9->_590774bf_9852_4db5_93ba_ba0c7a66d4da __10:cluster_6d0ce466_fd19_4509_8c1f_adc4c1f7b1f9->_e5f5d341_9148_4b6c_8b5a_9aff3a2912e4 __11:cluster_1f333e64_2ac2_47b5_82d3_2f9573cae077->_ed9c6e4d_cdb7_4e7e_b3c5_55556bfc6a58 __12:cluster_018fe18a_2e8b_4adb_aeda_1c5cb0002fa4->_ed9c6e4d_cdb7_4e7e_b3c5_55556bfc6a58

A file-system that specifically stores personal notes, and in general useful information and provides conventient access to it in a textual, graphical, and programmatic way.

If it were possible to link notes to a point in space (or just a room), that could create an interesting context if this FS get's presented in [ Augmented Reality ] .

Might be interacted conversationally through a system like Structured Natural Language Interpreter. This might open many multi-channel interactions, like chat clients.

Process

  • Monitors all org-mode files

  • When it finds a new section, it gives it an :ID: and :REGISTERED_TIME: property.

  • When it finds a new link

    • If it links a section, change to link the section id

    • If it links a section on another file, change to link $file

      section (does this have to be done?)

    • If it links a wiki: page, relink to file and section if possible

    • If it links to youtube, add attachment using youtube-dl

    • If it links to a website, download archive and attach

      • Ideally, add to wallabag

  • If a section goes into TODO, add to reading list (unless it's already there)

    • The reading list just contains a link to that section

Old (Ditaa) schema

ARCHIVE

+--------+ +--------+ +---------+ +-------+ +-------+        +-------------+  +----+
|Plan.org| |Note.org| |Inbox.org| |wiki.md| |Mailbox|        |Code Git repo|  |Jira|
+----+---+ +-+------+ +-+-------+ +---+---+ +--+----+        +----+--------+  +--+-+
     |       |          |             |        |                  |              |
     v       v          v             v        v                  v              v
   +---------------------+     +---------+ +--------------+  +----------+   +-----------+
   | Org parser          |     |MD parser| |Mailbox parser|  |Git parser|   |Jira parser|
   +------------+--------+     +----+----+ +--+-----------+  +----+-----+   +----+------+
                |                   |         |                   |              |
                v                   v         v                   v              v
           +--------+           +--------+ +--------+       +--------+       +-------+
           |{id,dom}|           |{id,dom}| |{id,dom}|       |{id,dom}|       |id,dom}|
           +----+---+           +---+----+ +--+-----+       +---+----+       +---+---+
                |                   |         |                 |                |
                \-------------------+         +-----------------+----------------/
                                    |         |
                                    v         v
          +-------------------------------------------+  +-------+
          |         Librarian                         +->|Updates|->@TODO
          +-----------------+-------------------------+  +-------+
                            |
       +----------------+   |
       |Reading-list.org|<--+
       +----------------+   |
                            |
       +------------+       |
       |TechTree.svg|<------+
       +------------+       |
                            |
       +----------+         |
       |Gantt.puml|<--------+
       +----------+         |
                            |
       +---------------+    |
       |Connections.web|<---+
       +---------------+

file:data/9b/c988e0-946e-41c1-88c5-4616f075ee60/schema.png

Schema

digraph {
  node[shape=rect];


  // Inputs
  subgraph cluster_local_files {
    label="Local files"
    style=dashed

    plan[label="plan.org"];
    note[label="note.org"]
    inbox[label="inbox.org"];

    wiki[label="Wiki.md"]
  }

  subgraph cluster_remote_collection {
    label="Remote collection"
    style=dashed

    mailbox[label="IMAP mailbox"]
    git[label="Git code repo"];
    gitlab[label="Gitlab issues/MR"]
    jira[label="Jira"]
    one_note[label="OneNote"]
    caldav[label="Caldav calendar"];
    carddav[label="Carddav"];
    gcalendar[label="Google calendar"];
  }

  // Processing
  org_parser[label="Org parser"];
  plan -> org_parser;
  note -> org_parser;
  inbox -> org_parser;

  md_parser[label="MD parser"]
  wiki -> md_parser;

  mb_sync[label="Mailbox sync"];
  mb_parser[label="Mailbox parser"];

  mailbox -> mb_sync -> mb_parser;

  git_sync[label="Git sync"];
  git_parser[label="Git parser"];
  git -> git_sync -> git_parser;

  gitlab_sync[label="Gitlab sync"];
  gitlab_parser[label="Gitlab parser"];
  gitlab -> gitlab_sync -> gitlab_parser;

  jira_sync[label="Jira sync"];
  jira_parser[label="Jira parser"];
  jira -> jira_sync -> jira_parser;

  one_note_sync[label="OneNote sync"];
  one_note_parser[label="OneNote parser"];
  one_note -> one_note_sync -> one_note_parser;

  carddav_sync[label="Carddav sync"];
  carddav_parser[label="Carddav parser"];

  carddav -> carddav_sync -> carddav_parser;

  caldav_sync[label="Caldav sync"];
  caldav_parser[label="Caldav parser"];

  caldav -> caldav_sync -> caldav_parser;

  gcalendar_sync[label="GCalendar sync"];
  gcalendar_parser[label="GCalendar parser"];

  gcalendar -> gcalendar_sync -> gcalendar_parser;

  // Intermediate format
  collection[label="ID+Metadata+DOM+(links?) collection"];
  librarian[label="Librarian system"];

  org_parser -> collection;
  md_parser -> collection;
  mb_parser -> collection;
  git_parser -> collection;
  gitlab_parser -> collection;
  jira_parser -> collection;
  one_note_parser -> collection;
  caldav_parser -> collection;
  carddav_parser -> collection;
  gcalendar_parser -> collection;

  collection -> librarian;

  // Outputs
  reading_list[label="Reading list.org"]
  tech_tree[label="TechTree.svg"]
  gantt[label="Gantt.puml"]
  connections[label="Connections Web"]
  archives[label="Archives"];
  views[label="Views"];
  calendar[label="Calendar"];
  hourly_report[label="Hourly report"];
  search[label="Search"];
  contact_tsv[label="Sxmo contact TSV"];
  contact_repository[label="vcard repository"];

  org_renderer[label="Org renderer"];

  librarian -> org_renderer -> reading_list;
  librarian -> tech_tree;
  librarian -> gantt;
  librarian -> connections;
  librarian -> archives;
  librarian -> views;
  librarian -> calendar;
  librarian -> hourly_report;
  librarian -> search;
  librarian -> contact_tsv;
}
digraph {
  node[shape=rect];


  // Inputs
  subgraph cluster_local_files {
    label="Local files"
    style=dashed

    plan[label="plan.org"];
    note[label="note.org"]
    inbox[label="inbox.org"];

    wiki[label="Wiki.md"]
  }

  subgraph cluster_remote_collection {
    label="Remote collection"
    style=dashed

    mailbox[label="IMAP mailbox"]
    git[label="Git code repo"];
    gitlab[label="Gitlab issues/MR"]
    jira[label="Jira"]
    one_note[label="OneNote"]
    caldav[label="Caldav calendar"];
    carddav[label="Carddav"];
    gcalendar[label="Google calendar"];
  }

  // Processing
  org_parser[label="Org parser"];
  plan -> org_parser;
  note -> org_parser;
  inbox -> org_parser;

  md_parser[label="MD parser"]
  wiki -> md_parser;

  mb_sync[label="Mailbox sync"];
  mb_parser[label="Mailbox parser"];

  mailbox -> mb_sync -> mb_parser;

  git_sync[label="Git sync"];
  git_parser[label="Git parser"];
  git -> git_sync -> git_parser;

  gitlab_sync[label="Gitlab sync"];
  gitlab_parser[label="Gitlab parser"];
  gitlab -> gitlab_sync -> gitlab_parser;

  jira_sync[label="Jira sync"];
  jira_parser[label="Jira parser"];
  jira -> jira_sync -> jira_parser;

  one_note_sync[label="OneNote sync"];
  one_note_parser[label="OneNote parser"];
  one_note -> one_note_sync -> one_note_parser;

  carddav_sync[label="Carddav sync"];
  carddav_parser[label="Carddav parser"];

  carddav -> carddav_sync -> carddav_parser;

  caldav_sync[label="Caldav sync"];
  caldav_parser[label="Caldav parser"];

  caldav -> caldav_sync -> caldav_parser;

  gcalendar_sync[label="GCalendar sync"];
  gcalendar_parser[label="GCalendar parser"];

  gcalendar -> gcalendar_sync -> gcalendar_parser;

  // Intermediate format
  collection[label="ID+Metadata+DOM+(links?) collection"];
  librarian[label="Librarian system"];

  org_parser -> collection;
  md_parser -> collection;
  mb_parser -> collection;
  git_parser -> collection;
  gitlab_parser -> collection;
  jira_parser -> collection;
  one_note_parser -> collection;
  caldav_parser -> collection;
  carddav_parser -> collection;
  gcalendar_parser -> collection;

  collection -> librarian;

  // Outputs
  reading_list[label="Reading list.org"]
  tech_tree[label="TechTree.svg"]
  gantt[label="Gantt.puml"]
  connections[label="Connections Web"]
  archives[label="Archives"];
  views[label="Views"];
  calendar[label="Calendar"];
  hourly_report[label="Hourly report"];
  search[label="Search"];
  contact_tsv[label="Sxmo contact TSV"];
  contact_repository[label="vcard repository"];

  org_renderer[label="Org renderer"];

  librarian -> org_renderer -> reading_list;
  librarian -> tech_tree;
  librarian -> gantt;
  librarian -> connections;
  librarian -> archives;
  librarian -> views;
  librarian -> calendar;
  librarian -> hourly_report;
  librarian -> search;
  librarian -> contact_repository -> contact_tsv;
}

  • GIT feels different from the others...

    • Should local files use a disk:/ backend, and have git:/ being another, similar, backend

Invocations

@startuml

autonumber

participant sync
participant parser
participant librarian
participant scripts
participant output


note over librarian
        Reads sync times from
        a cron-like file
end note

activate librarian

par periodic synchronization
        librarian -> sync ++ : (async) Time to synchronize

        sync -> parser ++ : New data
        note over parser
                Converts input data
                in data blocks of
                { id, metadata, DOM }[]
        end note
        parser -> librarian : Data blocks
        parser <-- librarian : Ok
        sync <-- parser -- : Ok

deactivate sync
end par

librarian -> scripts ++ : New data

loop script operation
  scripts -> librarian ++ : Request relevant data
  scripts <-- librarian -- : Data
end loop

scripts -> output  : Produce
librarian <-- scripts -- : Ok, new data integrated

deactivate librarian

@enduml

file:data/82/dd7a12-c56e-4099-b7cb-6dfc5d98ef77/calls.png

[ 50% ] Implementation

side

Most work has been moved to Complete note rendering system.

DONE

Generate hours per project

  • Used for

    Actualizar hoja de horas

  • Commit

    ~/repos/librarian/ (magit-rev e38d08e)

DISCARDED

Async editor

DONE

Export scripts

Images inside lists

  • Moved to

    Note rendering system > Images

DONE

Graph renderization

  • Implemented on [ [ orgit-rev:~/repos/codigoparallevar/

    0073dd8b84688d36f0d8df138626c3c823b3f3b0 ] [ (magit-rev 0073dd8) ] ] (and consecutive)

  • Look into vasturiano/3d-force-graph for a 3D implementation_

DISCARDED

Mail inbox to org-file

  • Excessive…

TODO

Automatic archival

  • Can be based on miniarchiver?

  • Httrack works better

  • Wallabag!

TODO

Queue manager

  • Groups the tasks tagged with :q: in a list, which can be ordered to establish priorities.

  • When a task is completed, the next one is scheduled for today (and so it appears on the agenda).

TODO

[ #C ] Application for PinePhone/Android

DISCARDED

With Kivy

TODO

With PySide

DONE

Fix 1w in org-rw

  • Commit

    ~/repos/org-rw/ (magit-rev a67bde5)

TODO

Gitlab synchronization

  • Link local tasks with gitlab issues

    • Can be done with a normal ~- Entry

      Value~ or with a property

  • Tags will be represented on the list tool

    • Either as a proper task tag or as a

  • Status (as in a kanban board) can be represented with either state or with a sublist

    • The proper org-mode way is using the state

    • But the visual way would be to have a list per state

  • If comments are synced, it would only be from Gitlab to OrgMode, not the other way round

References

DONE

Org-sync

  • On GH

    https://github.com/arbox/org-sync

  • Tagline

    Synchronize Org-mode Files with Bug Tracking systems

  • Pros

    • Fast

    • Pulls the data to work offline

  • Cons

    • No markup translation (just ':') prefixed

    • Fast because it just pulls the latest 100 issues (not the earlier ones)

DONE

Magit forge

TODO

Re/Linking daemon

TODO

[ 3/9 ] Org-mode parser & editor

SOMETIME

GTK based test

DONE

Fix tags

  • What is the problem?

    • Fixed non-ascii letters

TODO

Gantt generation

  • Wouldn't it be more usefult to generate the tasks from the Gantt?

    • Would this need to parse the Gantt?

    • Two way sync would be great :)

TODO

Support comments

  • Don't confuse with # on Markdown snippets

  • Check that they don't collide with CLOCKs

DONE

Search function

  • Test index

    Xapian

  • Test commit

    ~/repos/codigoparallevar/ (magit-rev 16657d9)

  • Base implementation for plibrarian

    ~/cloud/nextcloud/librarian/ (magit-rev 2eb01da)

  • Requires

    Online Org-change sync

DONE

Invoke from Emacs

DONE

Structure

  • Everything is a note

    • example

      • computer terminal is a note

      • tty is a note

        • has reference as related with "computer terminals"

      • vt100 is a note

        • has reference as subgroup of "computer terminal"

      • vt100Codes is a note

        • has reference as part of "vt100"

        • tables with content is a section

        • references is a section

TODO

[ 0/1 ] Roam function

  • See org-roam

TODO

Graph

Working, but not useful in it's current form.

[ 0/0 ] Questions

  • CamelCase for note auto-linking?

    • Nah... maybe [ Entity ] for looking up when a new note is added, to check if it was already referenced.

  • [ ] Structure?

  • Review script?

    • Maybe related to latest changes?

      • Git

[ 1/4 ] Use cases

DONE

Find linked-from on web-browser

Expose on GraphQL links, consume on browser plugin and show if there are some notes linked at the current point

DONE

Get links not annotated as such on Org

  • Commit

    [985098e] Find web links not marked as such when returning `doc.get_links()`.

DONE

Auto-reload changes in notes

  • Commit

    [8ab3bbd] Add auto-reload ofcollection.

Structure

Initial idea

  • Should allow for plugins

    • Scripting language

  • Should allow to connect to other programs

    • Easy IPC

  • Reasonable performant

  • As multi-platform as possible

Server-(plugin)client based scheme

  • Central server has access to the files

  • Parsers are pushed to plugins

  • Communication is done through websockets

  • Pros

    • Flexibility for plugin implementation

    • Easy isolation of plugins (in containers?)

  • Cons

    • Complexity

    • Problems with portability out of a computer environment

Platforms to support

  • Desktop

  • Web

  • Mobile

  • So

    Clojure-Script

  • Pros

    • Portability

    • Hot-code loading

  • Cons

    • Lack of flexibility

    • Non-mainstream language

      • Then, Kotlin?