generate folders from tasks.json export
This commit is contained in:
parent
b84b85e928
commit
f767a19592
|
@ -140,4 +140,6 @@ sources/*.json
|
|||
/scripts/stats.org
|
||||
all_tasks.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 :
|
||||
serve output
|
||||
firefox http://localhost:3000/output_all_tasks_report
|
||||
folders:
|
||||
node emploi-du-temps/generateur.mjs
|
|
@ -1,3 +1,3 @@
|
|||
default : 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
|
||||
* @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 = {
|
||||
start: "8",
|
||||
|
@ -166,6 +169,10 @@ let day_categories_map = [
|
|||
|
||||
]
|
||||
|
||||
|
||||
const sections = get_sections_from_tasks_orgfile()
|
||||
|
||||
|
||||
function loopOneDay(){
|
||||
// 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")
|
||||
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",
|
||||
"nodemon": "^2.0.19"
|
||||
},
|
||||
"scripts" : {
|
||||
"start" : "node app.js"
|
||||
"scripts": {
|
||||
"start": "node app.js"
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue