generate folders from tasks.json export
This commit is contained in:
parent
b84b85e928
commit
f767a19592
|
@ -140,4 +140,6 @@ sources/*.json
|
||||||
/scripts/stats.org
|
/scripts/stats.org
|
||||||
all_tasks.org
|
all_tasks.org
|
||||||
stats.org
|
stats.org
|
||||||
emploi-du-temps/folders_build/*
|
|
||||||
|
emploi-du-temps/folders_build/*
|
||||||
|
emploi-du-temps/output.org
|
|
@ -0,0 +1 @@
|
||||||
|
nodeLinker: node-modules
|
2
Makefile
2
Makefile
|
@ -12,3 +12,5 @@ copyTasksJson :
|
||||||
render :
|
render :
|
||||||
serve output
|
serve output
|
||||||
firefox http://localhost:3000/output_all_tasks_report
|
firefox http://localhost:3000/output_all_tasks_report
|
||||||
|
folders:
|
||||||
|
node emploi-du-temps/generateur.mjs
|
|
@ -1,3 +1,3 @@
|
||||||
default : generate
|
default : generate
|
||||||
generate:
|
generate:
|
||||||
PATH=/home/tykayn/.nix-profile/bin:/home/tykayn/.rbenv/shims:/home/tykayn/.rbenv/bin:/home/tykayn/.nvm/versions/node/v17.3.0/bin:/home/tykayn/.asdf/shims:/home/tykayn/.asdf/bin:/snap/bin:/home/tykayn/.emacs.d/bin:/home/tykayn/.symfony/bin:/home/tykayn/.local/bin:/home/tykayn/.rvm/gems/ruby-2.7.2/bin:/home/tykayn/.rvm/gems/ruby-2.7.2@global/bin:/home/tykayn/.rvm/rubies/ruby-2.7.2/bin:/usr/local/bin:/usr/bin:/bin:/usr/games:/home/tykayn/.rvm/bin:/home/tykayn/.rvm/bin node generateur.js > output.org
|
PATH=/home/tykayn/.nix-profile/bin:/home/tykayn/.rbenv/shims:/home/tykayn/.rbenv/bin:/home/tykayn/.nvm/versions/node/v17.3.0/bin:/home/tykayn/.asdf/shims:/home/tykayn/.asdf/bin:/snap/bin:/home/tykayn/.emacs.d/bin:/home/tykayn/.symfony/bin:/home/tykayn/.local/bin:/home/tykayn/.rvm/gems/ruby-2.7.2/bin:/home/tykayn/.rvm/gems/ruby-2.7.2@global/bin:/home/tykayn/.rvm/rubies/ruby-2.7.2/bin:/usr/local/bin:/usr/bin:/bin:/usr/games:/home/tykayn/.rvm/bin:/home/tykayn/.rvm/bin node generateur.mjs > output.org
|
||||||
|
|
|
@ -0,0 +1,75 @@
|
||||||
|
/**
|
||||||
|
* création d'emploi du temps avec des zones découpées en catégorie
|
||||||
|
* cela permet de parcourir tous les aspects de la méthodologie PARA sur différents créneaux
|
||||||
|
* @type {{duration: string, start: string, content: null}}
|
||||||
|
*/
|
||||||
|
import fs from 'node-fs';
|
||||||
|
import tasksList from '../sources/tasks.json' assert { type: "json" };
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
let folderPrefix = './emploi-du-temps/folders_build';
|
||||||
|
|
||||||
|
async function foldersGeneration(dirpath){
|
||||||
|
await fs.promises.mkdir(`${folderPrefix}/${dirpath}`, { recursive: true })
|
||||||
|
}
|
||||||
|
export let sectionsCleaned = {}
|
||||||
|
// TODO prendre le groupe de type projets; récupérer les tâches de level 2
|
||||||
|
export function get_sections_from_tasks_orgfile(generate_folders= false){
|
||||||
|
|
||||||
|
tasksList.contents.map( elem => {
|
||||||
|
let sectionTitle = elem.properties['raw-value'];
|
||||||
|
|
||||||
|
if(sectionTitle){
|
||||||
|
let cleanSectionName = removeBrackets(elem.properties['raw-value']).replace(/-*/g, "")
|
||||||
|
sectionsCleaned[cleanSectionName] = {}
|
||||||
|
|
||||||
|
if(generate_folders){
|
||||||
|
foldersGeneration(cleanSectionName);
|
||||||
|
}
|
||||||
|
console.log('section PARA: ', cleanSectionName)
|
||||||
|
elem.contents.map( content => {
|
||||||
|
let subSectionName = removeBrackets(content.properties['raw-value'])
|
||||||
|
console.log(' - ',subSectionName )
|
||||||
|
sectionsCleaned[cleanSectionName][subSectionName] = subSectionName
|
||||||
|
if(generate_folders){
|
||||||
|
foldersGeneration(`${cleanSectionName}/${subSectionName}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
console.log('sectionsCleaned',sectionsCleaned)
|
||||||
|
return sectionsCleaned;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* clean org tasks headings of links to roam things, remove counter cookies
|
||||||
|
* @param input
|
||||||
|
* @returns {string|*}
|
||||||
|
*/
|
||||||
|
export function removeBrackets(input) {
|
||||||
|
if(!input){
|
||||||
|
return input;
|
||||||
|
}
|
||||||
|
return input
|
||||||
|
.replace(/{.*?}/g, "")
|
||||||
|
.replace('\'', ' ')
|
||||||
|
.replace(' ', ' ')
|
||||||
|
.replace(/\[.*?\/.*?\]/g, "")
|
||||||
|
.replace(/\[\[.*?\[/g, "")
|
||||||
|
.replace(/\]*/g, "")
|
||||||
|
.replace(/<.*?>/g, "")
|
||||||
|
.replace(/\(.*?\)/g, "")
|
||||||
|
.replace(']','')
|
||||||
|
.toLowerCase()
|
||||||
|
.trim()
|
||||||
|
//.replace('[','')
|
||||||
|
;
|
||||||
|
}
|
||||||
|
|
||||||
|
get_sections_from_tasks_orgfile(true);
|
||||||
|
|
||||||
|
console.log("* Emploi du temps pour deux semaines sans inclure les weekend \n")
|
||||||
|
//displayDays();
|
|
@ -3,6 +3,9 @@
|
||||||
* cela permet de parcourir tous les aspects de la méthodologie PARA sur différents créneaux
|
* cela permet de parcourir tous les aspects de la méthodologie PARA sur différents créneaux
|
||||||
* @type {{duration: string, start: string, content: null}}
|
* @type {{duration: string, start: string, content: null}}
|
||||||
*/
|
*/
|
||||||
|
import fs from 'node-fs';
|
||||||
|
import tasksList from '../sources/tasks.json'
|
||||||
|
import {get_sections_from_tasks_orgfile} from "./folder_from_tasks"; assert { type: "json" };
|
||||||
|
|
||||||
const timespan_base = {
|
const timespan_base = {
|
||||||
start: "8",
|
start: "8",
|
||||||
|
@ -166,6 +169,10 @@ let day_categories_map = [
|
||||||
|
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
const sections = get_sections_from_tasks_orgfile()
|
||||||
|
|
||||||
|
|
||||||
function loopOneDay(){
|
function loopOneDay(){
|
||||||
// passer sur les catégories et faire progresser l'index des éléments des catégories
|
// passer sur les catégories et faire progresser l'index des éléments des catégories
|
||||||
|
|
||||||
|
@ -243,5 +250,4 @@ function convertMinutesOfDayToHourDisplay(max_min_a_day){
|
||||||
|
|
||||||
|
|
||||||
console.log("* Emploi du temps pour deux semaines sans inclure les weekend \n")
|
console.log("* Emploi du temps pour deux semaines sans inclure les weekend \n")
|
||||||
displayDays();
|
//displayDays();
|
||||||
displayDays();
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
# générateur d'emploi du temps
|
||||||
|
|
||||||
|
|
||||||
|
* exporter en json vos tâches Orgmode. tasks.json
|
||||||
|
* les placer dans le dossier de sources.
|
||||||
|
* lancer le script
|
||||||
|
node emploi-du-temps/generateur.mjs > emploi-du-temps/report_generation.org
|
||||||
|
|
||||||
|
* utiliser les dossiers générés pour avoir une hiérarchie de fichiers selon le modèle PARA qui soit cohérente avec votre gestion de tâches.
|
||||||
|
exemple de fichier tasks json
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
"node-fs": "^0.1.7",
|
"node-fs": "^0.1.7",
|
||||||
"nodemon": "^2.0.19"
|
"nodemon": "^2.0.19"
|
||||||
},
|
},
|
||||||
"scripts" : {
|
"scripts": {
|
||||||
"start" : "node app.js"
|
"start": "node app.js"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue