diff options
author | S. Solomon Darnell | 2025-03-28 21:52:21 -0500 |
---|---|---|
committer | S. Solomon Darnell | 2025-03-28 21:52:21 -0500 |
commit | 4a52a71956a8d46fcb7294ac71734504bb09bcc2 (patch) | |
tree | ee3dc5af3b6313e921cd920906356f5d4febc4ed /.venv/lib/python3.12/site-packages/orgparse/inline.py | |
parent | cc961e04ba734dd72309fb548a2f97d67d578813 (diff) | |
download | gn-ai-master.tar.gz |
Diffstat (limited to '.venv/lib/python3.12/site-packages/orgparse/inline.py')
-rw-r--r-- | .venv/lib/python3.12/site-packages/orgparse/inline.py | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/orgparse/inline.py b/.venv/lib/python3.12/site-packages/orgparse/inline.py new file mode 100644 index 00000000..043c99d5 --- /dev/null +++ b/.venv/lib/python3.12/site-packages/orgparse/inline.py @@ -0,0 +1,48 @@ +""" +Org-mode inline markup parser. +""" + +import re + + +def to_plain_text(org_text): + """ + Convert an org-mode text into a plain text. + + >>> to_plain_text('there is a [[link]] in text') + 'there is a link in text' + >>> to_plain_text('some [[link][more complex link]] here') + 'some more complex link here' + >>> print(to_plain_text('''It can handle + ... [[link][multi + ... line + ... link]]. + ... See also: [[info:org#Link%20format][info:org#Link format]]''')) + It can handle + multi + line + link. + See also: info:org#Link format + + """ + return RE_LINK.sub( + lambda m: m.group('desc0') or m.group('desc1'), + org_text) + + +RE_LINK = re.compile( + r""" + (?: + \[ \[ + (?P<desc0> [^\]]+) + \] \] + ) | + (?: + \[ \[ + (?P<link1> [^\]]+) + \] \[ + (?P<desc1> [^\]]+) + \] \] + ) + """, + re.VERBOSE) |