From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp1 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms1 with LMTPS id a1u6NMGGi15lbAAAk0OIDg (envelope-from ) for ; Mon, 06 Apr 2020 19:45:05 +0000 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp1 with LMTPS id INojGcCGi14EOgAAbx9fmQ (envelope-from ) for ; Mon, 06 Apr 2020 19:45:04 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 14540946A0B for ; Mon, 6 Apr 2020 18:48:49 +0000 (UTC) Received: from localhost ([::1]:37128 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jLWnf-0006fD-Qi for larch@yhetil.org; Mon, 06 Apr 2020 14:48:47 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41944) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jLWDV-00023S-33 for emacs-orgmode@gnu.org; Mon, 06 Apr 2020 14:11:26 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jLWDT-0000Ul-Pv for emacs-orgmode@gnu.org; Mon, 06 Apr 2020 14:11:25 -0400 Received: from mail-ot1-x341.google.com ([2607:f8b0:4864:20::341]:35987) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jLWDT-0000U1-Kj for emacs-orgmode@gnu.org; Mon, 06 Apr 2020 14:11:23 -0400 Received: by mail-ot1-x341.google.com with SMTP id l23so324066otf.3 for ; Mon, 06 Apr 2020 11:11:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=QexoxSH0uYF72FT9lJVASNQfafC9vNRNuQHOdl1Zdng=; b=lX0xs5Hd96d9XOl4AfXJehtA5gF4axQI16ldLLa+2HFpuDkl0w8TGKN5ODogS4op4b G+4CX90Df3OSYkUrKnIWpgFDbVXH7r++NgWnnp6MD24kk6hW8i3HpNTm7LODda/xAIHf 66a7OPGBF5lc27CZEKi6KxAlCc7jXmzneeqIZ5G9Ak8RmXl55Ze/6Z/vB9uDYYLZVX7z TP4ZTMUbxez9TAHz1SwZf+91SwGWJUD8ChKYOGaVPH+qEabxo92geGuva4ZlouvuRh+H D2KVqwqxBwUsIjJ0Ftl7yaX7Ovpnmoeuo+TkMIm3zf5NYnSLfI+cd4EOOozV4Q6HfMbE jQSg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=QexoxSH0uYF72FT9lJVASNQfafC9vNRNuQHOdl1Zdng=; b=RUG49AhaYjBwAvF30Bwe5Oc8KOdR/OPewWoOQtTiS3Py0FhKlICyjmgc2pkTAJpRC2 Hg+nkAzc7EMna6sSXMCEA7W+CEtAP8qhtCaaQnlMsTOeOa/4QSp2w9h9XrimaAx0R79G CgV0MM9y++l8rgm1XD79fphRw0OXRPBTeATplEoCNai9qHLJ64aNX2K3j4pbQcs6nziz 7vd/ZAQ+OeDkE18wvUIzsbLC3mzYqBOFogcJf+ZNQs6+aUL0cG3dVX+kwg562NduatwF HzmvqWVnEy8rfBrdvhQQTOs0yB4d5UQMwMP3IOgljKgHiLBj/fAOUNcer4yq0yk4qhpR hUDg== X-Gm-Message-State: AGi0PuZrtkkNekf/Sy+KEUaaikajB9AXvR8/iZW/G435xW2FHmudFxaV YwHDnU6dvzR31wwsSSoFllqSHfoZ0DeFkii+PcWK1rQRxb8= X-Google-Smtp-Source: APiQypIpcIvQFoSerweHWSa6AJZsA70pfB2TBrb5OuTy4ZLMxOuDmcnvqVnImNkk6P0cuv/BxjoRUigEmXRxTMYVZn4= X-Received: by 2002:a9d:2004:: with SMTP id n4mr321599ota.74.1586196682320; Mon, 06 Apr 2020 11:11:22 -0700 (PDT) MIME-Version: 1.0 From: Adr ien Date: Mon, 6 Apr 2020 14:11:11 -0400 Message-ID: Subject: Positive experience with org-element API To: emacs-orgmode@gnu.org Content-Type: multipart/alternative; boundary="000000000000cb3bcb05a2a33152" X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::341 X-Mailman-Approved-At: Mon, 06 Apr 2020 14:48:15 -0400 X-BeenThere: emacs-orgmode@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+larch=yhetil.org@gnu.org Sender: "Emacs-orgmode" ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=default; t=1586198930; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=QexoxSH0uYF72FT9lJVASNQfafC9vNRNuQHOdl1Zdng=; b=m0e729mwEebDFPjnKes9cqmH6xMMd3gEy49VAPBxDCKxa9dFSalLlWQZlYspQe4q096J0N kM41inaQQIULZkYalHh6gRByOJdWF9yRFo5vK/8jpsv2rFrMxH/lUmtm0k/VlqevVjuvQG 8wodf6k3nbunB4rYrgMF/5YlMQ5RUNY= ARC-Seal: i=1; s=default; d=yhetil.org; t=1586198930; a=rsa-sha256; cv=none; b=mZD2eeaEPBg8moXUoWI3llIgqsz5MnOmrLma4uwCwBvmkGSp94Yv7mVFk5p/+Csze6mExK 8SJu48xMDOikfG+QUCrztamNtrocs6XgS1CMXmeOVdsvmqpm0GDV4LDuRVISrC0E9Ld2UI TI3vm3vhNxAIvjas88KbHOGcicrP1Fw= ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20161025 header.b=lX0xs5Hd; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (aspmx1.migadu.com: domain of emacs-orgmode-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=emacs-orgmode-bounces@gnu.org X-Scanner: scn0 X-Spam-Score: -1.71 Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20161025 header.b=lX0xs5Hd; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (aspmx1.migadu.com: domain of emacs-orgmode-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=emacs-orgmode-bounces@gnu.org X-Scan-Result: default: False [-1.71 / 13.00]; GENERIC_REPUTATION(0.00)[-0.5836516055341]; R_SPF_ALLOW(-0.20)[+ip4:209.51.188.0/24:c]; FREEMAIL_FROM(0.00)[gmail.com]; TO_DN_NONE(0.00)[]; ARC_SIGNED(0.00)[i=1]; IP_REPUTATION_HAM(0.00)[asn: 22989(0.32), country: US(-0.01), ip: 209.51.188.17(-0.58)]; DKIM_TRACE(0.00)[gmail.com:+]; DMARC_POLICY_ALLOW(-0.50)[gmail.com,none]; MX_GOOD(-0.50)[cached: eggs.gnu.org]; MAILLIST(-0.20)[mailman]; FORGED_RECIPIENTS_MAILLIST(0.00)[]; MIME_TRACE(0.00)[0:+,1:+,2:~]; RCVD_TLS_LAST(0.00)[]; ASN(0.00)[asn:22989, ipnet:209.51.188.0/24, country:US]; TAGGED_FROM(0.00)[larch=yhetil.org]; FROM_NEQ_ENVFROM(0.00)[aaabrochard@gmail.com,emacs-orgmode-bounces@gnu.org]; ARC_NA(0.00)[]; R_DKIM_ALLOW(-0.20)[gmail.com:s=20161025]; RCVD_COUNT_FIVE(0.00)[6]; FROM_HAS_DN(0.00)[]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; PREVIOUSLY_DELIVERED(0.00)[emacs-orgmode@gnu.org]; HAS_LIST_UNSUB(-0.01)[]; RCPT_COUNT_ONE(0.00)[1]; FORGED_SENDER_MAILLIST(0.00)[] X-TUID: JAB7ofoHfCQI --000000000000cb3bcb05a2a33152 Content-Type: text/plain; charset="UTF-8" Hi everyone, I just wanted to share a recent positive experience I had with org-mode, specifically with org-mode parsing in elisp. I maintain a package that allows users to write curl request in org mode and execute them. At first, I defined a structure for that org entry that I was parsing via a series of regex into an alist. But as features grew and the structure evolved, it was becoming incredibly difficult and hacky to parse that way. Thankfully, after spending a bit of time with the org-element API doc and getting some much needed help on the IRC channel, I was able to replace the hacky regex with a cleaner and more robust mechanism taking full advantage of `org-element-map`. In case you are interested in the code, you can see a sample org entry here: https://github.com/abrochard/walkman/blob/master/sample.org and the parsing code here: https://github.com/abrochard/walkman/blob/master/walkman.el#L148 It definitely could me optimized but I am quite happy with it already. Thanks again to everyone for the help and the doc! Best, Adrien Brochard --000000000000cb3bcb05a2a33152 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi everyone,
I just wanted to share a = recent positive experience I had with org-mode, specifically with org-mode = parsing in elisp.

I maintain a package that allows= users to write curl request in org mode and execute them. At first, I defi= ned a structure for that org entry that I was parsing via a series of regex= into an alist. But as features grew and the structure evolved, it was beco= ming incredibly difficult and hacky to parse that way. Thankfully, after sp= ending a bit of time with the org-element API doc and getting some much nee= ded help on the IRC channel, I was able to replace the hacky regex with a c= leaner and more robust mechanism taking full advantage of `org-element-map`= .

In case you are interested in the code, you= can see a sample org entry here:
and the parsing code here:
https://github.com/abrochard/walkman/blob/master/walkman.el#L148

It definitely could me optimized but I am quite happ= y with it already.
Thanks again to everyone for the help and the = doc!
Best,
Adrien Brochard

--000000000000cb3bcb05a2a33152--