Re: [Pharo-users] Tree/Outliners of playgrounds, markdown inside comments and some quick medium size dreams for Pharo/Smalltalk

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Re: [Pharo-users] Tree/Outliners of playgrounds, markdown inside comments and some quick medium size dreams for Pharo/Smalltalk

Offray
Hi again,

I will be using this thread to update my advances and questions about
how to build an outliner in Pharo Smalltalk. If there is a better method
like starting a new thread for particular questions, or a less narrative
style, please let me know.

The idea is to use the tools provided by Moose to build a quick outliner
that can be extended to suit my needs on academical writing. This is
kind of a strange approach in the sense that I'm not following the
tutorials with a predefined problems (make a game and so) but trying to
start with a real (in the sense of closer) problem (making an outliner)
and to see which knowledge I need to solve this necessity. In that sense
is more like the Freire's alphabetization of adults in Brazil.

So, the things I have done so far was to search for a good model to
start with. Something already done that can be used as scaffolding for
my outliner. The Help System seems like a good start for an outliner (in
fact it is already one), so I have taken the Help-Core system and start
to use it as a base for my project.

After that I have used the Moose browsers to build a simple interface,
as seen here:

http://mutabit.com/offray/static/blog/output/galleries/objetos/ubakye-browser.jpg

The part I want to deal with is this:

===============

explorer := GLMTabulator new
                                title: (mainTree header).
explorer column: #tree;
                        column: #body.
                       
explorer transmit to: #tree; andShow: [:a |
                a tree
                        display: mainTree children ].

explorer openOn: mainTree.

===============

So, instead of "display: mainTree children" I need something that takes
the get names (headers) of the two nodes and the contents in the right
panel. For that I think that I need to learn some iterators. I have
already a "header" method for the nodes. Any clue would be appreciated
and I will keep you posted on my advances.

Cheers,

Offray


On 07/21/2014 12:58 PM, Offray Vladimir Luna Cárdenas wrote:

