generate folders from tasks.json export

This commit is contained in:
Tykayn 2023-02-06 13:09:01 +01:00 committed by tykayn
parent b84b85e928
commit f767a19592
9 changed files with 1226 additions and 189 deletions

2
.gitignore vendored
View File

@ -140,4 +140,6 @@ sources/*.json
/scripts/stats.org
all_tasks.org
stats.org
emploi-du-temps/folders_build/*
emploi-du-temps/output.org

1
.yarnrc.yml Normal file
View File

@ -0,0 +1 @@
nodeLinker: node-modules

View File

@ -12,3 +12,5 @@ copyTasksJson :
render :
serve output
firefox http://localhost:3000/output_all_tasks_report
folders:
node emploi-du-temps/generateur.mjs

View File

@ -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

View File

@ -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();

View File

@ -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();

11
emploi-du-temps/readme.md Normal file
View File

@ -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

1306
yarn.lock

File diff suppressed because it is too large Load Diff