Dear org mode developers,

I'm the author of Metanote. A few days ago, I posted a thread on Reddit
with the title "Let's Talk About the Story of Metanote and Free Software."
https://www.reddit.com/r/emacs/comments/16db9gz/lets_talk_about_the_story_of_metanote_and_free/
You  can learn more about Metanote and me from there. In the replies to
that post, someone mentioned here, so here I am.

During the development of Metanote, I encountered some issues, as follows:
(Note that my testing environment is based on org mode 9.3.6, GNU Emacs
28.2. I haven't tested with the latest org mode, so I'm not sure if these
issues still exist.)

1. Dynamic Block Parsing Issue

   #+begin_example
#+begin
#+end:
   #+end_example

   The above is a Dynamic Block, and the parsed syntax tree is:

   (org-data nil (section (:begin 1 :end 17 :contents-begin 1 :contents-end
17 :post-blank 0 :post-affiliated 1 :parent #0) (dynamic-block (:begin 1
:end 17 :block-name nil :arguments nil :contents-begin nil :contents-end
nil :post-blank 0 :post-affiliated 1 :parent #1))))

   However, the following is not recognized as a Dynamic Block:

   #+begin_example
a
#+begin
#+end:
   #+end_example

   the parsed syntax tree is:

(org-data nil (section (:begin 1 :end 18 :contents-begin 1 :contents-end 18
:post-blank 0 :post-affiliated 1 :parent #0) (paragraph (:begin 1 :end 11
:contents-begin 1 :contents-end 11 :post-blank 0 :post-affiliated 1 :parent
#1)) (keyword (:key "END" :value "" :begin 11 :end 18 :post-blank 0
:post-affiliated 11 :parent #1))))

2. About Paragraph

   #+begin_example
+--+
+--+
+this is a paragraph+
+this is a paragraph+
   #+end_example

There should be only one paragraph above, but it's parsed as two:

(org-data nil (section (:begin 1 :end 55 :contents-begin 1 :contents-end 55
:post-blank 0 :post-affiliated 1 :parent #0) (paragraph (:begin 1 :end 6
:contents-begin 1 :contents-end 6 :post-blank 0 :post-affiliated 1 :parent
#1)) (paragraph (:begin 6 :end 55 :contents-begin 6 :contents-end 55
:post-blank 0 :post-affiliated 6 :parent #1))))

3. About Pre-blank

   The first blank line in a Greater Element is parsed as a paragraph.
However, this behavior is inconsistent in Items and Footnote definitions.
In Items and Footnote definitions, a blank line is parsed as a Pre-blank.
In Footnote definitions, especially, this blank line appears only once
because having more than one would break the Footnote definitions.

#+begin_example
[fn:a]

bbb
#+end_example

(org-data nil (section (:begin 1 :end 13 :contents-begin 1 :contents-end 13
:post-blank 0 :post-affiliated 1 :parent #0) (footnote-definition (:label
"a" :begin 1 :end 13 :contents-begin 9 :contents-end 13 :pre-blank 2
:post-blank 0 :post-affiliated 1 :parent #1) (paragraph (:begin 9 :end 13
:contents-begin 9 :contents-end 13 :post-blank 0 :post-affiliated 9 :parent
#2)))))


I'm a big fan of org mode. A few years ago, I couldn't find an app that
supported org mode on my phone, so I created one myself. I hope that
through my app, I can introduce org mode to more people, even those who are
not familiar with Emacs. I also hope to make some contributions to org mode.

Additionally, is it possible to include Metanote in the 'Tools that work
with Org' section at https://orgmode.org/tools.html ?  Metanote website is
https://metanote-dev.github.io/.

Best regards,
Zhen

Reply via email to