emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Aaron Ecay <aaronecay@gmail.com>
To: Nicolas Goaziou <mail@nicolasgoaziou.fr>,
	Org Mode List <emacs-orgmode@gnu.org>
Subject: Re: Some projects
Date: Sun, 25 Oct 2015 23:03:52 +0000	[thread overview]
Message-ID: <877fmazh2f.fsf@gmail.com> (raw)
In-Reply-To: <87wpub9jts.fsf@nicolasgoaziou.fr>

Hi Nicolas,

Thanks for writing this up.  It is important to think about, and
ultimately solve, all the issues you raise.

2015ko urriak 25an, Nicolas Goaziou-ek idatzi zuen:
> 
> Hello,
> 
> I'd like to see some features moving forward, and some important issues
> fixed, hopefully, in the next months. I'm sharing them here so that
> anyone interested can help.
> 
> 
> * Features
> 
> ** Citations
> 
> Development apparently stopped for some reason. We have a citation
> syntax for Org in wip-cite and some work done in wip-cite-awe and
> probably elsewhere.
> 
> I think we could at least provide features defined in Org Ref using the
> new syntax (minus hydra/helm related functions).
> 
> We don't need a silver bullet. Just something with a non-empty user
> base, and extensible. In any case, the work done so far shouldn't be
> wasted.

I was working on this rather intensively at one time, but I had to stop
because other aspects of life intruded.  I have just been coming back
towards a situation where I can imagine myself having some (still small,
but non-zero) chunks of time to devote to working on org.  So I hope I
will be able to pick this back up, but (regrettably) I’m not able to
make any promises.

Based on my recollection, here’s what the problems were when I stopped:

- The only “off the shelf”-capable citation processing library that we
  found last time is in Haskell, which introduced some difficulties for
  distributing the resulting tool.  I know some projects
  (e.g. git-annex) are written in Haskell and distributed as static
  binaries for windows/mac/linux/etc.  We’d need to figure out how to do
  this, or find another citation processing library in an
  easier-to-distribute language.  (I should say, all the work on the
  external tool was done by Richard Lawrence; I worked on the exporter
  for the citation syntax including the interface with an external
  tool.)

- There is a difference between citations as done by latex/bibtex/etc.,
  and those done in every other format (handled through CSL).  Assuming
  latex users want to keep their native processing rather than
  delegating to CSL, we need to solve the myriad small inconsistencies
  between these two tools.  I think this is an area where it’s important
  to get things right: users of citations generally have exacting
  requirements.  “Approximately Chicago-style” or “almost MLA” aren’t
  worth anything.

When I start working again I will take your words about silver bullets
to heart, and come up with something that covers at least basic use
cases for users who can compile a haskell program themselves.  We can
expand from there.

(I should also say, if someone else is interested in working on this
please don’t hesitate to jump right in.  I will help you however I can!)

> 
> ** Annotations
> 
> It would be nice to allow annotating text in Org. I already made
> a proposal for that feature a few months ago, without much success.
> Anyway, I'd like to implement it, in a simplified form. For the record,
> the idea is to use some markup for beginning and end of an annotation,
> e.g.,
> 
>   [@:id].....[@]
> 
> and store text within a dedicated section,
> 
>   * Annotations
> 
>   [@:id] ...
> 
> Like footnotes, you could easily browse remotely annotations at point.
> However, they would be, at least at the beginning, completely ignored
> during export.
> 
> ** Backslash escaping
> 
> Allowing to escape some symbols in plain text (e.g., emphasis markers,
> square brackets...) would remove a limitation in verbatim/code objects.
> As a small benefit, it would also permit to implement mid-word markup:
> b*o*ld.
> 
> There are some gotchas, however.
> 
> * Important fixes
> 
> ** Cache
> 
> The cache needs to be fixed. Its underlying implementation probably
> needs to be changed, too. At the moment, it uses an AVL tree, which
> isn't much tolerant and results in a freeze whenever the cache is
> corrupted. Shifting to text properties could improve the situation.
> 
> Also, it needs to do better analysis in order to prevent those
> corruptions. This is obviously the hardest part.
> 
> Again, an efficient cache can give us a better fontification mechanism,
> since Org syntax is not regular.
> 
> ** Link hexification
> 
> There are currently some subtle inconsistencies in link handling. See
> for example `org-make-link-string'.

At the risk of being a bit of an anarchist, I think this is somewhere we
could benefit from throwing backward compatibility out the window, at
least for brainstorming purposes.  The link-hexification bug threads
I’ve read give the impression of watching someone try to add one more
level onto a teetering house of cards.  It would be great if someone
could take inventory of the uses of links in org, and then try to design
a solid syntax that works for them from scratch.  We’d wait to worry
about implementation until having a well-engineered design.

(To give an example of what I have in mind, it may turn out that
hexification, borrowed from HTML/HTTP, is not even the best technical
solution to our actual problem, whatever it is.)

> 
> ** Use lexical binding everywhere
> 
> This is the easiest part: add appropriate cookie at the beginning of the
> file and fix resulting compiler warnings.

There are also a lot of places that org uses dynamic variables to
pass information around.  It would be good to eliminate these as much
as possible, since lexical binding allows generating more efficient
bytecode for lexically bound variable access (including function
arguments, AFAIK).  This is a further project to what you describe,
of course.

> 
> ** Find a solution for orgstruct minor mode
> 
> Org struct is really different from Org. It prevents Org from using
> better algorithms for outline navigation (see discussion about
> `org-show-children' on this list).
> 
> I think Org struct should be removed from "org.el" (and org-footnote
> ...) and added in its own library. It should also be built on top of
> Outline mode instead of Org mode. Org, OTOH, should remove dependencies
> on Outline mode and implement better navigation functions.

