Bike Outliner – Copy As bullet-free (rich text) Apple Mail outline

Another approach, using a simple XQuery, which should work with both Bike 1 and, when it is released, Bike 2.

Note that this macro requires a copy of the XQuery subroutine to be in any enabled Keyboard Maestro macro group in your installation.

XQuery over XML SUBROUTINE.kmmacros.zip (3,2 Ko)


Copy as unbulleted Mail outline (Bike 1 or 2).kmmacros (11 KB)


XQuery Source

declare function local:mail-from-bike($li as element(li)) as element()* {
    let $p := $li/p
    let $ul := $li/ul

    return (
        <div>{$p}</div>,
        
        if ($ul) then
            <blockquote>{
                for $child-li in $ul/li
                return local:mail-from-bike($child-li)
            }</blockquote>
        else
            ()
    )
};

for $li in /html/body/ul/li
return local:mail-from-bike($li)