orgparse icon indicating copy to clipboard operation
orgparse copied to clipboard

Support writing to org files?

Open nishadsabnis opened this issue 4 years ago • 4 comments

Is there any plan to support writing to org files? i.e. creating new org-nodes?

nishadsabnis avatar Sep 28 '19 22:09 nishadsabnis

Hey, I actually do have a small library, inorganic to write org-mode files and you can see examples in doctests and in orger library. I implemented this in a separate library because want to understand what would be a good API first. So let me know if inorganic works for you and I'd be curious about your usecase, so I could think of a convenient interface!

karlicoss avatar Sep 29 '19 00:09 karlicoss

Is there any reason why there's no documentation on constructing nodes? It seems that roundtrip even with complex files works flawflessly, the only part that is missing is how to construct the ast by hand?

hrehfeld avatar Mar 30 '21 12:03 hrehfeld

@hrehfeld for documentation, do you mean in orgparse, or in the inorganic library I mentioned above? For orgparse, I guess the main issue that the original author of library (and me) didn't have this in mind, so the 'ast' is geared towards single pass document reading. It's also possible to take the document object tree and modify it... but writing back might be a bit more complicated, although doable. I just didn't have many usecases for it so far.

karlicoss avatar Mar 31 '21 07:03 karlicoss

Hm, I see.

@hrehfeld for documentation, do you mean in orgparse, or in the inorganic library I mentioned above? I mainly need full round-trip org-mode parsing, i.e. parse the file, change something, write back the changes. So.. a separation doesn't really make that much sense here other than to keep reading/writing separate.

For orgparse, I guess the main issue that the original author of library (and me) didn't have this in mind, so the 'ast' is geared towards single pass document reading. It's also possible to take the document object tree and modify it... but writing back might be a bit more complicated, although doable. I just didn't have many usecases for it so far.

my usecase is definitely:

root = orgparse.parse('myfile.org')
root.title = 'Look Ma, I changed the Title!'
orgparse.dump(root, 'myfile.org')

hrehfeld avatar Apr 10 '21 15:04 hrehfeld