Je ne peux pas écrire emacs-lisp, donc j'ai cherché un analyseur en mode org avec python, donc je l'ai essayé. Essayez de lire l'exemple de fichier organisationnel et de convertir le résultat de la lecture en texte organisationnel.
Cliquez ici pour le document officiel. https://orgparse.readthedocs.io/en/latest/
L'exemple suivant est utilisé cette fois.
$ cat sample.org
* Heading 1
:PROPERTIES:
:ID: 48c4a07e-95c1-41ff-a1f0-8e2f6ad88761
:END:
** TODO [#B] Heading 2
DEADLINE: <2020-05-09 Sat>
** DONE Heading 2
CLOSED: [2020-05-09 Sat 22:21]
*** Heading 3
SCHEDULED: <2020-05-09 Sat>
* Heading 1 :ARCHIVE:
Tout d'abord, installez les packages requis. Il existe des packages séparés pour la lecture et l'écriture.
$ pip install orgparse orger
L'exemple de code pour la lecture et l'écriture est ci-dessous.
$ cat org-parse.py
from orgparse import load
from orger import inorganic
root = load('sample.org')
print('--- for node in root[1:] ---')
#Exécuter dans l'ordre à partir du nœud de la ligne supérieure
for node in root[1:]:
print(node.heading)
#Exécuter dans l'ordre à partir du nœud de la hiérarchie supérieure
print('--- for node in root.children ---')
# for node in root.children
for node in root.children:
print(node.heading)
#Copier dans le package pour écriture
def get_node(node):
children = [get_node(child) for child in node.children]
scheduled = None if node.scheduled is None else node.scheduled.start
return inorganic.node(
heading=node.heading, #Lire le titre
todo=node.todo, # TODO,Lire FAIT etc.
tags=node.tags, #Lecture de balises
scheduled=scheduled, #lecture programmée,Il y a aussi une date limite pour la lecture
properties=node.properties, #Le chargement individuel est un nœud.get_property('ID')
body=node.body, #Lire le contenu
children=children
)
print('--- write to org file ---')
for node in root.children:
node = get_node(node)
print(node.render())
Résultat d'exécution
$ python3 org-parse.py
--- for node in root[1:] ---
Heading 1
Heading 2
Heading 2
Heading 3
Heading 1
--- for node in root.children ---
Heading 1
Heading 1
--- write to org file ---
* Heading 1
:PROPERTIES:
:ID: 48c4a07e-95c1-41ff-a1f0-8e2f6ad88761
:END:
** TODO Heading 2
** DONE Heading 2
*** Heading 3
SCHEDULED: <2020-05-09 Sat>
* Heading 1 :ARCHIVE:
J'ai pu facilement lire et écrire des fichiers org. Avec cela, il semble que todo agrégation, etc. peut être écrit avec un script python. Depuis le 9 mai 2020, il semble que le côté inorganique du package en écriture seule ne prend pas en charge la fermeture ou la date limite.
Le package d'écriture de l'organisation est encore au stade provisoire et il semble que l'API soit à l'étude. Problèmes liés: https://github.com/karlicoss/orgparse/issues/11
À propos, les référentiels associés cette fois sont les suivants. Tous sont fabriqués par la même personne.
En particulier, le package appelé orger orgs github, pdf, tiwtter, etc. Il semble que le but est de gérer toutes les informations dans org. C'est comme la version emacs-org d'Evernote. Je veux l'utiliser un jour.
Recommended Posts