User:EoNy/sandbox/WackoWiki-sc

From Wikipedia, the free encyclopedia

WackoWiki


WackoWiki
Developer(s)WackoWikiTeam
Initial releaseMarch 25, 2003; 21 years ago (2003-03-25) [1]
Stable release
6.1.25[2] / 2024-04-11 Edit this on Wikidata
Repository

Failed to render property source code repository: source code repository property not found.

Written inPHP >= 7.0
Operating systemCross-platform
Size≈ 2 MB (compressed)
TypeWiki
LicenceBSD
Websitewackowiki.org

WackoWiki is a lightweight, expandable, multilingual wiki engine based on WakkaWiki[3]'[4].[5] The software is written in PHP, and uses MySQL to store pages. WackoWiki triggered research in different areas of software development e.g. security, cache, universal markup language, Linux NFS kernel module, rdf.

WackoWiki supports multiple languages, many localizations, email notification on changes/comments, several cache levels, design themes (skins) support, XHTML compliance, page rights (ACLs), and page comments. WackoWiki is licensed under BSD license.

WackoWiki is developed mainly by Russian and European programmers, but it is not a Russian-only engine. It is actively maintained in Germany and at the moment it supports Bulgarian, Danish, Dutch, English, Estonian, French, German, Greek, Italian, Spanish, Polish, Portuguese, and Russian languages. The latest release features UTF-8 compatibility.

WackoWiki allows the use of full HTML capabilities, and uses the SafeHTML parser (written by the same developers) to strip out potentially dangerous content (JavaScript, etc.) which may cause cross-site scripting vulnerabilities.

Developers of WackoWiki also created WikiEdit, a JavaScript multi-language editor that generates wiki markup using keyboard shortcuts and toolbar buttons. WikiEdit also supports auto indenting and increments in ordered lists.

WackoWiki is widely used in Russia as a wiki-engine, by many IT companies as a lightweight CMS and a knowledge management system, by research groups[6] and in educational context[7]. It shares several modules, developers, and a bugtracker with the NPJ engine.[8]

License[edit]

WackoWiki is free and open-source software and is distributed under the terms of the BSD license.

Development[edit]

WackoWiki has an active volunteer community for development and maintenance. Users who have made meaningful contributions to the project by submitting patches are generally, upon request, granted access to commit revisions to the project's Bitbucket/Git repository.[9].[10]'[11]. WackoWiki Community uses Mantis Bug Tracker. Standards set by the W3C and PHP Standard Recommendation (PSR) are also foundations of WackoWiki development.[11]

History[edit]

History of WackoWiki[edit]

WackoWiki was forked from the WakkaWiki engine in 2003 when Hendrik Mans and Carlo Zottmann, the original developers, abandoned it. WackoWiki is an authorized and official "reboot" of the WakkaWiki project."[12] The software development has since been driven by a team of international contributors who are working on WackoWiki in their spare time.Cite error: The <ref> tag has too many names (see the help page).

Release History[edit]

The first version of WackoWiki, R2.0, was released as a fork of WakkaWiki in March 2003.

Version Date Significant changes[13]
R6.0 2019-12-31 mainly Unicode support and UTF-8 migration tools, PHP 7.4 compatibility
R5.5 2018-08-02 major release and a security update for the stable 5.x branch. mainly migration to HTML5, security related features and PHP 7.0/7.2 compatibility
R5.4 2014-04-17 minor release, mainly PHP5.4 / PHP5.5 compatibility
R5.1 2012-06-17 minor release, old legacy code removed
R5.0 2012-04-22 major feature release, normalize database second to back port, merge openSpace features, last PHP5.3 compatibility.
R4.3 2011-03-20 wacko is officially alive again, number of bug fixes to the wacko community, primarily bugfixing whilst implementing user requested extra features along the way
R4.2 2005-03-27 complete PHP5 compatibility, mysql 4.1 compatibility (DB locale Latin-1 only), Dozen of XSS vulnerabilities fixed
R4.0 2004-07-31 bug fixes, safehtml integration, new actions
R3.5 2003-06-28 bug fixes, diff and e-mail notification
R3.0 2003-04-20 multilingual installer, themes, XSS problem fixed
R2.0 2003-03-25 Initial WackoWiki release,[14] Fork from lates WakkiWiki release,[15] link function, user bookmarks, page watching, WakkaWiki formatters enhanced, community actions added

