[xwiki-devs] GSoc 2011: idea "Auto Completion in Content Editors" (updated)

许凌志(Jamesxu) lingzhixu326 at gmail.com
Sat Mar 26 12:17:39 UTC 2011


On Thu, Mar 24, 2011 at 7:00 PM, Marius Dumitru Florea <
mariusdumitru.florea at xwiki.com> wrote:

>
>
> On 03/24/2011 08:51 AM, 许凌志(Jamesxu) wrote:
> >
> >
> > On Thu, Mar 24, 2011 at 10:54 AM, Sergiu Dumitriu <sergiu at xwiki.com
> > <mailto:sergiu at xwiki.com>> wrote:
> >
> >     On 03/22/2011 03:37 AM, 许凌志(Jamesxu) wrote:
> >      > Hi Marius Florea,
> >      >
> >      >       Thanks for your reply, it is really helpful for me to go
> >     further.
> >      >
> >      > For xwiki syntaxes, you gave me a good suggestion  that I should
> not
> >      > autocomplete all the attributes for a tag, it could be added when
> >     user
> >      > triggers by some inputs or by the hotkeys just like eclipse HTML
> >     editor.
> >      >
> >      > However, in my opinion, for some syntaxes, to suggest user some
> >     required
> >      > atrributes would be helpful for them to make less mistakes, and
> >     it is more
> >      > intuitive for them to fullfill the blank attributes which are
> >     required.
> >
> >     +1, mandatory attributes should be inserted.
> >
> >
> >      > Anyway, I haven't gone through and evaluate all the xwiki
> >     syntaxes, I should
> >      > finished this step first, and then think about the use case for
> >     some of
> >      > these syntaxes. Here are my steps for preparation before coding:
> >      >
> >      > - Go through and evaluate all the xwiki syntaxes, to find out a
> >     list of
> >      > syntaxes which are suitable  to implement autocompletion features
> >
>
> >     The main target is xwiki/2.0 (and xwiki/2.1 which is almost the same
> >     thing). Any other syntax is just a bonus.
>
> Thanks to its (relatively) new rendering engine (
> http://rendering.xwiki.org ) XWiki is a polyglot wiki. Before having
> this new rendering engine we used Radeox for rendering wiki pages and
> the only supported syntax was xwiki/1.0. With the new rendering engine
> we introduced xwiki/2.0 syntax as the default syntax for wiki pages and
> marked xwiki/1.0 syntax as deprecated. xwiki/2.1 syntax is now under
> development, trying to fix some of the limitations of the xwiki/2.0 syntax.
>

Thanks for the introduction to the xwiki syntax rendering machanism, I know
better now, it will be very helpful in my future work;


>
> Taken this into account, the main target is, as Sergiu said, the
> xwiki/2.0 syntax. Of course, it would be great if you can come with a
> design that allows us to easily add autocomplete support for other
> syntaxes in the future. So basically you should split your code in two:
> a part that is syntax independent and a part that is specific to
> xwiki/2.0 syntax. And the second part should be as much as possible
> plugable.
>

+1


>
> >
> >
>
> > I install the xwiki/3.0, but I haven't found the autocompletion features
> > for the wysiwyg editor.
>
> Note that the wiki syntax version is independent from the XWiki
> Enterprise version. The latest XE release is 3.0RC1 and it uses
> xwiki/2.0 as the default syntax for its wiki pages. XE 4.0 might use
> xwiki/2.1 as the default syntax for its wiki pages.
>
> As Caty told you, neither the WYSIWYG editor nor the wiki editor have
> syntax autocomplete implemented.
>
> > you refered "xwiki/2.1 which is almsot the same thing", I didn't catch
> > the meaning for  the "same thing".
> >
> > Do you mean some of xwiki syntaxes have been implemented for
> > autocompletion features in WYSIWYG editor of xwiki/2.1?
> > If so, could you give a link for introducing these features.
> >
>
> > I have already found the only doc
> > "http://platform.xwiki.org/xwiki/bin/view/Main/XWikiSyntax" for
> > introduction the xwiki syntaxes 2.0, and after reading through, I found
> > the newest version of xwiki syntaxes is 2.1, so could you give me some
> > docs about syntaxes 2.1, and could you explain to me, what kind of xwiki
> > syntaxes versions used in different version of xwiki.
>
> xwiki/2.1 syntax is still under development, that's why it isn't fully
> documented.
>
> >
> >
> >      > - Design the use cases with some screenshots for them, just like
> >      >
> >
> http://incubator.myxwiki.org/xwiki/bin/view/Improvements/UserStatusProposal
> >      > - Pick some to implement the prototype of them to get the
> >     feedbacks from the
> >      > mailing list
> >      > - Start to coding for all of them
> >
> >     Good plan. The best approach is to have something working ASAP and
> then
> >     incrementally improve/build upon it.
> >
> >
>
> > Thank you, these days I have read all the docs from "xwiki development
> > zone <http://dev.xwiki.org/xwiki/bin/view/Main/WebHome>", it is really
> > helpful for me to understand how to contribute to xwiki, I am trying to
> > download xwiki WYSIWYG editor source codes and building them, try to
> > have a look its source files.
> > I think it is the neccessary things I am have to do before coding.
>
> The WYSIWYG editor sources are in
> http://svn.xwiki.org/svnroot/xwiki/platform/web/trunk/ . The
> xwiki-gwt-wysiwyg-war module packages the xwiki-gwt-wysiwyg-server and
> the xwiki-gwt-wysiwyg-client modules. The xwiki-gwt-wysiwyg-client
> module depends on xwiki-gwt-wysiwyg-plugin-api, xwiki-gwt-user and
> xwiki-gwt-dom modules.
>

I have downloaded all the code under
http://svn.xwiki.org/svnroot/xwiki/platform/web/trunk/ , and build with
maven in eclipse.
finally I got a war file "xwiki-web-gwt-wysiwyg-war-3.1-SNAPSHOT.war", I
renamed it to "wysiwyg.war" and put it uder tomcat6.0.18,I also look through
the web.xml file under this war file, I found the entry is
"localhost:8080/wysiwyg/gwtrpc.gwtrpc" according to the web.xml file, but I
got nothing excpet the 404 error.
I think maybe the entry url is wrong, but what is the right url, according
to the web.xml file bellow, I also tried "localhost:8080/xwe/gwtrpc.gwtrpc",
but resulted in the same error;

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance"
  xmlns:web="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
  version="2.4">

  <display-name>xwe</display-name>
  <description>XWiki's WYSIWYG Editor</description>

  <!-- This filter is used to convert the HTML generated by the WYSIWYG
editor to source syntax -->
  <filter>
    <filter-name>ConversionFilter</filter-name>

<filter-class>com.xpn.xwiki.wysiwyg.server.filter.ConversionFilter</filter-class>
  </filter>

  <!-- This filter is used to initialize the XWiki context before processing
a request. -->
  <filter>
    <filter-name>XWikiContextInitializationFilter</filter-name>

<filter-class>com.xpn.xwiki.wysiwyg.server.filter.XWikiContextInitializationFilter</filter-class>
  </filter>

  <filter-mapping>
    <filter-name>ConversionFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

  <filter-mapping>
    <filter-name>XWikiContextInitializationFilter</filter-name>
    <servlet-name>gwtrpc</servlet-name>
  </filter-mapping>

  <!-- This is the entry point for all component-based XWiki GWT services.
-->
  <servlet>
    <servlet-name>gwtrpc</servlet-name>

<servlet-class>com.xpn.xwiki.wysiwyg.server.XWikiRemoteServiceServlet</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>gwtrpc</servlet-name>
    <url-pattern>*.gwtrpc</url-pattern>
  </servlet-mapping>
</web-app>



>
> The wiki editor is a plain HTML text area so it doesn't have any code.
>
> >
> >
> >      >> Good knowledge of JavaScript, DOM and OOP (for the GWT code) is
> the
> >      >> basic requirement to finish this project.
> >      >
> >      > I think javascript, DOM, OOP would not be a problem for me, I
> >     used it almost
> >      > everyday for 3 years, and  and experienced with dojo, jquery, I
> >     also wrote
> >      > some tutorial for them, GWT is some kind javascript lib like
> >     them, though
> >      > there are some differences, I think I would be a quick learner
> >     for it, since
> >      > now, I have learned it for a while.
> >      >
> >
> >     GWT is not quite another JavaScript library. It's actually a Java
> >     toolset which compiles a form of Java code into JavaScript.
> >
> >
> > Yes, you are right, I am reading the docs of GWT now, it is pretty
> > different from normal javascript tools, foutunitly, I am practiced in
> > Java and javascript, though it is weild to get to know GWT at first, and
> > now, I think it is not so difficult, and I am now downloading the source
> > code of WYSWYG editors, trying to understand the structure using GWT,
> > and aslo read some samples from GWT documentation center.
> >
> >
>
> >     Personally I'm against using GWT here, and I'd prefer something using
> >     basic Prototype.js
>
> Sergiu, you are against using GWT for the wiki editor only, right?
> Anyway, the autocomplete feature should have the same look and feel in
> both the WYSIWYG and wiki editor. A basic design would be to have three
> modules:
>
> (1) Determine the context based on the current selection/caret
> (2) Offer suggestions based on the context
> (3) Output the selected suggestion in the target syntax
>
> (1) and (3) depend on the editor/syntax, but (2) should be the same: it
> doesn't matter the editor or the syntax when you display a list of
> documents to choose from in order to create a link.
>
> The language used to implement (1) and (3) depends on the target editor.
> I think we should use GWT for the WYSIWYG editor and Prototype.js for
> the wiki editor. The question is what to use for (2). Sergiu clearly
> prefers Prototype.js and I'm ok with that.
>
> Hope this helps,
> Marius
>
> >
> >
> > It is a good idea to use some native javascript tools like Prototype, I
> > have used Prototype for more than 4 years, and also I am a fans of dojo
> > and jquery, I think the the WYSIWYG could be implemented as a prototype
> > or dojo module.
> >
> > However, I think the first thing we should do is to work on the
> > autocompletion idea based on GWT, cause till now, the editor is
> > implemented by GWT, it would be easy to move on.
> >
> >
> >     --
> >     Sergiu Dumitriu
> >     http://purl.org/net/sergiu/
> >     _______________________________________________
> >     devs mailing list
> >     devs at xwiki.org <mailto:devs at xwiki.org>
> >     http://lists.xwiki.org/mailman/listinfo/devs
> >
> >
> >
> >
> > --
> > Best wishes,
> >
> > 许凌志(Jame Xu)
> >
> > MOE KLINNS Lab and SKLMS Lab, Xi'an Jiaotong University
> >
> > Department of Computer Science and Technology, Xi’an Jiaotong University
> _______________________________________________
> devs mailing list
> devs at xwiki.org
> http://lists.xwiki.org/mailman/listinfo/devs
>



-- 
Best wishes,

许凌志(Jame Xu)

MOE KLINNS Lab and SKLMS Lab, Xi'an Jiaotong University

Department of Computer Science and Technology, Xi’an Jiaotong University



More information about the devs mailing list