Quanta Plus User Manual
 

Quanta Plus User Manual

Christopher Hornbaker <chrishornbaker@earthlink.net>

Fabrice Mous <fabrice@kde.nl>

Robert Nickel <robert@artnickel.com>

Developer: Eric Laffoon
Developer: András Mantia
Developer up to 2.0: Dmitry Poplavsky
Developer up to 2.0: Alexander Yackovlev
Revision 3.1.92 (2003-10-18)

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".

Quanta Plus is a Web IDE that strives to be neutral and transparent to all markup languages, while supporting popular web-based scripting languages, CSS™, and other emerging W3C® recommendations.


Chapter 1. Introduction
 

Chapter 1. Introduction

What is Quanta Plus?

Eric Laffoon <sequitur@kde.org>

Reviewer: Christopher Hornbaker
Reviewer: Fabrice Mous
 

Quanta Plus is a web development tool for the K Desktop Environment. Quanta Plus is designed for quick web development and is rapidly becoming a mature editor with a number of great features.

Our objective remains to create the very best web development tool anywhere. We realize that we will need many more people active to accomplish this, so we are in the process of developing enhancements geared toward making it easy for web developers to customize, extend, and enhance Quanta Plus. Then we will be asking you, the web developers, to contribute your feature enhancements. We will organize these so that Quanta Plus web developers can find just the resources, extensions and custom plug-ins they need to be the most kick butt developers ever.

 
-- Eric Laffoon at http://quanta.sourceforge.net  
Quanta Plus: Where It Was And Where It Is Going
 

Quanta Plus: Where It Was And Where It Is Going

Robert Nickel <robert@artnickel.com>

Reviewer: Christopher Hornbaker
Reviewer: Fabrice Mous

While striving to become the best HTML editor, the developers of Quanta Plus began to think about a rather intriguing idea: “What if Quanta Plus was a generic, extensible, markup language editor?” Well, that would only make it the greatest Web Development Environment for KDE! So it was done.

No longer bound to HTML, Quanta Plus is now well on its way to becoming an all-purpose Web Development Evironment. Essentially, if you can define it in XML™, then Quanta Plus should be able to serve as an IDE for it.

Now, with the above said, it must be noted that Quanta Plus is an outgrowth of the outstanding efforts that have been put forth by the entire KDE development community. Quanta Plus, in celebration of open source, uses the idea of “Why write something somebody already wrote?” Thanks to KDE's framework, not only is this possible, but it also allows users and developers to extend Quanta Plus to match their unique needs.

Quanta Plus provides web developers with an intuitive and powerful multiple document interface (MDI). It can dramatically increase your productivity. Through the use of custom actions, scripting, and toolbars, you can automate almost any task. With the use of Kommander, you can extend Quanta Plus in a manner in which you never have to remember scripting command syntax again. (More about this can be found in Chapter 6.)

Chapter 2. The Fundamentals of Quanta Plus
 

The Fundamentals of Quanta Plus

Robert Nickel <robert@artnickel.com>

Reviewer: Christopher Hornbaker
Reviewer: Fabrice Mous

Within Quanta Plus there are serveral key concepts. To understand and take advantage of Quanta Plus, you must first learn these concepts, the funfamentals. This chapter will explain and show you these concepts, without which Quanta Plus would be primative.

The Workspace

Quanta Plus divides the workspace into three scopes: Global, Local, and Project. These distinctions affect various components in Quanta Plus.

Global

Global items are available to anyone that uses Quanta Plus. From toolbars to actions, everything marked as global is stored in the common Quanta Plus folder structure. This has the effect of allowing a group of admins to save certain toolbars, actions, and templates in the global tree, which can then be used to keep a multi-user installation of Quanta Plus common to everyone on the system.

Local

Local items make up a single user's personal collection of web development resources. These items are made up of a user's templates and toolbars. Local items are stored in a user's home folder. This makes all of the user's Local items available for personal use at instance.

Project

Project items are are only available to a particular project. These can be anything from a CSS™ template to a toolbar with custom actions which perform a special task on a project's files. Simply put, this is the most limited scope. All of the items saved in the project workspace will be saved in the project's folder tree, allowing you to share your specialized tools and templates with whomever else you share your project with.

The Multi-Document Interface
 

The Multi-Document Interface


Quanta Plus editing the document you are now reading.


Quanta Plus' MDI is broken down to three main parts: the editor window, the Quick Info Tabs, and the toolbars. Please see the section called “The Editor Window”, the section called “The Quick Info Trees”, and the section called “The Toolbars” for more information on these parts.

The Editor Window


Quanta Plus' editor window.


Quanta Plus' editor window allows for multiple files to be opened at the same time. When just one file is open, the document fills the entire editor window. As soon as a second document is opened, a small amount of space is taken from the bottom of the editor window to allow for tabs to be displayed with the filenames and a status icon. (The above picture shows a floppy icon beside the filename, indicating that the file has been modified and should be saved.)

At the top of the editor window is the editor toolbar set. Currently, Quanta Plus defaults to HTML 4.01 Transitional, which has a default set of toolbars that are loaded. As Quanta Plus progresses, the toolbars will be updated to meet the needs of users and to make use of newer features.

Toolbar usage is pretty straight forward. If you want to insert a basic tag, like <u>, into your document, then you can click on the icon that represents the tag. Now you can insert your data for the tag you have just inserted. If you wish to insert a tag that requires certain attributes (like an anchor), then you will get a dialog box with the various fields for you to fill in.


The anchor (<a>) dialog.


The Quick Info Trees


The Quick Info Trees.


The Quick Info Trees (QIT) allow you to navigate, open, and gather information in Quanta Plus. Its tabbed format presents you with the Files, Project, Templates, Document Structure, Scripts, Attribute, and Documentation Trees.

QIT Explained

Files Tree

This is where you can browse your entire file system. You are presented with two top-level roots of the file system. The first is your home folder and the second is /. Use these to find existing files on your machine that you would like to edit or add to an active project. right mouse button clicking on a file in this view gives you several options for managing the selected file and, also, allows you to insert the file into an active project, if any, or toggle the view between tree and list.

Project Tree

Project management is one of the many powerful tools that Quanta Plus offers. This tab displays all files within your project and allows you to manage the files within the project through the use of right mouse button clicking. Actions, such as add, remove, upload, or delete files entirely from the disk, can be performed through this menu.

Templates Tree

Another feature of Quanta Plus is templates. Templates can be anything you would like. Images, code snippets, an entire web page, et cetera. It is entirely up to you.

Templates are sorted into three categories, which are based on their scope and the context they are being used. These scopes are carried over from Quanta Plus' workspace. Global templates are usable all times, local templates are usable to the current user, and project templates are usable only within their specified project. More on templates can be found in the section called “Templates”.

Scripts Tree

Here you will find information about the various scripts available for use by you. The Global, Local, and Project concept allows here as well. By left mouse button clicking the entries, you gain access to all the available information about the script. And right mouse button clicking allows you to perform a few actions, such as running the script, editing the script, and emailing the script, for example.

Document Structure Tree

This tab displays the parser's internal representation of your document. By left mouse button clicking on a element, your cursor will taken to the element's position in the document. By right mouse button clicking on an element, you are presented with a number of actions that deal with navigating and updating the tree.

Attribute Tree

This tree appears below all the other QITs. Within it you can quickly edit attributes and namespaces. The content-focused entry system allows you to modify all the available attributes with little more than a few clicks of the mouse.


Attribute Tree


Documentation Tree

Here you can find complete documentation on web technologies to aid your development. You can download pre-packaged documentation for Quanta Plus at Quanta Plus' documentation site, you can create your own documentation, and, by adding a folder named "doc" to a project, you can add, edit, and view project-specific documentation.

The Toolbars


Quanta Plus' HTML toolbars.


Quanta Plus' toolbars have been extended greatly and are easy to understand. You click on the button and you get an associated action from that button. The beautiful part about toolbars is that you can define your own actions graphically within Quanta Plus.

Managing toolbars in Quanta Plus is easy. By selecting the Toolbars menu, you have the options to load, save, add, and email toolbars. When you choose to load a toolbar, you may choose from one of the three workspaces in Quanta Plus. When saving a newly created toolbar, you can save it in the local scope or within a project's scope. If you would like to make a new toolbar available in the global scope, ask your admin to place it in Quanta Plus' global toolbar folder.

Another feature of Quanta Plus is the ability to email your toolbars. Quanta Plus sends the toolbar as a gzipped tar archive through KMail. If you receive a toolbar in email, then you can save (and load) it into Quanta Plus like any other toolbar!

Chapter 3. Working With...
 

Working With...

Robert Nickel <robert@artnickel.com>

Reviewer: Christopher Hornbaker
Reviewer: Fabrice Mous

This chapter describes the parts of Quanta Plus that you will be interacting with mostly. These not only make your more productive, but they also allow you to customize Quanta Plus to your work-flow.

Toolbars

As previously mentioned, toolbars in Quanta Plus are primarily managed through the Toolbars menu. Usability and creation are somewhat different. The creation of toolbars is discussed in a later section entitled “Creating Toolbars.”