Sites using WackoWiki[edit]

WackoWiki is often used in small and medium-sized companies as well as in small organizations such as research groups.[16] Notable usages of WackoWiki within governments include websites of AKSW Research Group and of the department of Business Information Systems at the University of Leipzig, Germany[17] The Russian internet search engine company Yandex uses WackoWiki for intranet workgroups.[18] WackoWiki is listed in the Free Software Directory, Open Hub, PHP Extension and Application Repository and also hosted at SourceForge.

WackoWiki Features[edit]

General overview[edit]

According to Linux Magazine WackoWiki is a compact, resource-saving wiki engine.[5] It inherits all features from WakkaWiki including installer and upgrader[19], utilizes common wiki software features, improvements and the following noteworthy new features.

Common wiki software features
  • Wiki editing
  • Markup
  • Linking and creating pages
  • tracking edits
  • Searching
All features from WakkaWiki
Common WackoWiki features [20]'[21]
  • Clusters (subpages) & relative addressing
  • Page watching & email notification on changes/comments (simple diff included in the email)
  • Supports entering text in multiple-languages / alphabets (subject to browser limitations)
  • uploads per page or global
  • Wiki-compatible markup
  • Enhanced What You Think Is What You Get editing — table markup
  • Automatic Table Of Contents generation
  • Links can be Camel Case or Free Links
  • On-the-fly correction of punctuation typos & special characters
  • Powerful diff between revisions
  • Several levels of caching (backlinks, pages) bring significant performance gain compared to Wakka
  • completely multilingual
  • Design themes (skins) support.
  • Admin panel for configuration, backup and restore

Description of WackoWiki features[edit]

Installation[edit]

Since WackoWiki depends on a database and server software, it requires that the user have administrative privileges on a server running both PHP and a compatible type of SQL database. The Installation of WackoWiki on an existing server can also be done by non-expert users. Files need to be placed e.g. via FTP/FileZilla to /htdocs/yourwiki folder of a Linux/Apache/MySQL/PHP (LAMP) software bundle. An installation script is accessed via a Web browser to initialize the wiki's setup.[22] The WackoWiki community publishes a comprehensive installation guide.[23]

Configuration and Admin Panel[edit]

The AdminPanel provides access to numerous settings and data of your Wiki. Among other things, you can create and delete users and groups, view logs and create a backup of the database.

Tracking edits[edit]

To prevent vandalism, but also to get an overview of personal contributions or simply to easily retrieve interesting content to collaborate on, the following tracking edits features are helpful.

The Recent Changes feature, that nearly all wikis use, displays a list that contains the pages last edited, the edit summary, the timestamp and the name of the user. Also, Recent Changes and Recent Comments through the utilization of RSS can be exported as an XML file and be imported in a news aggregator. The page index also is a good feature to get an overview of the wiki and find pages to read and contribute to.

Like most wikis also WackoWiki allows us to view the version history of any given and not access a restricted page. When using the revision control link the user can choose to compare two versions of a page. WackoWiki helps users in tracking edits by providing powerful diffs between revisions. Since WackoWiki R5.5 the advanced Diff utility gives the user full revision control by displaying differences between changes made to pages in various ways e.g. full, simple, inline or source.

Authors can choose to watch/unwatch a wiki page. These page watches also appear in a watchlist when calling WackoWiki action {{mychangeswatches}}. Users are notified via email (simple diff included in the email) when anyone changed or commented page. WackoWiki also has user profile pages where the users' changes to pages, their latest comments, and uploads are shown.

