Hi,

Several years ago I had the epiphany of Leo with the idea of code as data and data as code inside the Leo tree structure. The practical side of it didn't come until recently, when I start to use @button nodes to change the way I used Leo to export the tree as a flat file with light markup. I started with txt2tags and recently I made a small script for converting Leo trees to pandoc. You can see its source code here:

http://pastebin.com/8RuRrGfX

Is working well but I would like to make it better. So, some questions about it:

- I traverse the Leo tree looking for "@keywords" and treating the nodes and headers accordingly. @keywords are detected with this code:

~~~{.code}
if not (node.h.startswith('@config') or
            node.h.startswith('@ignore') or
            node.h.startswith('@biblio') or
            node.h.startswith('@ref')):

~~~

but I would like to have a more succinct way to do it, maybe with a list. I remember having problems with this:

~~~{.code}
if not (node.h.startswith(['@config', '@ignore', '@biblio', '@ref']
~~~

So, ¿there is any other and more elegant way to define a list of words with @keywords that need to be treated in a special way?

I have defined a "@ignore" keyword and the idea is to do nothing, not only with that node but also with all the children. With this piece of code I know how to treat the subnodes of the bibliography in a special way:

~~~{.code}
# Bibliographic references
elif node.h.startswith('@biblio'):
# Create the bibliography title
        toFile.append('#'*level + ' ' + node.h[8:] + ' ' + '#'*level)
        toFile.append('\n\n')
# Staring the yaml list
        toFile.append('---')
        toFile.append('references:')
# Put the bibliography introductory content. These must be yaml coments
        toFile.append(node.b)
# Get all the subnodes (one for each bibliographic reference)
# and add the content. This content is in yaml format, following
# the pandoc conventions.
        references = [node.copy().b for node in node.subtree()]
for reference in references:
            toFile.append(reference)
# Ending the yaml list:
        toFile.append('...')
~~~

but curiously I don't know how to say: do nothing if the node is children of a "@ignore" parent node. ¿How can this be done? (I imagine that @rst-ignore code can be used for this, but I don't know where to look for it).

It has been a long way from making outlines in Leo to document/organize my stuff, to using Leo to change the way I wrote academical papers. Thanks to all the community for being part of it and I hope to find a way to make Leo more used in the academical context and outside the programmers niche.

Cheers,

Offray

ps: I know that reST can be used for writing academical papers and it has native support on Leo, but this approach is more natural and organic to my, mainly because of the use of yaml for bibliographic references and the workflow that using yaml of zotero.

ps2: There is another nice reST based editor, open source and free software for academical writings that is online: https://notex.ch/ I would like to have a similar kind of experience to it on Leo. Yaml files for configuration/customization, cursive and bold fonts redering inside the body panel and figures previews and a better tool bar for supporting writing. Where Leo is unbeatable is in its ability of using the Leo tree to program all Leo behaviour even the treatment of the text and the final output. NoTeX is even more difficult to install that Leo. In most Linux distros, installing Leo is just a matter of typing a command, while in Windows/Mac is a lot of geeky instructions just for having a taste of its potential. NoTeX can be used online without installing, but trying to have it running on your local machine seems like juggling with a lot of moving parts.

--
You received this message because you are subscribed to the Google Groups 
"leo-editor" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/leo-editor.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to