From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Ihor Radchenko Newsgroups: gmane.emacs.devel Subject: Re: Improving Emacs' iCalendar support Date: Tue, 22 Oct 2024 18:40:14 +0000 Message-ID: <87zfmwyoa9.fsf@localhost> References: <87ed4dss2x.fsf@ohm.mail-host-address-is-not-set> <0bacd69a-7941-44d2-ac5e-3ae3f256481a@alphapapa.net> <87r08cqye8.fsf@ohm.mail-host-address-is-not-set> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="36716"; mail-complaints-to="usenet@ciao.gmane.io" Cc: Adam Porter , emacs-devel@gnu.org To: Richard Lawrence Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Tue Oct 22 20:39:31 2024 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1t3Jn0-0009Pm-SA for ged-emacs-devel@m.gmane-mx.org; Tue, 22 Oct 2024 20:39:30 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1t3JmD-00035t-Kf; Tue, 22 Oct 2024 14:38:41 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1t3Jm8-00034i-92 for emacs-devel@gnu.org; Tue, 22 Oct 2024 14:38:36 -0400 Original-Received: from mout02.posteo.de ([185.67.36.66]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1t3Jm5-0002pY-0A for emacs-devel@gnu.org; Tue, 22 Oct 2024 14:38:36 -0400 Original-Received: from submission (posteo.de [185.67.36.169]) by mout02.posteo.de (Postfix) with ESMTPS id EB961240101 for ; Tue, 22 Oct 2024 20:38:28 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017; t=1729622308; bh=41P39e9lh3olflij29zcYuCzPMuBn2dcyBFch/N4VT0=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:Content-Type: From; b=Bz5IoJykXPAJBIPMNT1PBj0gkRFi+YY3fFZPT0CuS058cmpFrX1v2/m6yJCRhwhNQ A/Mzg17s6jhauHfiVihCp+EqJzCbCrVAltNCunPxZbDgN5wNy5n6gesT/8rHMPmUbw R+edsbv4mvjKAEAoyUFZsTb6k279WKCBz3ikq16p724t45eXVLQoqJ1LHacddduOth pnM0aObWMTHGde/6l8qABvdJp+uZOex7PHtYj91XQw63lniHJpQAfH3y/qiThFcxnH yWJuHygURXPVgKTpMazpCCKCrQEBuM1dBAdXrhCpoeO9QnLkqr4Hy5J81T28Il9d2E VGkirfn787F/w== Original-Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4XY1CS1TQDz9rxG; Tue, 22 Oct 2024 20:38:28 +0200 (CEST) In-Reply-To: <87r08cqye8.fsf@ohm.mail-host-address-is-not-set> Received-SPF: pass client-ip=185.67.36.66; envelope-from=yantar92@posteo.net; helo=mout02.posteo.de X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:324749 Archived-At: Richard Lawrence writes: >> So I'd suggest looking at the existing Emacs/Org applications that use >> iCal, and designing your API so that such applications would find it >> easy to use (not that it should directly imitate what already exists, >> unless such APIs are already ideal). Some kind of icalendar parser could be useful. In Org mode, we currently do icalendar export by hand-writing iCalendar entries as strings and need to be careful about things like line endings and special symbols. What could be done instead is some kind of Elisp API similar to `xml-parse-region' and `xml-print', so that things like escaping symbols, exact literals, newlines, etc are handled behind the scenes, and we could instead just define an AST and "print" it into a valid iCalendar file. So, my suggestion would be something akin xml.el and maybe (optionally) https://github.com/ndwarshuis/org-ml - to manipulate the AST. -- Ihor Radchenko // yantar92, Org mode contributor, Learn more about Org mode at . Support Org development at , or support my work at