Using toolbars is quite simple. When you click on an icon for a desired element or action, one of three possibilities occur: the element is inserted (optionally with a closing element); or an element dialog is activated, allowing you to fill in the attributes in a dialog box; or, lastly, an action is activated and does something nifty for your current file or project. If you find yourself doing tedious and redundant typing for a particular element, that is not in Quanta Plus, then you can add it. See the section called “Document Type Editing Package (DTEP)” for more information.

A tag dialog looks just like the following:


An example of a tag dialog.


The above image is the dialog for the anchor tag. If you know XHTML™, then you should have noticed that all the attributes that you can use, in an anchor element, are available. Notice the tabs above for Main, Core and i18n, Events, and Focus, they hold all of the other attributes, according to their purpose, available to the anchor element. All you need do is: fill in the blanks for the attributes you want in your anchor, omit the attributes you do not want, and click OK. You now have a well formed anchor set down at the current cursor position.

Projects
 

Projects

Robert Nickel <robert@artnickel.com>

Reviewer: Christopher Hornbaker
Reviewer: Fabrice Mous

New Projects

The Quanta Plus project wizard (Project->New Project) makes project creation an easy task.


The Project Wizard.


The fields are pretty straight forward. It is best to fill them in from top to bottom. Filling in a project name will autocomplete all the folder structure for the rest of the project. All of the paths and author information fields can be configured later on clicking Project->Project Options (F7).

General Project Settings

Name

Here you fill in the name for your project. For example, we will call ours “foo.” When you fill in Name, File is filled out for you automatically.

File

This is the name of the Quanta Plus project file. By default, it is the name of your project, but in lowercase letters and without spaces. It uses the extension webprj (e.g. foo.webprj). This file is stored in the root of the project's Main Folder.

Server Settings
Protocol

Here you select the protocol you will be using to access you project. If your project is on the same machine that you are using Quanta Plus on, then leave the value at Local. The list of protocols shown here is dependant of your system setup. Available protocols include SSH, FTP, NFS, SMB, WebDAV, and many others. The protocol list is powered by KDE's powerful KIOSlave architecture. This framework allows every KDE application to easily access remote information as if it is local to the machine.

Host

Here you fill in the server address of the machine you want to access, unless you are working through the Local protocol. Either a hostname (hostname.example.com) or an IP address (127.0.0.1) can go here.

User

User name for logging onto the remote machine. This is case-sensitive.

Password

Password for logging onto the remote machine. This is case-sensitive

Port

Leave this field blank to use the default port for the protocol you are using. You may need to change this depending on your server's configuration.

Folder Settings
Main Folder

This is the root folder where all of the project files and folders will be stored.

Templates Folder

This is where the templates for this project will be stored. By default, its path is: Main Folder/templates; for example /home/johndoe/projects/example_project/templates. If you have a common set of files that you use for several projects, then it may be useful to point this field to it, instead of to the default.

Toolbars Folder

This is where the toolbars for this project will be stored. By default, it is Project destination /toolbars. If you have a common set of toolbars that you use for several projects, it may be useful to point this there instead of the default.

Project Sources
Add local or remote files

This allows you to get files from the local file system. You can choose multiple files or entire folders.

Use wget to download files from site

This option is great if you have static web content that you wish to download and modify. For server side scripting (e.g. PHP, Python, etc..) you will have to get the files another way.

Insert Files in Project

Insert file from

Check this if you wish to include files found in the path of the Main Folder. Leave unchecked when starting a project from scratch.

Filters
Insert only markup, script, and image files

Choosing this option will only insert markup, script, and image files into your project.

Insert files with the following mask

Choosing this option will display all files and folders within the Main Folder and allow you to be more specific with your choices.

Included files

This displays a list of the files in the Main Folder. You can choose the desired files for inclusion, by checking, or exclusion, by unchecking, in your project.

More Project Settings

Author

Insert your name (or alias) here.

Email

The address where you would like email regarding this project to go.

Project Defaults
Default DTD

Choose the markup language you will be working with the most within this project.

Default encoding

Choose the character encoding you wish the files in your project to be opened and saved with.

Use preview prefix

Check this to use a prefix for your previews. This allows you to set the path prefix to something other than your local file system. This is most useful for pages that contain dynamic content and are dependent on server processing (like PHP, JSS, Python, etc.). Simply type in the first portion of the address as it exists on that server and the filepath at the end will be complete by Quanta Plus. For example, if you have the domain bar.com and you are editing the index.html page, you could edit it on your remote machine (foo.bar.com), upload it to the server and press F6 to see the results from www.bar.com instead of your local file system.

Prefix

Enter the prefix you wish to use here.

Insert global templates

This makes a copy of the global templates in your projects folder tree.

Insert local templates

This makes a copy of the local templates in your projects folder tree.

The last screen of the new project wizard has 3 settings that can make your life easier. These settings are available for change from the Project->Project Options menu tree on the Network Tab or with the keyboard shortcut F7.

Using Projects

Project Files

By default Quanta Plus will open the last project accessed when launched. This behavior is not currently configurable.

To open another project, select Open from the Project menu or the Open Project icon on the toolbar. The open project dialog will pop up and allow you to choose the project you wish. Projects have a webprj extension.

When closing Quanta Plus, your project file will be saved automatically. You will be asked to save any changes before exiting if Quanta Plus detects any changed files. This same behavior occurs if you load a new project.

The Project Tree View

The project tree view gives you uncluttered access to the files in your project. This is where you manage the files in the current project.

For files, a right mouse button click brings up the following menu:



These items are fairly self-explanatory and will be left to the reader for exploration.

Folders are similar but do not contain the Open With and Open in Quanta Plus right mouse button menu items:



These items are left to the reader for exploration as well.

Uploading Projects

The Upload Projects dialog:


The Upload Projects dialog.


Host

This is the hostname of the server your copying the files to. Either fully qualified domain name, or an IP address will work.

Protocol

Transfer protocol to use for this upload. Depending on your version of KDE this list will vary. At the very least you should be able to choose from FTP, file (i.e. local) and NFS.

Port

Port for the transfer. Usually this will not need to be changed unless your network administrator is hosting a service on a port other than its well known port.

User

User name to use for authentication.

Password

Password to use for authentication.

Keep Password

Depending on your level of paranoia, this is a time saving feature, or a danger. Use it at your discretion. The password is kept on disk in plain text.

Path

This is the base path on the remote host that you will be copying files to.

Upload

Start the upload

Cancel

This will abort your transfer in progress or just exit out of the dialog if you change your mind before starting the upload.

All

Select all files in your project for upload.

Modified

Select all modified files for upload.

None

Unselects all files in the list.

Invert

Selects/Unselects all files in the list.

Expand All

Expands all folders.

Collaspe All

Collaspes all folders.

Update All

Refreshes list.

Templates
 

Templates

Templates are basically skeleton documents, code snippets and files to link to. Quanta Plus uses templates fundamentally as a standard file system with enhanced organization and interfacing. You can copy, move or link any repository currently on your system into the templates tree. Think of Quanta Plus templates as having roughly the limitations to your imagination that your file system has.

Templates exist in nested folders. There is no limit to how deep you can nest them however within any given folder Quanta Plus expects a consistent action for the base template type described below. Additionally templates allow for pre and post text to be concatenated to non document type templates. This facilitates tag creation. The next update after the introduction is scheduled to add the ability to pass variables to the text such as image size information to assist in tag creation.

Our goal with templates is to extend them to include multi file “ concept” templates useful for things like placing an order or creating an about section, Ideally this will be a tool for making your work more productive and dynamic. An eventual goal is to have a structural template design mode to deal with site layout and structure which you could use to design and interactively update your sites. If you would like to be involved, check out our help wanted page.

Important

Some of the templates that ship with Quanta Plus have conditions for their usage. Please read carefully the usage statement of conditions at the top of each template before you use it.

Template Types

Currently templates are limited to being one of the following types of objects:

Document
Text to insert in a document
A file to link to form a document

Documents can be any type of document. Generally you would want to nest more specific or diverse documents in subfolders. Here you can make a basic framework for what you do and deliver it to your work in an organized fashion and realize much better efficiency. Text insertion could be anything from a snippet of code to a script or whatever you might wish to use. This overlaps the ability to insert text blocks as an action which can be triggered from the toolbar. Linked files can be binary, PHP class libraries or whatever you like.

Template Scopes

Templates are accessible based upon their established workspace in Quanta Plus

Creating Templates

Create a document structure that you love (XML™, HTML, DocBook, etc..) and click on File->Save as Template->Save as Local/Project Template.

Once this is done, you will notice that (even if it is saved as a Project template) the template does not show in the project tab view. Look into the templates view to find your template under the Project templates tab.

Additionally if you look at your options with the right mouse button you will see complete file management tools for creating folders or copying and pasting templates from one location to another.

Using Templates With Projects

Project templates allow you to be more tightly focused. You can create headers, footers or go dynamic with PHP include files and link them. Additionally there are some very cool things we took into consideration when using templates in projects.