> Hi Damien,
>
> Thanks for your answer. Comments below.
>
> On 07/21/2014 11:09 AM, Damien Cassou wrote:
>> On Sat, Jul 19, 2014 at 2:47 AM, Offray Vladimir Luna Cárdenas
>> <[hidden email]> wrote:
>>> The first idea that comes to mind is using STON for storage nodes and
>>> tree
>>> information, so I can interchange it with the flatland files world
>>> and keep
>>> it readable. Sounds that reasonable?
>>
>>
>> without more information, it is hard to stay. Try with STON and change
>> if that does not work :-). We have XML and JSON generators as well.
>>
>
>
> This is a kind of raw preview of I'm talking about:
>
> http://www.enlightenment.org/ss/e-53cd4f36f021e9.68569046.jpg
>
> Of course in this case, it is just a Help browser with a Playground
> window over it, but I would like to have something like Playgrounds
> inside the help browser. I was trying to build a custom browser with
> Glamour, but seems that Help Browser already has the machinery I'm
> looking for.
>
> So my first question is how to use the Help Browser class as a template
> for my outliner class? And can I put a Playground where the plain text
> is located right now?
>
>>
>>> The second thing I would like to do is to add pandoc's markdown inside
>>> comments, but I don't like the syntax of comments in Smalltalk because
>>> single quotes are fairly easy to find in light markup language like
>>> markdown. Is difficult to change it to create something more like python
>>> (with """) or Lua (with -[]- )?
>>
>>
>> There is only one syntax for comments in Pharo. Instead of Markdown,
>> you might want to have a look at Pillar which is implemented in Pharo
>> and can generate Markdown (and html, and pdf) :
>> https://github.com/pillar-markup/pillar-documentation/
>>
>>
>
> I have seen Pillar. Seems really interesting, but Pandocs markdown
> support academic citation in several formats and I have already long
> docs wrote on that format integrated in my workflow from Zotero and even
> there is a growing community working on Scholarly Markdown[1][2] so I
> would like to stick with it as much as I can for my own writing.
> That being said. I would like also a better integration between
> Smalltalk outliners and all the academic publication work flow,
> including working better with pandoc as a external library.
>
> [1] https://github.com/scholmd/scholmd/wiki
> [2] http://blog.martinfenner.org/2013/06/29/metadata-in-scholarly-markdown/
> [3]
> http://programminghistorian.org/lessons/sustainable-authorship-in-plain-text-using-pandoc-and-markdown
>
>
> Thanks again, this conversation with people in the community is very
> valuable to me,
>
> Offray
>
>


_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: [Pharo-users] Tree/Outliners of playgrounds, markdown inside comments and some quick medium size dreams for Pharo/Smalltalk

Offray
Hi,

Answering to myself: I have solved the code that selects the headers of
the main tree. The key is to create a new collection containing only
node names. Here is the code:

"*************************"
| mainTree node1 node2 explorer headers  |

mainTree := UbakyeNode
        header: 'Arbol raíz'
        body: ''.
       
node1 := UbakyeNode
        header: 'Nodo 1'
        body:  'Texto 1'.
       
node2 := UbakyeNode
        header: 'Nodo 2'
        body:  'Texto 2'.
       
mainTree
        addNode: node1;
        addNode: node2.
       
explorer := GLMTabulator new
                title: (mainTree header).
explorer column: #tree;
         column: #body.

headers := (mainTree children)
        collect: [:node |  node header].
                       
explorer transmit to: #tree; andShow: [:a |
                a tree
                        display: headers].

explorer openOn: mainTree.

"*************************"

Now I need to make the children sellectable, and that all the contents
of the tree can be updated with a shortcut.

I will keep you posted.

Cheers,

Offray

On 07/26/2014 09:01 PM, Offray Vladimir Luna Cárdenas wrote:

> Hi again,
>
> I will be using this thread to update my advances and questions about
> how to build an outliner in Pharo Smalltalk. If there is a better method
> like starting a new thread for particular questions, or a less narrative
> style, please let me know.
>
> The idea is to use the tools provided by Moose to build a quick outliner
> that can be extended to suit my needs on academical writing. This is
> kind of a strange approach in the sense that I'm not following the
> tutorials with a predefined problems (make a game and so) but trying to
> start with a real (in the sense of closer) problem (making an outliner)
> and to see which knowledge I need to solve this necessity. In that sense
> is more like the Freire's alphabetization of adults in Brazil.
>
> So, the things I have done so far was to search for a good model to
> start with. Something already done that can be used as scaffolding for
> my outliner. The Help System seems like a good start for an outliner (in
> fact it is already one), so I have taken the Help-Core system and start
> to use it as a base for my project.
>
> After that I have used the Moose browsers to build a simple interface,
> as seen here:
>
> http://mutabit.com/offray/static/blog/output/galleries/objetos/ubakye-browser.jpg
>
>
> The part I want to deal with is this:
>
> ===============
>
> explorer := GLMTabulator new
>                  title: (mainTree header).
> explorer column: #tree;
>              column: #body.
>
> explorer transmit to: #tree; andShow: [:a |
>          a tree
>              display: mainTree children ].
>
> explorer openOn: mainTree.
>
> ===============
>
> So, instead of "display: mainTree children" I need something that takes
> the get names (headers) of the two nodes and the contents in the right
> panel. For that I think that I need to learn some iterators. I have
> already a "header" method for the nodes. Any clue would be appreciated
> and I will keep you posted on my advances.
>
> Cheers,
>
> Offray
>
>
> On 07/21/2014 12:58 PM, Offray Vladimir Luna Cárdenas wrote:
>> Hi Damien,
>>
>> Thanks for your answer. Comments below.
>>
>> On 07/21/2014 11:09 AM, Damien Cassou wrote:
>>> On Sat, Jul 19, 2014 at 2:47 AM, Offray Vladimir Luna Cárdenas
>>> <[hidden email]> wrote:
>>>> The first idea that comes to mind is using STON for storage nodes and
>>>> tree
>>>> information, so I can interchange it with the flatland files world
>>>> and keep
>>>> it readable. Sounds that reasonable?
>>>
>>>
>>> without more information, it is hard to stay. Try with STON and change
>>> if that does not work :-). We have XML and JSON generators as well.
>>>
>>
>>
>> This is a kind of raw preview of I'm talking about:
>>
>> http://www.enlightenment.org/ss/e-53cd4f36f021e9.68569046.jpg
>>
>> Of course in this case, it is just a Help browser with a Playground
>> window over it, but I would like to have something like Playgrounds
>> inside the help browser. I was trying to build a custom browser with
>> Glamour, but seems that Help Browser already has the machinery I'm
>> looking for.
>>
>> So my first question is how to use the Help Browser class as a template
>> for my outliner class? And can I put a Playground where the plain text
>> is located right now?
>>
>>>
>>>> The second thing I would like to do is to add pandoc's markdown inside
>>>> comments, but I don't like the syntax of comments in Smalltalk because
>>>> single quotes are fairly easy to find in light markup language like
>>>> markdown. Is difficult to change it to create something more like
>>>> python
>>>> (with """) or Lua (with -[]- )?
>>>
>>>
>>> There is only one syntax for comments in Pharo. Instead of Markdown,
>>> you might want to have a look at Pillar which is implemented in Pharo
>>> and can generate Markdown (and html, and pdf) :
>>> https://github.com/pillar-markup/pillar-documentation/
>>>
>>>
>>
>> I have seen Pillar. Seems really interesting, but Pandocs markdown
>> support academic citation in several formats and I have already long
>> docs wrote on that format integrated in my workflow from Zotero and even
>> there is a growing community working on Scholarly Markdown[1][2] so I
>> would like to stick with it as much as I can for my own writing.
>> That being said. I would like also a better integration between
>> Smalltalk outliners and all the academic publication work flow,
>> including working better with pandoc as a external library.
>>
>> [1] https://github.com/scholmd/scholmd/wiki
>> [2]
>> http://blog.martinfenner.org/2013/06/29/metadata-in-scholarly-markdown/
>> [3]
>> http://programminghistorian.org/lessons/sustainable-authorship-in-plain-text-using-pandoc-and-markdown
>>
>>
>>
>> Thanks again, this conversation with people in the community is very
>> valuable to me,
>>
>> Offray
>>
>>
>
>
>