Other important tools are bookmarking, tagging and categories.

Navigation[edit]

A basic principle of any wiki is hypertextual linking via concise URLs.[24] Links are a means for navigation. So is the main navigation of WackoWiki, which consists of general items like recent changes, recent comments and page index. WackoWiki software enables user bookmarks to easily be added to the main navigation for any page.

Editing interface[edit]

Clicking on the edit link of an existing page or creating a new page will enable the edit mode. WikiEdit, a JavaScript-driven GUI (Graphical User Interface) toolbar also starts by double-clicking on a WackoWiki page. The interface helps with editing a wiki web page not only by on-the-fly correction of punctuation typos & special characters. By clicking on the respective toolbar buttons or when using keyboard shortcuts - known from word processing programs - text gets converted into WackoWiki markup. Plain text in multiple-languages / alphabets is formatted, text-layout added, links and tables created, a user signature and WackoWiki actions are called also by typing WackoWiki markup into the editing interface.[25] When previewing and saving a wiki page WackoFormatter, a parser, which is a WikiText to HTML renderer, converts all input. The SafeHTML parser used when saving Wiki pages is an anti-XSS HTML parser, written in PHP.[26]

Wiki-compatible markup[edit]

The editor of WackoWiki allows the use of WackoWiki specific syntax and keywords to format a page. That way users, with a minimum visual distortion of the "source text", get a beautiful HTML after the program conversion. [27] WackoWiki uses a markup similar but not equal to TWiki and MediaWiki-Wiki-Markup, also since there is no commonly accepted standard for wiki markup.[28]

For easy conversion between wikis, there is Creole (markup) - a project "aimed at being a common markup language for wikis, enabling and simplifying the transfer of content between different wiki engines."[29]'[30] There is also a MediaWiki2WackoWiki conversion tool.

Like any wiki markup also WackoWiki markup is based on the principles WYSIWYG and WhatYouThinkIsWhatYouGet - WYTIWYG[31] That way HTML around the formatted text is protected from possible formatting errors.[32]

Groups and restriction of access[edit]

WackoWiki has very good means of content access control.[28] When creating new pages, users can assign access permissions on a per-page basis. Plain text lists give the owner, who created a page, control who may read, write, comment, create subpages and upload to this page. There are special pages for integrated user management, that shows few user statistics and groups. Groups and default permissions for working with pages can also be defined through an administration panel.

Content organization[edit]

Providing means for arranging and assembling distributed information is a notable strength of WackoWiki. The software uses hyperlinks and the so-called include, export, import, category and forum actions for content organization.

Practice: URL adressing[edit]

Among the most notable are means for clustering via URL adressing. "Directories" are created by using slashes and an addressing method similar to that used for URLs: https://example.com/yourwiki/cluster/subpage/news. In WackoWiki comments are appended to the bottom of a page, in a separate space. Users can choose through usersettings whether to show or hide a page’s comments. [33] Comments are appended to page url: https://example.com/yourwiki/cluster/comment1. URLs are also useful for processing page handler information. For example https://example.com/yourwiki/page/rename will enable users to rename pages and clusters.

Practice: action[edit]

"Actions are small scripts that prepare some content and output it at the given position in the wiki page."[16] There are actions for WackoWiki similar to Help:SpecialPages plus the option to add parameters using wiki markup.

An include action for example writes the content of the included page directly into the body of another page. The have to write {{inlude page="/cluster/subpage/news" [first_anchor="..." last_anchor="..."]}} into the wiki page. When including text segments anchors have to be defined in the included page {{anchor name="plan_start"}} your text {{anchor name="plan_end"}}.

For the owners of WackoWiki pages export and import of pages and clusters of pages to other WackoWiki instances is done by using the {{export}} and {{import}} actions. Another means for content organisation is the use of categories and forum action.

Action can be added to WackoWiki independently from program core and have to be placed into folder /action.