When creating a project you can opt to copy to your local project all the existing global and user templates. Legacy project get default templating abilities so nothing is lost You can choose where to locate your template files so they can be in your server root and easy to upload or you can make them secure to link to below server root which is a very cool trick. When linking to a file not in the project templates you will be prompted to copy the file to the project templates prior to linking. This will prevent broken links on upload. You always have control where you place your templates so you can choose to move them. However Quanta Plus does not track this so you will need to change links.

Managing Template Behavior

Template structure on the template tab is based on the files found in $KDEDIR/share/apps/quanta/templates and $HOME/.kde/share/apps/quanta/templates. Each of these folders is specified as one of three types of container:

files/all

Binaries and such things that get inserted by their URL (i.e. images as an <img src=/src/url>).

text/all

Text that you can insert into the current Quanta Plus document, such as repetitive blocks.

template/all

Document templates which you can create new documents from. These open a new window in Quanta Plus.

To set the behavior of each folder, right mouse button click in the template view on the folder and choose Properties. The following dialog will come up:


Properties dialog.


Type

Drop down box with the three types discussed previously; files, text, template. This box will be grayed out if you have the inherit parent attribute box checked.

Inherit parent attribute (<foo>)

This is checked by default and is fine for all but the top level folders in your templates tree. If the top level folder has this checked, it will basically deactivate templates for that folder and all that aren't explicitly set below it. If this is not a top level folder, then the <blah> will say something like text/all. If it says nothing, then chances are that you are on a top level folder.

Use pre/post text

Enables pre and post text for templates in this folder. This could be a common header/footer for all of your templates for a given project and then you copy content templates into that folder and have a complete page with the custom header/footer as a starting point.

Pre-text

The actual text to insert before your templates content.

Post-text

The actual text to insert after your templates content.

Visual Page Layout
 

Visual Page Layout

Nicolas Deschildre <nicolasdchd@ifrance.com>

Reviewer: Christopher Hornbaker

VPL Modes

The Visual Page Layout (VPL) editor (also known as WYSIWYG (What You See Is What You Get)) allows you to edit a HTML or XHTML™ document while seeing the changes on-the-fly. Just like your favorite wordprocessor, you can click on your document and a cursor will appear, thus enabling you to enter text, insert images, apply text decorations, etc.. VPL's aim is to allow you to create great, valid web pages without any knowledge of Internet markup languages.

Quanta Plus offers two modes: VPL Editor and VPL & Source Editor, which are accesible from the View menu. The first replaces the Source Editor with the VPL Editor, and the second splits the editor window into two parts: the Source Editor and the VPL Editor.

The VPL Editor works like so: It loads a document like a normal HTML or XHTML™ page and a cursor appears. Then you can edit it, and switching back to Source Editor, you see that the changes you made on the VPL Editor have been merged in the Source Editor.

Note

When working in the VPL Editor with a document that contains PHP, you will see a small green icon representing the PHP code. You cannot directly edit it with the VPL Editor. To edit PHP, you will still need to use the Source Editor. There are no plans to change this functionility.

The second mode behaves exactly like the first, except that you instantely see the impact that your changes have made, either in the Source Editor or in the VPL Editor, and the cursors of the source editor and of the VPL Editor are synchronized. Pressing F9 loads this mode, but, if it is already loaded, it will move the focus from one view to the other, while keeping you at the same location of the document.

The refresh intervals between the VPL Editor and the Source Editor are configurable. Go to Settings->Configure Quanta.... Select the VPL View tab. You can choose whether you want to refresh a view only when you click on it or automatically. If you choose automatically, then you can choose a refresh interval. The general recommendation is: A smaller number for fast computers and a bigger number for slower ones.


The VPL & Source Editor mode.


VPL Editing

The Document Properties Dialog

Now, let's say you want to edit the title of your web page. How do you do it? Simply launch Tools->Document Properties. This tool allows the edition of “invisible” tags when using the VPL Editor. The Document Properties dialog is also launched when you create a new document while in the VPL Editor. This is in order to lessen the amount of hand coding you need to perform. With it, you can edit:

Title

The title of the document.

Meta items

Meta tags allow you to store informations about the document itself e.g. keywords for the Internet search engines. You can add or remove Meta items by pressing the two buttons below, and edit them by clicking on the list e.g. put “keywords” on the “name” column and “keyword1 keyword2” on the “content” column.

CSS Rules

CSS Rules are the new way to tell your web browser how to present the page. You can add or delete the CSS Rules by pressing the buttons below. You can also fill the fields like the Meta items. The edition of CSS Rules is not yet supported.

Link CSS Stylesheet

You can also link an external CSS stylesheet. Simply click on the Browse button and select your file.

The VPL Editor

You can use your cursor like you do in a wordprocessor, moving with the arrows. It may come that the cursor does not want to go where you want it to go (a pesky bug). Selection also works as usual. You can insert text by typing and remove text by pressing the Backspace or delete key.

Now we come to tag insertion. You can insert images, applets, text decorations such as bold and so on by using the same toolbars you use in the source editor. Note that the insertion of tags does not remove previous identical tags e.g. if you insert an anchor tag around some text, then you must remove any other anchor tag around it.

Note

Some toolbar items will be disabled, such as the Table Wizard or Quick List Wizard. They will work later in VPL, but, for this release, you should use the Tables or Lists toolbars.

To edit a tag (be it an image, an applet, or whatever), switch to the Attribute Tree, accessible via View->Tree views. Click on the tag you wish to edit, or, if you cannot access it, click on an object contained by it. The Attribute Tree will show the current tag name as well as a list of all its parents and attributes. Currently VPL does not support, say, XHTML™+MathML, but you will see that you can edit namespaces via this view. You can simply click on the Value field and modify whatever you want. If you want to access a parent of the current tag, then select it and the Attribute Tree will load it.

To delete a tag, we will use the Attribute Tree. Have you noticed the two little red crosses at the top-right corner? The first one deletes only the currently selected tag and, if the HTML/XHTML™ specification does not allow some childs of the deleted tag to be child of the parent tag of the tag set to be deleted, then they are also deleted, and so on. The second cross will delete the selected tag as well as all of its children, so be careful!

Chapter 4. The Menubar
 

The Menubar

Robert Nickel <robert@artnickel.com>

Reviewer: Christopher Hornbaker
Reviewer: Fabrice Mous

This chapter explains all the various functions that can be found in the menubar.

The File Menu

File->New (Ctrl+N)

Create a new, blank file.

File->Open... (Ctrl+O)

Search the file system to open an existing file.

File->Open Recent

Quick list of the last several files you've opened. This list will change each time you open a file that is not on it, with the oldest being bumped off first.

File->Save (Ctrl+S)

Save the active file's changes.

File->Save As...

Save the active file with another name.

File->Save as Template

This allows you to save code snippets and entire files as a template for later use. See the section on templates. If you try to save the selected text/file outside of the local/project template dir, then you will receive an error.

File->Save as Template->Save as Local Template...

Allows you to save a file as a template within the local scope.

File->Save as Template->Save as Project Template...

Allows you to save a file as a template within the project scope.

File->Save as Template->Save Selection to Local Template File...

Allows you to save the selected text (e.g. a code snippet) in a local template file.

File->Save as Template->Save Selection to Project Template File...

Allows you to save the selected text (e.g. a code snippet) in a project template file.

File->Save All... (Ctrl+Shift+S)

Save all modified files in the editor.

File->Reload (Ctrl+F5)

Reloads the current focused document.

File->Print... (Ctrl+P)

You can actually print out your documents. Uses the kprinter interface.

File->Close (Ctrl+W)

Close the currently displayed file.

File->Close All

Close all open files. Prompts you to save if any files have been modified.

File->Quit (Ctrl+Q)

Exit Quanta Plus

The Edit Menu
 

The Edit Menu

Edit->Undo (Ctrl+Z)

Undo the last action performed.

Edit->Redo (Ctrl+Shift+Z)

Redo the last action undone.

Edit->Cut (Ctrl+X)

Cut the current block of text and place its contents on the clipboard.

Edit->Copy (Ctrl+C)

Copy the current block of text to the clipboard.

Edit->Paste (Ctrl+V)

Paste the contents of the clipboard at the current cursor position.

Edit->Paste Special

Edit->Paste Special->Paste HTML Quoted

Converts the clipboard text HTML special characters to HTML entities before pasting into the text body, so they show up properly when viewed and aren't picked up as tags by the client browser.

Edit->Paste Special->Paste URL Encoded

Converts the clipboard text into URL encoding, which is the correct way to include special characters and spaces into URLs. Used primarily when pasting a URL into an anchor tag.

Edit->Select All (Ctrl+A)

Select all of the text in the current document.

Edit->Deselect (Ctrl+Shift+A)

Unselect all text in the current document.

Edit->Toggle Block Selection (F4)

Turn on/off block highlighting. Allows you to select text blocks with your keyboard without holding down the shift key.

Edit->Toggle Insert (Inset)

Overrides the Insert key.

Edit->Find... (Ctrl+F)

String or regular expression pattern to find in the current document.

Edit->Find Next (F3)

Repeat the find downward in the document from the current location.

