(펌글) 위키 솔루션 비교 - JspWiki, XWiki, MediaWiki 비교 (영어주의)

2021. 5. 14. 11:24업무관련

728x90
반응형

Open source wiki first experience - JSPWiki, XWiki, MediaWiki comparison

tags: data structure  fckeditor  SQL  PHP

In a recent project, I used wiki as the source of knowledge for the underlying model. In the past two months, I tried JSPWiki, xwiki, and mediawiki, and I have learned a lot about these three open source wikis. , record it here.

JSPWiki

At the beginning, I found JSPWiki. The basic functions of JSPWiki are all there are, but the problem is that it uses the file method instead of the data to store the data. This will be very difficult when we analyze the data later and provide the knowledge source for the project. So there is not much research

XWiki

Xwiki is a popular open source wiki software written in JAVA. It supports various databases and has perfect functions.
In the process of understanding xwiki, it feels that its function is more powerful than JSPWiki. In addition to the basic functions of the wiki, it also provides blog function, so the structure is somewhat complicated. There are two points that are its advantages. First, his page organization is in line with people's general thinking, that is, to build classification and re-create entries; second, he uses the WYSIWYG editor by default, without requiring users to understand special grammar rules. Can be used normally. However, I found in use that xwiki does not support multi-level classification. Under one layer of space, it cannot contain subspaces, but only pages. Such a structure certainly cannot satisfy large applications, so it has not been selected.
In addition, when I understood the structure of the xwiki database, I found the place where the page content was stored. The xwiki page content exists in the xwikircs table, and the content is stored in the XWR_PATCH field in xml format.select XWR_PATCH from xwikircs where XWR_DOCID = ......;You can read the content, you can find that the page comments are in the <comment></comment> tag, and the page content is in the <content></content> tag.

mediawiki

Mediawiki is a wiki system written in php and should be the most widely used. Its structure is relatively clear, but I also found a few problems in the actual experience:
[list]
[*]mediawiki's page organization does not conform to the general way of thinking. The default method is to let people build entries first and then build categories. This way makes new users confused.
[*]mediawiki does not provide a quick entry to create pages and categories. Unlike xwiki, users know at a glance how to create a category and then add entries to the category. Mediawiki needs you to read its manual to understand how to create a page and point it to a category, which raises the user's threshold for use. Think it is not easy to use
[*]mediawiki does not use the WYSIWYG editor by default, users need to understand the basic editing syntax to use the editing function normally.
[/list]
After discovering these issues, my job was to look for various plugins to try to improve the usability and analyze its database.
The structure diagram of the mediawiki database is shown in Annex 1.
After the table-by-table observation, it is found that the content of the page exists in the old_text field of the text table, and the content is stored in the BLOB format, so the read code has to be written to convert the binary stream into a String. The following is the code:
String sql ="select * from mw_text";
ResultSet rs=stmt.executeQuery(sql);
int i =1;
while(rs.next()){
Blob blob=rs.getBlob("old_text");
BufferedInputStream bi=new BufferedInputStream(blob.getBinaryStream());
byte[] data=new byte[(int)blob.length()];
String output="";
bi.read(data);
output=new String(data);
bi.close();
System.out.println(" "+i+" ");
System.out.println(output);
System.out.println();
i++;
}
At the same time, in order to make mediawiki conform to the general usage habits, I have seen a lot of plugins on the official website, address [url]http://www.mediawiki.org/wiki/Category:Extensions[/url]
I tried a lot of plugins and found the following ones better.
[list]
[*]NiceCategoryList, the effect is as shown

[img]http://dl.iteye.com/upload/attachment/325633/f22ba2da-98ef-3981-9fa7-8ccaa6fe777f.png[/img]

[*]CategoryTree, the effect is as shown

[img]http://dl.iteye.com/upload/attachment/325635/8922c83e-5c1d-3378-802d-bc49aeb0c48c.png[/img]

[*]ArticleToCategory2, the effect is as shown

[img]http://dl.iteye.com/upload/attachment/325637/3f8f1378-2a05-34f2-ac2b-e666a0af47f2.png[/img]

[*]ManageCategories, the effect is as shown

[img]http://dl.iteye.com/upload/attachment/325647/2841b6ae-2fb2-3dc1-998d-2982ff96fb6a.png[/img]

[*]fckeditor
[*]inputbox, the effect is as shown

[img]http://dl.iteye.com/upload/attachment/325649/fee0321e-62e6-34ed-b6ad-78e171db1e25.png[/img]

[/list]

728x90
반응형