History
This wiki has always had the feature that clicking on a page title when viewing the page produces a list of all the other pages that link to that page. Other wikis have this feature too. In September 2001, WHD added categories to the wiki, using only this feature, i.e. he added no code to the wiki software. See the comp.lang.tcl post at https://groups.google.com/forum/#!original/comp.lang.tcl/4cIvZt2VA44/TzhWkf3AimgJ .
Description
In the post linked to above, WHD said
Categories are very simple. Suppose you want to provide an |
index of all pages on the Wiki relating to the WiKit software. To |
each such page, add the following link: [Category WiKit]. Then, |
create a [Category WiKit] page that defines the purpose of the |
category. It need not have much text on it; its primary value is |
that if you click on its title, the search features built into the |
Wiki will give you a list of all pages that link to [Category WiKit] |
|
... |
|
and, finally, |
|
Category Category |
|
That last is the category to which all Category pages belong, so that |
you can go to Category Category, click on its title, and get a list |
of all Category pages. |
That's it.
By convention, the links to a page's category or categories go at the end of the page, and there is now the <<categories>> macro to format them. However that macro has no other function, and the standard wiki functionality doesn't care where in the page they are.
Another convention, obviously dating back to WHD's original, is that category pages have names starting with the word "Category" so you can see what they are. However, any page that has a link to [Category Category] behaves like a category page, so it might be considered to be one (and the <<categories>> macro treats it as one).
The whole category thing is automatic, except that the original version of this page said:
"An attempt is being made to produce some sort of self-categorizing of the pages on this web site. To do this requires one to enter at the bottom of pages one or more links to one of these tags:"
followed by a very short list of categories. Hence the rather longer and necessarily always incomplete list below.
The last quote also shows that categories are just tags with no hierarchy or any other structure.
Categories
The following is a list of categories (not automatically updated, so there could be some missing) with short descriptions:
- Category
- the meta category - covers the list of all categories
- Uncategorized
- the "anti-category" - put on a page as a reminder that it hasn't really been categorized yet.
- 3D Graphics
- pages relating to 3D graphical display of information
- Actions
- pages that talk about the concept of actions
- Advanced Programming Fundamentals
- Advocacy
- pages dealing with tcl vs other languages
- AI
- pages relating to Artificial Intelligence
- Ajax
- WWW protocol
- Algorithm
- pages that describe either the general idea behind an algorithm or an implementation of the algorithm
- Animation
- pages that describe techniques and tools for performing animation
- AOLserver
- popular web server
- Application
- pages that describe a stand alone application or group of applications.
- Argument Processing
- pages that deal with tools and techniques for parsing arguments to a command or proc
- Barcode
- pages discussing barcode related processing
- Binary Data
- pages discussing dealing with data rather than printable strings.
- Biology
- pages discussing Tcl use within the biological community
- BLT
- pages discussing programming using the BLT extension
- Book
- pages that describe specific literature.
- Broken Links
- used in connection with the Broken Link Report
- Business
- various pages describing business related applications and libraries.
- Bwise
- pages related to the Bwise environment.
- Calculator
- calculators: scientific or otherwise
- Channel
- pages about channels in Tcl, and their counterparts in other languages.
- Characters
- pages describing internal or external manipulation of characters, fonts, glyphs, code-points, etc.
- Chat
- Wiki pages related to Internet chat programs.
- Chemistry
- extensions, concepts, algorithms, etc. dealing with problems in the field of chemistry
- Cloverfield
- a programming language project
- CMS
- content management system related pages
- Command
- pages describing particular Tcl extension commands
- Community
- pages describing/promoting community spirit
- Company
- pages describing companies with Tcl related products
- Compression
- pages dealing with the reduction of files/strings/etc
- Concept
- basic C.S. and mathematical concepts, and how to implement them in Tcl
- Concurrency
- Control Structure
- implementation of various tcl related control structures
- Core
- pages relating to functionality in the TCT managed portion of tcl's central source code implementing interpreter, etc.
- Critcl
- discussion of the Tcl runtime compile extension critcl
- Cryptography
- pages describing algorithms, software, etc. relating to encryption/decryption
- Currency and Finance
- monetary related issues
- Data Serialization Format
- Data Structure
- pages describing implementation/etc. of existing or new data structures
- Database
- pages describing database issues.
- Date and Time
- pages discussing topics of date and time calculations, calendaring, etc.
- Debugging
- pages describing helpers/strategies for debugging
- Deployment
- pages that relate to how to get your application into a destination environment
- Design
- pages that relate to application design
- Desktop
- pages that relate to applications that run on, or provide support to, GUI desktops, regardless of platform
- Dev. Tools
- pages that relate to development tools for Tcl.
- Development
- Programming, software development and software engineering.
- Device Control
- pages that relate to interacting with hardware.
- Dialog
- pages that relate to dialog windows.
- Discussion
- pages where some topic is being discussed that doesn't fit into the other categories
- Distribution
- discuss methods, tools, etc. for getting tcl applications and tcl itself out to appropriate locations
- Documentation
- pages describing documentation issues.
- Editor utility
- pages relating to editors and code to augment editors
- Education
- pages provide examples of Tcl used in education
- Embedded
- Pages discussing issues relating to devices with tcl embedded in them.
- Engineering
- Mechanical / Electrical engineering etc.
- Essay
- lengthy writings on relatively narrow topics
- Event Loop
- Event loop tutorials and usage examples
- Example
- Page provides example of using a particular technique or command
- Expect
- Topics relating to the Expect package
- File
- processing of files
- Foreign Interfaces
- pages about interfaces from other programming languages
- FORTRAN
- pages about interfacing Tcl and FORTRAN
- Function
- Functional Programming
- relating to the style of programming
- Games
- Applications and design issues relating to things hopefully fun to play
- Geography
- Geography, Maps, Navigation
- Glossary
- Page that defines a particular word, term, acronym
- Graph theory
- Graphics
- pages relating to graphical display of information
- Groupware
- software designed to aid info sharing and collaboration
- GUI
- pages relating to graphical user interface related topics, applications, libraries, etc
- Handwriting Recognition
- pages related to handwriting recognition in Tcl/Tk
- Human Language
- pages that discuss use of tcl to process text of various languages
- Humor
- attempts to be humorous
- Image Processing
- pages for discussion,tools, etc. for manipulating files or in memory structures that represent images
- Internals
- pages describing how Tcl works (e.g. bytecode compiler). Useful for maintainers and TIP authors
- Internet
- pages describing Tcl interactions with the Internet in all its forms
- Interprocess Communication
- process to process techniques, commands, discussions
- Introspection
- discussions of Tcl's introspective functionality
- Itcl
- Wiki pages relating to incr tcl
- Java
- pages that relate to programming in Java, invoking Java classes, etc
- Jim
- pages that relate to the Jim tiny, Tcl-alike language
- (L)GPL Licensed
- wiki pages about programs with a FSF license
- Language
- pages that describe programming languages
- Licence
- relating to various end user license agreement issues
- Linguistics
- Linux
- relating to Linux specific issues
- Local
- topics dealing with local specialties for given countries or natural languages
- Mac
- pages discussion the Apple Macintosh computer and related topics
- Mail
- Mailing List
- pages describing mailing lists
- Mathematics
- pages relating to mathematical concepts, calculations, algorithms, etc
- Medicine
- programs and code applicable to the field of medicine
- Mobile
- Tcl on mobile platforms
- Multimedia
- pages relating to Multimedia concepts
- Music
- pages that discuss generation of music
- NaviServer
- pages about the NaviServer web server.
- Networking
- pages relating to various networking issues.
- Numerical Analysis
- pages for this specific field of math
- Object Orientation
- pages relating to OO packages, design issues, and other related topics
- Office Automation
- pages describing Tcl applications and packages used in automating office work
- Oldies
- dealing with old versions of Tcl as well as old, no longer supported, operating system platforms
- Operating System
- Pages about operating systems
- Operator
- used to link the various expr operator pages
- Optical Illusion
- Package
- pages describing specific Tcl related re-usable software entities, sometimes referred to as extensions
- Parsing
- Performance
- pages dealing with improving, measuring, comparing etc. the performance of Tcl and associated extensions and applications
- Person
- pages describing specific people or used by an individual to describe their personal likes, dislikes, projects, etc
- Physics
- pages discussing programming relating to physics.
- PIM
- pages whose topic relates to Personal Information Management programs or technologies
- Platform Issues
- Plotting
- pages concerning the graphical presentation of a dataset (why not just use visualization?)
- Polygon
- pages whose topic relates to polygons, geometric objects, etc.
- Porting
- pages describing porting tcl programs and extensions to newer or older platforms / versions
- PostgreSQL
- popular database related topics
- Presentation
- discussion, concepts, packages relating to the presentation of content
- Printing
- pages relating to some aspect of achiving hard copy
- Repository
- pages related to requirements, creation, operation, maintenance, and availability of repositories for Tcl code
- Science
- pages relating to sciences other than computer science
- Scripted Document
- old name for Starkit.
- Security
- pages that suggest extensions or topics relating to software/data/computer security issues
- Signal Processing
- processing measured data signals
- Simulator
- simulators: electrical, mechanical, biological ... systems
- Snit
- pages about Snit's Not Incr Tcl
- Snit Widgets
- pages of megawidgets written in Snit
- Sound
- pages connected to generating and analyzing soud data (music, monitoring, etc.)
- Speech Synthesis
- pages related to speech synthesis.
- Statistics
- pages relating to the mathematical calculation of statistics
- String Processing
- Strings, text, regular expressions, etc.
- Suggestions
- pages that suggest extensions or new features that still wait for someone to implement them
- Survey
- Syntax
- discuss Tcl syntax and related issues
- System Administration
- pages relating to issues of managing computer systems and their users.
- Tcl Implementations
- pages that discuss the various Tcl-like interpreters available
- Tcl Library
- pages that document the various Tcl C API functions
- Tcl3D
- pages related to the Tcl3D package
- Tcler's Wiki
- pages that relate to the meta-topic of the Tcler's Wiki web site itself
- TclHttpd
- pages relating to the popular Tcl web server
- Tclkit
- pages discussing the building and use of tclkit all in one "Batteries Included" distribution format
- tcllib
- the tcl script based tcllib package.
- TclX
- the extension which adds more unix type commands to tcl
- Telecoms
- Template
- Testing
- pages discussing the building and use of tcl in various testing capacities
- Text Screen
- Text Widget
- Threads
- Collection of Tcl and thread application architectural issues
- TIP
- pages discussing Tcl Improvement Proposals
- Tk
- relating to the Tk package
- Tk Library
- the C API provided by the Tk library
- tklib
- the tcl script based tklib package.
- Toys
- fun code that technically isn't related to games
- Tutorial
- pages that are suitable for learning
- Unix
- Unix-specific things.
- VFS
- pages relating to vfs, the virtual file system
- Visualization
- pages relating to graphically displaying data
- Webserver
- web server info on the wiki
- Whizzlet
- What are whizzlets?
- Widget
- pages that relate to Tk widgets
- Wikit
- pages that relate to the general software used to run this web site itself
- Windows
- pages that relate to Microsoft's Windows operating system in any of its incarnations
- WindowsTricks
- Word and Text Processing
- pages that deal with the programatic processing of words or text (i.e. editors, formatters, spelling checkers, etc.)
- Wub
- technology behind this web site
- XML
- pages related to XML
- XOTcl Code
- pages of topics and code relating to the XOTcl object oriented extension