FWIW, this gets a +1 from me.  I’ve lost count of the number of times I’ve
started to make some “obvious” minor improvement to some org function,
only to have to discard the effort after 15 minutes when realizing that
supporting orgstruct mode makes it impossible to actually carry through
the change.

Thanks again,

-- 
Aaron Ecay

  parent reply	other threads:[~2015-10-25 23:04 UTC|newest]

Thread overview: 62+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-10-25 13:08 Some projects Nicolas Goaziou
2015-10-25 14:43 ` Marcin Borkowski
2015-10-25 16:11   ` Nicolas Goaziou
2015-10-25 15:45 ` Eric S Fraga
2015-10-25 16:16   ` Nicolas Goaziou
2015-10-25 16:18   ` Marcin Borkowski
2015-10-25 16:37     ` Nicolas Goaziou
2015-10-25 18:13       ` Marcin Borkowski
2015-10-25 18:24         ` Nicolas Goaziou
2015-10-25 17:57 ` Thomas S. Dye
2015-10-25 18:00   ` Fabrice Popineau
2015-10-25 18:12     ` Nicolas Goaziou
2015-10-25 18:22       ` Eric S Fraga
2015-10-25 19:12         ` Marcin Borkowski
2015-10-25 19:11       ` Marcin Borkowski
2015-10-25 21:18         ` Anders Johansson
2015-10-25 21:29           ` Anders Johansson
2015-10-25 19:33       ` Thomas S. Dye
2015-10-25 20:00         ` Nicolas Goaziou
2015-10-25 20:17           ` Thomas S. Dye
2015-10-25 20:03         ` Nicolas Goaziou
2015-10-25 19:02 ` Rasmus
2015-10-25 19:20   ` Marcin Borkowski
2015-10-26  2:23   ` Matt Price
2015-10-25 20:24 ` Samuel Wales
2015-10-25 20:25   ` Samuel Wales
2015-10-25 23:03 ` Aaron Ecay [this message]
2015-10-26  8:13   ` Marcin Borkowski
2015-10-26  9:20     ` Rasmus
2015-10-26 16:39   ` Richard Lawrence
2015-10-26 18:17     ` Nicolas Goaziou
2015-10-26 22:23       ` Richard Lawrence
2015-10-27  0:03         ` Matt Price
2015-10-27 12:01     ` Aaron Ecay
2015-10-27 12:34       ` Rasmus
2015-10-27 13:03         ` Aaron Ecay
2015-10-27 13:51           ` Rasmus
2015-10-28  1:05             ` Matt Price
2015-10-28  3:28               ` Aldric Giacomoni
2015-10-28  3:31               ` Matt Lundin
2015-10-28 14:36                 ` Matt Price
2015-10-28 15:31                   ` Matt Price
2015-10-28  1:05           ` Matt Price
2015-10-27 13:19         ` Rainer M Krug
2015-10-27 13:42           ` Rasmus
2015-10-27 14:49             ` Ista Zahn
2015-10-27 15:09               ` Rasmus Pank Roulund
2015-10-27 15:25                 ` Ista Zahn
2015-10-27 15:36                 ` Rainer M Krug
2015-10-28  2:52                 ` Matt Lundin
2015-10-27 13:22         ` Richard Lawrence
2015-10-28  1:57   ` Matt Lundin
2015-10-28  8:56     ` Rasmus
2015-10-28  9:07       ` Rasmus
2015-10-26 17:20 ` Eric Abrahamsen
2015-10-27  8:30   ` Nicolas Goaziou
2015-10-27 18:53     ` Eric Abrahamsen
2015-10-27 19:23       ` Rasmus
2015-10-27 20:28         ` Eric Abrahamsen
2015-10-27 20:01       ` Marcin Borkowski
2015-10-27 21:53       ` Nicolas Goaziou
2015-10-26 18:20 ` Kaushal Modi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=877fmazh2f.fsf@gmail.com \
    --to=aaronecay@gmail.com \
    --cc=emacs-orgmode@gnu.org \
    --cc=mail@nicolasgoaziou.fr \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).