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 |
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 |
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 |
In reply to this post by Offray
Hi, You probably need this: explorer transmit to: #tree; andShow: [:a | display: headers;a tree 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, "Every thing has its own flow"
_______________________________________________ Moose-dev mailing list [hidden email] https://www.iam.unibe.ch/mailman/listinfo/moose-dev |
Free forum by Nabble | Edit this page |