emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [O] Google Summer of Code -- 3 Org projects for our first participat


From: Neil Smithline
Subject: Re: [O] Google Summer of Code -- 3 Org projects for our first participation!
Date: Sat, 28 Apr 2012 20:20:07 -0400
User-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:14.0) Gecko/20120426 Thunderbird/14.0a2

On 4/26 03:57 , Bastien wrote:
What will help org-ruby (and github's support of org files) is to
stabilize the syntax of .org files as much as possible.  We are
currently working in this direction.

org-ruby's main job is to convert .org files into HTML or textile files.

The org-ruby gem is really in its infancy with regards to processing Org Mode. For example, I added support for converting a line with just "-----" to an HTML <hr/> tag. So now it supports horizontal rules but it still doesn't support centering of text.

> If the list can specifically help about org-ruby issues, let's help!

A quick hack to provide better support would be to add support to the org-ruby gem to process HTML in a .org file. While not the cleanest of solutions, being able to process HTML will allow work-arounds for many missing features.

But it would be much better if the org-ruby gem could process a larger subset of Org Mode directives. But this isn't as easy as it sounds.

The gem is a reasonably well-written parser that is organized to allow pluggable backends. I kind of like it. But it is really, really tiny. (See the end of this email for details about the size).

I think the basic parser framework is too simplistic to support much more of Org. No fault to the gem; it was written to be no more complex than it had to be to do what it does.

In the end, my thought is that I'm not sure if it is better to extend the org-ruby gem or to do something totally different (I don't know what).

In the end, I think the way that the best way the list could help improve Github's support of Org files would be to provide two things:

1) Come up with a prioritized list of features that would be nice to be supported by Github. This may just be the most used features of Org Mode or it may be something special to how Org Mode is used in Github. I'm not sure.

2) Have a few people look at the org-ruby gem and then brainstorm about the best way to proceed. This would either require people who know Ruby or more experienced software engineers. I modified the gem and learned Ruby by reading the source for this gem and occasionally looking something up in a reference manual. But I'd bet I've been coding longer than list members such as Thorsten have been alive.

I really don't know enough about the culture of the Org Mode developers to know if this is possible or not. The alternative is that I can just keep adding features as I need them and think I can implement them.

As I said in my initial email:

>> PS: And the answer is "Yes. I am aware that vehemently suggesting a project
>> is equivalent to offering to help with it." :-D

Neil

ORG-RUBY LINES OF CODE

Here's a wc output on the gem's source code with tests and other non-functional parts omitted:

     110     394    3392 headline.rb
     246     793    8521 html_output_buffer.rb
     345     691   18139 html_symbol_replace.rb
     258     839    7877 line.rb
     241     909    8318 output_buffer.rb
     370    1189   12363 parser.rb
     192     843    7020 regexp_helper.rb
     102     320    2919 textile_output_buffer.rb
     346     695   16882 textile_symbol_replace.rb
      29      49     498 tilt.rb
    2239    6722   85929 total

If you subtract out the two dedicated textile files, the org-ruby gem has fewer than 10% of the lines that org.el alone has. The comparison isn't wholly fair as org.el has many more public functions than org-ruby and, correspondingly, org.el has significantly more lines of documentation.




Neil Smithline
http://www.neilsmithline.com
Proud GNU Emacs user since 1986, v. 18.24.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]