diff --git a/org_mode_samples/greater_element/property_drawer/headline/planning_before_property_drawer.org b/org_mode_samples/greater_element/property_drawer/headline/planning_before_property_drawer.org new file mode 100644 index 00000000..b158a2b4 --- /dev/null +++ b/org_mode_samples/greater_element/property_drawer/headline/planning_before_property_drawer.org @@ -0,0 +1,7 @@ +** Foo +DEADLINE: <2023-10-16 Mon> +:PROPERTIES: +:foo: *a* +:Bar: *b* +:BAZ: *c* +:END: diff --git a/src/types/document.rs b/src/types/document.rs index 11022615..eacf8583 100644 --- a/src/types/document.rs +++ b/src/types/document.rs @@ -101,11 +101,15 @@ impl<'s> Heading<'s> { _ => None, }) .flat_map(|section| section.children.iter()) - .take(1) - .filter_map(|element| match element { + .take_while(|element| match element { + Element::Planning(_) | Element::PropertyDrawer(_) => true, + _ => false, + }) + .find_map(|element| match element { Element::PropertyDrawer(property_drawer) => Some(property_drawer), _ => None, }) + .into_iter() .flat_map(|property_drawer| property_drawer.children.iter()) } }