Caching[edit]

The caching mechanism for WackoWiki has been subject to many improvements over time.[13] Several levels of caching (backlinks, pages) bring significant performance gain compared to Wakka. For caching data WackoWiki uses the /cache folder and several subfolders for pages, templates, RSS newsfeeds, SQL-queries, and sessions. WackoWiki also supports database caching.

Templates[edit]

WackoWiki supports content templating. Content templating enables reuse of content structures among wiki pages. WackoWiki supports functional templating without parameter passing. The include page action is also usefull for reusing contents in many wiki pages.[34]

Security headers[edit]

WackoWiki supports the content security policiy standard and HTTP Strict Transport Security. The admin panel helps admin users to implement and define CSPs.[35]'[36]

Internationalization and localisation[edit]

Internationalization and localization are an integral part of software development. WackoWiki language files are separated from code and stored in special folders or files. The user interface, the installer, themes and actions (comparable to MediaWiki Special Pages), javascript files and admin panel have been translated in 14 different languages.[37]

Extensibility[edit]

  • Designed for speed and extensibility

core, community, actions, themes

WackoWiki Development[edit]

WackoWiki is a free software project and builds upon open source software development practicesCite error: The <ref> tag has too many names (see the help page).'[38].[39]

Scientific findings[edit]

WackoWiki Software has been studied by international scientists. Findings help improve not only WackoWiki software but also other software and internet technologies. Research results on WackoWiki storing and cache mechanisms helped to raise questions to improve Linux NFS kernel module.[36] The usage of different security mechanisms in combination with the markup context of commonly used input sanitization or validation mechanisms in "25 popular PHP applications" with WackoWiki being one of those applications, were studied. This empirical study "helps researchers, web developers, and tool developers to focus on error-prone markup contexts and security mechanisms in order to detect and mitigate vulnerabilities".[40] Other researchers implemented the RDF authoring tool in WackoWiki. The full read/write integration of RDFauthor allows users to edit both the wiki page and the structured information/basic elements for the description of ontologies in one place. [16]

Resources to developers[edit]

The following tools help foster WackoWiki development:

  • Communication channels: WackoWiki development team uses e-mail to discuss development ideas and a Forum to ask help questions. [41]
  • Repository: git repository hosted by GitHub[9]
  • Bug Tracking: Mantis Bugtracker to report bugs and feature requests also /dev/FeatureRequest[42]

Database[edit]

WackoWiki R6.0 Database Scheme

WackoWiki supports MySQL databases and PHP data objects, but the project has no contributions for PostgresSQL related code. [43] This has been studied and criticized for many open-source projects. [44]

The database of WackoWiki consists mainly of tables with data of users, pages, links, media, logging, caching and taxonomy.[45]

Limitations[edit]

Compared to other wiki software there is no section editing, but an include action. By using the include action sections of text are editable based on user/page rights. There is good English and German documentation but besides Russian only a few other languages are supported, though UTF-8 implemented. WackoWiki has a small but serious team of developers.

See also[edit]

