You are previewing Professional Wikis.
O'Reilly logo
Professional Wikis

Book Description

This book shows you how to install, use, manage, and extend a wiki using MediaWiki—the wiki engine used to power Wikipedia. You'll learn wiki terminology, how to create user accounts and new pages, and find your way around the wiki. Special focus is placed on how wikis are used in software and web development projects and how their capabilities ideally suit a specific environment and audience. You'll quickly come to discover why wikis are a valuable addition for any organization that wants to increase productivity using web-based collaboration tools.

Table of Contents

  1. Copyright
  2. About the Author
  3. Credits
  4. Acknowledgments
  5. Introduction
    1. Who Should Read This Book
    2. How This Book Is Organized
      1. Chapter 1: Wikis at Work
      2. Chapter 2: Installing MediaWiki
      3. Chapter 3: Getting Started with MediaWiki
      4. Chapter 4: Writing and Editing Content
      5. Chapter 5: Images and Files
      6. Chapter 6: Page Actions and Version Control
      7. Chapter 7: Information Architecture: Organizing Your Wiki
      8. Chapter 8: Magic Words, Templates, and Skins
      9. Chapter 9: Extensions
      10. Chapter 10: The MediaWiki API
      11. Chapter 11: Wiki Performance
    3. Where to Find More Information
    4. Conventions
    5. Source Code
    6. Errata
    7. p2p.wrox.com
  6. 1. Wikis at Work
    1. 1.1. Wiki History
      1. 1.1.1. Web 2.0 and Social Media
      2. 1.1.2. New Business Models
        1. 1.1.2.1. Proprietary versus Open Standards
        2. 1.1.2.2. Network Effects
        3. 1.1.2.3. New Publishing Model
        4. 1.1.2.4. Wikis, Blogs, and Meme Trackers
    2. 1.2. Web Content Management Systems
      1. 1.2.1. Content Management Life Cycle
        1. 1.2.1.1. Content Acquisition
        2. 1.2.1.2. Content Organization
        3. 1.2.1.3. Content Storage
        4. 1.2.1.4. Content Distribution
      2. 1.2.2. Workflow and User Management
        1. 1.2.2.1. User Access Control
        2. 1.2.2.2. Workflow Policies
        3. 1.2.2.3. Change Monitoring
        4. 1.2.2.4. Version Control
        5. 1.2.2.5. Spam Prevention
      3. 1.2.3. Content Authoring
      4. 1.2.4. Organization
        1. 1.2.4.1. Taxonomy
          1. 1.2.4.1.1. Folksonomy
    3. 1.3. When to Wiki
      1. 1.3.1. Running a Successful Wiki
        1. 1.3.1.1. Alignment of Goals
          1. 1.3.1.1.1. A Culture of Collaboration
        2. 1.3.1.2. Community Custodianship
        3. 1.3.1.3. Clearly Defined Rules for Posting Content
        4. 1.3.1.4. Monitoring User Behavior
      2. 1.3.2. Wikis in the Enterprise
    4. 1.4. Summary
  7. 2. Installing MediaWiki
    1. 2.1. Development Environment
    2. 2.2. Installing the Prerequisites
      1. 2.2.1. Installing Apache
        1. 2.2.1.1. Macintosh OS X
        2. 2.2.1.2. Windows
      2. 2.2.2. Installing PHP
        1. 2.2.2.1. Compiling PHP
        2. 2.2.2.2. Configuring Apache and mod_php
      3. 2.2.3. Installing MySQL
      4. 2.2.4. Installing Postgres
    3. 2.3. Installing MediaWiki
      1. 2.3.1. Step One: Download MediaWiki
      2. 2.3.2. Step Two: Copy to Web Server
        1. 2.3.2.1. Directory Structure
      3. 2.3.3. Installing Through the Web
        1. 2.3.3.1. Site Configuration
        2. 2.3.3.2. E-mail Notification and Authentication Setup
        3. 2.3.3.3. Selecting a Database
    4. 2.4. Configuring Short URLs
    5. 2.5. Summary
  8. 3. Getting Started with MediaWiki
    1. 3.1. The MediaWiki Application
      1. 3.1.1. Code Organization
        1. 3.1.1.1. Global Functions
        2. 3.1.1.2. Global Variables
      2. 3.1.2. Architecture
      3. 3.1.3. Customizing the Installation
        1. 3.1.3.1. Settings
          1. 3.1.3.1.1. LocalSettings.php
        2. 3.1.3.2. Debugging
        3. 3.1.3.3. Profiling
    2. 3.2. Fresh Wiki
    3. 3.3. Wiki Pages
      1. 3.3.1. Creating Pages
      2. 3.3.2. Wiki Titles and URLs
        1. 3.3.2.1. Title Rules
        2. 3.3.2.2. Title Suggestions
        3. 3.3.2.3. Title Customizations
      3. 3.3.3. Page Types
        1. 3.3.3.1. Finding Pages (Search)
      4. 3.3.4. Article Pages
      5. 3.3.5. Redirect Pages
      6. 3.3.6. Disambiguation Pages
    4. 3.4. Namespaces
      1. 3.4.1. Category Namespace
      2. 3.4.2. Image Namespace
      3. 3.4.3. User Namespace
      4. 3.4.4. Talk Namespace
      5. 3.4.5. Project Namespace
      6. 3.4.6. Help Namespace
      7. 3.4.7. MediaWiki Namespace
      8. 3.4.8. Template Namespace
      9. 3.4.9. Special Namespace
      10. 3.4.10. Media Namespace
    5. 3.5. User Actions
      1. 3.5.1. Users and Roles
        1. 3.5.1.1. Anonymous Users
        2. 3.5.1.2. User Registration
          1. 3.5.1.2.1. Using Real Names
          2. 3.5.1.2.2. Password Length
        3. 3.5.1.3. Registered Users
          1. 3.5.1.3.1. Preferences
          2. 3.5.1.3.2. My Talk
          3. 3.5.1.3.3. My Watchlist
          4. 3.5.1.3.4. My Contributions
        4. 3.5.1.4. Autoconfirmed
        5. 3.5.1.5. Emailconfirmed
        6. 3.5.1.6. Bots
        7. 3.5.1.7. Sysops and Bureaucrats
      2. 3.5.2. Changing Permissions
    6. 3.6. Actions
      1. 3.6.1. Custom Views with Parameters
    7. 3.7. Summary
  9. 4. Writing and Editing Content
    1. 4.1. Writing for the Web
      1. 4.1.1. Wikitext versus WYSIWYG
      2. 4.1.2. Wiki Content
    2. 4.2. Writing and Editing
      1. 4.2.1. Editing Pages
      2. 4.2.2. Previewing Changes
      3. 4.2.3. Summary Field
      4. 4.2.4. History
      5. 4.2.5. Options for Logged-in Users
        1. 4.2.5.1. Minor Edits
        2. 4.2.5.2. Watch This Page
    3. 4.3. Creating Links
      1. 4.3.1. Wiki (Internal) Links
        1. 4.3.1.1. Wiki Links
        2. 4.3.1.2. Piped Links
        3. 4.3.1.3. Special Cases
      2. 4.3.2. External Links
      3. 4.3.3. Interwiki Links
    4. 4.4. Formatting and Styles
      1. 4.4.1. Comments
    5. 4.5. Headings
      1. 4.5.1. Lines and Breaks
    6. 4.6. Block-Level Elements
      1. 4.6.1. Preformatted Text
    7. 4.7. Lists
      1. 4.7.1. Nested Lists
      2. 4.7.2. Mixed Nested Lists
    8. 4.8. Tables
      1. 4.8.1. Basic Tables
      2. 4.8.2. Table Attributes
      3. 4.8.3. Colspan and Rowspan
      4. 4.8.4. Combining Tables and Lists
    9. 4.9. HTML on Wiki Pages
      1. 4.9.1. Character and Entity References
      2. 4.9.2. Sanitizing
      3. 4.9.3. Ruby text, for East Asian languages
      4. 4.9.4. Footnotes
      5. 4.9.5. Signatures
    10. 4.10. Editing Alternatives
      1. 4.10.1. Toolbar
    11. 4.11. Summary
  10. 5. Images and Files
    1. 5.1. File Uploads
      1. 5.1.1. Enabling Uploads
      2. 5.1.2. Uploading Images
      3. 5.1.3. The Image Page
        1. 5.1.3.1. User Preferences
      4. 5.1.4. File Types
    2. 5.2. Image Linking and Embedding
      1. 5.2.1. The Image Namespace
      2. 5.2.2. The Media Namespace
        1. 5.2.2.1. Linking to the Image Description Page
        2. 5.2.2.2. Using an Image as a Link
      3. 5.2.3. Extended Image Syntax
      4. 5.2.4. Image Display Width
      5. 5.2.5. Image Alignment
        1. 5.2.5.1. Clearing Elements
      6. 5.2.6. Thumbnails and Frames
        1. 5.2.6.1. Specifying a Specific Image for the Thumbnail
        2. 5.2.6.2. Thumbnail Alignment
      7. 5.2.7. Image Galleries
    3. 5.3. Uploading Documents
    4. 5.4. Summary
  11. 6. Page Actions and Version Control
    1. 6.1. How Pages Work
      1. 6.1.1. Components of a Page
      2. 6.1.2. Revisions
        1. 6.1.2.1. The page table (MySQL)
        2. 6.1.2.2. The revision table
        3. 6.1.2.3. The text table
    2. 6.2. Actions
      1. 6.2.1. Permissions
      2. 6.2.2. Viewing Pages
        1. 6.2.2.1. Viewing Specific Versions
        2. 6.2.2.2. Viewing the Raw Wikitext of a Page
        3. 6.2.2.3. Viewing the Wikitext Rendered as HTML
      3. 6.2.3. Editing and Modifying Pages
        1. 6.2.3.1. Edit/Submit
      4. 6.2.4. Previous Versions
        1. 6.2.4.1. Diff
      5. 6.2.5. Deleting Pages
        1. 6.2.5.1. Deleting Files and Images
        2. 6.2.5.2. Move (Rename)
        3. 6.2.5.3. Purge
      6. 6.2.6. Protecting Pages
        1. 6.2.6.1. Protect/Unprotect
        2. 6.2.6.2. Watch/Unwatch
        3. 6.2.6.3. Patrolling
        4. 6.2.6.4. Blocking
      7. 6.2.7. Page Metadata
        1. 6.2.7.1. Info
        2. 6.2.7.2. Credits
        3. 6.2.7.3. dublincore, creativecommons actions
    3. 6.3. Redirects
    4. 6.4. Special Pages
      1. 6.4.1. Importing and Exporting Pages
    5. 6.5. Summary
  12. 7. Information Architecture: Organizing Your Wiki
    1. 7.1. How Users Find Information
    2. 7.2. Site Navigation
    3. 7.3. Search
      1. 7.3.1. Search Preferences
      2. 7.3.2. Search Options
        1. 7.3.2.1. Using Google as Your Search Engine
        2. 7.3.2.2. Using an External Search Engine
      3. 7.3.3. Apache Lucene Search
    4. 7.4. Category Pages
      1. 7.4.1. Adding a Page to a Category
      2. 7.4.2. Creating Categories
      3. 7.4.3. Linking to Category Pages Using Alternate Text
      4. 7.4.4. Sorting Categories
      5. 7.4.5. Editing Category Pages
      6. 7.4.6. Subcategories
      7. 7.4.7. Multi-Faceted Categories
      8. 7.4.8. Categories as Folksonomies
    5. 7.5. Improving Findability
      1. 7.5.1. Redirects and Synonyms
      2. 7.5.2. Disambiguation Pages
    6. 7.6. Wiki Gardening
    7. 7.7. Summary
  13. 8. Magic Words, Templates, and Skins
    1. 8.1. Magic Words
      1. 8.1.1. Directives
      2. 8.1.2. Variables
        1. 8.1.2.1. Date and Time
        2. 8.1.2.2. Information About the Page
        3. 8.1.2.3. Revisions
        4. 8.1.2.4. Statistics
      3. 8.1.3. Parser Functions
        1. 8.1.3.1. String Functions
        2. 8.1.3.2. URL Functions
        3. 8.1.3.3. Namespaces
      4. 8.1.4. Creating Links with Variables and Parser Functions
    2. 8.2. Templates
      1. 8.2.1.
        1. 8.2.1.1. Parameters
        2. 8.2.1.2. Named Parameters
        3. 8.2.1.3. Substitution
    3. 8.3. User Interface
      1. 8.3.1. Interface Messages
        1. 8.3.1.1. Sidebar
        2. 8.3.1.2. Site Notice
        3. 8.3.1.3. Copyright Warning
      2. 8.3.2. Skins
        1. 8.3.2.1. Displaying a New Logo
        2. 8.3.2.2. Skin Settings and Preferences
        3. 8.3.2.3. Customizing CSS and JavaScript
          1. 8.3.2.3.1. Site JavaScript and CSS
          2. 8.3.2.3.2. User JavaScript and CSS
          3. 8.3.2.3.3. Skin Output
        4. 8.3.2.4. Creating a New Skin
    4. 8.4. Summary
  14. 9. Extensions
    1. 9.1. MediaWiki Hooks
      1. 9.1.1. The Parsing Process
        1. 9.1.1.1. Step 1: Start with Raw Wikitext
        2. 9.1.1.2. Step 2: Remove Text That Shouldn't Be Parsed
        3. 9.1.1.3. Step 3: Generate Some (But Not All) of the Wikitext
        4. 9.1.1.4. Step 4: Unstrip Everything That You Stripped (Except <nowiki> Text)
        5. 9.1.1.5. Step 5: Fix Common Errors
        6. 9.1.1.6. Step 6: Generate Block-level HTML
        7. 9.1.1.7. Step 7: Put Links Back in
        8. 9.1.1.8. Step 8: Do Something Obscure with Chinese Text
        9. 9.1.1.9. Step 9: Unstrip <nowiki> Elements
        10. 9.1.1.10. Step 10: Tidy Up the HTML
    2. 9.2. XML Tag Extensions
      1. 9.2.1. The Setup Function
      2. 9.2.2. The Render Function
      3. 9.2.3. The Complete Extension
    3. 9.3. Parser Functions
      1. 9.3.1. The Setup Function
      2. 9.3.2. The Render Function
      3. 9.3.3. The Magic Function
      4. 9.3.4. The Complete Extension
      5. 9.3.5. Default Values
      6. 9.3.6. Return Values
      7. 9.3.7. Using Global Objects
    4. 9.4. Parser Functions with Messages
      1. 9.4.1. The Extension Object
      2. 9.4.2. The Setup Function
      3. 9.4.3. The Magic Function
        1. 9.4.3.1. ParserFunctionsLite.i18.php
        2. 9.4.3.2. Messages
        3. 9.4.3.3. The $magicWords Array
      4. 9.4.4. The Complete Extension
    5. 9.5. Hook Extensions
      1. 9.5.1. ParserBeforeStrip Hook
      2. 9.5.2. EditPage::showEditForm:initial Hook
    6. 9.6. Special Pages
      1. 9.6.1.
        1. 9.6.1.1. SpecialPageExample.php
        2. 9.6.1.2. SpecialPageExample_body.php
        3. 9.6.1.3. SpecialPageExample.i18n.php
    7. 9.7. Summary
  15. 10. The MediaWiki API
    1. 10.1. Bots: pywikipedia.py
      1. 10.1.1. Configuring pywikipedia.py
        1. 10.1.1.1. profwiki_family.py
        2. 10.1.1.2. user-config.py
      2. 10.1.2. editarticle.py
      3. 10.1.3. spellcheck.py
    2. 10.2. API.php
      1. 10.2.1. Configuration
      2. 10.2.2. Accessing the API
      3. 10.2.3. Actions
      4. 10.2.4. Formats
        1. 10.2.4.1. JSON Format
        2. 10.2.4.2. XML Format
        3. 10.2.4.3. WDDX Format
        4. 10.2.4.4. PHP Format
        5. 10.2.4.5. YAML Format
      5. 10.2.5. Python Script
        1. 10.2.5.1. Help
          1. 10.2.5.1.1. ApiRequest.doHelp()
        2. 10.2.5.2. Login
          1. 10.2.5.2.1. ApiRequest.doLogin()
        3. 10.2.5.3. Opensearch
          1. 10.2.5.3.1. ApiRequest.doOpensearch()
        4. 10.2.5.4. Feedwatchlist
          1. 10.2.5.4.1. ApiRequest.doFeedWatchlist()
          2. 10.2.5.4.2. RSS Feed
          3. 10.2.5.4.3. Atom Feed
        5. 10.2.5.5. Query
          1. 10.2.5.5.1. Searching by Title, Page ID, or Revision ID
          2. 10.2.5.5.2. Lists
          3. 10.2.5.5.3. Generators
      6. 10.2.6. In Development
      7. 10.2.7. api.py
    3. 10.3. Summary
  16. 11. Wiki Performance
    1. 11.1. Wikipedia Architecture
    2. 11.2. Caching
      1. 11.2.1. Purging the Cache
      2. 11.2.2. Cache Types
      3. 11.2.3. Browser Cache
      4. 11.2.4. File Cache
      5. 11.2.5. Memcached
        1. 11.2.5.1. Benefits
        2. 11.2.5.2. Installing
        3. 11.2.5.3. Configuring MediaWiki
        4. 11.2.5.4. Configuring and Running Memcached
      6. 11.2.6. Alternative PHP Cache (APC)
        1. 11.2.6.1. Installing APC
        2. 11.2.6.2. Configuring MediaWiki
        3. 11.2.6.3. Monitoring APC
    3. 11.3. Improving Performance
      1. 11.3.1. Serializing Messages
      2. 11.3.2. Miser Mode
      3. 11.3.3. Managing Spiders
        1. 11.3.3.1. Robots Exclusion Standard
        2. 11.3.3.2. Google Sitemaps
    4. 11.4. Maintenance Scripts
      1. 11.4.1. Configuration
      2. 11.4.2. Backup
      3. 11.4.3. Import Files
    5. 11.5. Summary