_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: [Pharo-users] Tree/Outliners of playgrounds, markdown inside comments and some quick medium size dreams for Pharo/Smalltalk

abergel
Hi Offray,

Something that I usually do, is to simply subclass MooseEntity to create the hierarchy of my domain. I can then enjoy the moose panel to browse my model.

Cheers,
Alexandre


On Jul 27, 2014, at 10:59 AM, Offray Vladimir Luna Cárdenas <[hidden email]> wrote:

> Hi,
>
> Answering to myself: I have solved the code that selects the headers of the main tree. The key is to create a new collection containing only node names. Here is the code:
>
> "*************************"
> | mainTree node1 node2 explorer headers  |
>
> mainTree := UbakyeNode
> header: 'Arbol raíz'
> body: ''.
>
> node1 := UbakyeNode
> header: 'Nodo 1'
> body:  'Texto 1'.
>
> node2 := UbakyeNode
> header: 'Nodo 2'
> body:  'Texto 2'.
>
> mainTree
> addNode: node1;
> addNode: node2.
>
> explorer := GLMTabulator new
> title: (mainTree header).
> explorer column: #tree;
> column: #body.
>
> headers := (mainTree children)
> collect: [:node |  node header].
>
> explorer transmit to: #tree; andShow: [:a |
> a tree
> display: headers].
>
> explorer openOn: mainTree.
>
> "*************************"
>
> Now I need to make the children sellectable, and that all the contents of the tree can be updated with a shortcut.
>
> I will keep you posted.
>
> Cheers,
>
> Offray
>
> On 07/26/2014 09:01 PM, Offray Vladimir Luna Cárdenas wrote:
>> Hi again,
>>
>> I will be using this thread to update my advances and questions about
>> how to build an outliner in Pharo Smalltalk. If there is a better method
>> like starting a new thread for particular questions, or a less narrative
>> style, please let me know.
>>
>> The idea is to use the tools provided by Moose to build a quick outliner
>> that can be extended to suit my needs on academical writing. This is
>> kind of a strange approach in the sense that I'm not following the
>> tutorials with a predefined problems (make a game and so) but trying to
>> start with a real (in the sense of closer) problem (making an outliner)
>> and to see which knowledge I need to solve this necessity. In that sense
>> is more like the Freire's alphabetization of adults in Brazil.
>>
>> So, the things I have done so far was to search for a good model to
>> start with. Something already done that can be used as scaffolding for
>> my outliner. The Help System seems like a good start for an outliner (in
>> fact it is already one), so I have taken the Help-Core system and start
>> to use it as a base for my project.
>>
>> After that I have used the Moose browsers to build a simple interface,
>> as seen here:
>>
>> http://mutabit.com/offray/static/blog/output/galleries/objetos/ubakye-browser.jpg
>>
>>
>> The part I want to deal with is this:
>>
>> ===============
>>
>> explorer := GLMTabulator new
>>                 title: (mainTree header).
>> explorer column: #tree;
>>             column: #body.
>>
>> explorer transmit to: #tree; andShow: [:a |
>>         a tree
>>             display: mainTree children ].
>>
>> explorer openOn: mainTree.
>>
>> ===============
>>
>> So, instead of "display: mainTree children" I need something that takes
>> the get names (headers) of the two nodes and the contents in the right
>> panel. For that I think that I need to learn some iterators. I have
>> already a "header" method for the nodes. Any clue would be appreciated
>> and I will keep you posted on my advances.
>>
>> Cheers,
>>
>> Offray
>>
>>
>> On 07/21/2014 12:58 PM, Offray Vladimir Luna Cárdenas wrote:
>>> Hi Damien,
>>>
>>> Thanks for your answer. Comments below.
>>>
>>> On 07/21/2014 11:09 AM, Damien Cassou wrote:
>>>> On Sat, Jul 19, 2014 at 2:47 AM, Offray Vladimir Luna Cárdenas
>>>> <[hidden email]> wrote:
>>>>> The first idea that comes to mind is using STON for storage nodes and
>>>>> tree
>>>>> information, so I can interchange it with the flatland files world
>>>>> and keep
>>>>> it readable. Sounds that reasonable?
>>>>
>>>>
>>>> without more information, it is hard to stay. Try with STON and change
>>>> if that does not work :-). We have XML and JSON generators as well.
>>>>
>>>
>>>
>>> This is a kind of raw preview of I'm talking about:
>>>
>>> http://www.enlightenment.org/ss/e-53cd4f36f021e9.68569046.jpg
>>>
>>> Of course in this case, it is just a Help browser with a Playground
>>> window over it, but I would like to have something like Playgrounds
>>> inside the help browser. I was trying to build a custom browser with
>>> Glamour, but seems that Help Browser already has the machinery I'm
>>> looking for.
>>>
>>> So my first question is how to use the Help Browser class as a template
>>> for my outliner class? And can I put a Playground where the plain text
>>> is located right now?
>>>
>>>>
>>>>> The second thing I would like to do is to add pandoc's markdown inside
>>>>> comments, but I don't like the syntax of comments in Smalltalk because
>>>>> single quotes are fairly easy to find in light markup language like
>>>>> markdown. Is difficult to change it to create something more like
>>>>> python
>>>>> (with """) or Lua (with -[]- )?
>>>>
>>>>
>>>> There is only one syntax for comments in Pharo. Instead of Markdown,
>>>> you might want to have a look at Pillar which is implemented in Pharo
>>>> and can generate Markdown (and html, and pdf) :
>>>> https://github.com/pillar-markup/pillar-documentation/
>>>>
>>>>
>>>
>>> I have seen Pillar. Seems really interesting, but Pandocs markdown
>>> support academic citation in several formats and I have already long
>>> docs wrote on that format integrated in my workflow from Zotero and even
>>> there is a growing community working on Scholarly Markdown[1][2] so I
>>> would like to stick with it as much as I can for my own writing.
>>> That being said. I would like also a better integration between
>>> Smalltalk outliners and all the academic publication work flow,
>>> including working better with pandoc as a external library.
>>>
>>> [1] https://github.com/scholmd/scholmd/wiki
>>> [2]
>>> http://blog.martinfenner.org/2013/06/29/metadata-in-scholarly-markdown/
>>> [3]
>>> http://programminghistorian.org/lessons/sustainable-authorship-in-plain-text-using-pandoc-and-markdown
>>>
>>>
>>>
>>> Thanks again, this conversation with people in the community is very
>>> valuable to me,
>>>
>>> Offray
>>>
>>>
>>
>>
>>
>
>
> _______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev

--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.




_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: [Pharo-users] Tree/Outliners of playgrounds, markdown inside comments and some quick medium size dreams for Pharo/Smalltalk

Tudor Girba-2
In reply to this post by Offray
Hi,

You probably need this:

explorer transmit to: #tree; andShow: [:a |
                a tree
                        display: headers;
                        children: [:eachNode | eachNode theMessageYouUseToGoToTheChildrenOfANode ]].

A tree is a recursive structure, and to describe it you need:
- a way to construct the root elements. This is the result of applying display: to the input object. So, display: either takes a collection or a block that will return a collection when executed.
- a way to define the children for each node. This is the result of applying children:

You should also take a look at the examples from:
GLMBasicExamples open

Does this help now?

Cheers,
Doru





On Sun, Jul 27, 2014 at 4:59 PM, Offray Vladimir Luna Cárdenas <[hidden email]> wrote:
Hi,

Answering to myself: I have solved the code that selects the headers of the main tree. The key is to create a new collection containing only node names. Here is the code:

"*************************"
| mainTree node1 node2 explorer headers  |

mainTree := UbakyeNode
        header: 'Arbol raíz'
        body: ''.
       
node1 := UbakyeNode
        header: 'Nodo 1'
        body:  'Texto 1'.
       
node2 := UbakyeNode
        header: 'Nodo 2'
        body:  'Texto 2'.
       
mainTree
        addNode: node1;
        addNode: node2.

       
explorer := GLMTabulator new
                title: (mainTree header).
explorer column: #tree;
         column: #body.

headers := (mainTree children)
        collect: [:node |  node header].

                       
explorer transmit to: #tree; andShow: [:a |
                a tree
                        display: headers].

explorer openOn: mainTree.

"*************************"

Now I need to make the children sellectable, and that all the contents of the tree can be updated with a shortcut.

I will keep you posted.

Cheers,

Offray


On 07/26/2014 09:01 PM, Offray Vladimir Luna Cárdenas wrote:
Hi again,

I will be using this thread to update my advances and questions about
how to build an outliner in Pharo Smalltalk. If there is a better method
like starting a new thread for particular questions, or a less narrative
style, please let me know.

The idea is to use the tools provided by Moose to build a quick outliner
that can be extended to suit my needs on academical writing. This is
kind of a strange approach in the sense that I'm not following the
tutorials with a predefined problems (make a game and so) but trying to
start with a real (in the sense of closer) problem (making an outliner)
and to see which knowledge I need to solve this necessity. In that sense
is more like the Freire's alphabetization of adults in Brazil.

So, the things I have done so far was to search for a good model to
start with. Something already done that can be used as scaffolding for
my outliner. The Help System seems like a good start for an outliner (in
fact it is already one), so I have taken the Help-Core system and start
to use it as a base for my project.

After that I have used the Moose browsers to build a simple interface,
as seen here:

http://mutabit.com/offray/static/blog/output/galleries/objetos/ubakye-browser.jpg


The part I want to deal with is this:

===============

explorer := GLMTabulator new
                 title: (mainTree header).
explorer column: #tree;
             column: #body.

explorer transmit to: #tree; andShow: [:a |
         a tree
             display: mainTree children ].

explorer openOn: mainTree.

===============

So, instead of "display: mainTree children" I need something that takes
the get names (headers) of the two nodes and the contents in the right
panel. For that I think that I need to learn some iterators. I have
already a "header" method for the nodes. Any clue would be appreciated
and I will keep you posted on my advances.

Cheers,

Offray


On 07/21/2014 12:58 PM, Offray Vladimir Luna Cárdenas wrote:
Hi Damien,

Thanks for your answer. Comments below.

On 07/21/2014 11:09 AM, Damien Cassou wrote:
On Sat, Jul 19, 2014 at 2:47 AM, Offray Vladimir Luna Cárdenas
<[hidden email]> wrote:
The first idea that comes to mind is using STON for storage nodes and
tree
information, so I can interchange it with the flatland files world
and keep
it readable. Sounds that reasonable?


without more information, it is hard to stay. Try with STON and change
if that does not work :-). We have XML and JSON generators as well.



This is a kind of raw preview of I'm talking about:

http://www.enlightenment.org/ss/e-53cd4f36f021e9.68569046.jpg

Of course in this case, it is just a Help browser with a Playground
window over it, but I would like to have something like Playgrounds
inside the help browser. I was trying to build a custom browser with
Glamour, but seems that Help Browser already has the machinery I'm
looking for.

So my first question is how to use the Help Browser class as a template
for my outliner class? And can I put a Playground where the plain text
is located right now?


The second thing I would like to do is to add pandoc's markdown inside
comments, but I don't like the syntax of comments in Smalltalk because
single quotes are fairly easy to find in light markup language like
markdown. Is difficult to change it to create something more like
python
(with """) or Lua (with -[]- )?


There is only one syntax for comments in Pharo. Instead of Markdown,
you might want to have a look at Pillar which is implemented in Pharo
and can generate Markdown (and html, and pdf) :
https://github.com/pillar-markup/pillar-documentation/



I have seen Pillar. Seems really interesting, but Pandocs markdown
support academic citation in several formats and I have already long
docs wrote on that format integrated in my workflow from Zotero and even
there is a growing community working on Scholarly Markdown[1][2] so I
would like to stick with it as much as I can for my own writing.
That being said. I would like also a better integration between
Smalltalk outliners and all the academic publication work flow,
including working better with pandoc as a external library.

[1] https://github.com/scholmd/scholmd/wiki
[2]
http://blog.martinfenner.org/2013/06/29/metadata-in-scholarly-markdown/
[3]
http://programminghistorian.org/lessons/sustainable-authorship-in-plain-text-using-pandoc-and-markdown



Thanks again, this conversation with people in the community is very
valuable to me,

Offray







_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev



--

"Every thing has its own flow"

_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev