Loading...
 

Parsing contexts

The parser has to deal with different contexts.

Main contexts

Different document types support different contexts. With default preference values, a wiki page can contain Wiki syntax and HTML would be displayed literally. But if so configured, pages can contain HTML. And if so configured, pages can be edited with a WYSIWYG editor.

Database

Wiki pages are stored in tiki_pages. There are 2 relevant columns in tiki_pages, is_html and wysiwyg. WYSIWYG pages have tiki_pages.wysiwyg=y.
With default configuration, pages are by default created with tiki_pages.is_html=0 and tiki_pages.wysiwyg=n.
“Allow HTML” (non-WYSIWYG HTML) pages have is_html=1 and tiki_pages.wysiwyg=n.
“WYSIWYG HTML” pages have tiki_pages.is_html=1 and tiki_pages.wysiwyg=y.
“WYSIWYG wiki” pages have tiki_pages.is_html=0 and tiki_pages.wysiwyg=y.

Tracking of WYSIWYG or HTML support is not consistent in all object types. For example, blog posts only track whether they use WYSIWYG or not. If WYSIWYG is enabled, HTML is supported, but if tiki_blog_posts.wysiwyg is "n", HTML is displayed literally.

Preferences and settings

When the feature_wiki_allowhtml preference ("Allow HTML") is enabled, each wiki page gets a "Allow HTML" setting making it possible to allow HTML.
The wysiwyg_htmltowiki preference affects all new pages, but none of the pages created before it was enabled. To switch an old page, it must be converted to non-WYSIWYG, saved, then converted back to WYSIWYG.

The wysiwyg_wiki_parsed preference was added to disable parsing in a non-WYSIWYG page if "Allow HTML" is enabled, but also affects WYSIWYG pages as of 2018-02-05. Thread "The Epic Story of wysiwyg_wiki_[semi_]parsed - Is the End Coming?" has more information on that preference.

The effect of the "Allow HTML" setting is the same as putting the whole content of a page in a call to the HTML plugin.

Plugins

Besides the INCLUDE plugin, 2 plugins enable to change the context: HTML, which supports HTML and Tiki syntax or just HTML, and WYSIWYG, which supports either HTML or Tiki syntax.

Map of contexts

This list attempts to picture all possible contexts and sub-contexts where parsable texts may occur, but this recurses with no limit. Arrows in a yellow disk indicate subcontexts to which an infinity of subcontexts could be added.

