Skip to content

auzn/OrgModeIO

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

Python OrgModeIO Readme

This is a python library for parsing Emacs org-mode files.

Supported Feature

#+TITLE:
#+SEQ_TODO:
#+TAGS:

install

pip install OrgModeIO

Usage

import OrgModeIO
f = open('TODO_Life.org','r',encoding='utf-8')
doc = OrgModeIO.OrgDocFile(f)
parser = OrgModeIO.OrgParser(doc).parse()
f.close()
# the nodes is implemented with nested set model https://en.wikipedia.org/wiki/Nested_set_model
nodes = parsed_file.get_nodes()
for n in ns:
    print(n)
    #print('n['level']) 
    #print(n['lft'])
    #print(n['rgt'])

output:

{'level': 0, 'lft': 0, 'rgt': 41, 'head': <OrgNode.OrgHead object at 0x00000298C7FF4DD8>}
{'level': 1, 'lft': 1, 'rgt': 2, 'head': <OrgNode.OrgHead object at 0x00000298C8018160>}
{'level': 1, 'lft': 3, 'rgt': 14, 'head': <OrgNode.OrgHead object at 0x00000298C8018128>}
{'level': 2, 'lft': 4, 'rgt': 13, 'head': <OrgNode.OrgHead object at 0x00000298C8018198>}
{'level': 3, 'lft': 5, 'rgt': 6, 'head': <OrgNode.OrgHead object at 0x00000298C8018208>}
{'level': 3, 'lft': 7, 'rgt': 8, 'head': <OrgNode.OrgHead object at 0x00000298C8018278>}
{'level': 3, 'lft': 9, 'rgt': 10, 'head': <OrgNode.OrgHead object at 0x00000298C8018438>}
{'level': 3, 'lft': 11, 'rgt': 12, 'head': <OrgNode.OrgHead object at 0x00000298C80184A8>}
{'level': 1, 'lft': 15, 'rgt': 16, 'head': <OrgNode.OrgHead object at 0x00000298C8018710>}
{'level': 1, 'lft': 17, 'rgt': 40, 'head': <OrgNode.OrgHead object at 0x00000298C80184E0>}


root = ns[0]['head']
print(root.get_title())
print(root.get_level())

output:

ROOT
0


node = ns[18]['head']
print(node)
print('================================================')
print('level:' + str(node.get_level()))
print('state:' + node.get_state())
print('priority:' + node.get_priority())
print('title:' + node.get_title())
print('deadline:' + str(node.get_deadline()))
print('closed time:' + str(node.get_closed()))
print('scheduled:' + str(node.get_scheduled()))
print('property list:' + str(node.get_properties()))
print('content:' + node.get_content())

output:

***** DONE [#B] some thing  needs to be done 
CLOSED:[2017-08-27 21:02] DEADLINE:<2017-08-20 00:00>
================================================
level:5
state:DONE
priority:B
title:some thing  needs to be done
deadline:<2017-08-20 00:00>
closed time:[2017-08-27 21:02]
scheduled:None
property list:None
content:

About

This is a python library for parsing Emacs org-mode files and write to html or others

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages