enrichir le readme pour définir les 3 parties du projet

This commit is contained in:
Tykayn 2023-07-19 22:59:56 +02:00 committed by tykayn
parent e2fae4d826
commit 1b844ce08b
7 changed files with 61561 additions and 10 deletions

View File

@ -1,26 +1,59 @@
# org-report-stats # org-report-stats
Compte rendu html des tâches réalisées dans des fichiers Orgmode Compte rendu html des tâches réalisées dans des fichiers Orgmode.
Ce dépot permet plusieurs choses:
- convertir des fichiers orgmode en json
- faire fonctionner un serveur web express / node pour afficher un compte rendu HTML interprêtant un fichier json représentant des tâches orgmode exportées à partir d'ox-json dans emacs.
pour le lancer: npm start.
- convertir des exports de services numériques en fichier tsv et json, afin d'être utilisé par les autres parties pour en faire un compte rendu en html.
![report in preview](screenshot.png "screenshot of the report in html") ![report in preview](screenshot.png "screenshot of the report in html")
# Prérequis # Prérequis
* une connaissance d'Orgmode pour exporter les tâches archivées * une connaissance d'Orgmode pour exporter les tâches archivées
* un export json de vos tâches archivées (voir ox-json) * un export json de vos tâches archivées (voir ox-json)
* mettre l'export json dans le dossier source * mettre l'export json dans le dossier source
* avoir Nodejs version stable * avoir Nodejs en version stable et installer les modules node.
# Utilisation # Utilisation
## Configuration
Vérifiez les variables de chemin dans **parse_orgmode_to_json.mjs**, surtout outputAbsolutePath pour avoir un lieu de génération de fichier.
## compiler les fichiers org et les convertir en json ## compiler les fichiers org et les convertir en json
Il suffit de lancer cette commande du Makefile
```bash ```bash
make convert make convert
``` ```
Elle réalise la concaténation des fichiers tasks.org et tasks.org_archive faite dans all_tasks.org qui est ensuite utilisé par le script **parse_orgmode_to_json.mjs** pour fabriquer un fichier json.
la sortie est générée dans "outputAbsolutePath" définie dans "parse_orgmode_to_json.mjs" la sortie est générée dans "outputAbsolutePath" définie dans "parse_orgmode_to_json.mjs"
## Données générées
### Des statistiques
* Les nombres et le type de tâches agrégées par semaine, mois et années.
* le nombre de tâches avec une date.
* le nombre de tâches sans date.
* la date de la tâche la plus ancienne
* données agrégées
* Les nombres de fois que des tags sont utilisés dans les tâches.
* Les nombres de fois que des mots sont utilisés dans les tâches.
* des données sur l'auteur, la date de génération du json, le fichier source .org ayant servi à la conversion.
###
## voir le rendu ## voir le rendu
Lancer l'exécution du fichier app avec node, et consulter l'output html. Lancer l'exécution du fichier app avec node, et consulter l'output html.
```bash ```bash
npm start npm start
``` ```
# TODO ## Memacs
Les scripts inspirés de Memacs (le package python-pip) sont dans le dossier **converters**, ils permettent de convertir des fichiers exportés de divers outils numériques en feuilles de calcul pour avoir un historique général d'activités simple à lire pour les humains, et facile à analyser pour d'autres scripts.
# feuille de route TODO
Proposer une sortie json qui soit du même format que l'export ox-json d'emacs.
# DONE # DONE

View File

@ -12,7 +12,7 @@ import moment from 'moment';
const sourceFileName = 'all_tasks.org' const sourceFileName = 'all_tasks.org'
const sourceFilePath = './sources/' + sourceFileName; const sourceFilePath = './sources/' + sourceFileName;
const outputAbsolutePath = '/home/tykayn/Nextcloud/ressources/social sorting/output/'; const outputAbsolutePath = '~/Nextcloud/ressources/social sorting/output/';
const outputFileNameJson = 'export_' + sourceFileName + '_parsed.json'; const outputFileNameJson = 'export_' + sourceFileName + '_parsed.json';
let headers = [] let headers = []
@ -513,7 +513,7 @@ export async function writeFileInOuputFolderFromJsonObject(fileName, jsonObjectT
return await fs.writeFile( return await fs.writeFile(
`${outputAbsolutePath}${fileName}`, `${outputAbsolutePath}${fileName}`,
JSON.stringify(jsonObjectThing), JSON.stringify(jsonObjectThing, null,2),
"utf8", "utf8",
(err) => { (err) => {
if (err) { if (err) {

61518
source/tasks.json Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
import fs from "node-fs"; import fs from "node-fs";
import {headersTsv, writeFileInOuputFolderFromJsonObject} from "./utils.mjs"; import {headersTsv, writeFileInOuputFolderFromJsonObject} from "../../utils.mjs";
/** /**
convertir un json représentant toutes les tâches orgmode en un json rangé par dates convertir un json représentant toutes les tâches orgmode en un json rangé par dates

View File

@ -1,7 +1,7 @@
import fs from "node-fs"; import fs from "node-fs";
import {writeFileInOuputFolderFromJsonObject} from "./parse_orgmode_to_json.mjs"; import {writeFileInOuputFolderFromJsonObject} from "../../parse_orgmode_to_json.mjs";
import moment from "moment"; import moment from "moment";
import {headersTsv} from "./utils.mjs"; import {headersTsv} from "../../utils.mjs";
/********************** /**********************

View File

@ -1,5 +1,5 @@
import fs from "node-fs"; import fs from "node-fs";
import {writeFileInOuputFolderFromJsonObject} from "./parse_orgmode_to_json.mjs"; import {writeFileInOuputFolderFromJsonObject} from "../../parse_orgmode_to_json.mjs";
import moment from "moment"; import moment from "moment";

View File

@ -1,5 +1,5 @@
import fs from "node-fs"; import fs from "node-fs";
import {headersTsv, writeFileInOuputFolderFromJsonObject} from "./utils.mjs"; import {headersTsv, writeFileInOuputFolderFromJsonObject} from "../../utils.mjs";
/** /**
convertir un json représentant toutes les tâches orgmode en un json rangé par dates convertir un json représentant toutes les tâches orgmode en un json rangé par dates