Edit->Find Previous (Shift+F3)

Repeat the find upward in the document from the current location.

Edit->Replace... (Ctrl+R)

String or regular expression replacement of text in the current file.

Edit->Find in Files... (Alt+Ctrl+F)

Find a string or expression in files in the selected folder. Sort of a GUI grep or sed with some predefined pattern spaces to help you out.

Edit->Indent (Ctrl+I)

Move the selected block of text one tab width to the right.

Edit->Unindent (Ctrl+Shift+I)

Move the selected block of text one tab width to the left.

Edit->Clean Indentation

Removes all indentation.

Edit->Comment (Ctrl+#)

Comments selected text.

Edit->Uncomment (Ctrl+Shift+#)

Uncomments selected text.

Edit->Expand Abbreviation (Ctrl+J)

Expands the abbreviations.

Edit->Apply Word Wrap

Wrap the text in the current window to a predefined width.

Edit->Go to Line... (Ctrl+G)

Go directly to a specific line number. This is really helpful when your PHP script is breaking unexpectedly!

Edit->Spelling...

Check the spelling in the current document.

The View Menu
 

The View Menu

View->Tree Views
View->Tree Views->Show Files Tree

Toggle display of the files tree.

View->Tree Views->Show Project Tree

Toggle display of the project tree.

View->Tree Views->Show Templates Tree

Toggle display of the template tree.

View->Tree Views->Show Scripts Tree

Toggle display of the scripts tree.

View->Tree Views->Show Structure Tree

Toggle display of the document structure tree.

View->Tree Views->Show Attribute Tree

Toggle display of the attribute tree.

View->Tree Views->Show Documentation Tree

Toggle display of the documentation tree.

View->Show Toolbar

Toggle on and off the display of the toolbar.

View->Show DTD Toolbar

Toggle on and off the display of the DTD specific toolbar.

View->Show Statusbar

Toggle on and off the display of the status bar at the bottom of the main Quanta Plus window.

View->Show Messages (Ctrl+M)

Toggle display of the message window. This is the window where you see the output of any scripting actions and the debugger.

View->Show Problem Reporter

Toggle display of the Problem Reporter at the bottom of the main Quanta Plus window. The Problem Reporter activates when you switch to the Structure Tree.

View->Show Icon Border (Shift+F9)

Toggle display of the icon border to the left of the main editor window. This bar allows for click toggling of bookmarks.

View->Show Line Numbers (F11)

Toggles the display of line numbers along the side of the main editor window.

View->Dynamic Word Wrap (F10)

Toggle on and off reformatting of text to a specific width as you type.

View->Source Editor (Alt+F9)

Switch to the source of a document to edit.

View->VPL Editor (Ctrl+Shift+F9)

Switch to the VPL Editor to edit a document.

View->VPL & Source Editors (F9)

Switch to split screen mode to edit a document.

View->Preview (F6)

Preview the current document.

View->Back (Alt+Left Arrow)

Navigate back one step in the preview.

View->Forward (Alt+Right Arrow)

Navigate forward one step in the preview after having gone back in the preview.

View->Reload Preview (F5)

Reload the preview from disk.

View->View with Konqueror (Ctrl+F6)

View the current file with Konqueror.

View->View with Mozilla (Alt+F6)

View the current file with Mozilla®.

View->View with Netscape® (Alt+Ctrl+F6)

View the current file with Netscape®.

View->View with Opera (Ctrl+Shift+F6)

View the current file with Opera.

View->View with Lynx (Shift+F6)

View the current file with Lynx (a text based browser).

The Bookmarks Menu
 

The Bookmarks Menu

Bookmarks->Toggle Bookmark (Ctrl+B)

Toggle a bookmark at the current line location in the current file.

Bookmarks->Clear Bookmarks

Clears all set bookmarks.

The Project Menu
 

The Project Menu

How to use projects in Quanta Plus is described in the section called “Projects”.

Project->New Project...

Launch the project creation wizard.

Project->Open Project...

Open an existing project file from disk. Quanta Plus projects are saved with the .webprj extension.

Project->Open Recent Project

Gives you a list of your most recently used projects for quick access.

Project->Close Project

Close the current project.

Project->Open Project View...

Open a “View”, a specific combination of open files that you have previously saved.

Project->Save Project View

Save the current set of open files as a “View”.

Project->Save Project View As...

Save the current set of open files as a “View” under another name.

Project->Delete Project View...

Delete a “View”.

Project->Insert Files...

Presents a dialog that allows you to select files to add to your current project. These files will then be copied into the project folder for editing.

Project->Insert Folder...

Insert a folder and all of its contents into the current project.

Project->Rescan Project Folder

Scan the project folder for any new files you may have there. This allows you to copy graphics into your project folder or a subfolder thereof and then add them to the project.

Project->Upload Project (F8)

Upload the files in your project to the hosting server. The list of available transports depends on the version of KDE you are running and whether or not you've downloaded extra KIO slaves.

Project->Project Options (F7)

Settings affecting the way Quanta Plus manages your project. See the Quanta Plus projects section for details.

The Toolbars Menu
 

The Toolbars Menu

Toolbars->Load Toolbars
Toolbars->Load Toolbars->Load Global Toolbar...

Loads a globally defined toolbar. These are kept in $KDEDIR/share/apps/quanta/toolbars by default.

Toolbars->Load Toolbars->Load Local Toolbar...

Loads a locally defined toolbar. These are kept in $HOME/.kde/share/apps/quanta/toolbars by default.

Toolbars->Load Toolbars->Load Project Toolbar

Loads a project toolbar. These are kept in ProjectDir/toolbars and are only available in this menu if they have been assigned to this project.

Toolbars->Save Toolbars

Dialog for saving your toolbars. Allows you to pick the type of toolbar; Local or Project.

Toolbars->Save Toolbars->Save as Local Toolbar...

Save as a local toolbar to $HOME/.kde/share/apps/quanta/toolbars

Toolbars->Save Toolbars->Save as Project Toolbar...

Save as a project toolbar in ProjectDir/toolbars

Toolbars->Add User Toolbar

Brings up a dialog to create a new toolbar. This only creates the name. Actions must be added from the Settings->Configure Actions menu item. Toolbars are saved via the Toolbars->Save Toolbars menu or on close unsaved toolbars will prompt for you to save.

Toolbars->Remove User Toolbar

Remove a toolbar from usage. This does not remove it from the disk. If you've not saved the toolbar you are removing, you will be prompted to save it.

Toolbars->Rename User Toolbar

Allows you to rename a toolbar.

Toolbars->Send Toolbar in E-Mail

This is a hook to email your custom toolbar to someone (maybe the Quanta Plus team for inclusion in the next release!) for their use. It spawns an email window and attaches your toolbar file to it automatically.

The Tags Menu
 

The Tags Menu

This menu contains a list of the elements that are in the currently loaded toolbars. If you have the Standard (HTML) toolbar loaded, the Tags menu will contain a submenu Standard which will contain the list of tags/actions on that toolbar.

Tags->Edit Current Tag... (Ctrl+E)

Allows you to access the current markup tag settings dialog if one exists. This entry is always present, followed by the DTD specific submenus.

The DTD Menu
 

The DTD Menu

Christopher Hornbaker <chrishornbaker@earthlink.net>

DTD->Change the DTD...

Pops up a dialog box that allows you to change the current documents DTD

DTD->Load & Convert DTD...

Load a DTD that you or someone else made and convert it to Quanta Plus' native description format.

DTD->Load DTD Package (DTEP)...

Load a your own DTEP.

DTD->Send DTD (DTEP) Package in E-Mail...

Send your DTEP to a friend via KMail.

The Plugins Menu
 

The Plugins Menu

Plugins->Edit

Pops up a dialog box that allows you to load plugins (KParts) into Quanta Plus.

Plugins->Validate

Validates that Quanta Plus is able to load the plugins the user has entered.

Plugins->Plugin

The Plugins menu lists the available plugins under the above menu items. Clicking them will activate them. Clicking an activated plugin will deactivate it.

The Tools Menu
 

The Tools Menu

Tools->Document Properties

Edit specific properties of a currently loaded document when using the VPL Editor.

Tools->Convert Tag & Attribute Case...

Convert all tags and/or attributes character cases to another.

Tools->List Opened Files... (Alt+0)

Opens a dialog that highlights all opened files.

Tools->HTML Tidy Syntax Checking (Alt+Ctrl+T)

Checks the syntax of the current document against the selected DTD.

The Settings Menu
 

The Settings Menu

Settings->Configure Quanta...

Setup the behavior of Quanta Plus.

Settings->Configure Editor...

Setup the behavior of the editor window. See the documentation on Kate for details.

Settings->Configure Actions...

This is where you define the actions for use on toolbars.

Settings->Configure Toolbars...

Dialog that allows you to add/delete items to/from toolbars and change the order the icons appear in.

Settings->Configure Shortcuts...

Allows you to configure the many editor shortcuts available to Quanta Plus.

Settings->Highlight Mode

Choose the syntax highlighting mode for the current file. The list of available highlighting schemes varies depending on your version of Kate.

Settings->End of Line

Select the end of line encoding type. Useful if you have folks using other operating system platforms to develop on. Choose from Unix, Windows/DOS or Macintosh.

The Help Menu
 

The Help Menu

Quanta Plus contains a standard KDE Help menu with the addition of these items:

Help->Context Help (Ctrl+H)

This should produce help based on the current pointer context. At the time of this writing this feature is not implemented.

Help->Make A Donation

Quanta Plus is a high quality product that is freely available, and freely licensed, but like any open source project, its developers can always use help. If you would like to support Quanta Plus development in a financial manner, you can find out how to here.

The standard KDE help menu items are as follows:

Help->Quanta Plus Handbook (F1)

Invokes the KDE Help system starting at the Quanta Plus help pages. (this document).

Help->What's This? (Shift+F1)

Changes the mouse cursor to a combination arrow and question mark. Clicking on items within Quanta Plus will open a help window (if one exists for the particular item) explaining the item's function.

Help->Report Bug...

Opens the Bug report dialog where you can report a bug or request a “wishlist” feature.

Help->About Quanta Plus

This will display version and author information.

Help->About KDE

This displays the KDE version and other basic information.

Chapter 5. Advanced Features
 

Advanced Features

Christopher Hornbaker <chrishornbaker@earthlink.net>

This chapter outlines the advanced features of Quanta Plus and how to use them.

XML™ Tools

The 3.2 release of Quanta Plus brings with it many new XML™ tools and features. The tools are unique in their integration within Quanta Plus. All of these tools use Kommander as a front-end and libxml2 and libxslt as a back-end. The combination of these makes for fast, efficient, productive, and complete tools.

KDE Documentation Tools

Quanta Plus supports KDE's two main documentation tools: meinproc and checkXML.

meinproc

Anyone who has worked with KDE documentation knows meinproc and how superb it is. Well, take it up a notch with a great graphical interface! No longer resort to a shell; just click the icon that resembles a processor and you are done!

Current Working Folder

This application expects an index.docbook file to be present in a folder. If index.docbook is in the current working folder, then simply leave Current Working Folder checked. If it is not, then uncheck Current Working Folder and enter the folder you wish to process in the Other Folder field.

Note

Outputted files are placed in the same folder as the sources files. All HTML files are removed each time meinproc is ran.

checkXML

Again, anyone who has worked with KDE documentation knows this helpful application. Again, Quanta Plus provides a great little graphical front-end to this one.

Current Working Folder

If the currently opened file is the index.docbook file, then simply leave Current Working Folder checked. If it is not, then uncheck Current Working Folder and enter the folder of where index.docbook can be found.

Output

If there is output, then your file is invalid. Please correct the reported errors and try again.

XML™ Validation

Quanta Plus has a great XML™ validation tool, which uses a xmllint back-end.

Current File

If the file to be validated is currently focused on in Quanta Plus, then simply leave Current File checked. If it is not, then uncheck Current File and select the file to be validated from the Other File file selector.

Well-formed Checking

If you only wish to know only if the file is well-formed, click the Well-formed Checking Only check box.

Definition URI

If you are using a DTD and it is specified within the XML™ file, then select DTD (Internal) (default), else select DTD (External) and locate the DTD with the Definition URI file selector. Both W3C® XML™ Schema and RelaxNG validation are required to be externally defined via the Definition URI file selector.

XSL™ Processing

Yep, Quanta Plus has a XSL™ processing tool, too! This uses the xsltproc tool provided with libxml2.

Current File

If the file to be processed is currently focused on in Quanta Plus, then simply leave Current File checked. If it is not, then uncheck Current File and select the file to be processed from the Other File selector.

Stylesheet

Select the XSL™ file that you wish to be used.

Output file name

Enter the name of the file that you want the resulting file to be called. File is outputed to your home folder by default.

Note

This application lacks flexibility. Sorry, we will do better next time.

Using Plugins
 

Using Plugins

Mathieu Kooiman <quanta@map-is.nl>

What is a Plugin?

Quanta Plus is able to load plugins, which are KParts. The KPart framework is another very powerfull framework of KDE. A KPart is a relativly small, reusable container of functionality. It allows KDE developers to easily build on the work of other programmers. One example of this is Quanta Plus itself. The editor Quanta Plus uses is the Kate KPart. The Kate KPart already had a bunch of functionality that Quanta Plus needed, like syntax highlighting. Integrating it into Quanta Plus allowed the Quanta Plus developers to focus on what Quanta Plus should be able to do, rather than facing the many problems that developing a new editor KPart/component from scratch would bring.

The plugins Quanta Plus loads might have nothing to do with Quanta Plus itself. This makes it a very powerful plugin system. You can benefit from extra functionality and need not to wait until someone integrates it into Quanta Plus! The plugins can be loaded into a number of GUI elements. More on this below.

Understanding the Edit Plugin Dialog

To install a Plugin or KPart we will work from the Plugins->Edit menu. This will bring up the following dialog:


The Edit Plugin dialog.


This dialog lets you manage all defined plugins and lets you add new ones. We will describe each GUI element in here:

Search paths

Here you can fill in a search path. When adding a plugin without a Location, Quanta Plus will search these paths to find the plugin.

Add

This will bring up a dialog which allows you to add a new plugin.

Configure

This will allow you to change the settings of a particular plugin.

Remove

Removes the currently selected plugin.

Refresh

Refreshes the dialog's contents.

Debugging in Quanta Plus
 

Debugging in Quanta Plus

Christopher Hornbaker <chrishornbaker@earthlink.net>

Using the PHP Debugger

The current PHP debugger shipped with Quanta Plus is very unusable. This debugger will be removed from Quanta Plus in the next release (3.3) and has been disabled by default on the current (3.2) release. Expect a new debugger for the 3.3 release.

Using KXsldbg, the XSL™ Debugger

KXsldbg is the creation of Keith Isdale, as is this section of the documentation. KXsldbg is a KDE front-end and a KPart to xsldbg, which you can find at http://xsldbg.sf.net along with many other works by Keith.

To start KXsldbg, select Plugins->KXsldbg.

Please refer to the KXsldbg documentation for further information regarding its usage.

Chapter 6. Extending Quanta Plus
 

Extending Quanta Plus

Christopher Hornbaker <chrishornbaker@earthlink.net>

This chapter describes how to customize Quanta Plus to your particular needs and how you can help Quanta Plus become better.

Document Type Editing Package (DTEP)

Document Type Editing Packages (DTEPs) are used in Quanta Plus to add support for markup, scripting languages, and CSS™. They allow Quanta Plus to provide features like auto-completion and node trees. Their simplicity and flexibility are what make Quanta Plus a fast, developer friendly IDE for web developers. They are what make Quanta Plus an easy-to-use, productive environment.

DTEPs come in two flavors, Family 1, which are markups, and Family 2, which are scripting and CSS™. DTEPs are made up of two parts, the Tag Folder and the Toolbars. Tag Folders are composed of two types of files, the description.rc and TagXML files, which carry the extension .tag. Toolbars are the handy, icon-oriented tabs of buttons (above the editing window) which place text into a document faster than the user can type.

This document describes how to make TagXML files, the description.rc, and toolbars. In short, a DTEP.

TagXML files (.tag) define both the attributes specific to a tag and the layout and contents of the properties dialog Quanta Plus shows for the tag. The description.rc file provides rules and information on the DTEP itself. Toolbars provide a quick means for adding tags into a document without worry of mis-spellings and such.

Packaging

Tag Folders are just that, folders. They are composed only of the description.rc and TagXML files. Tag Folders carry the name of the mark-up language and version, if applicable. (For example, html-4.01-strict)

TagXML

The table below lists the elements defined in TagXML and declares whether they are required or not. While not all are required, it is recommended that you use as many as you can so that other users can have a better experience and more information to work with.

ElementDefault UsageCase Usage
TAGSrequiredalways
tagrequiredalways
labeloptionalrequired to create a properties dialog
attroptionalrequired to define an attribute
tooltipoptionalrequired to have the properties dialog display a tooltip
whatsthisoptionalrequired to have the properties dialog display a “What's This ”
listoptionalrequired when an attr is of the type “list”
itemoptionalrequired when <list> is used
textlocationoptionalalways
locationoptionalrequired when label is used
textoptionalrequired when label is used
childrenoptionallist of tags that can appear within the tag being defined
childrequireda children entry
stoppingtagsoptionallist of tags that tell another tag to end
stoppingtagrequireda stoppingtags entry

TagXML Element Descriptions

The following sections will describe, in detail, each element. Everything from where they can go to what goes in them is layed out in an easy-to-follow manner.

TAGS

This is the root element of a TagXML document. It may appear in a document only once. It can contain the definition of multiple tags. This is an element-only type element.

Parent(s)Children
NONEtag
tag

Wrapper for tag being defined. This is an element-only type element.

Parent(s)Children
TAGSlabel, attr, stoppingtags
AttributeTypeValuesDefaultUseDescription
namestring  requiredSpecifies the name of the tag being defined.
singleboolean  optionalSpecifies whether or not the tag requires a closing tag </(tagname)>.
typestring xmltagoptionalSpecifies the type of tag being defined.
  xmltag  Type of tag is XML-based. (Family 1 only.)
  property  Type of tag is CSS™ related. (Family 2 only.)
  function  Type of tag is a script function. When used, <attr> becomes arguments of the function. (Family 2 only.)
  class  Type of tag is a script class. (Family 2 only.)
returnTypestring void optionalSpecifies the return type of tag being defined. (Family 2 only.)
  void  Type of tag returns void.
  int  Type of tag returns int.
  float  Type of tag returns float.
  long  Type of tag returns long.
  string  Type of tag returns string.
label

Place a label in the dialog. The text is specified by the <text> tag. This is an element-only type element.

Parent(s)Children
tagtext, location
attr

Defines an attribute of the tag. This element occurs once for each attribute. It defines the name and type of attribute. It also contains additional tags that specify how this attribute should be displayed, et cetera. This is an element-only type element.

Parent(s)Children
taglocation, list, tooltip, whatsthis, textlocation
AttributeTypeValuesDefaultUseDescription
namestring  requiredSpecifies the name of the attribute being defined.
typestring inputrequiredSpecifies the type of the attribute being defined.
  input  Field supports free text entries (text field).
  check  Field value is boolean (check box).
  color  Field value is a color.
  url  Field value is a URL. (Local file to refer to.)
  list  Field value is an item from a specified list.
statusstring optionalrequiredSpecifies whether or not the argument is required. (Family 2 only.)
  optional  Argument is optional.
  required  Argument is required.
  implied  Argument is implied.
tooltip

Defines the tooltip for a field in the dialog. This element is text-only.

Note

Currently only plain text is supported (you cannot use any markup).

Parent(s)Children
attrNONE
whatsthis

Defines the 'What's This' help for a field in the dialog. This element is text-only.

Note

Currently only plain text is supported (you cannot use any markup).

Parent(s)Children
attrNONE
list

A container tag that groups together the items in a list. It may appear only once for each attribute description. This is an element-only type element.

Parent(s)Children
attritem
item

Defines an item in a list. This element is text-only.

Parent(s)Children
listNONE
textlocation

Specifies the position of a tag's attribute text within a dialog. This tag can only occur once for each attribute in the dialog (i.e. one for each <attr> tag). This element is empty.

Parent(s)Children
attrNONE
AttributeTypeUseDescription
rownonNegativeIntegerrequiredSpecifies the row in the dialog layout of a field or label.
colnonNegativeIntegerrequiredSpecifies the column in the dialog layout of a field or label.
rowspannonNegativeIntegeroptionalSpecifies the number of rows a field should span.
colspannonNegativeIntegeroptionalSpecifies the number of columns a field should span.
location

Specifies the position and size of a field in the dialog. This tag should occur once for each field in the dialog (i.e. one for each <attr> and <label> tag). This element is empty.

Parent(s)Children
label, attrNONE
AttributeTypeUseDescription
rownonNegativeIntegerrequiredSpecifies the row in the dialog layout of a field or label.
colnonNegativeIntegerrequiredSpecifies the column in the dialog layout of a field or label.
rowspannonNegativeIntegeroptionalSpecifies the number of rows a field should span.
colspannonNegativeIntegeroptionalSpecifies the number of columns a field should span.
text

Define the text for a label or check box. This element is text-only.

Parent(s)Children
label, attrNONE
children

Defines a list of elements that can appear within the tag being specified. This element is an element-only type element.

Parent(s)Children
tagchild
child

Defines a child tag. This element is empty.

Parent(s)Children
childrenNONE
AttributeTypeUseDescription
namestringrequiredSpecifies a tag that can appear within the a certain tag.
stoppingtags

Defines a list of elements that force a tag to end. This element is an element-only type element.

Parent(s)Children
tagstoppingtag
stoppingtag

Defines a stopping tag. This element is empty.

Parent(s)Children
stoppingtagsNONE
AttributeTypeUseDescription
namestringrequiredSpecifies which tags force the ending of another tag.

TagXML Usage

All TagXML files must begin with the XML™ declaration: <?xml version="1.0" encoding="UTF-8"?> and must be properly nested and closed.

Important

White space does not adversely affect anything, but watch out for & and < characters. These should likely be replaced with an &amp; and &lt;, respectively, in elements such as <tooltip>, <whatsthis>, and <text>. Not doing so will not cause a crash, but you will have chunks of your work disappear if you do not.

TagXML Validation

To validate your TagXML files, simply click the “Tools” pop-up dialog at the top of Quanta Plus and select “Validate TagXML.” A dialog will present itself and you need only to follow the simple directions.

Note

This feature is currently not present. Currently validation occurs when the TagXML files are loaded into Quanta Plus.

TagXML Examples

Family 1

The following will show you a valid Family 1 TagXML file. This file happens to describe W3C® XML™ Schema's <schema> element. The file name for this TagXML file would be schema.tag. Simple, eh?



<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE TAGS>
<TAGS>
 <tag name="schema">
  <label>
   <text>id</text>
   <location col="0" row="0"/>
  </label>
  <attr name="id" type="input">
   <tooltip>A unique ID for the element.</tooltip>
   <whatsthis>A unique ID for the element.</whatsthis>
   <location col="1" row="0"/>
  </attr>

  <label>
   <text>version</text>
   <location col="0" row="1"/>
  </label>
  <attr name="version" type="input">
   <tooltip>Version of the schema.</tooltip>
   <whatsthis>Version of the schema.</whatsthis>
   <location col="1" row="1"/>
  </attr>

  <label>
   <text>targetNamespace</text>
   <location col="0" row="2"/>
  </label>
  <attr name="targetNamespace" type="input">
   <tooltip>URI reference of the namespace of this schema.</tooltip>
   <whatsthis>URI reference of the namespace of this schema.</whatsthis>
   <location col="1" row="2"/>
  </attr>

  <label>
   <text>xmlns</text>
   <location col="0" row="3"/>
  </label>
  <attr name="xmlns" type="input">
   <tooltip>URI reference for one or more namespaces for use in this schema.
   If no prefix is used, then components of that namespace may be used unqualified.</tooltip>
   <whatsthis>URI reference for one or more namespaces for use in this schema.
   If no prefix is used, then components of that namespace may be used unqualified.</whatsthis>
   <location col="1" row="3"/>
  </attr>

  <label>
   <text>attributeFormDefault</text>
   <location col="0" row="4"/>
  </label>
  <attr name="attributeFormDefault" type="list">
   <items>
    <item>qualified</item>
    <item>unqualified</item>
   </items>
   <tooltip>Default form for all attributes within this schema.</tooltip>
   <whatsthis>Default form for all attributes within this schema.</whatsthis>
   <location col="1" row="4"/>
  </attr>

  <label>
   <text>elementFormDefault</text>
   <location col="0" row="5"/>
  </label>
  <attr name="elementFormDefault" type="list">
   <items>
    <item>qualified</item>
    <item>unqualified</item>
   </items>
   <tooltip>Default form for all elements within this schema.</tooltip>
   <whatsthis>Default form for all elements within this schema.</whatsthis>
   <location col="1" row="5"/>
  </attr>

  <label>
   <text>blockDefault</text>
   <location col="0" row="6"/>
  </label>
  <attr name="blockDefault" type="input">
   <location col="1" row="6"/>
  </attr>

  <label>
   <text>finalDefault</text>
   <location col="0" row="7"/>
  </label>
  <attr name="finalDefault" type="input">
   <location col="1" row="7"/>
  </attr>
 </tag>
</TAGS>

Family 2

The following will show you a valid Family 2 TagXML file. This file happens to describe PHP's overload function. The file name for this TagXML file would be overload.tag.



<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE tags>
<tags>
  <tag name="overload" type="function" returnType="void">
<attr name="class_name" type="string" status="optional"/>
  </tag>
</tags>

description.rc

The description.rc file is, also, quite simple. Not all of the following need be used. The basic structure of the description.rc file is as follows.

Family 1 Structure



[General] - Generic information.
Version = Use 1 for Quanta Plus version <=3.1.2 and 2 for any version greater.
Name = DTD definition string. (-//W3C®//DTD HTML 4.01 Transitional//EN)
NickName = The beautified name of the DTD. (HTML 4.01 Transitional). If not defined, Name is
used as NickName.
URL = URL pointing to the DTD definition. (http://www.w3.org/TR/html4/loose.dtd)
DoctypeString = The string that should appear in the !DOCTYPE declaration.
(HTML PUBLIC "-//W3C®//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd")
Inherits = The name of the DTD from where this DTD inherits its tags. (-//W3C®//DTD HTML 4.01//EN)
DefaultExtension = New files are created with this extension. (html)
Groups = The list of common attribute groups, which may be present in more than one tag.
(Core, I18n, Script) See below. (Group1, Group2...)
NumOfPages = How many pages does a tag dialog have, aside of the page containing the
attributes defined in the tag file? See below. (Page1,...)
CaseSensitive = Case-sensitiveness of the DTD. (true|false)
Family = 1This type of DTEP is of family 1, since it is a markup.

[Toolbars] - Information about DTEP toolbars.
Location = The folder name inside $KDEDIR($KDEHOME)/share/apps/quanta/toolbars
where the toolbars for this DTEP are.
Names = The list of toolbar file names, minus the .toolbar.tgz extension, that
are loaded for this DTEP from the above folder.

[Group1] - Replace with one of the Groups listed below.
Attributes = The list of attributes for this group. Currently, all of the listed attributes are
 treated as strings.
Example:
[Core]
Attributes = id, class, style, title

[Page1] - Description of a tag editor page.
Title = The title of this page in the tag editing dialog.
Groups = List of groups appearing on this page. (Core, I18n)

[Extra rules] - Some rules not fitted in other places.
BooleanAttributes = (simple|complex)
Example for simple: <tag booleanAttr>.
Example for complex: <tag booleanAttr="1"> or <tag booleanAttr="true">
Single Tag Style = (html|XML)
Example for html: <single_tag>
Example for XML:  <single_tag />
StructGroupsCount = The number of structure groups. See below.
MinusAllowedInWords = If true "this-is-a-word" is treated like a word. Otherwise,
it is treated like 4 words.
TagAutoCompleteAfter = CHAR. The auto-completion box is brought up automatically
once this CHAR is entered or SPACE is pressed after this CHAR. For DTEP family 1,
it is usually "<" The text "none" instead of a CHAR specifies that the tag
completion box should not be brought up automatically, only if the user requests it.
AttributeSeparator = CHAR. This CHAR means that the attribute name has ended.
It is " for XML DTEPs.
TagSeparator = CHAR. Similar to the above.

[StructGroup_1] - Definition of structure group 1.
Name = The text that appears if there are tags matching this group settings.
No_Name = The text that appears if there are NO tags matching this group settings.
Icon = The name of the icon appearing before the above texts.
Tag = tagname(attribute1, attribute2, ...). Tags with name tagname will appear
under this group. The item text will be "attribute1_value | attribute2_value | ..."
Currently only one tag may be listed here.
HasFileName = (true|false) True, if the item text (above attribute values) contains a file name.
FileNameRx = Regular expression used to remove the unnecessary chars from the item text.

[Parsing rules] - Rules used when parsing the document.
SpecialAreas = The beginning and ending string of special areas, separatted by a comma.
Special areas are not parsed according to this DTEP's rules, but as their own rules.
A special area can be a DTEP of another family, a comment, or something to that effect.
Eg. <!-- -->
SpecialAreaNames = Comma separated list of the above special area names. Eg. comment
SpecialTags = tagname(attributename) - Specifies a tag which defines the start of a special area.
MayContain = Comma separated list of family 2 DTEPs that can be present in the document.
(php, css)

Family 2 Structure



[General] - Generic information.
Version = Use 1 for Quanta Plus version <=3.1.2 and 2 for any version greater.
Name = Proper name
NickName = What every calls it. If not defined, Name is used as NickName.
Inherits = The name of the DTEP from where this DTEP inherits tags. (The Name, not NickName)
DefaultExtension = New files are created with this extension. (php)
NumOfPages = 0   Always zero because there is not a tag editing dialog for
Family 2 DTEPs.
CaseSensitive = Case-sensitiveness of the DTEP. (true|false)
Family = 2This type of DTEP is of family 2, since it is not markup.

[Toolbars] - Information about DTEP toolbars.
Location = The folder name inside $KDEDIR($KDEHOME)/share/apps/quanta/toolbars
where the toolbars for this DTEP are.
Names = The list of toolbar file names, minus the .toolbar.tgz extension, that
are loaded for this DTEP from the above folder.

[Extra rules] - Some rules not fitted in other places.
BooleanAttributes = (simple|complex)
Example for simple: <tag booleanAttr>.
Example for complex: <tag booleanAttr="1"> or <tag booleanAttr="true">
StructGroupsCount = The number of structure groups. See below.
MinusAllowedInWords = If true "this-is-a-word" is treated like a word. Otherwise,
it is treated like 4 words.
TagAutoCompleteAfter = CHAR. The auto-completion box is brought up automatically
once this CHAR is entered or SPACE is pressed after this CHAR. For DTEP family 1,
it is usually "<" The text "none" instead of a CHAR specifies that the tag
completion box should not be brought up automatically, only if the user requests it.
AttributeSeparator = CHAR. This CHAR means that the attribute name has ended.
It is " for XML DTEPs.
TagSeparator = CHAR. Similar to the above.
AttributeAutoCompletionAfter = CHAR. Similar to the TagAutoCompletionAfter, but
for tag attributes. It is "(" by default and ":" for CSS.

[StructGroup_1] - Definition of structure group 1.
Name = The text that appears if there are tags matching this group settings.
No_Name = The text that appears if there are NO tags matching this group settings.
Icon = The name of the icon appearing before the above texts.
Tag = tagname(attribute1, attribute2, ...). Tags with name tagname will appear
under this group. The item text will be "attribute1_value | attribute2_value | ..."
Currently only one tag may be listed here.
HasFileName = (true|false) True, if the item text (above attribute values) contains a file name.
FileNameRx = Regular expression used to remove the unnecessary chars from the item text.
SearchRx = regular expression used to find text areas in the Family 2 DTEP, which
will belong to this group
ClearRx = regular expression used to clear unwanted text/chars from the above
search result. The cleaned string will appear in the structure tree.

[Parsing rules] - Rules used when parsing the document.
SpecialAreas = The beginning and ending string of special areas, separated by a comma.
Special areas are not parsed according to this DTEP's rules, but as their own rules.
A special area can be a DTEP of another family, a comment, or something to that effect.
Eg. <!-- -->
SpecialAreaNames = Comma separated list of the above special area names. Eg. comment
SpecialTags = tagname(attributename) - Specifies a tag which defines the start of a special area.
AreaBorders = Comma separated list of the area borders encapsulating this Family 2 DTEP. In the
case of PHP, it is: <? ?>, <* *>, <% %>
Tags = tagname(attribute). If the parent(real) DTD has a tag with tagname and
the attribute value of this tag is equal with the DTD name, the tag area
is parsed according to the rules of this DTD.
Comments = comma separated list of area borders for comments. EOL means end-of-line.
Eg: // EOL, /* */
StructKeywords = Semicolon separated list of structure keywords. Structures are treated
as new nodes in the structure tree.
StructBeginStr = A string specifying the beginning of a structure (like {)
StructEndStr = A string specifying the beginning of a structure (like })
StructRx = Regular expression containing the beginning or the end of the structure
area. Eg. \\{ | \\} (structure area border can be { or })

Creating Toolbars
 

Creating Toolbars

The following will show you how to create toolbars for a DTEP. Toolbars are graphical elements that are assigned to actions. Actions, in Quanta Plus, are the basis for nearly all the extensions that Quanta Plus has and will acquire in the future. The same mechanism that defines an action in Quanta Plus also enables auto-completion and tag dialogs. With actions, the limit of what you can do is virtually limitless. For means of an example, we will use HTML tidy on our web pages.

From Scratch to Complete

To begin, you will need to create a user toolbar. Select Toolbars->Add User Toolbar.

If there are many tags for the markup language, it is recommended that you split up the tags into logical groups. You will need to create a new user toolbar for each group. In this case, there are not many, so we will be making one toolbar and naming it with the name of the markup.

Once all your toolbars are created, you must add and configure the actions. To do this, select Settings->Configure Actions .

The parts of this window are pretty straight forward. Press the New action button at the bottom of the window to enter the editing mode.

Fill in all of the necessary fields and add the tag to the appropriate toolbar(s).

Complete the rest and, if the tag has attributes and you always plan to use them, check the Run "Edit tag" dialog if available box so that you will be prompted every time the action is used.

You should now have something much like the following.



Press the Apply button and you will see the action added to the toolbar(s) you have selected.



Egad! That's an awful icon. How will yourself and others remember that icon goes with that action? Let's replace it before trouble arises.

To create an icon that more accurately describes that action, we will be using KIconEdit. Select it from the K menu, Graphics->More Programs (or where ever your distribution placed it).

KIconEdit defaults to the size 32x32 pixels, but we need 22x22. To change this, select Edit->Resize.

Keep in mind that you are creating an icon that will assist in helping not only yourself to remember which action does what, but also other users of the DTEP.

Since the tag I am creating the icon for is called “start,” I have decided to create a “Start sign.” Using the color green (green often interpreted as “go,” “start,” or “proceed”) will, or, at least, should, convey a message to the user that clicking this action will place the <start> tag in the current document.



Now that I am finished with the creation of the icon, I will save it.

Once you are done with creating the icon(s), you must associate the icon with the action. To do this, open Settings->Configure Actions again (in Quanta Plus) and select the action you made the icon for. Beside the Text field, you will see a button, click it.

Select Other Icons and then click the Browse button.

Goto the folder in which you saved the icon, select the icon, and click OK.

Press the Apply button and either continue to do the same with the other tags, if any, or click OK to finish.



Let us say you would like to add some common Quanta Plus functions to your toolbar or maybe you think the toolbar would be better off organized in a different manner with some separators to group the actions. Open the Configure Toolbars dialog by going Settings->Configure Toolbars. Make sure your toolbar is selected.

I will be choosing the separator (top of the left column) for my toolbar. Once you have selected the item you wish to add to your toolbar, press the right arrow button. This will add it to your toolbar.



I think I would like a quick way to access the Konqueror Preview. I will select it and add it to the toolbar.



Note how the separator helps in grouping. Someone new to my toolbar might have thought that the Konqueror button was like or the opposite of the start button.



Apply your changes and, when you are done, press OK to finish.

Ah, look at the fantastic new toolbar! Much more handy now.



Remember to test your toolbar, by clicking all the buttons, so that you know the output is correct.



Now to save the toolbar, we will select Toolbars->Save Toolbars->Save as Local Toolbar.

Save it to the correct folder. Since NeXML does not exist, I will just have it to the top-level folder, but your toolbar(s) should be saved to the correct folder. Make sure to adjust your description.rc to have it load your toolbar(s) when a new file of that type is created.

Creating Your Own Documentation
 

Creating Your Own Documentation

Robert Nickel <robert@artnickel.com>

Probably the most notable additions to Quanta Plus for the general user will be the addition of documentation for the markup or scripting language that you like best. To that end, this chapter will explain how I create the PHP documentation tree for my personal use.

Before starting on creating your own documentation, you may wish to check out the Quanta Plus repository to see if someone else has already done this set.

There are two parts to this process. First, you must obtain the existing documentation for the markup/scripting/etc. language that you are after. Second, you have to create the docrc file. The first is up to you, the second is what we will cover here.

The general form of the docrc file is as follows:


#KDE Config File
[Tree]
Doc dir=path, relative to this file, of the documentation html files e.g. php42/
#top level elements
Top Element=Your description for these documentation e.g. PHP 4.2 documentation

Section 1=Section1.html
Section 2=#Sec2.1,#Sec2.2,#Sec2.3
Sec2.1=Sec2.1.html
Sec2.2=Sec2.2.html
Sec2.3=Sec2.3.html
...

[Context]
ContextList=func1,func2,tag1,tag2,tag3
func1=func1.html
func2=func2.html
tag1=tag1.html
tag2=tag2.html
tag3=tag3.html

The docrc is broken down into two sections: Tree and Context.

The Tree section defines the presentation aspect of the documentation in the documentation tab. For example, you will see that in the PHP documentation you have something akin to this:



Relating this to the above, my PHP docrc looks like this:


#KDE Config File

[Tree]

Doc dir=php42/

#top level elements
Top Element=PHP 4.2 documentation

PHP 4.2 documentation=Table of Contents,#Getting Started,#Language Reference

Table of Contents=index.html

Getting Started=Introduction, ...
Introduction=introduction.html
...

Language Reference=Basic syntax, ...
Basic syntax=language.basic-syntax.html
...

Notice the # in front of “Getting Started” and “Language Reference”. This indicates that these are sub containers in the tree and have content of their own. I do not believe that there is a set limit to the depth here (other than that driven by sanity) — use your judgment.

For the Table of Contents, you will notice that it is referenced directly to a file (and consequently shows up at the bottom of the tree view — folders first!).

Important

Spaces do not adversely affect anything, but watch out for & and < characters. These should likely be replaced by &amp; and &lt; respectively in all of the XML™ based Quanta Plus resource files.

The Context section is the section of the docrc file that is used to facilitate context sensitive help. For example, you are writing a PHP script and you would like to see the documentation for the mysql_fetch_array function. You simply highlight the function and then press Ctrl+H for context help. The documentation on mysql_fetch_array will immediately display. There are only two entry types here: the ContextList and the file association lines.

ContextList

Really simple, this is just a comma separated list of the context items you wish to have available (for PHP, these are the functions for PHP).

File association lines

These are of the form context item=html doc page. e.g. acos=function.acos.html

A pared down version of my docrc Context section is as follows:


#Keywords for context help
[Context]
ContextList=abs,acos,acosh,addcslashes,addslashes,...

abs=function.abs.html
acos=function.acos.html
acosh=function.acosh.html
addcslashes=function.addcslashes.html
addslashes=function.addslashes.html
...

Now you can just save your docrc file, save it in $HOME/.kde/share/apps/quanta/doc or $KDEDIR/share/apps/quatna/doc for local or global use respectively. Then create a folder (the one specified in your docrc file) in the same folder as your docrc file and copy your HTML pages in there.

You will need to restart Quanta Plus to see your documentation.

Once you are sure that they are good and worth sharing, send the docrc file along with a description of any pertinent information on what documentation you used to the Quanta Plus repository for use by the Quanta Plus community. You will not get rich, but you will feel great knowing that you contributed to the best web development platform around.

Chapter 7. Questions and Answers
 

Questions and Answers

Eric Laffoon <sequitur@kde.org>

7.1. How can I help Quanta Plus development?
7.2. Where is Quanta Plus going from here?
7.1.

How can I help Quanta Plus development?

We would be remiss not to point out that Quanta Plus is being built by volunteers. Many people feel they cannot contribute to the open source cause for one reason or another. Probably the greatest being a feeling they do not have the skills. Quanta Plus has been developed in a manner that allows both non-programmers and programmers help extend Quanta Plus. There is also the issue of documentation. Software, be it proprietary or Free/open source, is only as good as its documentation. We are sure there is a place in Quanta Plus where your time will be most benificial.

7.2.

Where is Quanta Plus going from here?

We have released Quanta Plus 3.2 and are now in preparation for the next release. Our objective remains to create the very best web development tool. We realize that we will need many more people actively developing Quanta Plus to accomplish this, so we are in the process of developing enhancements geared toward making it easy for web developers to customize, extend, and enhance Quanta Plus. Much of this has been accomplished with the 3.2 release. Soon will be asking you, the web developers, to contribute your feature enhancements. We will organize these so that Quanta Plus web developers can find just the resources, extensions, and custom plug-ins they need to be the most reliable, proffessional developers ever!

Chapter 8. Credits and License
 

Credits and License

Christopher Hornbaker <chrishornbaker@earthlink.net>

Note

Sorry to anyone I missed or if I mis-spelt your name!

Much thanks to everyone who has spent the time to contribute!

The Quanta Plus Development Team:

Bergia, Andrea

Original CSS™ editor.

Britton, Marc

Kommander, various features, and bug fixes.

Colton, Matthew

Splash screen for many versions

Deschildre, Nicolas

Visual Page Layout & undo/redo system

Dmitrienko, Dmitri

PHP4 debugger

Gulmini, Luciano

Frame Wizard

Hanley, Jason P.

Various fixes, foundational code for DTD parsing, and other DTD related work

Hindsgaul, Claus

Danish translation

Hornbaker, Christopher

The Anal XML™ Guy & Documentation

Isdale, Keith

XSL™ 1.0 DTEP, KXsldbg

Kooiman, Mathieu

Documentation, bug fixes, and PHP debugger framework.

Laffoon, Eric

Project Manager and web site admin.

Mantia, András

Core Developer

Moore, Richard

Coding, original TagXML docs, and more

Mous, Fabrice

Documentation

Nickel, Robert C.

Documentation

Pibil, Ted

Addition and maintainence of DTDs

Poplavsky, Dmitry

ex-Core Developer — left for commercial version

Vilches, George

Tree-based upload dialog

Yakovlev, Alexander

ex-Core Developer — left for commercial version

Special Thanks To:

xmlsoft.org

The writers of libxml2 and libxslt.

Quanta Plus © 2000, 2001, 2002, 2003 Quanta Plus Development Team.

Quanta Plus User Manual © 2002, 2003 Quanta Plus Development Team.

This documentation is licensed under the terms of the GNU Free Documentation License.

This program is licensed under the terms of the GNU General Public License.

Appendix A. Installation
 

Appendix A. Installation

Acquiring Quanta Plus

Quanta Plus is part of the KDE project http://www.kde.org/.

Quanta Plus can be found in the quanta package on ftp://ftp.kde.org/pub/kde/, the main FTP site of the KDE project.

Building the Source
 

Building the Source

In order to compile and install Quanta Plus on your system, type the following in the base directory of the Quanta Plus distribution:

% ./configure
% make
% make install

Since Quanta Plus uses autoconf and automake you should have no trouble compiling it. Should you run into problems please report them to the KDE mailing lists.

Considerations When Building

It is reasonable that you would want to customize the location of the Quanta Plus files on your system. To this end, autoconf has a number of options that can be passed to the configure script to control this setup. To get a complete listing of these options, type ./configure --help. These are straight forward and will not be covered here.

If you are having trouble with Quanta Plus running properly, you should check your path to ensure that the KDE 3 bin folder is in there. Also, be sure that you do not have any older versions of KDE laying about that appear in PATH before your KDE 3 bin folder. The same holds true for Qt™.

Glossary
 

Glossary

Keywords

xsldbg

See http://xsldbg.sourceforge.net

XPath

A valid expression that defines what data is required. See W3C® web site

QName

A fully qualified name. For example xsl:myvariable. See W3C® web site