References[edit]

  1. ^ WikiData. wikidata.org. Retrieved 2020-01-26.
  2. ^ Download WackoWiki. wackowiki.org. Retrieved 2020-02-14.
  3. ^ History of WakkaWiki. wackowiki.org. Retrieved 2018-08-21.
  4. ^ WakkaWiki. wiki.c2.com. Retrieved 2018-08-21.
  5. ^ a b Linux Magazin Tool Tip. linux-magazin.com. Retrieved 2020-01-26.
  6. ^ R. C. Rodríguez-Hidalgo, A. M. Torres-Alfonso, Chang Zhu and F. Questier (2011). Wikis supporting research workshops in higher education. IEEE. 6th Iberian Conference on Information Systems and Technologies (CISTI 2011). Chaves. pp. 1–10.{{cite book}}: CS1 maint: multiple names: authors list (link)
  7. ^ Torekeyev Bakhytzhan Asylkhanovich (2019). "The role of Digital Educational Resources (OER) in the field of education in teaching foreign language in a new paradigm of education". JOURNAL of Language Research and Teaching Practice. Volume #5.: S.16. {{cite journal}}: Cite journal requires |journal= (help)
  8. ^ Nicolae Sfetcu (2011). Web Design & Development. LULU Press. ISBN 9781470932886.
  9. ^ a b WackoWiki repository. wackowiki.org. Retrieved 2020-01-26. Cite error: The named reference "wackowiki repository" was defined multiple times with different content (see the help page).
  10. ^ WackoWiki About contributing Patches. wackowiki.org. Retrieved 2020-01-26.
  11. ^ a b WackoWiki CodeConventions. wackowiki.org. Retrieved 2020-01-26.
  12. ^ WackoWiki documentation in English. About History. wackowiki.org. Retrieved 2018-08-21.
  13. ^ a b https://wackowiki.org/doc/Dev/ChangeLog
  14. ^ "WackoWiki ChangeLog".
  15. ^ "WakkaWikiChangeLog".
  16. ^ a b c Tramp S., Heino N., Auer S., Frischmuth P. (2010). "RDFauthor: Employing RDFa for Collaborative Knowledge Engineering" (PDF). In: Cimiano P., Pinto H.S. (eds) Knowledge Engineering and Management by the Masses. EKAW 2010. Lecture Notes in Computer Science, vol 6317. Springer, Berlin, Heidelberg.{{cite web}}: CS1 maint: multiple names: authors list (link) CS1 maint: numeric names: authors list (link)
  17. ^ web site of the department of Business Information Systems at the University of Leipzig. bi.informatik.uni-leipzig.de. Retrieved 2020-02-14
  18. ^ "wiki.yandex.ru".
  19. ^ About WackoWiki wackowiki.org. Retrieved 2019-06-09.
  20. ^ Looks Jorge, Pedro (Adler) (2005). Looking for inspiration: a technology review for nomadic support (Report). Interaction and Presentation Laboratory (IPLab). Numerical Analysis and Computing Science (Nada). Royal Institure of Technology (KTH). Stockholm, Sweden. Retrieved 2020-02-03. {{cite report}}: Cite has empty unknown parameter: |authors= (help)
  21. ^ Software Knowledge Management using Wikis:a needs and features analysis (PDF) (Report of Dissertation). Faculty of Engineering of the University of Porto. 2010. Retrieved 2020-02-03. {{cite report}}: Cite uses deprecated parameter |authors= (help)
  22. ^ https://fsfe.org/news/nl/nl-201909.en.html
  23. ^ "WackoWiki Installation Guide". WackoWiki Team. Archived from the original on December 15, 2019. Retrieved 2020-02-04.
  24. ^ Zundert, Joris van (2016). Barely Beyond the Book? (Digital Scholarly Editing: Theories and Practices, edited by Matthew James Driscoll and Elena Pierazzo ed.). Open Book Publishers. pp. 83–106. ISBN 9781783742400. Retrieved 29 February 2020.
  25. ^ WackoWiki Formatting. wackowiki.org. Retrieved 2020-02-12.
  26. ^ https://wackowiki.org/doc/Dev/Projects/SafeHTML
  27. ^ "WackoWiki Markup". WackoWiki. September 22, 2019. Retrieved 2020-01-25.
  28. ^ a b Lane, A. (July 2004). "Wiki: A Liberating Model of Web-Based Collaboration" (PDF). Volume XXXIII Number 7: 29-31. Retrieved 15 February 2020. {{cite journal}}: |volume= has extra text (help); Cite journal requires |journal= (help)
  29. ^ Sauer, Christoph; Smith, Chuck; Benz, Tomas (2007). "WikiCreole: : a common wiki markup". Association for Computing Machinery, New York, NY, USA,. Proceedings of the 2007 international symposium on Wikis (WikiSym '07): 131–142. doi:10.1145/1296951.1296966. Retrieved 2020-02-04.{{cite journal}}: CS1 maint: extra punctuation (link)
  30. ^ wacko parser and unified markup, see also:https://wiki.c2.com/?WikiEngines. uverse.i-forge.net. Retrieved: 2020-02-14
  31. ^ "WhatYouThinkIsWhatYouGet". wiki.c2.org. Retrieved 2020-02-14.
  32. ^ ""Broken" markup should not break HTML around text". WackoWiki. September 22, 2019. Retrieved 2020-01-25.
  33. ^ [25] Tools for online engagement and communication (Report). In: Education for a Digital World: Advice, Guidelines, and Effective Practice from Around the Globe. Vancouver: Commonwealth of Learning; Part 5, Engagement and Communication;. 2008. pp. 381–412. ISBN 9781894975292. Retrieved 2020-02-03. {{cite report}}: Cite uses deprecated parameter |authors= (help)CS1 maint: extra punctuation (link)
  34. ^ Di Iorio, Angelo; Vitali, Fabio; Zacchiroli, Stefano (2008). Wiki Content Templating. Association for Computing Machinery. doi:10.1145/1367497.1367581. ISBN 9781605580852. Retrieved 2020-02-03.
  35. ^ https://wackowiki.org/doc/Dev/Guidelines/SecurityHeaders
  36. ^ a b Irtegov, Dmitry; Knyazev, Igor; Mallaeva, Julia; Oleynikov, Sergey; Rootman, Michael; Solovyev, Dmitry (2014). About one approach to building low latency network file system (Proceedings of the 10th Central and Eastern European Software Engineering Conference in Russia). CEE-SECR ’14. New York, NY, USA: Association for Computing Machinery. doi:10.1145/2687233.2687248. ISBN 9781450328890. Retrieved 2020-02-03.
  37. ^ WackoWiki /Dev/Translation. wackowiki.org. Retrieved 2018-08-21.
  38. ^ https://events19.linuxfoundation.org/wp-content/uploads/2017/12/Methodology-of-Multi-Criteria-Comparison-and-Typology-of-Open-Source-Project-Fedir-Rykhtik-Stratis-1.pdf 5 types of open source software. One of the guiding principles is to develop in small steps
  39. ^ https://wackowiki.org/doc/Org/CallForFeature
  40. ^ Experience report: an empirical study of PHP security mechanism usage (In Proceedings of the 2015 International Symposium on Software Testing and Analysis). ISSTA 2015. Association for Computing Machinery. New York, NY, USA,. 2015. pp. 60–70. Retrieved 2020-02-03. {{cite book}}: Cite uses deprecated parameter |authors= (help)CS1 maint: extra punctuation (link)
  41. ^ https://wackowiki.org/doc/Dev
  42. ^ https://wackowiki.org/bugs/my_view_page.php
  43. ^ https://wackowiki.org/bugs/view.php?id=433
  44. ^ Fabien Coelho, Alexandre Aillos, Samuel Pilot, Shamil Valeev. A Field Analysis of RelationalDatabase Schemas in Open-source Software (Extended). The Third International Conference on Advances in Databases, Knowledge, and Data Applications, Jan 2011, St Marteen, Netherlands Antilles.p. 9-15. hal-00903676/DBKDA 2011 : The Third International Conference on Advances in Databases, Knowledge, and Data Applications | A Field Analysis of Relational DatabaseSchemas in Open-source Software (Extended)Fabien Coelho, Alexandre Aillos, Samuel Pilot, and Shamil ValeevCRI, Maths & Systems, MINES ParisTech,35, rue Saint Honor ́e, 77305 Fontainebleau cedex, France., https://hal-mines-paristech.archives-ouvertes.fr/hal-00903676/document
  45. ^ https://wackowiki.org/doc/Dev/Database

External links[edit]

Category:Free wiki software