# HG changeset patch # User Paul Boddie # Date 1334704405 -7200 # Node ID bbc00d24573e13a3ecd4523fce50fc42208bbe33 # Parent d23ca429477a811e6d435a1748012f29fcbaf2ca Added fragment acquisition, returning the arguments accompanying each region in a separate bundle. diff -r d23ca429477a -r bbc00d24573e MoinShare.py --- a/MoinShare.py Wed Apr 18 01:12:13 2012 +0200 +++ b/MoinShare.py Wed Apr 18 01:13:25 2012 +0200 @@ -27,6 +27,8 @@ marker_regexp_str = r"([{]{3,}|[}]{3,})" marker_regexp = re.compile(marker_regexp_str, re.MULTILINE | re.DOTALL) # {{{... or }}}... +fragment_prelude = "#!MoinShare " + def getRegions(s): "Parse the string 's', returning a list of shared regions." @@ -72,4 +74,30 @@ return regions +def getFragmentsFromRegions(regions): + + """ + Return fragments from the given 'regions', each having the form + (arguments, body text). + """ + + fragments = [] + + for region in regions: + body = region.lstrip("{").rstrip("}") + if body.startswith(fragment_prelude): + arguments, body = body[len(fragment_prelude):].split("\n", 1) + fragments.append((parseAttributes(arguments, False), body)) + + return fragments + +def getFragments(s): + + """ + Return fragments for the given string 's', each having the form + (arguments, body text). + """ + + return getFragmentsFromRegions(getRegions(s)) + # vim: tabstop=4 expandtab shiftwidth=4 diff -r d23ca429477a -r bbc00d24573e tests/test_regions.py --- a/tests/test_regions.py Wed Apr 18 01:12:13 2012 +0200 +++ b/tests/test_regions.py Wed Apr 18 01:13:25 2012 +0200 @@ -1,17 +1,17 @@ #!/usr/bin/env python -from MoinShare import getRegions +from MoinShare import getRegions, getFragments s = """ Test some shared content... -{{{#!MoinShare +{{{#!MoinShare fragment=101 Hello! This is ''testing'' shared content. }}} -{{{#!MoinShare format=html +{{{#!MoinShare format=html fragment=100 @@ -24,10 +24,15 @@ """ regions = getRegions(s) +fragments = getFragments(s) expected = 2 print regions print print len(regions) == expected, ": length is", len(regions), "==", expected +print +print fragments +print +print len(fragments) == expected, ": length is", len(fragments), "==", expected # vim: tabstop=4 expandtab shiftwidth=4
Test some HTML content.