Cover image for Running Weblogs with Slash

Book description

Slash is the open source software system that drives the hugely popular Slashdot web site and many others. Slash implements the kind of web site that has come to be called a "weblog": a moderated list, in reverse chronological order, of timely items with links to further discussion on-site, or to further information off-site. Essentially, a weblog is a cooperatively authored daily newspaper for some defined community on the net.

Slash has spawned several imitators. The existence of so many different systems for operating a weblog site demonstrates that there are many people and groups on the net who want to run their own online community newspapers. Slash is based on open source technologies (Perl, Apache, and MySQL), and it makes use of open protocols (XML and RDF) for exchanging headlines with other sites.

Anyone who wants to get a weblog site up and running will want to read this book, particularly system administrators who may not have the time or the background to learn all about Slash by reading the source code. Content managers of Slash sites who want to be able to use the system more effectively will also benefit from this book, which organizes the knowledge currently distributed throughout the Slash source code, Slashcode web site, and mailing lists, and provides it in an organized package.

Table of Contents

  1. Running Weblogs with Slash
    1. Foreword
    2. Preface
      1. Audience
      2. What’s Inside
      3. Conventions Used in This Book
      4. How to Contact Us
      5. Acknowledgments
        1. chromatic’s Acknowledgments
        2. Brian “Krow” Aker’s Acknowledgments
        3. Dave Krieger’s Acknowledgments
    3. 1. Slash: An Overview
      1. The Slashdot Story
        1. The Rise of the Weblog
        2. The Slash Code
        3. Slash Matures
      2. Becoming a Slash Guru: A Roadmap
      3. The Slash User Interface
        1. Slash User Preferences
        2. User Polls
      4. The Slash Author Interface
        1. Comment Filters
      5. The Slash Publishing Cycle
      6. The Slash Architecture
    4. 2. Installing Slash
      1. Before You Begin
        1. Getting Help
          1. Getting help on MySQL
          2. Getting help on Perl
          3. Getting help on Apache and mod_perl
          4. Getting help on Slash
      2. Getting the Software
      3. The Short Version
      4. The Details
        1. Preparing the Ground
        2. Installing MySQL
        3. Building Apache with mod_perl
        4. Installing Slash’s Required Perl Modules
        5. Making and Installing Slash
        6. Installing the Slash Site
        7. Configuring Apache
        8. Starting the Server
      5. Advanced Installations
        1. Multi-Machine Sites
        2. Running Multiple Virtual Slash Sites
    5. 3. Basic Administration
      1. The Admin Menu
      2. Editing Authors
      3. Modifying Configuration Variables
        1. Care and Feeding of Configuration Variables
    6. 4. Editing and Updating Stories
      1. The Stories List
      2. The Edit Story Form
        1. Story Fields
        2. Extra Story-Editing Features
          1. Correcting eight-bit quotation marks
          2. Linking to Everything2
          3. Linking Stories to polls
          4. Story shortcuts
      3. Gotchas
    7. 5. Reviewing and Approving Submissions
      1. The Submit Story Page
      2. The Submissions List
        1. Managing Submissions
        2. Grouping Submissions with “Quickies”
      3. The Review Submission Page
      4. Editing User Submissions
        1. Longer Stories and User Essays
    8. 6. Comments, Filters, and Content Moderation
      1. Viewing Comments
        1. Comments Settings
      2. Posting Comments
      3. Comment Filters
        1. The Comment Filters List
        2. Regular Expressions
        3. Regular Expression Metacharacters
      4. Comment Moderation
        1. Types of Comment Moderations
        2. Gaining Moderator Access
        3. Instant Karma
        4. Meta-Moderation
        5. Authors and Moderation
      5. Moderation Configuration Variables
        1. Variables Governing User Karma and Comment Scores
        2. Variables Governing Tokens and Moderation Points
        3. Meta-Moderation Configuration Variables
    9. 7. Managing Topics and Sections
      1. Managing Topics
        1. Topic Attributes
      2. Choosing Topics and Icons
      3. Managing Sections
        1. Standalone Sections
        2. Extended Section Information
      4. Choosing Sections
    10. 8. Managing a Slash Community
      1. How to Stifle a Community
      2. Setting the Tone
        1. Choosing Stories
          1. Topics and tone
          2. Gauging user response
        2. Posting Stories
          1. Creating good introductions
          2. Editing and updating introductions
          3. Metacomments: when the site itself becomes news
      3. Finding and Generating Content
        1. Original Content Versus Linked Stories
          1. Knowing when to publish
      4. Promoting the Site
        1. RSS Feeds
        2. Cross-Site Promotion
        3. Attracting Links
      5. Managing Authors
      6. Managing Users
        1. The Ubiquitous Anonymous User
        2. The Nearly Self-Governing Moderation System
        3. The Content Filter Cold War
        4. The Last-Resort Delete Button
        5. Anti-Abuse Features
          1. Formkeys
          2. IPIDs, NetIDs, and blacklists
    11. 9. Basic Site Customization
      1. Blocks and Slashboxes
        1. The Site Block Editor
        2. Secrets of Headline Swapping: XML, RDF, and RSS
        3. Static Slashboxes
        4. Default Static Blocks
      2. Managing User Polls
        1. The User View of Polls
        2. Vote Early, Vote Often
        3. Administering Polls
    12. 10. Advanced Customization
      1. Changing the Look
        1. Section Blocks: Colors and Boxes
        2. Section Templates
      2. Customizing Template Behavior
        1. Banner Ads
      3. Themes and Plugins
        1. Installing Plugins
        2. Installing Themes
        3. Inside the Slashprint Plugin
          1. Plugin overview
          2. The Print applet
          3. The Print plugin templates
      4. Modifying the Code Itself
        1. An Example: Applying Content Filters Based on User Karma
          1. Finding what to change
          2. Changing the content filter subroutines
          3. Adding a karma check
          4. Modifying the content filters menu
      5. Internationalization
    13. 11. Advanced Administration
      1. Tasks
        1. Extra Task Options
      2. The Slash Daemon and Tasks
        1. slashd
        2. The dailyStuff Task
        3. The moderatord Task
        4. The portald Task
      3. Slash Utilities
        1. template-tool
        2. runtask
    14. A. Slash Architecture
      1. The Apache Request Cycle
      2. How Information Is Stored
        1. Inheritance and Database Independence
        2. Cache Is King
      3. How Information Is Displayed
      4. Slash Directory Structures
        1. The Slash Home Directory
        2. Slash Site Directories
        3. Slash Theme Directories
        4. Slash Plugin Directories
        5. THEME and PLUGIN Directives
      5. Slash Libraries
    15. B. Common Slash Database Tables
      1. Foreign Keys
      2. Common Table Schemas
        1. Access Log
        2. Authors Cache
        3. Blocks
        4. Code Params
        5. Discussions, Comments, and Moderation
        6. Content Filters
        7. formkeys
        8. Site Information
        9. Menus
        10. Polls
        11. Related Links
        12. Sections and Topics
        13. Sessions
        14. Stories
        15. Submissions
        16. Templates
        17. Users
    16. C. The Slash Template Language
      1. Template Basics
        1. Complex Template Variables
        2. Standard Slash Template Variables
        3. Template Control Structures
        4. Template Blocks and Files
          1. Blocks
          2. Including and processing
      2. Advanced Templates for Slash
        1. Filters
        2. Slash Filters
        3. Functions and Templates
          1. Standard template functions
          2. Calling Slash functions from templates
      3. Miscellaneous Arcana
        1. Whitespace
        2. Idioms and More Information
    17. D. The Slash API
      1. Browsing the Slash Documentation
      2. Initialization Functions
        1. createEnvironment
        2. getCurrentDB
        3. getCurrentStatic
        4. getCurrentUser
        5. getCurrentForm
      3. Database Functions
        1. sqlSelect
        2. sqlSelectArrayRef
        3. sqlSelectHashref
        4. sqlSelectHash
        5. sqlSelectMany
        6. sqlSelectColArrayref
        7. sqlSelectAll
        8. sqlSelectAllHashrefArray
        9. sqlUpdate
        10. sqlSelectAllHashref
        11. sqlInsert
        12. sqlQuote
        13. sqlDo
        14. sqlCount
      4. Display Functions
        1. slashDisplay
        2. getDescriptions
        3. isAnon
        4. doEmail
    18. E. Slash Configuration Variables
      1. Variable Tables
    19. Index
    20. Colophon