Incorrect behavior is in red. Behavior which could be considered wrong looking at part of the tree but right looking at another part is in orange.

  1. WYSIWYG page
    1. wysiwyg_htmltowiki enabled
      1. Regular: HTML is escaped. Tiki markup is interpreted.
      2. In HTML plugin. Problematic according to https://dev.tiki.org/item4741
        1. Wiki syntax parameter enabled: HTML interpreted, Tiki markup not parsed.
        2. Wiki syntax parameter disabled: HTML interpreted, Tiki markup only parsed if wysiwyg_wiki_parsed is enabled. arrow
      3. In WYSIWYG plugin – must be rare
        1. use_html enabled: HTML is interpreted but converted to Tiki markup on edition. Tiki markup is interpreted. arrow
        2. use_html disabled: HTML is interpreted, Tiki markup is interpreted. arrow
    2. wysiwyg_htmltowiki disabled
      1. wysiwyg_wiki_parsed enabled : HTML is interpreted. Tiki syntax is interpreted. As of 2018-02-06, affected by "What you see in WYSIWYG editor is NOT NECESSARILY what you get" (see ticket #6523) arrow
      2. wysiwyg_wiki_parsed disabled : HTML is interpreted. Tiki syntax not interpreted. As of 2018-02-06, affected by No plugins and WYSIWYG help is wrong/broken (see ticket #6527)
  2. Non-WYSIWYG page
    1. HTML not allowed
      1. Regular content (outside WYSIWYG or HTML): HTML is escaped. Tiki syntax is parsed.
      2. Content in HTML plugin
        1. Wiki syntax parameter enabled
          1. Regular content (outside WYSIWYG or HTML): HTML is interpreted. Tiki syntax is parsed. Broken prior to 19 (65157) arrow
          2. Content in WYSIWYG plugin
            1. use_html enabled : HTML is interpreted. Tiki syntax is interpreted. arrow
            2. use_html disabled : HTML is interpreted. Tiki syntax is interpreted. arrow
        2. Wiki syntax parameter disabled: HTML is interpreted. Tiki syntax is not interpreted.
      3. Content in WYSIWYG plugin
        1. use_html enabled : HTML is interpreted. Tiki markup is interpreted, so "What you see in WYSIWYG editor is NOT NECESSARILY what you get" (see ticket #6523), but plugins are still invisible as of 2018-02-06. arrow
        2. use_html disabled
          1. Regular content : HTML is interpreted. Tiki markup is interpreted, plugins are invisible as of 2018-02-06 (see ticket #6551).
          2. Content in HTML plugin?
    2. HTML allowed. Simply enabling HTML affects newlines.
      1. wysiwyg_wiki_parsed enabled: HTML is interpreted. Tiki markup is interpreted arrow
      2. wysiwyg_wiki_parsed disabled: HTML is interpreted. Tiki markup is not interpreted.

Tests

Keywords

The following is a list of keywords that should serve as hubs for navigation within the Tiki development and should correspond to documentation keywords.

Each feature in Tiki has a wiki page which regroups all the bugs, requests for enhancements, etc. It is somewhat a form of wiki-based project management. You can also express your interest in a feature by adding it to your profile. You can also try out the Dynamic filter.

Accessibility (WAI & 508)
Accounting
Administration
Ajax
Articles & Submissions
Backlinks
Banner
Batch
BigBlueButton audio/video/chat/screensharing
Blog
Bookmark
Browser Compatibility
Calendar
Category
Chat
Comment
Communication Center
Consistency
Contacts Address book
Contact us
Content template
Contribution
Cookie
Copyright
Credits
Custom Home (and Group Home Page)
Database MySQL - MyISAM
Database MySQL - InnoDB
Date and Time
Debugger Console
Diagram
Directory (of hyperlinks)
Documentation link from Tiki to doc.tiki.org (Help System)
Docs
DogFood
Draw -superseded by Diagram
Dynamic Content
Preferences
Dynamic Variable
External Authentication
FAQ
Featured links
Feeds (RSS)
File Gallery
Forum
Friendship Network (Community)
Gantt
Group
Groupmail
Help
History
Hotword
HTML Page
i18n (Multilingual, l10n, Babelfish)
Image Gallery
Import-Export
Install
Integrator
Interoperability
Inter-User Messages
InterTiki
jQuery
Kaltura video management
Kanban
Karma
Live Support
Logs (system & action)
Lost edit protection
Mail-in
Map
Menu
Meta Tag
Missing features
Visual Mapping
Mobile
Mods
Modules
MultiTiki
MyTiki
Newsletter
Notepad
OS independence (Non-Linux, Windows/IIS, Mac, BSD)
Organic Groups (Self-managed Teams)
Packages
Payment
PDF
Performance Speed / Load / Compression / Cache
Permission
Poll
Profiles
Quiz
Rating
Realname
Report
Revision Approval
Scheduler
Score
Search engine optimization (SEO)
Search
Security
Semantic links
Share
Shopping Cart
Shoutbox
Site Identity
Slideshow
Smarty Template
Social Networking
Spam protection (Anti-bot CATPCHA)
Spellcheck
Spreadsheet
Staging and Approval
Stats
Survey
Syntax Highlighter (Codemirror)
Tablesorter
Tags
Task
Tell a Friend
Terms and Conditions
Theme
TikiTests
Federated Timesheets
Token Access
Toolbar (Quicktags)
Tours
Trackers
TRIM
User Administration
User Files
User Menu
Watch
Webmail and Groupmail
WebServices
Wiki History, page rename, etc
Wiki plugins extends basic syntax
Wiki syntax text area, parser, etc
Wiki structure (book and table of content)
Workspace and perspectives
WYSIWTSN
WYSIWYCA
WYSIWYG
XMLRPC
XMPP




Useful Tools