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