Re: [web2py] Re: markmin, t2, t3, cube9 etc. (important update)

2010-08-02 Thread Bruno Rocha
Texy features are very good http://texy.info/en/syntax
but the syntax is ugly...

I would like markmin to implement all that features in a beauty way.


2010/8/2 Tim Michelsen 

> > No that I can think of.
> Would be good if you could use one of the major markup languages as input:
> http://en.wikipedia.org/wiki/List_of_lightweight_markup_languages
>
> Currently, your markmin seems to be like Texy (http://texy.info/en/)
>
> A look at converters show how is the life could be:
> * http://txt2tags.sourceforge.net/
> * http://johnmacfarlane.net/pandoc/
>
> So I may suggest to adapt markmin to one of the major lanuages and then
> use a converter.
>
> Regards.
>
> >
> > On Aug 1, 1:40 pm, Timmie  wrote:
> >>> I foundrestructuredtext to be too complex to parse.
> >>
> >> What marup language do you use as template?
> >> Is there any markup format you use as design schedme for markmin?
> >
>
>
>


-- 

http://rochacbruno.com.br


Re: [web2py] Re: markmin, t2, t3, cube9 etc. (important update)

2010-07-12 Thread Jonathan Lundell
On Jul 7, 2010, at 3:47 PM, mdipierro wrote:

> I do not have a strong opposition and I see the advantages in terms of
> notation but I have two problems:
> 
> The page:slug notation is handled by plugin_wiki, not by markmin.
> markmin just treats url, #anchor, url#anchor, page:slug all in the
> same way. plugin_wiki replaces the page:.. with /app/plugin_wiki/
> page/ after markmin has done its job.
> This decoupling was intentional to allow markmin to work without
> web2py and without plugin_wiki conventions.
> Your first suggestion would introduce coupling. Moreover it would
> provide a shortcut that encourage users to display the slug as text of
> the link. I am not convinced this is a good idea.

It's pretty common (and useful) in Wikipedia. And it needn't be literally the 
slug. As in Wikipedia,

[[link]]

would imply that 'link' is the text and slug(link) the slug for the URL. In 
Wikipedia, that's most commonly the space-to-underscore conversion, so

[[some link]]

becomes

some link

I agree that coupling is an issue, but is the answer to make the wiki syntax 
worse? I think that the wiki should be a first-class user of its syntax. That 
is, it shouldn't be necessary to compromise its syntax just so markmin can be 
100% shared.

How about explicitly initializing markmin (at least optionally)? Give it a base 
address, that slugs could be appended to. Or subclass markwiki from markmin?

Or at the very least allow a shortcut.

[[name page:slug]]

could use the Wikipedia convention

[[name|slug]]

with [[name|]] implying [[name|name]]

Alternatively (see base addresses below), [[name page:slug]] could be 
abbreviated [[name :slug]], and [[name :]] would imply [[name page:name]] as 
above.


One more thing wrt the "base address" idea above. Suppose we were using the new 
wiki as the basis for a web2py reference wiki. One of the things that the wiki 
needs to do is to link to some external standard references. This is not an 
attempt at a real syntax--just something to give the general idea.

[[base:slice http://www.web2pyslices.com/main/slices/take_slice/%(slug)]]

and then:

[[Audit trail slice:35]]

...would do the obvious thing.

So we could have base addresses defined for slices, the manual, the Python 
reference pages, etc.

Side note: the base address definition format needn't be a command in wiki 
syntax; it could be an initialization call related to the plugin. In 
particular, we don't want to have to embed it in every page (though the 
*ability* to do so would be handy). Or every page could implicitly "include" a 
master page, if present.

> 
> Massimo
> 
> On 7 Lug, 17:24, Jonathan Lundell  wrote:
>> On Jul 7, 2010, at 3:14 PM, mdipierro wrote:
>> 
>> 
>> 
>>> Right now you can do links with
>> 
>>> url
>>> [[name url]]
>>> [[name #anchor]]
>>> [[name url#anchor]]
>>> [[name page:slug]]
>> 
>>> and define an anchor with
>> 
>>> [[anchor]]
>> 
>>> If I understand your suggestions:
>>> 1) also allow
>>> [[url]]
>>> [[url#anchor]]
>>> [[#anchor]]
>>> [[page:slug]]
>>> to allow un-named links. Q: how can a link not have a name?
>> 
>> In your notation, I was thinking:
>> 
>> [[slug]] would imply [[slug page:slug]]
>> 
>> 'slug' would be used verbatim as the name, and with slug-encoding as the 
>> slug.
>> 
>> A link would always have a name; it would just be implicit. That's the 
>> Mediawiki convention, though they use a vertical bar to separate an optional 
>> name from the slug.
>> 
>> 
>> 
>>> 2) use [[=anchor]] to define an anchor to avoid conflict with 1.
>> 
>>> if we do 1, we must do 2 but I would prefer [[!anchor]] then.
>> 
>> Sure.
>> 
>> Or [name:anchor], which corresponds to the html that it generates.




Re: [web2py] Re: markmin, t2, t3, cube9 etc. (important update)

2010-07-10 Thread Álvaro Justen
I like so much the name cube9!
PLEASE don't put it 'cu29' because 'cu' in Portuguese is...well, not a
good word. :-)

-- 
Álvaro Justen - @turicas
 http://blog.justen.eng.br/
 21 9898-0141


Re: [web2py] Re: markmin, t2, t3, cube9 etc. (important update)

2010-07-09 Thread Albert Abril
I thought about the idea of making a frontend (i.e. in the web admin) to
edit routes.py and make more customizable the urls.
But don't know how implement it.



On Fri, Jul 9, 2010 at 12:48 PM, mdipierro  wrote:

> Please feel free to propose for new features. That was exactly the
> intention.
>
>
> On 9 Lug, 03:02, aure  wrote:
> > Great news! Thanks for the work Massimo!
> >
> > Being new to both, I myself still hesitate for my project between
> > choosing a CMS and struggle with the programming vs. choosing web2by
> > and struggle with all the things which come "for free" in a CMS... And
> > Cube2py starts to bridge the gap in some ways :-)
> >
> > I am sure that having these new features will bring more people to
> > web2py.
> >
> > Aurelien
> >
> > On Jul 9, 12:20 am, Jonathan Lundell  wrote:
> >
> > > On Jul 7, 2010, at 3:47 PM, mdipierro wrote:
> >
> > > > I do not have a strong opposition and I see the advantages in terms
> of
> > > > notation but I have two problems:
> >
> > > I'm tied up today, so just a quick note. I understand and generally
> agree with your caveats. I have a couple of thoughts on the subject that
> I'll come back with.
> >
> > > > The page:slug notation is handled by plugin_wiki, not by markmin.
> > > > markmin just treats url, #anchor, url#anchor, page:slug all in the
> > > > same way. plugin_wiki replaces the page:.. with /app/plugin_wiki/
> > > > page/ after markmin has done its job.
> > > > This decoupling was intentional to allow markmin to work without
> > > > web2py and without plugin_wiki conventions.
> > > > Your first suggestion would introduce coupling. Moreover it would
> > > > provide a shortcut that encourage users to display the slug as text
> of
> > > > the link. I am not convinced this is a good idea.
> >
> > > > Massimo
> >
> > > > On 7 Lug, 17:24, Jonathan Lundell  wrote:
> > > >> On Jul 7, 2010, at 3:14 PM, mdipierro wrote:
> >
> > > >>> Right now you can do links with
> >
> > > >>> url
> > > >>> [[name url]]
> > > >>> [[name #anchor]]
> > > >>> [[name url#anchor]]
> > > >>> [[name page:slug]]
> >
> > > >>> and define an anchor with
> >
> > > >>> [[anchor]]
> >
> > > >>> If I understand your suggestions:
> > > >>> 1) also allow
> > > >>> [[url]]
> > > >>> [[url#anchor]]
> > > >>> [[#anchor]]
> > > >>> [[page:slug]]
> > > >>> to allow un-named links. Q: how can a link not have a name?
> >
> > > >> In your notation, I was thinking:
> >
> > > >> [[slug]] would imply [[slug page:slug]]
> >
> > > >> 'slug' would be used verbatim as the name, and with slug-encoding as
> the slug.
> >
> > > >> A link would always have a name; it would just be implicit. That's
> the Mediawiki convention, though they use a vertical bar to separate an
> optional name from the slug.
> >
> > > >>> 2) use [[=anchor]] to define an anchor to avoid conflict with 1.
> >
> > > >>> if we do 1, we must do 2 but I would prefer [[!anchor]] then.
> >
> > > >> Sure.
> >
> > > >> Or [name:anchor], which corresponds to the html that it generates.
>


Re: [web2py] Re: markmin, t2, t3, cube9 etc. (important update)

2010-07-08 Thread Jonathan Lundell
On Jul 7, 2010, at 3:47 PM, mdipierro wrote:

> I do not have a strong opposition and I see the advantages in terms of
> notation but I have two problems:

I'm tied up today, so just a quick note. I understand and generally agree with 
your caveats. I have a couple of thoughts on the subject that I'll come back 
with.

> 
> The page:slug notation is handled by plugin_wiki, not by markmin.
> markmin just treats url, #anchor, url#anchor, page:slug all in the
> same way. plugin_wiki replaces the page:.. with /app/plugin_wiki/
> page/ after markmin has done its job.
> This decoupling was intentional to allow markmin to work without
> web2py and without plugin_wiki conventions.
> Your first suggestion would introduce coupling. Moreover it would
> provide a shortcut that encourage users to display the slug as text of
> the link. I am not convinced this is a good idea.
> 
> Massimo
> 
> On 7 Lug, 17:24, Jonathan Lundell  wrote:
>> On Jul 7, 2010, at 3:14 PM, mdipierro wrote:
>> 
>> 
>> 
>>> Right now you can do links with
>> 
>>> url
>>> [[name url]]
>>> [[name #anchor]]
>>> [[name url#anchor]]
>>> [[name page:slug]]
>> 
>>> and define an anchor with
>> 
>>> [[anchor]]
>> 
>>> If I understand your suggestions:
>>> 1) also allow
>>> [[url]]
>>> [[url#anchor]]
>>> [[#anchor]]
>>> [[page:slug]]
>>> to allow un-named links. Q: how can a link not have a name?
>> 
>> In your notation, I was thinking:
>> 
>> [[slug]] would imply [[slug page:slug]]
>> 
>> 'slug' would be used verbatim as the name, and with slug-encoding as the 
>> slug.
>> 
>> A link would always have a name; it would just be implicit. That's the 
>> Mediawiki convention, though they use a vertical bar to separate an optional 
>> name from the slug.
>> 
>> 
>> 
>>> 2) use [[=anchor]] to define an anchor to avoid conflict with 1.
>> 
>>> if we do 1, we must do 2 but I would prefer [[!anchor]] then.
>> 
>> Sure.
>> 
>> Or [name:anchor], which corresponds to the html that it generates.




Re: [web2py] Re: markmin, t2, t3, cube9 etc. (important update)

2010-07-08 Thread Mathieu Clabaut
I guess you should update web2py from the development repository (on google
code)

-Mathieu

On Thu, Jul 8, 2010 at 16:40, Scott  wrote:

> I just checked out the cube2py repository from code.google.com and am
> attempting to run it on the Source branch of web2py 1.79.2 (2010-06-08
> 22:45:26).  Attempting to run it generates this error:
>
> Traceback (most recent call last):
>  File "C:\Users\scott\Documents\workspace\web2py\gluon
> \restricted.py", line 178, in restricted
>exec ccode in environment
>  File "C:\Users\scott\Documents\workspace\web2py\applications\cube2py/
> views\default/user.html", line 40, in 
> AttributeError: 'Auth' object has no attribute 'navbar'
>
> I checked the included db.py and sure enough auth.navbar is not
> defined.  Suggestions?
>
> Thanks in advance!


Re: [web2py] Re: markmin, t2, t3, cube9 etc. (important update)

2010-07-07 Thread Jonathan Lundell
On Jul 7, 2010, at 3:14 PM, mdipierro wrote:

> Right now you can do links with
> 
> url
> [[name url]]
> [[name #anchor]]
> [[name url#anchor]]
> [[name page:slug]]
> 
> and define an anchor with
> 
> [[anchor]]
> 
> If I understand your suggestions:
> 1) also allow
> [[url]]
> [[url#anchor]]
> [[#anchor]]
> [[page:slug]]
> to allow un-named links. Q: how can a link not have a name?

In your notation, I was thinking:

[[slug]] would imply [[slug page:slug]]

'slug' would be used verbatim as the name, and with slug-encoding as the slug.

A link would always have a name; it would just be implicit. That's the 
Mediawiki convention, though they use a vertical bar to separate an optional 
name from the slug.


> 
> 2) use [[=anchor]] to define an anchor to avoid conflict with 1.
> 
> if we do 1, we must do 2 but I would prefer [[!anchor]] then.

Sure.

Or [name:anchor], which corresponds to the html that it generates.

Re: [web2py] Re: markmin, t2, t3, cube9 etc. (important update)

2010-07-07 Thread Albert Abril
Same as Kenneth
I vote +1 cube2py and Cube^2 +1

On Wed, Jul 7, 2010 at 10:31 PM, Kenneth wrote:

> I vote +1 cube2py and Cube^2 +1
>
> Kenneth
>
>


Re: [web2py] Re: markmin, t2, t3, cube9 etc. (important update)

2010-07-07 Thread Júlio Monteiro
Back to naming, should we vote?

Here are the suggestions so far:

1) cu29
2) cube2py
3) w2cube
4) cube29
5) Cube^2

For me +1 for cube2py and +1 for cube29.

Which ones do you people prefer?

Cheers,
Julio Monteiro


Re: [web2py] Re: markmin, t2, t3, cube9 etc. (important update)

2010-07-07 Thread Jonathan Lundell
On Jul 7, 2010, at 8:25 AM, mdipierro wrote:

> you link pages with
> 
> [[this is the link text page:this-is-the-slug]]

So page: is recognized by the wiki plugin? 

If I'm understanding the syntax, and I may not be, I have a suggestion.

[[name]] and [[name#anchor]] should be wiki links; [[#anchor]] remains a link 
to a local anchor, wiki or not.

[[=name]] defines an anchor.

So (again if I'm following you), [[name]] would be a shortcut for [[name 
page:name]].

My reasoning is that [[link]] is so established (and convenient) a wiki 
notation that it should be preserved, and that defining an anchor is much less 
frequent, so the extra '=' is not much of a burden.


> 
> and you include attachments with
> 
> [[this is an image attachment:id center 200px]]
> 
> On 7 Lug, 10:05, Jonathan Lundell  wrote:
>> On Jul 7, 2010, at 5:27 AM, mdipierro wrote:
>> 
>>> As you know T2 and T3 are deprecated. Some time ago I started a
>>> reimplementation of T3 called cube9. I got stuck. I now re-factored it
>>> completely
>> 
>>> -
>>>  http://code.google.com/p/cube9/(requires web2py trunk)
>>> -
>> 
>>> It uses markmin:
>> 
>>> -
>>>  http://web2py.com/examples/static/markmin.html
>>> -
>> 
>> With markmin (or perhaps cu29 -- why that?), how does one reference local 
>> wiki pages without using their full URL? For example, in Wikipedia, this is 
>> a link: [[web2py]]. But in markmin it creates an anchor.




Re: [web2py] Re: markmin, t2, t3, cube9 etc. (important update)

2010-07-07 Thread Albert Abril
I should say that the template used (seen in the video) is very pretty.

On Wed, Jul 7, 2010 at 7:35 PM, mdipierro  wrote:

> The google code repository is corrupted. There are lots of files that
> do not belong there I will close it and open a new one later
> today. Let's agree on a new name.
>
> On 7 Lug, 12:31, mdipierro  wrote:
> > http://vimeo.com/13154869
> >
> > On 7 Lug, 07:27, mdipierro  wrote:
> >
> > > # Preamble
> >
> > > As you know T2 and T3 are deprecated. Some time ago I started a
> > > reimplementation of T3 called cube9. I got stuck. I now re-factored it
> > > completely
> >
> > > -
> > >http://code.google.com/p/cube9/(requiresweb2py trunk)
> > > -
> >
> > > It uses markmin:
> >
> > > -
> > >http://web2py.com/examples/static/markmin.html
> > > -
> >
> > > cube9 is not completely finished by it works and it already much much
> > > better than T2/T3.
> >
> > > # What is cube9?
> >
> > > Cube 9 is a possible replacement for the welcome app. It is identical
> > > to welcome except that
> >
> > > - has a different layout
> > > - contains a plugin called plugin_wiki (a plugin on steroids)
> > > - use a JS menu
> >
> > > ## What is plugin_wiki?
> >
> > > Plugin_wiki allows a developed (auth.user_id==1 or anybody member of
> > > group 'editor') to create dynamic pages on the fly by visiting
> >
> > > ``http://127.0.0.1:8000/cube9/plugin_wiki/page/my-new-page-slug``
> >
> > > In fact you do not need cube9 to run plugin_wiki, you can use it for
> > > any web2py app. You can use it to add help pages. You can use to allow
> > > your users to edit pages.
> >
> > > Pages are edited using markmin (via a modified markitup JS editor to
> > > support markmin).
> > > This email is written using markmin syntax.
> >
> > > ## Why plugin_wiki is a plugin on steroids?
> >
> > > Because it includes under one name (plugin_wiki) other plugins as
> > > embeddable widgets (mediaplyer, comments, tags, multiselect, and more)
> > > and there is a way to access them using the markmin  syntax.
> >
> > > ## A first example
> >
> > > For example to include a youtube video in a page you do
> >
> > > ``
> > > name: youtube
> > > code: x1w8hKTJ2Co
> > > ``:widget
> >
> > > - The double reversed quotes tell markmin to deal with content in a
> > > special way.
> > > - The :widget tells plugin_wiki to override default behavior and treat
> > > this as an embedded widget
> > > - the content is treated as parameters (youtube being the name of the
> > > widget and x1w8hKTJ2Co being the name of the youtube video you want to
> > > embed).
> >
> > > There are MANY widgets you can already embed.
> >
> > > ## More examples
> >
> > > ### Tagging
> >
> > > ``
> > > name: tags
> > > ``:widget
> >
> > > ### jqGrid list users
> >
> > > ``
> > > name: jqgrid
> > > table: auth_user
> > > ``:widget
> >
> > > ### Enbedding a form
> >
> > > ``
> > > name: create
> > > table: auth_user
> > > ``:widget
> >
> > > ### Embedding template code
> >
> > > ``
> > > counting... {{for i in range(10):}}{{=i}}{{pass}}
> > > ``:template
> >
> > > ## Inner workings
> >
> > > For a list of widgets look into the static methods of
> > > PluginWikiWidgets in models/plugin_wiki.py. The arguments of the
> > > methods translate into variables. For example
> >
> > > ``
> > > class PluginWikiWidgets: # in models/plugin_wiki
> > > @staticmethod
> > > def abd(x,y=6): 
> > > ``:code_python
> >
> > > is called by
> >
> > > ``
> > > name: abc
> > > x=5
> > > ``:widget
> >
> > > (y is optional because y has a default, 6).
> >
> > > ### List of Widgets
> >
> > > Here is a list of widgets as of today:
> >
> > > ``
> > > def read(table,record_id=None): ...
> > > def
> > >
> create(table,message='',next='',readonly_fields='',hidden_fields='',default_fields=''):
> ...
> > > def
> > > update(table,record_id='',message='',next='',readonly_fields='',
> > >  hidden_fields='',default_fields=''): ...
> > > def select(table,query_field='',query_value='',fields=''): ...
> > > def search(table,fields=''): ...
> > > def jqgrid(table,fieldname=None,fieldvalue=None,col_widths='',
> >
> > > _id=None,fields='',col_width=80,width=700,height=300): ...
> > > def pie_chart(data,names,width=300,height=150,align='center'): ...
> > > def bar_chart(data,names,width=300,height=150,align='center'): ...
> > > def youtube(code,width=400,height=250): ...
> > > def vimeo(code,width=400,height=250): ...
> > > def mediaplayer(src,width=400,height=250): ...
> > > def comments(table='None',record_id=None): ...
> > > def tags(table='None',record_id=None): ...
> > > def tag_cloud(): ...
> > > ``:code_python
> >
> > > ### Global variables
> >
> > > there are two important globals variables:
> >
> > > + plugin_wiki_editor = True # or false to disable the wiki
> > > + plugin_wiki_level = 3 # for everything, 2 for wiki+widgets, 1 for
> > > normal wiki (no code, widgets)
> >
> > > ## Conclusions:
> >
> > > 

Re: [web2py] Re: markmin, t2, t3, cube9 etc. (important update)

2010-07-07 Thread Jonathan Lundell
On Jul 7, 2010, at 8:30 AM, mdipierro wrote:

> The idea is that any web app is a set of pages that contain stuff.
> Some are public some are not, some have other permissions, some are
> listed in a hierarchical menu some not. Therefore it should be
> possible to develop as app as one creates a wiki, by adding pages and
> filling the pages.
> 
> In web2py every URL is mapped into a action. An action is a function +
> template.
> 
> In cu29 every URL (technically only those URL managed by the
> plugin_wiki/page action) is a page. The page is described by the
> markmin syntax and it can contain stuff because markmin allows to
> include high level widgets (not to be confused with
> db.table.field.widget).
> 
> You can have both together if you apply plugin_wiki from cu29 to your
> apps.
> 
> Hope it makes sense.

Yes, thanks.

One more thing, for those of us who haven't followed the whole history (two 
more things, I guess): why 'cube'? why '9'?

Re: [web2py] Re: markmin, t2, t3, cube9 etc. (important update)

2010-07-07 Thread Thadeus Burgess
This looks really awesome!

Name suggestion: Cube^2

--
Thadeus





On Wed, Jul 7, 2010 at 10:18 AM, Jonathan Lundell  wrote:
> On Jul 7, 2010, at 5:42 AM, mdipierro wrote:
>
>> The philosophy is the same as T3. Every URL is a wiki.
>
> Would you elaborate a little on that statement, please?
>


Re: [web2py] Re: markmin, t2, t3, cube9 etc. (important update)

2010-07-07 Thread Jonathan Lundell
On Jul 7, 2010, at 5:42 AM, mdipierro wrote:

> The philosophy is the same as T3. Every URL is a wiki.

Would you elaborate a little on that statement, please?


Re: [web2py] Re: markmin, t2, t3, cube9 etc. (important update)

2010-07-07 Thread Júlio Monteiro
Can we suggest names?
What about "cube2py" or "w2cube" or even simply "cube29"?

Julio Monteiro

On Wed, Jul 7, 2010 at 10:15 AM, mdipierro  wrote:

> I am going to remane this cu29 since it has been brought to my
> attention that there is a cube9.net and we do not want problems
>
>
>
> On 7 Lug, 07:51, mdipierro  wrote:
> > You can do that. Just create logic in db.py to determine which page is
> > being requested and then set it.
> >
> > On 7 Lug, 07:42, Júlio Monteiro  wrote:
> >
> > > Hello Massimo,
> >
> > > Looks very promising! Will try it today, as soon as I get home.
> > > Also I like the name too, better than T(n). :)
> >
> > > A question: would it be possible to set "*plugin_wiki_level*" per page
> so
> > > you can have special system pages and other pages users can edit or
> create?
> > > Or even better, certain admin users could create full power pages and
> normal
> > > user could only create content pages. What do you think?
> >
> > > Cheers,
> > > Julio Monteiro
> >
> > > On Wed, Jul 7, 2010 at 9:27 AM, mdipierro 
> wrote:
> > > > # Preamble
> >
> > > > As you know T2 and T3 are deprecated. Some time ago I started a
> > > > reimplementation of T3 called cube9. I got stuck. I now re-factored
> it
> > > > completely
> >
> > > > -
> > > >  http://code.google.com/p/cube9/(requiresweb2py trunk)
> > > > -
> >
> > > > It uses markmin:
> >
> > > > -
> > > >  http://web2py.com/examples/static/markmin.html
> > > > -
> >
> > > > cube9 is not completely finished by it works and it already much much
> > > > better than T2/T3.
> >
> > > > # What is cube9?
> >
> > > > Cube 9 is a possible replacement for the welcome app. It is identical
> > > > to welcome except that
> >
> > > > - has a different layout
> > > > - contains a plugin called plugin_wiki (a plugin on steroids)
> > > > - use a JS menu
> >
> > > > ## What is plugin_wiki?
> >
> > > > Plugin_wiki allows a developed (auth.user_id==1 or anybody member of
> > > > group 'editor') to create dynamic pages on the fly by visiting
> >
> > > > ``http://127.0.0.1:8000/cube9/plugin_wiki/page/my-new-page-slug``
> >
> > > > In fact you do not need cube9 to run plugin_wiki, you can use it for
> > > > any web2py app. You can use it to add help pages. You can use to
> allow
> > > > your users to edit pages.
> >
> > > > Pages are edited using markmin (via a modified markitup JS editor to
> > > > support markmin).
> > > > This email is written using markmin syntax.
> >
> > > > ## Why plugin_wiki is a plugin on steroids?
> >
> > > > Because it includes under one name (plugin_wiki) other plugins as
> > > > embeddable widgets (mediaplyer, comments, tags, multiselect, and
> more)
> > > > and there is a way to access them using the markmin  syntax.
> >
> > > > ## A first example
> >
> > > > For example to include a youtube video in a page you do
> >
> > > > ``
> > > > name: youtube
> > > > code: x1w8hKTJ2Co
> > > > ``:widget
> >
> > > > - The double reversed quotes tell markmin to deal with content in a
> > > > special way.
> > > > - The :widget tells plugin_wiki to override default behavior and
> treat
> > > > this as an embedded widget
> > > > - the content is treated as parameters (youtube being the name of the
> > > > widget and x1w8hKTJ2Co being the name of the youtube video you want
> to
> > > > embed).
> >
> > > > There are MANY widgets you can already embed.
> >
> > > > ## More examples
> >
> > > > ### Tagging
> >
> > > > ``
> > > > name: tags
> > > > ``:widget
> >
> > > > ### jqGrid list users
> >
> > > > ``
> > > > name: jqgrid
> > > > table: auth_user
> > > > ``:widget
> >
> > > > ### Enbedding a form
> >
> > > > ``
> > > > name: create
> > > > table: auth_user
> > > > ``:widget
> >
> > > > ### Embedding template code
> >
> > > > ``
> > > > counting... {{for i in range(10):}}{{=i}}{{pass}}
> > > > ``:template
> >
> > > > ## Inner workings
> >
> > > > For a list of widgets look into the static methods of
> > > > PluginWikiWidgets in models/plugin_wiki.py. The arguments of the
> > > > methods translate into variables. For example
> >
> > > > ``
> > > > class PluginWikiWidgets: # in models/plugin_wiki
> > > >@staticmethod
> > > >def abd(x,y=6): 
> > > > ``:code_python
> >
> > > > is called by
> >
> > > > ``
> > > > name: abc
> > > > x=5
> > > > ``:widget
> >
> > > > (y is optional because y has a default, 6).
> >
> > > > ### List of Widgets
> >
> > > > Here is a list of widgets as of today:
> >
> > > > ``
> > > >def read(table,record_id=None): ...
> > > >def
> > > >
> create(table,message='',next='',readonly_fields='',hidden_fields='',default_fields=''):
> > > > ...
> > > >def
> > > > update(table,record_id='',message='',next='',readonly_fields='',
> > > > hidden_fields='',default_fields=''): ...
> > > >def select(table,query_field='',query_value='',fields=''): ...
> > > >def search(table,fields=''): ...
> > > >def jqgrid(table,fieldname=None,fieldvalue=None,col_widths='',
> >
> > > > _id=